问题描述
我想计算两点之间的角度。例如,假设我正在做一个游戏,我想让一支枪指向鼠标光标,我得到了将枪旋转到该角度所需的角度。
解决方法
使用math
库的atan2
函数,
p1 = (2,2)
p2 = (-1,5)
# Difference in x coordinates
dx = p2[0] - p1[0]
# Difference in y coordinates
dy = p2[1] - p1[1]
# Angle between p1 and p2 in radians
theta = math.atan2(dy,dx)
,
在pygame中,您可以使用pygame.math.Vector2
对象和angle_to()
计算两个矢量之间的角度:
在下面的示例中,( x0 , y0 )是旋转点。 ( x1 , y1 )和( x2 , y2 )是两个点,它们定义了向量形式( x0 , y0 ):
v1 = pygame.math.Vector2(x1-x0,y1-y0)
v2 = pygame.math.Vector2(x2-x0,y2-y0)
angle = v1.angle_to(v2)
angle_to()
计算以度为单位的给定矢量的角度。