我想制作一个代码来计算3点之间的角度。 我使用的功能和功能本身没有问题。 但是,在我的情况下,下面的lineA和lineB是变量,所以我认为由于这一点出现了麻烦。 提前谢谢。
def dot(vA, vB):
return vA[0]*vB[0]+vA[1]*vA[1]
def ang(lineA, lineB):
vA = [(lineA[0][0]-lineA[1][0]), (lineA[0][1]-lineA[1][1])]
vB = [(lineB[0][0]-lineB[1][0]), (lineB[0][1]-lineB[1][1])]
dot_prod = dot(vA, vB)
magA = dot(vA, vA)**0.5
magB = dot(vB, vB)**0.5
cos_ = dot_prod/magA/magB
#angle = math.acos(dot_prod/magB/magA)
angle = math.acos(cos_)
ang_deg = math.degrees(angle)%360
if ang_deg-180>=0:
return 360 - ang_deg
else:
return ang_deg
an1=1
an2=1.5
an3=2
an4=2
an5=2.5
an6=0.5
angle1=ang(lineA=((an1,an2), (an5,an6)), lineB=((an1,an2), (an3,an4)))
答案 0 :(得分:0)
这只是一个错字。
def dot(vA, vB):
return vA[0]*vB[0]+vA[1]*vA[1]
# ^^^^^ should be vB[1]