【问题标题】:Move point in cartesian coordinate through distance in the given direction笛卡尔坐标中的点在给定方向上移动距离
【发布时间】:2017-01-04 13:57:55
【问题描述】:

我在笛卡尔坐标系中有一个点,例如: x = 3 & y = 5

并且我想在给定方向(以度为单位)移动一段距离后获得该点的新坐标。

如何获取新的 x 和新的 y ?

【问题讨论】:

  • 如果您了解向量,这是一个简单的问题。 p' = p + d*u,其中p = 起点,p' = 终点,u = 方向单位向量,d = 距离。

标签: math geometry polar-coordinates cartesian-coordinates


【解决方案1】:

学校几何中的著名公式:

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 轴正向测量的

【讨论】:

  • 应该说明的是,只有当以度为单位的“角度”是从正 x 轴向正 y 轴移动时测量的。
  • @MBo 在制图学中,通常使用坐标系,其中“x”指向东,“y”指向北,角度是从向北的方向测量的,即从“y”轴(原文如此!),顺时针方向(原文如此!)。此外,如果您从后面看同一个通常的笛卡尔平面(这可能发生在例如 3D 应用程序中),“x”开始向左移动并且角度再次顺时针方向(因此,公式不会改变,但角度测量过程确实)。因此,明确说明坐标系很重要。
  • 我在上面的答案中修复了 JavaScript 语法,但它被恢复了? cos 和 sin 应该是小写,PI 应该都是大写...
  • @Felix Eve 是的,我进行了回滚。因为问题没有提到 JavaScript。只是伪代码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-03-31
  • 2013-04-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多