用python给出一个跳动的爱心并且爱心中间可以编写文字
时间: 2025-06-27 13:18:44 浏览: 16
### 使用 Python 创建动态心形图案并添加文本
为了实现一个带有动态效果的心形图案,并能够在其中央位置添加自定义文本,可以采用 `tkinter` 库结合数学函数来完成此任务。下面是一个完整的解决方案:
#### 导入必要的库
```python
import tkinter as tk
from math import sin, cos, pi, sqrt
```
#### 设置参数
```python
CANVAS_WIDTH = 800
CANVAS_HEIGHT = 600
CENTER_X = CANVAS_WIDTH // 2
CENTER_Y = CANVAS_HEIGHT // 2
ENLARGE = 12 # 放大比例因子
HEART_COLOR = 'red' # 心形颜色
TEXT_CONTENT = "Love" # 要显示的文字内容
FONT_SIZE = 36 # 字体大小
```
#### 计算心形曲线上的点
通过极坐标方程计算心形上各个点的位置。
```python
def get_heart_point(t):
x = 16 * (sin(t) ** 3)
y = -(13 * cos(t) - 5 * cos(2*t) - 2 * cos(3*t) - cos(4*t))
# 将原点移到画布中央,并按指定的比例缩放图形
x *= ENLARGE; y *= ENLARGE
x += CENTER_X; y += CENTER_Y
return int(x), int(y)
points = []
for t in [t/100*pi for t in range(-999, 1000)]:
point = get_heart_point(t)
points.append(point)
```
#### 绘制动画化的心形以及文字
利用 Tkinter 的 Canvas 控件绘制连续变化的心形路径,并在其内部放置静态文本节点。
```python
root = tk.Tk()
canvas = tk.Canvas(root, width=CANVAS_WIDTH, height=CANVAS_HEIGHT, bg='white')
canvas.pack()
# 动态绘制心形轮廓线
line = canvas.create_line(points, fill=HEART_COLOR, smooth=True)
# 在心形中心处添加一段固定不变的提示语句
text_id = canvas.create_text(CENTER_X, CENTER_Y, text=TEXT_CONTENT,
font=("Arial", FONT_SIZE),
justify=tk.CENTER, fill="pink")
def animate():
global points
new_points = [(x+random.randint(-5, 5), y+random.randint(-5, 5)) for x,y in points]
canvas.coords(line, sum(new_points,())) # 更新线条坐标列表
root.after(50, animate) # 每隔一段时间重复调用自己形成循环
animate() # 启动动画过程
root.mainloop() # 进入消息处理主循环等待交互事件触发
```
这段程序会启动一个新的窗口,在里面展示一颗跳动着的心脏形状图像,并且在心脏正中显示出预设好的字符串 “Love”。每次刷新都会稍微改变一些顶点的位置使得整个图形看起来像是有节奏地搏动一样[^1]。
阅读全文
相关推荐


















