【问题标题】:Get the angle degrees from 2 points on a grid从网格上的 2 个点获取角度
【发布时间】:2018-04-11 02:37:30
【问题描述】:

我有一个用于平面 2D 地图的网格,这与通常的有点不同。左上角是 0,0,右下角是 1000,1000。我在这张地图上有 2 个点,一个起点/锚点和一个目的地。

我正在寻找从起点到终点的度数(在 javascript 中)。我浏览了很多答案,但都没有产生正确的结果。

function getAngle(origin_x, origin_y, destination_x, destination_y) {
var newx = destination_x - origin_x;
var newy = destination_y - origin_y;
var theta = Math.atan2(-newy, newx);
if (theta < 0) {
theta += 2 * Math.PI;
}
theta *= 180 / Math.PI;
return theta;
}

这是我目前所拥有的,但它没有产生正确的角度。

非常感谢您!

【问题讨论】:

  • 一个角度需要两条支撑线来测量。你的第二个在哪里?是x轴/y轴吗?你能给出一个你想计算的角度的数字吗?
  • @NicoSchertler 它将成为一个主要方向。所以它只是从起点出来的北线,到目的地。
  • @NicoSchertler Ive 现在包含了一个图表。谢谢
  • 北向是(0, -1)吗?然后,atan2(newx, -newy) 应该这样做。如果这不是您想要的,您能否提供一些带有您想要的角度的示例方向?
  • @NicoSchertler 这个小改动似乎已经解决了!谢谢!

标签: javascript math trigonometry angle


【解决方案1】:

image from mdn Math.atan2 doc

它将给出相对于 x 轴而不是 y 轴的角度。转换所有你会做的是

var newAngle = 90 - theta;

【讨论】:

  • 非常感谢!
  • @JeremyBen 如果您认为这回答了您的问题,您应该对此表示赞赏。
  • @PhilipBrack Nico 的评论回答了这个问题
猜你喜欢
  • 2011-08-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-30
  • 1970-01-01
  • 2017-10-15
  • 2016-07-28
  • 1970-01-01
相关资源
最近更新 更多