
import random
from math import sin, cos, pi, log
from tkinter import Tk, Canvas# 画布参数
CANVAS_WIDTH = 800
CANVAS_HEIGHT = 600
CANVAS_CENTER_X = CANVAS_WIDTH / 2
CANVAS_CENTER_Y = CANVAS_HEIGHT / 2
IMAGE_ENLARGE = 18 # 放大倍数
EPSILON = 1e-8 # 避免除零错误# 蓝色主题
PRIMARY_COLOR = "#0066CC" # 主色:深蓝色
SECONDARY_COLOR = "#66CCFF" # 辅助色:浅蓝色
HIGHLIGHT_COLOR = "#99EEFF" # 高光色:淡蓝色
BACKGROUND_COLOR = "black" # 背景色# 爱心蝴蝶极坐标公式(结合爱心和蝴蝶形状)
def heart_butterfly_function(t, phase=0, shrink_ratio=IMAGE_ENLARGE):# 蝴蝶翅膀形状参数(可调整以改变翅膀形态)wing_factor = 0.3 * sin(phase) + 0.7 # 控制翅膀扇动heart_factor = 0.5 # 控制爱心与蝴蝶的融合程度# 基础蝴蝶形状r = 15 * (1 + sin(t)) * (2 - cos(2 * t)) * (2 - cos(3 * t)) * (2 - cos(4 * t))# 加入爱心元素heart_r = 10 * (16 * (sin(t) ** 3))# 融合两种形状r = r * wing_factor + heart_r * heart_factorx = r * cos(t)y = r * sin(t)# 缩放、平移到画布中心x *= shrink_ratioy *= shrink_ratiox += CANVAS_CENTER_Xy += CANVAS_CENTER_Yreturn int(x), int(y)def scatter_inside(x, y, beta=0.