1. 程式人生 > 其它 >Turtle(7)製作簡單動畫

Turtle(7)製作簡單動畫

技術標籤:Python基礎PythonTurtle動畫

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 -= 5
        koch((x,y), 30, 3)
        turtle.update()
        time.sleep(t)
turtle.done()

程式碼分析:

  1. 每次都要清一下屏:
turtle.clear()

2.將雪花的座標往下移5個畫素,造成一種雪花在下掉的過程

y -= 5  # y = y -5
  1. 在新的位置重新畫一個雪花
koch((x,y), 30, 3)
  1. 繪製完後重新整理
turtle.update()
  1. 等待下次重新繪製與更新
time.sleep(t) 

第五點的效果是讓系統睡t秒.等待下次更新.

後記:

動畫的效果本質上是一連串的靜態圖片的快速,連續的變化造成的視覺效果.
因此,當我們將各個時間點的圖片繪製出來,就會給人一種動畫的效果.
來看一下不飄逸的雪花效果
雪花.gif