当前位置:首页>python>Python实战项目之动态爱心

Python实战项目之动态爱心

  • 2026-09-08 19:11:34
Python实战项目之动态爱心

一、效果先看

最终你会得到:

- 一个粉色动态爱心,在屏幕中央不停跳动

- 爱心会缩放、变色、发光,非常浪漫

- 窗口可关闭,代码干净、可直接运行

- 全程只用 Python 标准库 + 简单绘图

二、准备工作(超详细)

1. 安装 Python

如果你还没装 Python:

1. 打开官网:https://www.python.org/downloads/

2. 下载最新版本(3.8 及以上都可以)

3. 安装时一定要勾选 Add Python to PATH(把Python加入环境变量)

4. 安装完成后,打开 cmd/终端,输入:

plaintext  

python --version

能显示版本号,就说明安装成功。

2. 选择代码编辑器

你可以用:

- IDLE(Python自带)

- VS Code

- PyCharm

- 甚至记事本

只要能新建  .py  文件并运行就行。

3. 本次用到的库

我们只用 turtle(Python内置绘图库),不需要额外安装,直接导入就能用。

三、完整代码(可直接复制运行)

我先把完整代码给你,后面逐行逐段详细讲解。

python  

import turtle

import random

import time

# 1. 创建画布和画笔

screen = turtle.Screen()

screen.title("动态爱心")

screen.bgcolor("black")

screen.setup(width=800, height=600)

heart = turtle.Turtle()

heart.hideturtle()

heart.speed(0)

# 2. 爱心曲线公式

def heart_shape(t, size=1):

    x = 16 * (sin(t) ** 3)

    y = 13 * cos(t) - 5 * cos(2*t) - 2 * cos(3*t) - cos(4*t)

    return x * size, y * size

# 3. 画单个爱心

def draw_heart(size, color):

    heart.penup()

    rad = 0

    heart.goto(heart_shape(rad, size))

    heart.pendown()

    heart.color(color)

    heart.begin_fill()

    for _ in range(360):

        rad += 0.1

        x, y = heart_shape(rad, size)

        heart.goto(x, y)

    heart.end_fill()

# 4. 随机颜色

def random_color():

    r = random.uniform(0.5, 1.0)

    g = random.uniform(0.0, 0.4)

    b = random.uniform(0.6, 1.0)

    return (r, g, b)

# 5. 主循环:动态跳动

from math import sin, cos

try:

    while True:

        # 清屏

        heart.clear()

        # 动态大小(呼吸效果)

        scale = 12 + 4 * sin(time.time() * 8)

        # 随机粉色系

        c = random_color()

        # 画爱心

        draw_heart(scale, c)

        time.sleep(0.02)

except turtle.Terminator:

    pass

四、逐行超详细讲解(最核心部分)

我会把每一段、每一行都讲清楚,让你真正理解,而不只是复制粘贴。

第一段:导入库

python  

import turtle

import random

import time

-  turtle :Python 内置绘图库,专门用来画图形、动画、小游戏。

-  random :用来生成随机数,让爱心颜色随机变化。

-  time :用来控制动画速度,实现“跳动”效果。

第二段:创建窗口

python  

screen = turtle.Screen()

screen.title("动态爱心")

screen.bgcolor("black")

screen.setup(width=800, height=600)

-  turtle.Screen() :创建一个绘图窗口。

-  title("动态爱心") :窗口标题。

-  bgcolor("black") :背景设为黑色,让爱心更显眼。

-  setup(800,600) :窗口宽800、高600。

第三段:创建画笔

python  

heart = turtle.Turtle()

heart.hideturtle()

heart.speed(0)

-  Turtle() :创建一支画笔。

-  hideturtle() :隐藏箭头,不然会看到箭头在屏幕上跑。

-  speed(0) :最快速度,0是最快,10是快,1最慢。

第四段:爱心数学公式(最关键)

python  

def heart_shape(t, size=1):

    x = 16 * (sin(t) ** 3)

    y = 13 * cos(t) - 5 * cos(2*t) - 2 * cos(3*t) - cos(4*t)

    return x * size, y * size

这是标准爱心数学曲线,来自经典的“Heart Curve”。

-  t  是角度

-  x, y  是坐标

-  size  用来放大缩小

只要循环画出这条曲线上的点,自动连成爱心。

第五段:画单个爱心的函数

python  

def draw_heart(size, color):

    heart.penup()

    rad = 0

    heart.goto(heart_shape(rad, size))

    heart.pendown()

    heart.color(color)

    heart.begin_fill()

    for _ in range(360):

        rad += 0.1

        x, y = heart_shape(rad, size)

        heart.goto(x, y)

    heart.end_fill()

一步步解释:

1.  penup() :抬笔,移动不留痕迹

2. 去到爱心起点

3.  pendown() :落笔,开始画

4.  color(color) :设置颜色

5.  begin_fill() :开始填充颜色

6. 循环 360 次,画出完整爱心轮廓

7.  end_fill() :结束填充,爱心变成实心

第六段:随机粉色系

python  

def random_color():

    r = random.uniform(0.5, 1.0)

    g = random.uniform(0.0, 0.4)

    b = random.uniform(0.6, 1.0)

    return (r, g, b)

- RGB 颜色范围 0~1

- 红色高、绿色低、蓝色偏高 = 粉色/玫红/紫红

- 每次调用,都会得到不一样的粉色

第七段:动态跳动主循环

python  

from math import sin, cos

try:

    while True:

        heart.clear()

        scale = 12 + 4 * sin(time.time() * 8)

        c = random_color()

        draw_heart(scale, c)

        time.sleep(0.02)

except turtle.Terminator:

    pass

这是动画核心:

-  while True :无限循环

-  heart.clear() :每次循环先擦掉上一个爱心

-  scale = 12 + 4*sin(...) :

-  sin  函数在 -1 ~ 1 之间变化

- 所以大小在 8 ~ 16 之间来回变

- 这就是跳动、呼吸、缩放效果

-  time.sleep(0.02) :每 0.02 秒刷新一次,非常流畅

五、如何运行(超详细步骤)

1. 打开你的编辑器(IDLE / VS Code / 记事本)

2. 新建文件,命名为  heart.py 

3. 把上面完整代码复制进去

4. 保存

5. 运行:

- IDLE:按 F5

- VS Code:右键 → 运行

- 命令行: python heart.py 

运行后你会看到:

- 黑色背景

- 中间一个粉色爱心

- 不停跳动、缩放、变色

- 关窗口即可退出

六、你可以自己修改的地方(教你自定义)

你可以随便改,我告诉你改哪里会有什么效果:

1. 改背景颜色

python  

screen.bgcolor("black")

可改成:

-  "white" 

-  "darkred" 

-  "#1a1a2e" 

2. 改爱心大小

python  

scale = 12 + 4 * sin(...)

把 12 改大 → 爱心更大

把 4 改大 → 跳动幅度更大

3. 改跳动速度

python  

time.sleep(0.02)

数字越小越快,越大越慢。

4. 改颜色风格

python  

r = random.uniform(0.5, 1.0)

g = random.uniform(0.0, 0.4)

b = random.uniform(0.6, 1.0)

- 红色高 → 偏红

- 绿色高 → 偏黄

- 蓝色高 → 偏紫

七、这个代码的原理总结(非常重要)

1. 用 数学爱心曲线 画出标准爱心形状

2. 用 while 循环 不断重绘

3. 用 sin 函数 让大小周期性变化 → 跳动

4. 用 随机颜色 让爱心不断变色

5. 用 清屏 + 重绘 实现动画效果

这就是最简单、最经典、最浪漫的 Python 动态爱心。

八、扩展:你可以继续升级的功能

如果你想更厉害,我可以教你:

- 爱心拖尾发光效果

- 爱心炸裂散开

- 爱心上显示文字(比如:I Love You)

- 多个爱心同时跳动

- 音乐播放 + 爱心同步跳动

最新文章

随机文章