我正在研究一个项目,该项目要求我计算从变量点A到0到360度的变量点B的航向,让A点的物体面向B点。
现在,我不确定如何实现这一点,我用谷歌搜索但没有找到任何好的解决方案。
在任何情况下,我如何计算2D空间中从A点到B点的航向?
答案 0 :(得分:8)
在诸如C或C ++之类的语言中,您可以使用atan2
函数,该函数计算四个象限的y / x的反正切值,并考虑x和y的符号。
如果A位于(x1,y1)且B位于(x2,y2),则弧度的标题由下式给出:
theta_radians = atan2(y2 - y1, x2 - x1);
theta_radians
的范围是-π到+π。您可以将其转换为0到360范围内的度数,如下所示:
theta_degrees = (theta_radians + M_PI) * 360.0 / (2.0 * M_PI);
答案 1 :(得分:1)
这是三角形。你知道两点的位置,你可以用它们来制作一个直角三角形。从那里你可以使用SOH-CAH-TOA找到你感兴趣的角度。然后从那里你需要确定三角形所在的象限并适当地偏移计算出的角度。