我需要計算A軸與X軸之間的角度,B點是學校,B點是學生宿舍。 我有學校和所有學生的經度和緯度 所有的角度將在水平軸和段[學校,學生] = [A,B]之間進行計算。計算水平軸與兩點之間的角度
我試圖Math.atan在C#..但它計算兩個點之間的角度,而不考慮x軸
將這個方法幫助我嗎?!
的Cos(阿爾法)=(緯度乙 - 緯度A)/距離(AB)
其中alpha是我需要找到
角度謝謝
我需要計算A軸與X軸之間的角度,B點是學校,B點是學生宿舍。 我有學校和所有學生的經度和緯度 所有的角度將在水平軸和段[學校,學生] = [A,B]之間進行計算。計算水平軸與兩點之間的角度
我試圖Math.atan在C#..但它計算兩個點之間的角度,而不考慮x軸
將這個方法幫助我嗎?!
的Cos(阿爾法)=(緯度乙 - 緯度A)/距離(AB)
其中alpha是我需要找到
角度謝謝
我要去承擔您的縱座標代表沿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)
只需通過使用逆重新排列方程的一個sin
,cos
或tan
,你應該可以找到弧度爲alpha
。例如...
alpha = Math.Asin((LatB - LatA)/distance(AB));
alpha = Math.Acos((LonB - LonA)/distance(AB));
alpha = Math.Atan((LatB - LatA)/(LonB - LonA));
是的,就是這樣!非常感謝你:) @jaredk – Maha
使用['Atan2'(http://msdn.microsoft.com/en-us/library/system.math.atan2%28v=vs.110%29.aspx)而不是atan。 – Kevin