如图所示,我有一条线和两条点(p1和p4)。我需要做的是在线上获得p1 / p4的捕捉点,然后使用atan2来计算(p1和p2)和(p3和p4)之间的角度。现在,我有两个公式:
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如何计算这些值? 谢谢你的帮助
答案 0 :(得分:0)
这些答案做是有道理的。您可以从正x轴开始计算单条线的角度。您计算anglep1p2
的方式,它对应于从
如果您在起点p1处插入坐标系的原点(将其放在图中的p2处),那么您得到的数字应该是从正x轴到您绘制的线的旋转 - a超过90度有点直观感。
你的第二个结果是从你的第一个翻转过来(注意你使用p4 / p3的顺序和你的变量名相同,而你在p1 / p2情况下颠倒了这个顺序)。为了避免混淆,我会使用p1 / p2案例来获得理解,然后在你知道自己想要什么的情况下以同样的方式应用于其他案例。
如果你有一个特定的几何/关系问题,你需要弄清楚,你可以提供详细信息,我可以更具体地帮助。