跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Python

Python 使用 Turtle 库绘制动态彩色爱心动画

利用 Python turtle 库绘制动态彩色爱心动画。程序初始化黑色背景画布,定义多种颜色列表及爱心绘制函数。主循环中爱心随时间缩放变色,中心位置周期性切换显示 Love、Forever 等文字。代码结构清晰,涵盖绘图逻辑、动画控制及文本渲染,适用于图形编程入门练习。

追风少年发布于 2025/12/3更新于 2026/6/515 浏览
Python 使用 Turtle 库绘制动态彩色爱心动画

Python 使用 Turtle 库绘制动态彩色爱心动画

代码整体功能概述

借助 Python 的turtle库完成核心功能。整个程序的核心在于绘制一个动态且色彩丰富的爱心,并在爱心中心周期性地显示动态文字。程序运行时,爱心会不断改变大小和颜色,同时文字也会适时更新,最终呈现出一个充满活力与浪漫气息的爱心动画。

完整代码展示

import turtle
import time

# 设置画布和画笔
screen = turtle.Screen()
screen.setup(width=800, height=600)
screen.bgcolor("black")
screen.title("浪漫爱心")
pen = turtle.Turtle()
pen.speed(0)
pen.hideturtle()

# 定义颜色列表
colors = ["red", "pink", "orange", "purple", "yellow"]

# 定义爱心函数
def draw_heart(size, color):
    pen.color(color)
    pen.fillcolor(color)
    pen.pensize(2)
    pen.penup()
    pen.goto(0, -size)
    pen.pendown()
    pen.begin_fill()
    pen.left(140)
    pen.forward(18 * size)
    pen.circle(-9 * size, 200)
    pen.setheading(60)
    pen.circle(-9 * size, 200)
    pen.forward(18 * size)
    pen.end_fill()

# 定义动态文字函数
text_pen = turtle.Turtle()
text_pen.speed(0)
text_pen.color("white")
text_pen.penup()
text_pen.hideturtle()

def show_text(text, size):
    text_pen.clear()
    text_pen.goto(0, -size // 2)
    text_pen.write(text, font=("Arial", size, "bold"))

# 主循环
texts = ["Love", "Forever", "Together"]
for i in range(100):
    color = colors[i % len(colors)]
    size = 10 - i // 10
    draw_heart(size, color)
    if i % 10 == 0:
        text = texts[i // 30 % len(texts)]
        show_text(text, size * 5)
    time.sleep(0.1)
    pen.clear()

# 保持窗口打开
turtle.done()

代码详细解析

1. 初始化设置

导入turtle和time库。turtle库模拟海龟绘图,通过前进、后退、左转、右转等指令绘制图形。time库控制时间流程,实现动画流畅播放。创建画布对象screen,设置宽度 800 像素、高度 600 像素,背景色为黑色。创建画笔对象pen,速度设为最快(speed(0)),并隐藏画笔形状以避免干扰画面。

2. 定义颜色列表

定义颜色列表colors,包含红、粉、橙、紫、黄等多种颜色。程序在后续绘制过程中循环使用这些颜色,让爱心不断变换色彩。

3. 爱心绘制函数

draw_heart函数接受size和color参数。设置画笔颜色和填充颜色,画笔粗细为 2。抬起画笔移动至起始位置(0, -size),放下画笔开始绘制。通过旋转 140 度、移动距离、绘制圆弧(半径负值表示向左弯曲)等命令组合成爱心形状,最后封闭图形并结束填充。

4. 动态文字函数

创建新画笔对象text_pen专门用于显示文字,速度最快,颜色白色,隐藏画笔。show_text函数清除旧文字,移动至爱心中心位置(0, -size // 2),使用write方法显示文字,字体 Arial,加粗。

5. 主循环

定义文字列表texts。循环执行 100 次,根据索引选择颜色和大小。调用draw_heart绘制爱心。每 10 次循环切换一次文字,调用show_text显示。每次绘制后暂停 0.1 秒,清除画布以实现动态效果。

6. 保持窗口打开

使用turtle.done()保持窗口打开,直到用户关闭。

总结

利用 Python 的turtle库实现了动态彩色爱心动画,并在中心显示动态文字。代码展示了 Python 的绘图功能,可根据喜好修改颜色、文字和速度,适用于节日表达或编程练习。

目录

  1. Python 使用 Turtle 库绘制动态彩色爱心动画
  2. 代码整体功能概述
  3. 完整代码展示
  4. 设置画布和画笔
  5. 定义颜色列表
  6. 定义爱心函数
  7. 定义动态文字函数
  8. 主循环
  9. 保持窗口打开
  10. 代码详细解析
  11. 1. 初始化设置
  12. 2. 定义颜色列表
  13. 3. 爱心绘制函数
  14. 4. 动态文字函数
  15. 5. 主循环
  16. 6. 保持窗口打开
  17. 总结
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 2025 年 AIGC 六大发展趋势解析
  • 2025 年 AIGC 六大核心趋势:从文生视频到多模态落地
  • 绿联云 NAS 配置 WebDAV 实现公网同步
  • Openclaw 报错 unauthorized: gateway token mismatch 解决方案
  • Rancher UI 菜单模块源码深度解析
  • AI Agent 工程化的最后一道防线:Environment Engineering
  • CentOS Stream 9 Docker 部署 KaiwuDB 社区版与跨模查询实战
  • FPGA 实现 HDMI 接口选型与核心技术详解
  • Selenium Web 自动化测试脚本总结
  • 利用 AI 智能体高效完成 C 语言及前端实训项目实战
  • 医疗 AI 可信系统全栈实现:向量索引与贝叶斯网络
  • 基于 Spring Cloud 的企业工程管理系统设计与实现
  • 哈希表原理、冲突解决与 C++ 实现
  • Python 调用高德地图 MCP 服务查询天气示例
  • 为什么 Activity.finish() 之后 10s 才 onDestroy?源码深度解析
  • Vue 3 编程的 10 个实用技巧
  • 基于 Node.js 和 Vue 的职称评审系统设计与实现
  • 离线部署 ChatGLM3 大模型实现本地 AI 聊天
  • AI 聊天机器人前端界面构建与生产环境部署
  • RabbitMQ 通配符模式详解

相关免费在线工具

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online