有时在程序中需要讲角度转换到特定区间,下面介绍几种方法。
将角度转换到 − π ∼ π -\pi\sim\pi −π∼π
代码如下,注意开闭区间
from math import pi, sin, cos, atan2
import numpy as np
alpha = 210 #输入不同的值做验证
alpha = alpha*pi/180
# 方法一 左闭右开 [180,180)
alphal = alpha - 2*pi*np.floor((alpha+pi)/(2*pi))
# 方法二 左闭右闭 [180,180]
alpha2 = atan2(sin(alpha), cos(alpha))
# 验证
alpha_deg1 = alpha1*180/pi
alpha_deg2 = alpha2*180/pi
print(alpha_deg1, alpha deg2)
将角度转换到 − 1 2 π ∼ 3 2 π -\frac{1}{2}\pi \sim \frac{3}{2}\pi −21π∼23π
代码如下,注意开闭区间
from math import pi, sin, cos, atan2
import numpy as np
alpha = 210 #输入不同的值做验证
alpha = alpha*pi/180
alpha = atan2(sin(alpha), cos(alpha)) # 先转换到[-pi,pi]
# 左闭右闭 (-90,270]
alpha1 = alpha+((alpha+pi/2)<=0)*2*pi
# 左开右闭 [-90,270]
alpha2 = alpha+((alpha+pi/2)<0)*2*pi
# 验证
alpha_deg1 = alpha1*180/pi
alpha_deg2 = alpha2*180/pi