在笛卡尔坐标系中,沿着给定方向移动点的距离

5

我有一个笛卡尔坐标系的点,比如:

x = 3 & y = 5

现在我想要在给定方向(以度数表示)移动一段距离后,得到这个点的新坐标。

我应该怎么做才能得到新的x和y的值呢?


如果你理解向量,这是一个简单的问题。其中 p = 起点,p' = 终点,u = 方向单位向量,d = 距离。公式为 p' = p + d*u。 - duffymo
1个回答

9

学校几何学中的一些著名公式:

new_x = x + distance * Math.Cos(angle_degrees * Math.Pi / 180)
new_y = y + distance * Math.Sin(angle_degrees * Math.Pi / 180)

请注意,angle_degrees = "given direction" 的度数是从正x轴沿着正y轴移动所测量的。

7
应当指出,这仅适用于从正x轴向正y轴移动时以度数测量的“角度”。 - Rory Daulton
在制图学中,通常使用一个坐标系,其中“x”指向东方,“y”指向北方,并且角度是从北方的方向即“y”轴(注:!)顺时针测量的。此外,如果您从后面看同样的笛卡尔平面(例如在3D应用程序中可能会发生),'x'开始向左移动,角度再次顺时针(因此,公式不变,但角度测量过程发生了变化)。因此,明确说明坐标系非常重要。 - lisyarus
我在上面的答案中修复了JavaScript语法,但它被还原了?cos和sin应该小写,PI应该全部大写... - Felix Eve
@Felix Eve 是的,我进行了回滚操作。因为问题没有提到 JavaScript,只有伪代码。 - MBo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接