Turtle(7)制作简单动画
前言
我们已经学会了绘制简单的图, 本期开始,我们将学习如何用turtle库制作动画.
学习目标
初步了解动画制作的原理做一个简单的落雪效果代码学习
画一片雪花
# 画三分之一的雪def koch_1(size, n):if n == 0:turtle.fd(size)else:for angle in [0, 60, -120, 60]:turtle.left(angle)koch_1(size / 3, n - 1)# 画整朵的雪def koch(pos, size, n):turtle.pen()turtle.goto(pos)turtle.pendown()koch_1(size,n)turtle.right(120)koch_1(size, n)turtle.right(120)koch_1(size, n)turtle.right(120)
动画初始化
turtle.tracer(0)turtle.hideturtle()FPS = 30 # 每秒帧数t = 1 / FPS # 更新时间,一秒30帧turtle.setup(800, 800)x, y = 20, 400 # 雪花初始位置
动画逻辑
while y>-380:turtle.clear()y -= 5koch((x,y), 30, 3)turtle.update()time.sleep(t)turtle.done()
代码分析:
每次都要清一下屏:turtle.clear()
2.将雪花的坐标往下移5个像素,造成一种雪花在下掉的过程
y -= 5 # y = y -5
在新的位置重新画一个雪花
koch((x,y), 30, 3)
绘制完后刷新
turtle.update()
等待下次重新绘制与更新
time.sleep(t)
第五点的效果是让系统睡t秒.等待下次更新.
后记:
动画的效果本质上是一连串的静态图片的快速,连续的变化造成的视觉效果.
因此,当我们将各个时间点的图片绘制出来,就会给人一种动画的效果.
来看一下不飘逸的雪花效果