4 回答

TA貢獻1796條經驗 獲得超4個贊
從學校數學中我們知道切線的定義
tan(α) = sin(α) / cos(α)
然后根據提供給函數的角度區分四個象限。的符號sin,cos并且tan具有以下關系(我們忽略的精確倍數π/2):
Quadrant Angle sin cos tan
-------------------------------------------------
I 0 < α < π/2 + + +
II π/2 < α < π + - -
III π < α < 3π/2 - - +
IV 3π/2 < α < 2π - + -
鑒于的值為tan(α)正,我們無法區分該角度是來自第一象限還是第三象限,如果該角度為負,則它可能來自第二象限或第四象限。因此,按照慣例,無論切線的原始輸入如何,都atan()從第一或第四象限(即-π/2 <= atan() <= π/2)返回一個角度。
為了獲取全部信息,我們不能使用除法的結果,sin(α) / cos(α)而必須分別查看正弦和余弦的值。這就是atan2()它的作用。這需要兩者的sin(α)和cos(α),并通過添加解決所有四個象限π到的結果,atan()每當余弦為負。
備注:該atan2(y, x)函數實際上帶有y和x參數,這是在y和x軸上具有長度v和角度的向量的投影α,即
y = v * sin(α)
x = v * cos(α)
給出關系
y/x = tan(α)
結論: atan(y/x)保留了一些信息,只能假定輸入來自象限I或IV。相反,atan2(y,x)獲取所有數據并因此可以解析正確的角度。

TA貢獻1797條經驗 獲得超6個贊
實際值以弧度為單位,但以度為單位來解釋,則為:
atan
=給出-90至90之間的角度值atan2
=給出介于-180和180之間的角度值
對于我的工作而言,它涉及導航中的航向和方位等各種角度的計算,atan2
在大多數情況下都可以完成工作。

TA貢獻1865條經驗 獲得超7個贊
atan(x)返回x的反正切的主值,以弧度表示。
atan2(y,x)返回y / x的反正切的主值,以弧度表示。
注意,由于符號的含糊性,函數無法確定確定象限中的角度僅按其切線值下降(僅atan)。如果需要確定象限,則可以使用atan2。
- 4 回答
- 0 關注
- 1972 瀏覽
添加回答
舉報