Skip to main content
 首页 » 编程设计

python之通过python获取矢量角度

2025年05月04日21langtianya

我有一个矢量列表。我想获得每个矢量的角度。

import numpy as np 
 
v = np.array([[-3, 4], 
              [-2, -5], 
              [2, 6], 
              [3, -10]]) 
 
inv = np.arctan(v[:, 1] / v[:, 0]) 
degree = np.degrees(inv) 
print(degree)  # get [-53.13010235,  68.19859051,  71.56505118, -73.30075577] 
 
# use arctan2 
inv = np.arctan2(v[:, 1] / v[:, 0]) 
degree = np.degrees(inv) 
print(degree)  # get [ 126.86989765, -111.80140949,   71.56505118,  -73.30075577] 

但我想得到 [127, 248 , 71, 286] (0~360 度角)。 如何解决?

请您参考如下方法:

您可以使用模数来获取 0 - 360 范围内的所有角度。

import numpy as np 
 
v = [ 
    [-3, 4], 
    [-2, -5], 
    [2, 6], 
    [3, -10], 
] 
 
v = np.array(v) 
inv = np.degrees(np.arctan2(*v.T[::-1])) % 360.0 
print(inv) 

输出

[ 126.86989765  248.19859051   71.56505118  286.69924423]