利用Python的turtle库实现一个动画

Turtle库是Python内置的图形化模块,是绘制图像的函数库。海龟即屏幕上绘图的光标(小三角形),编写Python指令可以让海龟在屏幕上移动绘制线条,可将海龟看做是坐标系里移动,位置可用坐标表示(x,y)。

基于turtle的动画,动画可以理解为由一张张快速切换而成:
1、准备工作:
设置speed为0(最快,不显示海龟动态);
隐藏海龟——hideturtle();
关闭tracer;
2、利用clear()函数清除当前屏幕显示或reset清除显示复位海龟,即清除上次的图形;
3、绘制新的图形;
4、利用update(进行更新);
5、等待一段时间sleep(time),根据实际动画效果设置延时time秒;
6、完成后循环绘制;
实例:实现动画笑脸
import turtle
from time import sleep
#定义画布的大小和背景
turtle.screensize(300,200,“yellow”)

#定义画笔的速度
turtle.speed(0)

#定义一个在不同位置画不同弧度
def hudu(x,r,y,t,f):
turtle.penup()
turtle.goto(x,r)
turtle.pendown()
turtle.left(y)
turtle.circle(t,f)

#定义一个画全脸的函数
def lian():
#左眼睛
hudu(-240,0,90,-90,180)

#右眼睛
hudu(50,0,180,-90,180)

#鼻子
hudu(-15,-40,0,0,0)
turtle.fillcolor(“black”)
turtle.begin_fill()
turtle.left(90)
turtle.forward(30)
turtle.right(150)
turtle.forward(20)
turtle.right(60)
turtle.forward(20)
turtle.end_fill()

#嘴巴-下嘴唇
hudu(120,-105,120,0,0)
turtle.fillcolor(“red”)
turtle.begin_fill()
turtle.circle(-120,177)
turtle.end_fill()

#嘴巴-上嘴唇
hudu(0,-100,160,0,0)
turtle.fillcolor(“yellow”)
turtle.begin_fill()
turtle.circle(-70,150)
hudu(0,-100,190,70,140)
turtle.end_fill()

#动画:让脸笑起来的动画——眨眼
turtle.tracer(False)
turtle.hideturtle()

#设置一个循环不停地眨眼
for i in range(30000):
turtle.reset()
turtle.pensize(6)
lian()
#闭眼
if i%2==0:
hudu(-240,0,-10,-100,127)
hudu(50,0,125,-100,127)
turtle.update()
sleep(0.5)
#睁眼 else : hudu(-240,0,-125,110,110) hudu(50,0,-110,110,110)
turtle.fillcolor("black") turtle.begin_fill() hudu(-120,0,0,40,360)
turtle.end_fill() turtle.fillcolor("black") turtle.begin_fill()
hudu(175,0,0,40,360) turtle.end_fill() turtle.update() sleep(0.5)
turtle.exitonclick()

运行结果:
由于无法上传动图,用两张不同状态的图代替,两张图来回切换即可实现动画

技术
下载桌面版
GitHub
Gitee
SourceForge
百度网盘(提取码:draw)
云服务器优惠
华为云优惠券
腾讯云优惠券
阿里云优惠券
Vultr优惠券
站点信息
问题反馈
邮箱:[email protected]
吐槽一下
QQ群:766591547
关注微信