```python
import random
from math import sin, cos, pi, log
from tkinter import *
画布设置
CANVAS_WIDTH = 640
CANVAS_HEIGHT = 480
CANVAS_CENTER_X = CANVAS_WIDTH / 2
CANVAS_CENTER_Y = CANVAS_HEIGHT / 2
IMAGE_ENLARGE = 11
HEART_COLOR = "FFC0CB"
爱心生成函数
def heart_function(t, shrink_ratio=IMAGE_ENLARGE):
x = 16 * (sin(t) 3)
y = -(13 * cos(t) - 5 * cos(2 * t) - 2 * cos(3 * t) - cos(4 * t))
x *= shrink_ratio
y *= shrink_ratio
x += CANVAS_CENTER_X
y += CANVAS_CENTER_Y
return int(x), int(y)
绘制爱心
def draw_heart():
canvas.delete("all") 清除画布上的所有内容
x, y = heart_function(0)
canvas.create_oval(x - 5, y - 5, x + 5, y + 5, fill=HEART_COLOR)
动态效果
def animate_heart():
for i in range(100):
draw_heart()
canvas.update()
time.sleep(0.05) 控制动画速度
创建主窗口
root = Tk()
root.title("动态爱心动画")
创建画布
canvas = Canvas(root, width=CANVAS_WIDTH, height=CANVAS_HEIGHT)
canvas.pack()
启动动画
animate_heart()
运行主循环
root.mainloop()
```
代码解释:
导入库
`random`:用于生成随机数。
`math`:用于数学计算,如正弦、余弦函数等。
`tkinter`:用于创建图形界面。
画布设置
定义画布的宽度、高度、中心点坐标等。
设置爱心颜色。
爱心生成函数
`heart_function(t, shrink_ratio)`:生成爱心的坐标。`t`是时间变量,`shrink_ratio`控制爱心的缩放比例。
绘制爱心
`draw_heart()`:在画布上绘制一个爱心。
动态效果
`animate_heart()`:循环调用`draw_heart()`函数,并更新画布,实现动态效果。
创建主窗口
使用`Tkinter`创建主窗口,并设置标题。
创建画布并添加到窗口中。
启动动画循环。
运行主循环
`root.mainloop()`:启动Tkinter的事件循环,使窗口保持打开状态。
通过运行上述代码,你可以在Tkinter窗口中看到一个动态的爱心动画。你可以根据需要调整参数,如动画速度、爱心大小等。