【JavaScript】角度を16方位に変換するソースコード
約 2 分
目次
概要
与えられたある角度を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];
}おすすめの記事
最新の記事
よく読まれている記事
タグから探す
- javascript130
- typescript67
- node.js54
- linux54
- 画像処理48
- amazon-aws48
- アルゴリズム37
- canvas35
- html529
- 画像処理100本ノック27
- php24
- centos24
- python22
- 競技プログラミング21
- mac21
- mysql20
- opencv17
- 雑談16
- 機械学習16
- docker16
- wordpress15
- atcoder14
- apache12
- データベース12
- amazon-s312
- red-hat12
- prisma12
- ubuntu11
- github10
- git10
- react10
- mariadb10
- vue.js9
- next.js9
- aws-cdk9
- css38
- 可視化8
- 小ネタ8
- nestjs8
- amazon-lightsail7
- ブログ6
- cms6
- oracle6
- perl6
- gitlab6
- iam5
- amazon-ec25
- 資格試験5
- aws-amplify5
- curl4