atan2

atan2

atan2是一個函式,在C語言裡返回的是指方位角,C 語言中atan2的函式原型為 double atan2(double y, double x) ,返回以弧度表示的 y/x 的反正切。y 和 x 的值的符號決定了正確的象限。也可以理解為計算複數 x+yi 的輻角,計算時atan2 比 atan 穩定。

基本介紹

  • 中文名:atan2
  • 外文名:atan2
  • 起點:坐標原點
  • X坐標: 點的 X 坐標。
  • Y坐標: 點的 Y 坐標。
  • 功能:計算方位角
  • 套用:C語言編程等
atan2的公式,atan2語法,C語言函式原型,參數,返回值,說明,功能比較,套用示例,示例一,示例二,

atan2的公式

atan2的公式atan2的公式

atan2語法

C語言函式原型

double atan2(double y, double x)

參數

  • x-- 代表 x 軸坐標的浮點值。
  • y-- 代表 y 軸坐標的浮點值。

返回值

atan2函式返回的是原點至點(x,y)的方位角,即與 x 軸的夾角。也可以理解為複數 x+yi 的輻角。返回值的單位為弧度,取值範圍為

說明

在數學坐標系中,結果為正表示從 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)的角度值。

功能比較

(1)Excel中ATAN2
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)。這樣就保證了數值穩定性。
(2)與C語言中atan函式比較
atan函式:
原型:extern float atan(float x);
用法:#include <math.h>
功能:求x(弧度表示)的反正切值。
說明:值域為(-π/2,+π/2)。
atan2 函式
功能:求y/x(弧度表示)的反正切值。

套用示例

示例一

#include <stdio.h>#include <math.h>#define PI 3.14159265int main (){   double x, y, ret, val;   x = -7.0;   y = 7.0;   val = 180.0 / PI;   ret = atan2 (y,x) * val;   printf("x = %lf, y = %lf 的反正切", x, y);   printf("是 %lf 度\n", ret);     return(0);}
編譯並運行上面的程式,這將產生以下結果:
x = -7.000000, y = 7.000000 的反正切是 135.000000 度

示例二

下面這個例子可通過 atan2() 方法返回不同 (x,y) 點的角度:javascript實例
<scripttype="text/javascript">document.write(Math.atan2(0.50,0.50)+"<br/>")document.write(Math.atan2(-0.50,-0.50)+"<br/>")document.write(Math.atan2(5,5)+"<br/>")document.write(Math.atan2(10,20)+"<br/>")document.write(Math.atan2(-5,-5)+"<br/>")document.write(Math.atan2(-10,10))</script>

相關詞條

熱門詞條

聯絡我們