python动态重叠爱心图

python动态重叠爱心图_第1张图片

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 = 16  # 放大倍数
EPSILON = 1e-8  # 避免除零错误

# 蓝色主题(不同深浅蓝色模拟爱心渐变)
HEART_DARK_BLUE = "#003366"  # 爱心深色区域
HEART_MID_BLUE = "#0066CC"  # 爱心中间色
HEART_LIGHT_BLUE = "#66CCFF"  # 爱心浅色区域
BACKGROUND_COLOR = "black"  # 背景色


# 爱心蝴蝶融合公式(翅膀边缘为爱心曲线,身体为蝴蝶结构)
def heart_butterfly(t, wing_phase=0, shrink_ratio=IMAGE_ENLARGE):
    # 基础爱心公式(用于翅膀边缘)
    def heart_curve(angle):
        x = 16 * (sin(angle) ** 3)
        y = 13 * cos(angle) - 5 * cos(2 * angle) - 2 * cos(3 * angle) - cos(4 * angle)
        return x, y

    # 蝴蝶身体中轴线
    body_r = 5 * (1 + sin(t))

    # 翅膀爱心融合逻辑(左翅和右翅分别计算)
    if t < pi:  # 左翅(0~π)
        # 爱心曲线旋转90度作为翅膀边缘
        heart_x, heart_y = heart_curve(t + wing_phase)
        # 翅膀从身体延伸到爱心边缘
        wing_factor = 0.8 + 0.2 * sin(wing_phase)  # 翅膀扇动幅度
        r = body_r + wing_factor * (heart_x ** 2 + heart_y ** 2) ** 0.5
        x = -r * cos(t)  # 左翅镜像
        y = r * sin(t)
    else:  # 右翅(π~2π)
        heart_x, heart_y = heart_curve(t - pi + wing_phase)
        wing_factor = 0.8 +

你可能感兴趣的:(人工智能)