以下是一个结合数学公式和图形绘制的动态Python爱心代码,使用turtle库实现可视化效果,代码简洁但效果惊艳:
import turtle
import math
# 初始化设置
turtle.setup(800, 800) # 设置画布大小
t = turtle.Turtle()
t.speed(10) # 设置绘制速度
t.pensize(2) # 画笔粗细
t.color('red', '#ff3399') # 边框颜色和填充色
t.hideturtle() # 隐藏乌龟图标
# 数学函数生成心形坐标
def heart_pos(t):
x = 16 * (math.sin(t) ** 3)
y = 13 * math.cos(t) - 5 * math.cos(2*t) - 2 * math.cos(3*t) - math.cos(4*t)
return x * 20, y * 20 # 放大坐标
# 开始绘制
t.begin_fill()
for i in range(630): # 绘制630个点形成光滑曲线
t.gt = i / 100 * math.pi # 参数t的范围(0-2π)
x, y = heart_pos(t.gt)
t.goto(x, y)
t.end_fill()
# 添加文字
t.penup()
t.goto(0, -250)
t.write("I Love You", align="center", font=("Arial", 48, "bold"))
# 保持窗口打开
turtle.done()
代码特点:
- 数学之美:使用经典心形曲线参数方程生成精确形状
- 动态绘制:展现爱心逐渐形成的动画过程
- 视觉增强:渐变填充色搭配立体文字
- 兼容性强:仅使用标准库无需额外安装
运行效果:
- 窗口会动态绘制出一个饱满的爱心
- 爱心内部填充渐变色
- 底部显示"I Love You"立体文字
- 最终形成完整的红色爱心图案
扩展玩法:
- 修改颜色:调整color()参数改变边框和填充色
- 添加动画:在循环中插入turtle.update()实现逐帧动画
- 制作3D效果:叠加多个不同大小的心形制造立体感
- 添加交互:用screen.onclick()实现点击出现小心心
# 快速体验字符画版本(适合无图形界面环境)
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)]))
这两个版本分别展示了Python在图形绘制和字符画处理方面的创意实现,可以根据运行环境选择合适的版本体验。