此脚本显示以相同速度移动两个正方形。如何设置不同的速度?谢谢!
import tkinter as tk
import time
root = tk.Tk()
canvas = tk.Canvas(root, width=400, height=400)
canvas.pack()
rc1 = canvas.create_rectangle(20, 260, 120, 360, outline='white', fill='blue')
rc2 = canvas.create_rectangle(20, 20, 120, 120, outline='white', fill='red')
for x in range(100):
y = 0
x = 5
time.sleep(0.2)
canvas.move(rc1, x, y)
canvas.move(rc2, x, y)
canvas.update()
root.mainloop()
答案 0 :(得分:1)
请记住您的物理课程int8_t
:
速度=位置改变/时间改变
在此处应用。时间的变化在此处由int8_t
-1/5秒指定。您可能不想更改它,因此可以更改以修改速度的另一件事是每个时间片的位置更改。
这里是v = dx/dt
的位置-这是位置的变化。您在脚本中调用了两次,一次用于time.sleep(0.2)
,一次用于canvas.move()
,两次都使用相同的rc1
和rc2
。由于位置的变化是相同的,并且时间的变化是相同的,所以x
和y
将以相同的速率移动。
解决方案?只需使用不同的变量。假设我们希望rc1
在相同方向上的移动速度是rc2
的两倍:
rc2
或者说我们希望rc1
沿canvas.move(rc1, x, y)
canvas.move(rc2, 2*x, 2*y)
轴移动,而我们希望rc1
沿x
轴移动相同的距离,而不是:
rc2
或者我们希望它们以完全不同的轨迹和速度运动:
y
最后一个解决方案是最灵活的,您应该依靠它。