Python 为两个速度不同的对象设置动画
此脚本以相同的速度显示两个正方形的移动。如何设置不同的速度?谢谢大家!Python 为两个速度不同的对象设置动画,python,tkinter,Python,Tkinter,此脚本以相同的速度显示两个正方形的移动。如何设置不同的速度?谢谢大家! 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_rec
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()
记住在物理课上,
v=dx/dt
:
速度=位置变化/时间变化
在这里应用。时间的变化在这里由time.sleep(0.2)
-1/5秒指定。你可能不想改变它,所以你可以改变的另一件事是改变每个时间片的位置
这里是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
轴移动相同的距离:
canvas.move(rc1, x, y)
canvas.move(rc2, y, x)
或者我们希望他们以完全不同的轨迹和速度移动:
x1, y1 = 5, 0
x2, y2 = -13, 7
canvas.move(rc1, x1, y1)
canvas.move(rc2, y2, x2)
最后一种解决方案是最灵活的,这可能是您应该依赖的。不要对两个移动命令使用相同的速度。你被困在哪里了?