问题:
两个向量,求解一个向量旋转到另一个向量的角度,逆时针为正,顺时针为负。【两向量的夹角,角度带正负号】
def CalAngle(v1, v2):
# v1旋转到v2,逆时针为正,顺时针为负
# 2个向量模的乘积
TheNorm = np.linalg.norm(v1) * np.linalg.norm(v2)
# 叉乘
rho = np.rad2deg(np.arcsin(np.cross(v1, v2) / TheNorm))
# 点乘
theta = np.rad2deg(np.arccos(np.dot(v1, v2) / TheNorm))
if rho < 0:
return - theta
else:
return theta
原理:
使用了向量的外积来判断正负