我正在使用javascript/canvas创建一个简单的2D游戏。
我需要找出某个对象相对于我的位置的角度。
例如:假设我在(10,10),而对象在(10,5) - 这将导致90度(因为正Y向下,负Y向上)(10,10)与(10,15)之间的角度为270度。
我该如何解决这个问题?
例如:假设我在(10,10),而对象在(10,5) - 这将导致90度(因为正Y向下,负Y向上)(10,10)与(10,15)之间的角度为270度。
我该如何解决这个问题?
Math.atan2()
函数获取弧度角。var theta = Math.atan2(-y, x);
if (theta < 0)
theta += 2 * Math.PI;
将弧度转换为角度,乘以180 / Math.PI
。
function pointDirection(x1, y1, x2, y2) {
return Math.atan2(y2 - y1, x2 - x1) * 180 / Math.PI;
}
angle = Math.atan2(Cy-Ay,Ax-Cx)
你将得到[-π, π]范围内的结果。
我不知道为什么他们没有将画布原点设为左下角。