t
a
n
(
β
)
=
−
y
/
x
=
y
/
−
x
tan(\beta) = -y/x = y/-x
tan(β)=−y/x=y/−x
t
a
n
(
θ
)
=
y
/
x
=
−
y
/
−
x
tan(\theta) = y/x = -y/-x
tan(θ)=y/x=−y/−x
python内置库math
有两个计算反正切的函数atan
与atan2
,numpy
库也有一样的函数,np.angle
是基于np.arctan2
写的。
atan
的角度范围为
[
−
π
/
2
,
π
/
2
]
[-\pi/2, \pi/2]
[−π/2,π/2]与atan2
的角度范围为
[
−
π
,
π
]
[-\pi, \pi]
[−π,π],区别在于:使用 atan2
得出的结果还带有位置信息。
也可以说atan
计算的是一个相对角度,只是两条线的夹角,而atan2
计算的是一个绝对角度,一条线固定不动。
math.atan(3/4) = 0.6435011087932844 37度
math.atan(-3/-4) = 0.6435011087932844 37度
math.atan(-3/4) = -0.6435011087932844 -37度
math.atan(3/-4) = -0.6435011087932844 -37度
math.atan2(3,4) = 0.6435011087932844 37度
math.atan2(-3,-4) = -2.498091544796509 -143度
math.atan2(-3,4) = -0.6435011087932844 -37度
math.atan2(3,-4) = 2.498091544796509 143度