# 配置,放在这里,那么主窗口的2个按钮就先显示出来
# 要打开的图像
image1 =
"open.gif"
#注意tkinter中需要gif格式的图片,默认目录下
image2 =
"welcome.gif"
#也可以单独设置目录或者路径
#python3的特性,一行依次赋值
x0, y0=50.0,50.0
# 初始坐标
x,y=[x0],[y0]
# 列表将包含所有的x和y坐标.到目前为止,他们只包含初始坐标
vx,vy=1.0,0.5
# 每次移动的速度或距离
# 边界,这里要考虑到图片的大小,要预留一半的长和宽
x_min,y_min,x_max,y_max=46.0,46.0,754.0,554.0
range_min,range_max=1,2000
# 运行步数
# 创建500次的x和y坐标
for
t
in
range(range_min, range_max):
# 新坐标等于旧坐标加每次移动的距离
new_x = x[t - 1] + vx
new_y = y[t - 1] + vy
# 如果已经越过边界,反转方向
if
new_x >= x_max or new_x <= x_min:
vx = vx * -1.0
if
new_y >= y_max or new_y <= y_min:
vy = vy * -1.0
# 添加新的值到列表
x.append(new_x)
y.append(new_y)
canvas = Canvas(root1,width=800, height=600, bg=
'white'
)
canvas.grid(row = 2,column=0)
#调整位置
photo1 = PhotoImage(file=image1)
photo2 = PhotoImage(file=image2)
#add
width1 = photo1.width()
height1 = photo1.height()
image_x = (width1) / 2.0
image_y = (height1) / 2.0
# 每次的移动
for
t
in
range(range_min, range_max):
canvas.create_image(x[t], y[t], image=photo1, tag=
"pic"
)
#tag是这张图片的标签,这里需要
canvas.update()
# 暂停多少秒,然后删除图像
time.sleep(0.001)
#1秒,缓慢;如果0.025s等于每秒40帧;0.001s很快
canvas.
delete
(
"pic"
)
#因为这里需要删除它
#等上面动画结束后,再出现这个图片
canvas.create_image(400, 300, image=photo2)
#这里不需要tag
canvas.update()
#主窗口循环走起
root1.mainloop()