1. 程式人生 > >python中 math模組下 atan 和 atan2的區別

python中 math模組下 atan 和 atan2的區別

atan 和 atan2 都是反正切函式,返回的都是弧度

對於兩點形成的直線,兩點分別是 point(x1,y1) 和 point(x2,y2),其斜率對應角度的計算方法可以是:

angle = atan( (y2-y1)/(x2-x1) )

angle = atan2( y2-y1, x2-x1 )

因此可以看出 atan 和 atan2 的區別:

1、引數的個數不同;atan 為單個引數,atan2為兩個引數

2、atan2 的優點在於: 如果 x2-x1等於0 ,角度依然可以計算,但是atan函式則需要提前判斷,否則就會導致程式出錯;

結論: atan 和 atan2函式,建議用 atan2函式;

注意:1、兩者返回值都是弧度;2、atan2函式引數是y在前,x在後;3、需要先匯入math庫

下面再根據幾個例項來看一下它們的用法和區別:

import math
a=math.atan(1)
b=math.atan2(1,1)
print(a,b)
>> 0.7853981633974483 0.7853981633974483

#垂直時
b=math.atan2(1,0)
print(b)
>> 1.5707963267948966

#弧度轉角度
b=math.atan2(1,0)
print(b/math.pi*180)
>> 90.0