在Python中计算两个向量之间的角度

我正在尝试计算python中两条线之间的角度。我搜索了互联网,找到了如何做的方程式。但是我并不总是能得到准确的结果。当其他结果似乎正确时,其中一些结果显然是错误的。我的代码如下:

def angle(pt1,pt2):

m1 = (pt1.getY() - pt1.getY())/1

m2 = (pt2.getY() - pt1.getY())/(pt2.getX()-pt1.getX())

tnAngle = (m1-m2)/(1+(m1*m2))

return math.atan(tnAngle)

def calculate(pt,ls):

i=2

for x in ls:

pt2 = point(x,i)

i=i+1

ang = angle(pt,pt2)*180/math.pi

ang = ang * (-1)

print ang

pt = point(3,1)

ls = [1,7,0,4,9,6,150]

calculate(pt,ls)

它产生的结果是:

45.0

0.0

45.0

-75.9637565321

0.0

-63.4349488229

0.0

问题是我不明白为什么第二个结果,第五个和最后一个结果被归零,因为它们共享一个点,而另一个点却不重复,因为数组中的值不同。

回答:

看起来您正在使用Python2,/如果两个参数均为int ,则将在其中进行整数除法。要获得Python3的行为,可以将其放在文件顶部

from __future__ import division

以上是 在Python中计算两个向量之间的角度 的全部内容, 来源链接: utcz.com/qa/409494.html

回到顶部