2014-03-05 135 views
0

我需要計算A軸與X軸之間的角度,B點是學校,B點是學生宿舍。 我有學校和所有學生的經度和緯度 所有的角度將在水平軸和段[學校,學生] = [A,B]之間進行計算。計算水平軸與兩點之間的角度

我試圖Math.atan在C#..但它計算兩個點之間的角度,而不考慮x軸

將這個方法幫助我嗎?!

的Cos(阿爾法)=(緯度乙 - 緯度A)/距離(AB)

其中alpha是我需要找到

角度謝謝

+2

使用['Atan2'(http://msdn.microsoft.com/en-us/library/system.math.atan2%28v=vs.110%29.aspx)而不是atan。 – Kevin

回答

3

我要去承擔您的縱座標代表沿x軸的每個點的距離,您的緯度座標代表沿y軸的每個點的距離。如果這是一個不正確的假設,請告訴我。

y 
|     (B) 
|     /| 
|    /| 
|    /| 
| distance(AB)/ | 
|    / | (LatB-LatA) 
|   / | 
|   / | 
|   /  | 
|   /alpha | 
|  (A)---------- 
|   (LonB-LonA) 
| 
| 
|__________________________________ x 
0 

然後,爲了找到你的角度相對於X軸,你應該申請的下列規則之一:

sin(alpha) = (LatB - LatA)/distance(AB) 
cos(alpha) = (LonB - LonA)/distance(AB) 
tan(alpha) = (LatB - LatA)/(LonB - LonA) 

只需通過使用逆重新排列方程的一個sincostan,你應該可以找到弧度爲alpha。例如...

alpha = Math.Asin((LatB - LatA)/distance(AB)); 
alpha = Math.Acos((LonB - LonA)/distance(AB)); 
alpha = Math.Atan((LatB - LatA)/(LonB - LonA)); 
+0

是的,就是這樣!非常感謝你:) @jaredk – Maha

相關問題