Javascript 精确地将方位角转换为人眼角度
我正在编写这段代码,将方位角角度转换为人类可编辑的角度,但转换并不更精确,在角度略小于360度的情况下Javascript 精确地将方位角转换为人眼角度,javascript,human-readable,azimuth,Javascript,Human Readable,Azimuth,我正在编写这段代码,将方位角角度转换为人类可编辑的角度,但转换并不更精确,在角度略小于360度的情况下 function azimutHuman(ang) { //can be 0 - 360 var azimuthHumans = [ 'Nord','Nord-NE','Nord-Est','Est-NE', 'Est','Est-SE','Sud-Est','Sud-SE', 'Sud','
function azimutHuman(ang) { //can be 0 - 360
var azimuthHumans = [
'Nord','Nord-NE','Nord-Est','Est-NE',
'Est','Est-SE','Sud-Est','Sud-SE',
'Sud','Sud-SO','Sud-Ovest','Ovest-SO',
'Ovest','Ovest-SO','Nord-Ovest','Nord-NO'];
return azimuthHumans[ Math.round(ang/22.5) ];
}
例如:
azimutHuman(350); //return undefined instead of "Nord"
Math.round(350/22.5)=16
索引16处的数组未定义。在其中添加第16个元素,Nord
应该再次起作用350->360=0->10:360和0一样北
因此,您需要再次添加元素“Nord”。请立即尝试此函数:
function azimutHuman(ang) { //can be 0 - 360
var azimuthHumans = [
'Nord','Nord-NE','Nord-Est','Est-NE',
'Est','Est-SE','Sud-Est','Sud-SE',
'Sud','Sud-SO','Sud-Ovest','Ovest-SO',
'Ovest','Ovest-SO','Nord-Ovest','Nord-NO','Nord'];
return azimuthHumans[ Math.round(ang/22.5) ];
}