我正在尝试用 JavaScript 创建一个基于 2d 图块的游戏,并且我需要能够计算两点之间的角度。我正在使用 atan2 函数来查找两点之间的角度,如下所示:
function getAngleDegrees(fromX, fromY, toX, toY, force360 = true) {
let deltaX = toX - fromX;
let deltaY = toY - fromY;
let radians = Math.atan2(deltaY, deltaX);
let degrees = (radians * 180) / Math.PI;
if (force360) {
while (degrees >= 360) degrees -= 360;
while (degrees < 0) degrees += 360;
}
return degrees;
}
Run Code Online (Sandbox Code Playgroud)
但是,这并没有为我提供正确的结果。我检查了代码是否存在逻辑或数学错误,但找不到任何错误。无论我向该函数输入什么点,结果都会有很多偏差。
我创建了一个 JS 小提琴来可视化问题:
https://jsfiddle.net/fa6o7wdy/40/
如果有人知道我如何修复角度函数以提供正确的结果,请帮助!
编辑:
这是问题的图片: