語法
C 語言裡 double atan2(double y,double x) 返回的是原點至點(x,y)的方位角,即與 x 軸的夾角。也可以理解為複數 x+yi 的輻角。返回值的單位為弧度,取值範圍為;
Excel 里 ATAN2(x,y)返回的是原點至點(x,y)的方位角。返回值的單位為弧度,取值範圍為。
注意:
1、C 函式與 Excel 函式的參數順序正好相反;
2、C 函式允許 x、y 同時為零,Excel 不允許 x、y 同時為零。
與 atan 的不同
atan2 比 atan 穩定。
如:atan(y/x),當 y 遠遠大於 x 時,計算結果是不穩定的。
atan2(y,x)的做法:當 x 的絕對值比 y 的絕對值大時使用 atan(y/x);反之使用 atan(x/y)。這樣就保證了數值穩定性。
說明
在數學坐標系中,結果為正表示從 X 軸逆時針旋轉的角度,結果為負表示從 X 軸順時針旋轉的角度。
ATAN2(a, b) 與 ATAN(a/b)稍有不同,ATAN2(a,b)的取值範圍介於 -pi 到 pi 之間(不包括 -pi),
而ATAN(a/b)的取值範圍介於-pi/2到pi/2之間(不包括±pi/2)。
若要用度表示反正切值,請將結果再乘以 180/3.14159。
另外要注意的是,函式atan2(y,x)中參數的順序是倒置的,atan2(y,x)計算的值相當於點(x,y)的角度值。
示例
如果將示例複製到空白工作表中,可能會更易於理解該示例。
A | B | |
1 | 公式 | 說明(結果) |
2 | =ATAN2(1,1) | 以弧度表示點(1,1)的反正切值,即pi/4(0.785398) |
3 | =ATAN2(-1,-1) | 以弧度表示點(-1,-1)的反正切值,即-3*pi/4(-2.35619) |
4 | =ATAN2(-1,-1)*180/3.14159 | 以度表示點(-1,-1)的反正切值(-135) |
5 | =ATAN2(2,1)* 180/3.14159 | 以度表示點(1,2)的反正切值(約為63) |
javascript實例
下面這個例子可通過 atan2() 方法返回不同 (x,y) 點的角度: