
【JavaScript】角度を16方位に変換するソースコード
2018-09-115 min read
目次
概要
与えられたある角度を16方位に変換する。
よくありがちな処理としてこんなものがあります。
var dname = [
'N',
'NNE',
'NE',
'ENE',
'E',
'ESE',
'SE',
'SSE',
'S',
'SSW',
'SW',
'WSW',
'W',
'WNW',
'NW',
'NNW',
'N',
];
var dindex = Math.round(degree / 22.5);
alert('方角は' + dname[dindex]);
JSの場合、
というものがあり、浮動小数点数を利用した計算の場合、誤差が発生します。
なので、個人的には厳密な値を求める場合、浮動小数が含まれる計算はなるべく避けたいものです。
ソース
上記を考慮して、なるべく少数が含まれる計算を排除したのがこれ↓です。
function getAzimuth(degree) {
var dname = [
'N',
'NNE',
'NE',
'ENE',
'E',
'ESE',
'SE',
'SSE',
'S',
'SSW',
'SW',
'WSW',
'W',
'WNW',
'NW',
'NNW',
'N',
];
var count = 0;
for (var i = 11.25; i < (360 + 11.25); i += 22.5) {
if (degree < i) {
break;
}
count++;
}
return dname[count];
}
Recommends
New Posts
Hot posts!
Date
Tags
Author