假设有两个坐标在0.0到1.0的范围内。A:(0.12, 0.75)B:(0.43, 0.97)你想从A点走到b点,用python怎么计算角度呢。其中北方为0,南方为180。
如果你想从North获取它,那么你可以这样做:
def get_angle(x1,y1,x2,y2):
return math.degrees(math.atan2(y2-y1, x2-x1))
tan(x) = Opposite/Adjacent;
Opposite/Adjacent = (x2-x1)/(y2-y1);
x=atan(x2-x1, y2-y1)
,atan
是tan
的倒数。为了不只是得到方向,而是得到真正的方向,我们使用atan2
函数,因为它可以得到从-pi(-180)到+pi(180)的角度,而atan
只能得到-pi/2(-90)和pi/2(90)之间的值。
atan2
的参数顺序是y差先,所以它是atan2(dy, dx)
,而不是atan2(dx, dy)
。
我会计算x的差和y的差,并使用math
模块的math.atan2(y/x)
函数。然后只需将弧度转换为度并添加90º。