我有一條線用兩點[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