2010-12-09 91 views
2

我正在研究一個項目,該項目需要我計算從0到360度範圍內的變量點A到變量點B的標題,以使點A上的對象面對點B.從二維空間中的點A到點B的標題?

現在,我不確定如何做到這一點,我谷歌搜索,但沒有找到任何好的解決方案。

在任何情況下,我如何計算二維空間中從點A到點B的標題?

+0

難道你沒有在這個背景下得到「標題」一詞的意思,或者你不太懂得如何做數學? – MJB 2010-12-09 21:57:30

回答

7

在諸如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); 

$ man atan2

1

它trig的。你知道兩點的位置,你可以用它們做出一個直角三角形。從那裏你可以使用SOH-CAH-TOA找到你感興趣的角度。然後從那裏你需要確定三角形所在的象限,並適當地偏移計算出的角度。