2017-10-06 247 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的情況來獲得理解,然後一旦你知道你想要什麼,就以相同的方式應用它。


如果您有需要找出一個特定的幾何形狀/關係的問題,您可以提供的細節,我也許能幫助更具體。