aW1wb3J0IHJhbmRvbQpmcm9tIG1hdGggaW1wb3J0IHNpbiwgY29zLCBwaQppbXBvcnQgdGtpbnRlciBhcyB0awoKIyDnlLvluIPlj4LmlbAKQ0FOVkFTX1dJRFRIID0gNjQwICAgIyDnlLvluIPnmoTlrr0KQ0FOVkFTX0hFSUdIVCA9IDQ4MCAgIyDnlLvluIPnmoTpq5gKQ0FOVkFTX0NFTlRFUl9YID0gQ0FOVkFTX1dJRFRIIC8gMiAgICMg55S75biD5Lit5b+D55qEWOi9tOWdkOaghwpDQU5WQVNfQ0VOVEVSX1kgPSBDQU5WQVNfSEVJR0hUIC8gMiAgIyDnlLvluIPkuK3lv4PnmoRZ6L205Z2Q5qCHCklNQUdFX0VOTEFSR0UgPSAxNSAgICMg5pS+5aSn5q+U5L6LCkhFQVJUX0NPTE9SID0gJnF1b3Q7cGluayZxdW90OyAjIOW/g+eahOminOiJsgoKZGVmIGhlYXJ0X2Z1bmN0aW9uKHQsIHNocmlua19yYXRpbzogZmxvYXQgPSBJTUFHRV9FTkxBUkdFKToKICAgICZxdW90OyZxdW90OyZxdW90O+eIseW/g+WHveaVsOeUn+aIkOWZqCZxdW90OyZxdW90OyZxdW90OwogICAgIyDln7rnoYDlh73mlbAKICAgIHggPSAxNiAqIHNpbih0KSAqKiAzCiAgICB5ID0gLSgxMyAqIGNvcyh0KSAtIDUgKiBjb3MoMip0KSAtIDIgKiBjb3MoMyp0KSAtIGNvcyg0KnQpKQogICAgIyDmlL7lpKcKICAgIHggKj0gc2hyaW5rX3JhdGlvCiAgICB5ICo9IHNocmlua19yYXRpbwogICAgIyDnp7vliLDnlLvluIPkuK3lpK4KICAgIHggKz0gQ0FOVkFTX0NFTlRFUl9YCiAgICB5ICs9IENBTlZBU19DRU5URVJfWQogICAgcmV0dXJuIGludCh4KSwgaW50KHkpCgojIOWIm+W7uueql+WPo+WSjOeUu+W4gwpyb290ID0gdGsuVGsoKQpjYW52YXMgPSB0ay5DYW52YXMocm9vdCwgd2lkdGg9Q0FOVkFTX1dJRFRILCBoZWlnaHQ9Q0FOVkFTX0hFSUdIVCwgYmc9JnF1b3Q7YmxhY2smcXVvdDspCmNhbnZhcy5wYWNrKCkKCiMg57uY5Yi254ix5b+D77yI6YCa6L+H5aSn6YeP54K55p2l5p6E5oiQ54ix5b+D5b2i54q277yJCmZvciBfIGluIHJhbmdlKDEwMDApOgogICAgdCA9IHJhbmRvbS51bmlmb3JtKDAsIDIqcGkpCiAgICB4LCB5ID0gaGVhcnRfZnVuY3Rpb24odCkKICAgIGNhbnZhcy5jcmVhdGVfcG9pbnQoeCwgeSwgZmlsbD1IRUFSVF9DT0xPUiwgd2lkdGg9MSkKCiMg5ZCv5Yqo56qX5Y+j5Li75b6q546vCnJvb3QubWFpbmxvb3AoKQ==
import random
from math import sin, cos, pi
import tkinter as tk
# 画布参数
CANVAS_WIDTH = 640 # 画布的宽
CANVAS_HEIGHT = 480 # 画布的高
CANVAS_CENTER_X = CANVAS_WIDTH / 2 # 画布中心的X轴坐标
CANVAS_CENTER_Y = CANVAS_HEIGHT / 2 # 画布中心的Y轴坐标
IMAGE_ENLARGE = 15 # 放大比例
HEART_COLOR = "pink" # 心的颜色
def heart_function(t, shrink_ratio: float = 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)
# 创建窗口和画布
root = tk.Tk()
canvas = tk.Canvas(root, width=CANVAS_WIDTH, height=CANVAS_HEIGHT, bg="black")
canvas.pack()
# 绘制爱心(通过大量点来构成爱心形状)
for _ in range(1000):
t = random.uniform(0, 2*pi)
x, y = heart_function(t)
canvas.create_point(x, y, fill=HEART_COLOR, width=1)
# 启动窗口主循环
root.mainloop()