我正在尝试计算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 - 在Python中计算两个向量之间的角度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13226038/