这是爱心代码的一些注解:
import random
from math import sin, cos, pi, log
from tkinter import *
1.CANVAS_WIDTH = 640 # 画布的宽
CANVAS_HEIGHT = 480 # 画布的高
2.CANVAS_CENTER_X = CANVAS_WIDTH / 2 # 画布中心的X轴坐标
CANVAS_CENTER_Y = CANVAS_HEIGHT / 2 # 画布中心的Y轴坐标
3.IMAGE_ENLARGE = 11 # 放大比例
HEART_COLOR = "#ff2190"
4. :param shrink_ratio: 放大比例
:param t: 参数
:return: 坐标
5. x = 16 * (sin(t) ** 3) # 利用爱心函数公式计算x点坐标(极坐标公式)
y = -(13 * cos(t) - 5 * cos(2 * t) - 2 * cos(3 * t) - cos(4 * t)) # 利用爱心函数公式计算y点坐标(极坐标公式?)
x *= shrink_ratio # x点放大11.6倍
y *= shrink_ratio # y点放大11.6倍
x += CANVAS_CENTER_X # 将x点加上画布一半的宽,其实是让图像在中心显示
y += CANVAS_CENTER_Y # 将y点加上画布一半的高
return int(x), int(y) # 返回整型的x,y点
6.def scatter_inside(x, y, beta=0.15): # beta:调用对象传递实参时就是实参,否则用形参定义的
"""
随机内部扩散
:param x: 原x
:param y: 原y
:param beta: 强度
:return: 新坐标
7.math.log() 方法语法如下:
math.log(x[, base])
参数说明:
x -- 必需,数字。如果 x 不是一个数字,返回 TypeError。如果值为 0 或负数,则返回 ValueError。
base -- 可选,底数,默认为 e。
'''
dx = ratio_x * (x - CANVAS_CENTER_X) # 对原始点进行概率缩小
dy = ratio_y * (y - CANVAS_CENTER_Y)
8. return x - dx, y - dy # 在画布中心的x,y在减去缩小的值返回
9.def shrink(x, y, ratio):
"""
抖动
:param x: 原x
:param y: 原y
:param ratio: 比例
:return: 新坐标
10.def curve(p):
"""
自定义曲线函数,调整跳动周期
:param p: 参数
:return: 正弦
"""
# 可以尝试换其他的动态函数,达到更有力量的效果(贝塞尔?)
return 2 * (2 * sin(4 * p)) / (2 * pi) # 先单调递增,然后单调递减,达到跳动效果
我只是一个破完成任务的人,具体注解请移步专业人的博客。笔芯