【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
(110)
(54)
(54)
(47)
(45)
(36)
(30)
(29)
(24)
(24)
(22)
(21)
(21)
(20)
(19)
(17)
(16)
(16)
(15)
(14)
(12)
(12)
(12)
(12)
(12)
(12)
(11)
(10)
(10)
(10)
(10)
(10)
(9)
(9)
(8)
(8)
(8)
(8)
(7)
(7)
(6)
(6)
(6)
(6)
(6)
(5)
(5)
(5)
(5)
(4)
Author