0
我的問題是關於Haversine公式arcsin x = arctan x /(sqrt(1-x^2),因此當我們將公式從arcsin轉換爲arctan時,公式應該有atan x而不是atan2 x。Haversine公式
θ= 2反正弦(SQRT(A))= 2反正切(SQRT(A)/(SQRT(1-α)))
但在大多數所述預覽答案具有ATAN後進行額外的2。 任何人都可以向我解釋。謝謝
我的問題是關於Haversine公式arcsin x = arctan x /(sqrt(1-x^2),因此當我們將公式從arcsin轉換爲arctan時,公式應該有atan x而不是atan2 x。Haversine公式
θ= 2反正弦(SQRT(A))= 2反正切(SQRT(A)/(SQRT(1-α)))
但在大多數所述預覽答案具有ATAN後進行額外的2。 任何人都可以向我解釋。謝謝
atan(x)
是與atan2(x,1)
相同atan2(y,x)
是點的角度(x,y)
,而atan(y/x)
是通過原點的線和(x,y)
的角度。
x86 CPU/FPU指令中作爲FPU存在的唯一反三角函數是FPATAN
,它實現了atan2
。因此asin(x)
也被實施爲atan2(x,sqrt(1-x*x))
,acos(x)
作爲atan2(sqrt(1-x*x),x)
。
難道這個問題對於http://math.stackexchange.com/更適合嗎? – kkaosninja
google「atan vs atan2」;或看看這裏:http://stackoverflow.com/questions/283406/what-is-the-difference-between-atan-and-atan2-in-c –
爲什麼你稱之爲「Haversine公式」?其中沒有[haversine](https://en.wikipedia.org/wiki/Versine#hav),[另一個公式](https://en.wikipedia.org/wiki/Haversine_formula)被稱爲。 –