向量与X轴的夹角


class vectorAngle():
def __init__(self, vec):
self.x, self.y = vec[0], vec[1]

def vecAttr(self):
# 判断点所在的象限
# N
# W O E
# S
ref = 0.
x, y = self.x, self.y
if x == ref:
if y == ref:
res = 'OO'
elif y > ref:
res = 'ON'
else:
res = 'OS'
elif x > ref:
if y == ref:
res = 'OE'
elif y > ref:
res = 'EN'
else:
res = "ES"
else:
if y == ref:
res = "OW"
elif y > ref:
res = "WN"
else:
res = "WS"
return res

def vecAngle(self):
flag = self.vecAttr()
x, y = self.x, self.y
if flag == "OO":
angle = 0.
elif flag == "OE":
angle = 0.
elif flag == "EN":
angle = np.arctan(y/x)
elif flag == "ON":
angle = np.pi / 2
elif flag == "WN":
angle = np.pi - np.arctan(abs(y/x))
elif flag == "OW":
angle = np.pi
elif flag == "WS":
angle = np.pi + np.arctan(abs(y/x))
elif flag == "OS":
angle = np.pi * 1.5
else:
angle = np.pi * 2.0 - np.arctan(abs(y/x))

return round(angle, 3)


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM