Javascript 当我只有p1、角度和距离单位时,如何找到p2

Javascript 当我只有p1、角度和距离单位时,如何找到p2,javascript,math,geometry,trigonometry,Javascript,Math,Geometry,Trigonometry,图像可能是最好的 我的目标是在我正在制作的游戏中为玩家找到未来的一步。玩家位于(x1,y1),步行距离为7,方向/角度为53。它的下一个点(x2,y2)是什么 如果我有:角度/方向和要走的距离,如何在图形上找到点2(x2,y2) 以下是我迄今为止所做的尝试: x1 =-5; y1 = -3; x2 = 7; y2 = 5; r = 7; deltaY = y1 - y2; deltaX = x1 - x2; /* Finding the angle */ angleInDegrees =

图像可能是最好的

我的目标是在我正在制作的游戏中为玩家找到未来的一步。玩家位于(x1,y1),步行距离为7,方向/角度为53。它的下一个点(x2,y2)是什么

如果我有:角度/方向和要走的距离,如何在图形上找到点2(x2,y2)

以下是我迄今为止所做的尝试:

x1 =-5;
y1 = -3;
x2 = 7;
y2 = 5;
r = 7;
deltaY = y1 - y2;
deltaX = x1 - x2;

/* Finding the angle */
angleInDegrees  = Math.atan2(deltaY, deltaX) * 180 / Math.PI;

/* Finding destination point (x2,y2) */
desTx = r * Math.cos(angleInDegrees)+x1;
desTy = r * Math.sin(angleInDegrees)+y1;
您也可以查看我在以下位置制作的小提琴:

您可以看到该线的方向不正确-在理想情况下,绿线将继续与p1和p2的方向相同

如果我有:角度/方向和 还有多远

您可以尝试:

/// angle in radians
function lineToAngle(x, y, length, angle) {

    var x2 = x + length * Math.cos(angle),
        y2 = y + length * Math.sin(angle);

    return [x2, y2];
}
如果先输入计算的角度,然后将计算增量的方式更改为:

deltaY = y2 - y1;
deltaX = x2 - x1;
Math.cos()
Math.sin()
需要以弧度为单位的角度,因此不要将
atan2()
结果转换为度:

angleInRadians = Math.atan2(deltaY, deltaX);

desTx = r * Math.cos(angleInRadians)+x1;
desTy = r * Math.sin(angleInRadians)+y1;

刚试过没换支票我已经更新了changes@NetaMeta若你们先计算角度,然后试着在你们的三角洲中切换x1-x2到x2-x1等。Math.cos/sin必须具有以弧度为单位的角度,因此无需将AN2结果转换为度。首先使用这些结果,不会产生期望的结果。弧度上的BAHh未实现!!谢谢,这很有效。