我有一条线用两点[x1,y1,x2,y2]声明,并且我有一个新点(Nx,Ny),我必须先将它旋转然后将它移向它。如何获得在python中旋转一条直线的角度
这里'山的图片得到明确:
我曾尝试使用此功能,但我不能设法完成旋转,I'm使用Tkinter的和Python:
def rotateLine(self,dx,dy): # x and y are the differences between x1,nx and y1,ny
angle= math.atan2(dy,dx)
print "angle",angle
newx = ((x1)*math.cos(angle)-(y1)*math.sin(angle))
newy = ((x1)*math.sin(angle)+(y1)*math.cos(angle))
self.panel.coords(self.robot,newx,newy,newx+10,newy+30) # I always add 10 in x and 30 in y to maintain de size of the line
self.panel.update()
你好,谢谢你的回答。我应该在保持长度的情况下旋转线条,然后向新的点移动。我正在尝试做你的建议,但是线路正在缩小。 – 2014-10-09 04:36:37
我不明白为什么线会缩小,因为不管角度是什么,该公式应始终保持线段的长度......这是一个数学事实!我对self.panel.coords的输入的假设是否正确? – RoBDoG 2014-10-09 04:57:43
你好!我没有添加你给我的newx公式。我的错 。现在它不缩水:) – 2014-10-09 04:59:35