Math.PI
)。
let base = {x: 100, y: 100};
document.addEventListener('mousemove', event => {
let angle = Math.PI + Math.atan2(-event.x + base.x, event.y - base.y);
console.log(angle * 180 / Math.PI);
});
<div style="position: absolute; top: 100px; left: 100px">x</div>
如果您制作一个表格,列出您拥有的值和期望的值,那么计算将会更加容易。
拥有 -> 期望
-180 -> 270
-90 -> 0
0 -> 90
90 -> 180
180 -> 270
我们可以将其分为两种情况:
[-180,-90)
和
[-90,180]
情况1
[-180, -90) -> [270, 360)
规则是简单的+450
情况2
[-90, 180] -> [0, 270]
这个只需要+90
所以我们得到了我们的代码
sanitize(angle){ // expecting angle within [-180, 180]
if(angle < -90){
return angle + 450;
} else {
return angle + 90;
}
}