在三角函數中,兩個參數的函數是正切函數的一個變種。對於任意不同時等於0的實參數和,所表達的意思是坐標原點為起點,指向的射線在坐標平面上與x軸正方向之間的角的角度。當時,射線與x軸正方向的所得的角的角度指的是x軸正方向繞逆時針方向到達射線旋轉的角的角度;而當時,射線與x軸正方向所得的角的角度指的是x軸正方向繞順時針方向達到射線旋轉的角的角度。
在幾何意義上,等價於,但的最大優勢是可以正確處理而的情況,而不必進行會引發除零異常的操作。
函數最初在計算機編程語言中被引入,但是現在它的應用在科學和工程等其他多個領域十分常見。他的出現最早可以追溯到FORTRAN語言[1],並且可以在C語言的數學標準庫的math.h文件中找到,此外在Java數學庫、.NET的System.Math(可應用於C#、VB.NET等語言)、Python的數學模塊以及其他地方都可以找到atan2的身影。許多腳本語言,比如Perl,也包含了C語言風格的atan2函數[2]。
函數定義
該函數基於值域為 的反正切函數,定義如下:
說明:
- 該函數的值域為,可以通過對負數結果加的方法,將函數的結果映射到範圍內。
其他軟件中的變形
不同計算機語言中該函數的實現各有差異。
vb6:
atan2(x,y)=
(x<>0+y<>0)*
(x<=0)*2*Atn(sgn(y)^sgn(y))/2^(x<>0)-
(x<>0)*Atn(y*x^(x<>0))
adodb.connect.execute:
SELECT (x<>0+y<>0)*(x<=0)*2*Atn(sgn(y)^sgn(y))/2^(x<>0)-(x<>0)*Atn(y*x^(x<>0)) AS AT_ FROM (SELECT Col1 AS x,Col2 AS y) T_
(x<>0+y<>0)可省略
有關圖片
旁邊的圖片顯示內容是:在一個單位圓內函數在各點的取值。圓內標註代表各點的取值的幅度表示。
圖片中,從最左端開始,角度的大小隨着逆時針方向逐漸從增大到,並且角度大小在點位於最右端時,取值為0。
另外要注意的是,函數中參數的順序是倒置的,計算的值相當於點的角度值。
下方的圖片顯示的是單位圓上各點在atan2函數上的值,從原點射向點的射線,開始繞逆時針方向可以與x軸正方向得到對應各點的複平面的復角,其中幾個特殊點取值:
- 對應的複平面夾角為,
- 對應複平面的夾角為,
- 對應複平面的夾角為,
- 回到複平面的夾角為。
這些你可以直觀地從圖中看出。[3]
下面的插圖分別顯示的是和在坐標平面的三維景象。
注意在函數中,從原點輻射出的射線上有常數值,而在的函數中,經過原點的直線有常數值。
參考文獻
參見
外部連結
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.