我正在使用此JavaScript / ActionScript代码来确定给定两个x和y值的角度,但它不正确:
var deltaX = 10;
var deltaY = -10;
var angleInDegrees:int = -(Math.atan2(deltaY, deltaX) * 180 / Math.PI);
trace(angleInDegrees); // 45'
结果在不同点:
clock x y angle
========================
12:00 0, -10 = 90
3:00 10, 0 = 0
6:00 0, 10 = -90
9:00 -10, 0 = -180
我正在尝试获取以下角度值:
clock x y angle
========================
12:00 0, -10 = 0
3:00 10, 0 = 90
6:00 0, 10 = 180
9:00 -10, 0 = 270
我可以使用另一个公式来获取以前的值吗?
更新 坐标系可能是这里的问题。单击鼠标时,它会设置原点。如果向上或向左移动,则处于负空间。如果你向右或向下移动,你就处于积极的空间。
答案 0 :(得分:1)
如下所示:
function getAngle(y, x) {
var angle = Math.atan2(-x, -y) * 180/Math.PI - 90;
return angle < 0 ? 360 + angle : angle; // Ensure positive angle
}