项目要求
# -*- coding: utf-8 -*-
import numpy as np
'''
# 内积
def clockwise_angle(v1, v2):
x1,y1 = v1
x2,y2 = v2
dot = x1*x2+y1*y2
det = x1*y2-y1*x2
theta = np.arctan2(det, dot)
theta = theta if theta>0 else 2*np.pi+theta
return theta
v1 = [2,1]
v2 = [4,5]
theta = clockwise_angle(v1,v2)
print(theta*180/np.pi) # 24.77
'''
def GetClockAngle(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
a=(-1,3)
b=(-3,1)
c=(0,7)
d=(0,0)
BA=[2,2]
DC=[0,7]
print(GetClockAngle(BA,DC)) # 顺时针旋转为负,逆时针旋转为正
https://www.jb51.net/article/206870.htm