一、基于turtle
库的动态爱心(适合初学者)
turtle
库是Python自带的绘图工具,适合绘制简单图形,以下代码会动态绘制一个彩色爱心:
import turtle
import time
# 设置画布和画笔
t = turtle.Turtle()
t.speed(5) # 绘制速度(1-10,10最快)
turtle.bgcolor("black") # 背景色
t.color("red", "pink") # 线条色和填充色
t.pensize(2) # 线条粗细
# 开始填充
t.begin_fill()
# 绘制爱心左侧曲线
t.left(140)
t.forward(180)
t.circle(-90, 200)
# 绘制爱心右侧曲线(利用对称原理)
t.setheading(60)
t.circle(-90, 200)
t.forward(180)
# 结束填充
t.end_fill()
# 隐藏画笔
t.hideturtle()
# 添加文字
t.penup()
t.goto(0, -150) # 文字位置
t.color("white")
t.write("Love Python", font=("Arial", 20, "bold"), align="center")
# 停留3秒后关闭窗口
time.sleep(3)
turtle.done()
效果:会弹出一个黑色背景的窗口,动态绘制出红色边框、粉色填充的爱心,底部有“Love Python”文字。
二、基于数学公式的爱心(matplotlib
版,更精准)
利用心形曲线的数学方程(如笛卡尔心形线)计算坐标,用matplotlib
绘制,可自定义大小和颜色:
import numpy as np
import matplotlib.pyplot as plt
# 设置中文显示
plt.rcParams["font.family"] = ["SimHei", "WenQuanYi Micro Hei", "Heiti TC"]
# 生成角度数据(0到2π)
t = np.linspace(0, 2 * np.pi, 1000)
# 笛卡尔心形线公式:x = 16sin³t,y = 13cost - 5cos2t - 2cos3t - cos4t
x = 16 * np.sin(t) ** 3
y = 13 * np.cos(t) - 5 * np.cos(2*t) - 2 * np.cos(3*t) - np.cos(4*t)
# 创建画布
plt.figure(figsize=(8, 6))
plt.plot(x, y, color="red", linewidth=3) # 绘制爱心曲线
plt.fill(x, y, color="pink", alpha=0.5) # 填充爱心内部
# 设置标题和坐标轴
plt.title("Python绘制爱心", fontsize=15)
plt.axis("equal") # 等比例显示,避免爱心变形
plt.axis("off") # 隐藏坐标轴
# 显示图形
plt.show()
效果:通过数学公式计算的坐标更精确,绘制出的爱心对称且美观,适合用于可视化展示。
三、文字爱心(纯字符打印,极简版)
如果不想依赖绘图库,也可以用字符打印一个简易爱心:
print("\n".join(["".join([("Love"[(x-y)%4] if ((x*0.05)**2+(y*0.1)** 2-1)**3-(x*0.05)** 2*(y*0.1)**3<=0 else " ") for x in range(-30,30)]) for y in range(15,-15,-1)]))
效果:在控制台打印出由“Love”单词组成的爱心图案,适合快速演示。
实现说明
turtle
版适合入门,能直观看到绘制过程;matplotlib
版基于数学公式,精度更高,可自定义颜色、大小等参数;- 文字爱心无需任何依赖,适合在终端快速运行。