2017-01-22 74 views
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。 任何人都可以向我解釋。謝謝

+0

難道這個問題對於http://math.stackexchange.com/更適合嗎? – kkaosninja

+0

google「atan vs atan2」;或看看這裏:http://stackoverflow.com/questions/283406/what-is-the-difference-between-atan-and-atan2-in-c –

+0

爲什麼你稱之爲「Haversine公式」?其中沒有[haversine](https://en.wikipedia.org/wiki/Versine#hav),[另一個公式](https://en.wikipedia.org/wiki/Haversine_formula)被稱爲。 –

回答

1

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)

相關問題