动画效果
让图形动起来
动画可以让我们的图形更加生动有趣!让我们学习如何创建简单的动画效果。
控制海龟速度
使用 speed() 方法可以控制海龟的移动速度:
import turtle
t = turtle.Turtle()
# 设置速度(1-10,1最慢,10最快)
t.speed(5)
# 画正方形
for i in range(4):
t.forward(100)
t.right(90)
旋转动画
让我们创建一个旋转动画:
import turtle
t = turtle.Turtle()
t.speed(1) # 最慢速度
# 画彩色正方形并旋转
colors = ["red", "orange", "yellow", "green", "blue", "purple"]
for i in range(36): # 旋转36次,共360度
t.pencolor(colors[i % len(colors)])
# 画一个小正方形
for j in range(4):
t.forward(50)
t.right(90)
t.right(10) # 每次右转10度
移动动画
让我们创建一个移动动画:
import turtle
t = turtle.Turtle()
t.speed(3) # 较慢速度
# 画移动的圆
for i in range(100):
t.circle(50 + i * 0.5) # 圆的半径逐渐增大
t.right(5) # 每次右转5度
颜色渐变动画
让我们创建一个颜色渐变动画:
import turtle
t = turtle.Turtle()
t.speed(5)
# 画颜色渐变的正方形
for i in range(100):
# 计算RGB颜色值(从红到蓝)
r = int(255 * (1 - i / 100)) # 红色逐渐减少
b = int(255 * (i / 100)) # 蓝色逐渐增加
t.pencolor(r, 0, b)
t.forward(5)
t.right(90)
弹跳动画
让我们创建一个弹跳球动画:
import turtle
t = turtle.Turtle()
t.shape("circle") # 设置海龟形状为圆形
t.fillcolor("red")
t.speed(5)
# 弹跳动画
for i in range(20):
# 向上移动
for j in range(10):
t.setheading(90) # 向上
t.forward(10)
# 向下移动
for j in range(10):
t.setheading(270) # 向下
t.forward(10)
花朵绽放动画
让我们创建一个花朵绽放动画:
import turtle
t = turtle.Turtle()
t.speed(5)
# 花朵绽放动画
for i in range(20):
# 设置花瓣颜色
t.pencolor("pink")
t.fillcolor("pink")
# 开始填充
t.begin_fill()
# 画花瓣
for j in range(6):
t.forward(20 + i * 2) # 花瓣逐渐变大
t.right(60)
# 结束填充
t.end_fill()
# 重置位置和角度
t.penup()
t.goto(0, 0)
t.setheading(0)
t.pendown()
# 稍微旋转,创建绽放效果
t.right(i * 2)
星空闪烁动画
让我们创建一个星空闪烁动画:
import turtle
import random
# 设置背景
turtle.bgcolor("black")
screen = turtle.Screen()
# 创建多个星星海龟
stars = []
for i in range(20):
star = turtle.Turtle()
star.shape("circle")
star.shapesize(0.1, 0.1, 0.1) # 小圆点
star.fillcolor("white")
star.penup()
# 随机位置
x = random.randint(-200, 200)
y = random.randint(-200, 200)
star.goto(x, y)
stars.append(star)
# 闪烁动画
for i in range(50):
for star in stars:
# 随机显示或隐藏星星
if random.randint(0, 1) == 0:
star.fillcolor("white")
else:
star.fillcolor("black")
screen.update() # 更新屏幕
练习
- 创建一个旋转的彩色风车
- 创建一个弹跳的球
- 创建一个颜色渐变的圆形
- 创建你自己的创意动画
小提示
- 使用
t.speed(0)可以关闭动画,立即完成绘制 - 使用
turtle.tracer(0)和turtle.update()可以控制动画更新 - 使用
t.shape(name)可以改变海龟的形状 - 使用
t.shapesize(width, height)可以改变海龟的大小
思考题
如果你想创建一个平滑的动画,应该注意哪些方面?
下一课我们将通过综合项目练习所学知识!🐢
Python 工具/在线模拟器/Python海龟绘图可视化
Python海龟绘图可视化 - https://www.cnbbx.com/python-editor/