嗨害大家好鸭!
最近好像有个剧很火~
里面是:
跳动的!!! 爱心代码!!!
简直表白利器啊!!!
用python来给大家整个福利~
效果预览💗
(那个爪爪是我的鼠标,,大家有需要再说嘿嘿~)
准备模块:
import randomfrom math import sin, cos, pi, logfrom tkinter import *
准备画布:
CANVAS_WIDTH = 640 # 画布的宽CANVAS_HEIGHT = 480 # 画布的高CANVAS_CENTER_X = CANVAS_WIDTH / 2 # 画布中心的X轴坐标CANVAS_CENTER_Y = CANVAS_HEIGHT / 2 # 画布中心的Y轴坐标IMAGE_ENLARGE = 11 # 放大比例HEART_COLOR = "#ff8181" # 心的颜色(其他颜色随便改)
爱心部分
def heart_function(t, shrink_ratio: float = IMAGE_ENLARGE):"""“爱心函数生成器”:param shrink_ratio: 放大比例:param t: 参数:return: 坐标"""# 基础函数x = 16 * (sin(t) ** 3)y = -(13 * cos(t) - 5 * cos(2 * t) - 2 * cos(3 * t) - cos(4 * t))# 放大x *= shrink_ratioy *= shrink_ratio# 移到画布中央x += CANVAS_CENTER_Xy += CANVAS_CENTER_Yreturn int(x), int(y)
抖动部分
def shrink(x, y, ratio):"""抖动:param x: 原x:param y: 原y:param ratio: 比例:return: 新坐标"""force = -1 / (((x - CANVAS_CENTER_X) ** 2 + (y - CANVAS_CENTER_Y) ** 2) ** 0.6) # 这个参数...dx = ratio * force * (x - CANVAS_CENTER_X)dy = ratio * force * (y - CANVAS_CENTER_Y)return x - dx, y - dy
自定义跳动周期
def curve(p):"""自定义曲线函数,调整跳动周期:param p: 参数:return: 正弦"""# 可以尝试换其他的动态函数,达到更有力量的效果(贝塞尔?)return 2 * (2 * sin(4 * p)) / (2 * pi)