2010-08-31 52 views
0

假設我是2d平面上的任意兩點(p1(x1,y1),p2(x2,y1)),並且這兩個點與中心形成一條直線(c(c1 ,C2))。因此,我是兩條線在同一點結束。我想知道如何計算這兩條線之間的角度。我希望能夠顯示0-2pi的角度範圍。還有0 - ( - 2pi),它讓p1和c形成的行成爲第1行和第2行。 通過使用atan2()我確實有一些想法,但是沒有像我想要的那樣工作。 謝謝兩條線在同一點處的起點角度

回答

1

將點轉換爲矢量(從每個端點減去中心點)並使用dot product來計算角度。

0

查找和中心之間的Δ矢量的兩點

d1 = p1-c; 
d2 = p2-c; 

您可以使用ATAN2獲得每一項的角度:

angle1 = atan2(d1.Y, d1.X) 
angle2 = atan2(d2.Y, d2.X) 

和您所需的角度簡直是差:

a = angle2-angle1; 

根據是否希望角度被表示爲介於0和2pi或-2pi和0,你可以使用一個while循環來保持減去2pi /添加2pi來獲得你想要的表示,儘管你只需要在向人展示角度時做到這一點