资源简介 (共27张PPT)Tkinter动画课前回顾1、创建按钮2、绘制图形3、设置颜色button1 = Button(windows1, text='点击我', command=printStr)canvas = Canvas(object1, width=600, height=500)canvas.create_rectangle(30, 30, 150, 150)colorTuple = colorchooser.askcolor()情境引入之前所学的课程中,我们讲述了如何使用turtle、tkinter模块内的方法来画出静态的图,都是一些不会动的画。Tkinter模块内有许多可以绘制动画的函数,那现在我们来一起绘制真正的动画。循序善诱动画并不是tkinter模块的专长,但是基本的处理还是可以做的。本节课,我们来一起制作一幅动画。新知教授2、绘制火箭1、创建动画3、发射火箭4、课堂总结创建动画新知教授我们来创建一个填色三角形,编写程序让它在屏幕上横向移动。编玩边学import timefrom tkinter import*tk = Tk()canvas = Canvas(tk, width=800, height=600)canvas.pack()canvas.create_polygon(10, 10, 10, 120, 100, 60)for x in range(0, 670):canvas.move(1, 1, 0)tk.update()time.sleep(0.01)运行这段代码时,三角形会从屏幕一边横向移动到另一边思维构建canvas.create_polygon(10, 10, 10, 120, 100, 60)使用函数创建三角形注意:如果我们使用print(canvas.create_polygon(10, 10, 10, 120, 100, 60 )),屏幕上会打印出一个数字,这个数值是这个多边形的ID,可以理解为绘制出来这个图形的身份证号,我们可以用这个ID来代指这个形状,并使用其他功能函数控制它。思维构建canvas.move()函数会把任意画好的对象移动到x、y坐标增加给定值的位置。例如,canvas.move(1, 1, 0)会把id为1的对象(那个三角形的id标识)横移1个像素,纵移0个像素。思维构建函数tk.update()强制tkinter 更新屏幕。 如果没用update,tkinter 会等到循环结束时才会移动三角形,这样只会看到它跳到最后的位置,而不是平滑地穿过画布。绘制火箭思维构建使用函数绘制出火箭形状编玩边学from tkinter import*tk = Tk()canvas = Canvas(tk, width=800, height=800)canvas.pack()canvas.create_polygon(350, 350, 400, 350, 375, 300)canvas.create_polygon(300, 600, 350, 600, 350, 500)canvas.create_polygon(450, 600, 400, 600, 400, 500)canvas.create_rectangle(350, 350, 400, 600, fill='white')tk.mainloop()使用三角形与矩形进行组合成一个火箭,火箭里包含了三个个三角形与一个矩形。思维构建再为火箭写上文字编玩边学canvas.create_text(375, 400, text='吉', fill='blue', font=('Times', 30))canvas.create_text(375, 450, text='码', fill='blue', font=('Times',30))canvas.create_text(375, 500, text='二', fill='blue', font=('Times', 30))canvas.create_text(375, 550, text='号', fill='blue', font=('Times', 30))为火箭表面的文字设置合适的位置、大小与字体格式思维构建最后为火箭添加上尾焰编玩边学canvas.create_polygon(350, 600, 370, 600, 360, 620, fill='red')canvas.create_polygon(380, 600, 400, 600, 390, 620, fill='red')在火箭尾端画上两个尾焰,并填充颜色。发射火箭新知教授刚刚已经绘制好了火箭,我们知道画布中的火箭包含多个图形与文字,发射火箭就需要让这些图形与文字同步移动。我们该如何实现呢?是否还记得在画布中,每当有一个图形元素绘制出来,Python就会为它定制一个ID,我们对图形的控制,也转化成了对ID的控制。编学边玩print(canvas.create_polygon(350, 350, 400, 350, 375, 300))print(canvas.create_polygon(300, 600, 350, 600, 350, 500))print(canvas.create_polygon(450, 600, 400, 600, 400, 500))print(canvas.create_rectangle(350, 350, 400, 600, fill='white'))print(canvas.create_polygon(350, 600, 370, 600, 360, 620, fill='red'))print(canvas.create_polygon(380, 600, 400, 600, 390, 620, fill='red'))print(canvas.create_text(375, 400, text='吉', fill='blue', font=('Times', 30)))print(canvas.create_text(375, 450, text='码', fill='blue', font=('Times',30)))print(canvas.create_text(375, 500, text='二', fill='blue', font=('Times', 30)))print(canvas.create_text(375, 550, text='号', fill='blue', font=('Times', 30)))上述程序输出打印结果是:1、2、3、4、5、6、7、8、9、10,分别代表每个图形和文字的ID。思维构建经过查看,我们已经知道了每个组成火箭的图形与文字的ID,下面我们来对整个火箭进行移动。编学边玩for x in range(0, 200):canvas.move(1, 0, -2)canvas.move(2, 0, -2)canvas.move(3, 0, -2)canvas.move(4, 0, -2)canvas.move(5, 0, -2)canvas.move(6, 0, -2)canvas.move(7, 0, -2)canvas.move(8, 0, -2)canvas.move(9, 0, -2)canvas.move(10, 0, -2)tk.update()time.sleep(0.01)知道了火箭中每个图案的ID,所以在for循环里只需要对与图形绑定的ID进行控制,就可以来完成火箭整体的移动。实践创作完成本节课的程序,尝试使用tkinter创作属于自己的动画作品。课堂总结1、创建动画2、绘制火箭3、发射火箭canvas.move()函数会把任意画好的对象移动到x、y坐标增加给定值的位置。使用三角形与矩形进行组合成一个火箭,添加文字,绘制火箭尾焰。对组成火箭图形与文字绑定的ID进行控制,就可以来完成火箭整体的移动。分享交流同学们今天写代码有没有遇到什么问题?演示今天打印的代码同学们,要加油哦!下节课见啦 展开更多...... 收起↑ 资源预览