原理:
代码
import numpy as np
def cal_angle_of_vector(v0, v1, is_use_deg=True):
dot_product = np.dot(v0, v1)
v0_len = np.linalg.norm(v0)
v1_len = np.linalg.norm(v1)
try:
angle_rad = np.arccos(dot_product / (v0_len * v1_len))
except ZeroDivisionError as error:
raise ZeroDivisionError("{}".format(error))
if is_use_deg:
return np.rad2deg(angle_rad)
return angle_rad
x = np.array((1, 1, 2))
y = np.array([2, 1, 1])
print(cal_angle_of_vector(x, y))
结果显示:
33.557309761920706