2017-10-06 229 views
0

如图所示,我有一条线和两个点(p1和p4)。我需要做的是在线上获得p1/p4的捕捉点,然后使用atan2来计算(p1和p2)与(p3和p4)之间的角度。现在,我有两个公式:计算atan2如何工作?实际计算哪个角度?

var anglep1p2 = Math.atan2(p2[1] - p1[1], p2[0] - p1[0]) * 180/Math.PI; 
var anglep4p3 = Math.atan2(p4[1] - p3[1], p4[0] - p3[0]) * 180/Math.PI; 

anglep1p2 103.66797855556482 anglep4p3计算-76.74971541138642

我不知道怎么做ATAN2计算这些值? 感谢您的帮助

enter image description here

回答

0

这些答案有意义。你正在计算一条单线的角度,从正X轴开始。您计算anglep1p2的方式,它对应于从p1到p2绘制的线

如果您在起点p1处将坐标系的原点(您将其放在图中的p2处)跳过,那么您得到的数字应该是从正x轴到您绘制的直线的旋转 - 超过90度有点直观。

您的第二个结果会从您的第一个结果中翻转(注意您使用的p4/p3的顺序与您的变量名称相同,而您在p1/p2的情况下颠倒了此顺序)。为了避免混淆,我会使用p1/p2的情况来获得理解,然后一旦你知道你想要什么,就以相同的方式应用它。


如果您有需要找出一个特定的几何形状/关系的问题,您可以提供的细节,我也许能帮助更具体。