李峋的爱心代码

李峋的爱心代码


2024年1月23日发(作者:)

李峋的爱心代码

简单来说李峋同款爱心就是一个动态的♥型效果,主要 Python 代码实现如下:

def __init__(self, generate_frame=20):

# 原始爱心坐标集合

self._points = set()

# 边缘扩散效果点坐标集合

self._edge_diffusion_points = set()

# 中心扩散效果点坐标集合

self._center_diffusion_points = set()

# 每帧动态点坐标

_points = {}

(2000)

_halo = 1000

te_frame = generate_frame

for frame in range(generate_frame):

(frame)

def build(self, number):

for _ in range(number):

t = m(0, 2 * pi)

x, y = heart(t)

self._((x, y))

# 爱心内扩散

for _x, _y in list(self._points):

for _ in range(3):

x, y = scatter_inside(_x, _y, 0.05)

self._edge_diffusion_((x, y))

# 爱心内再次扩散

point_list = list(self._points)

for _ in range(4000):

x, y = (point_list)

x, y = scatter_inside(x, y, 0.17)

self._center_diffusion_((x, y))

@staticmethodstaticmethod

def calc_position(x, y, ratio):

force = 1 / (((x - X) ** 2 +

(y - Y) ** 2) ** 0.520)

dx = ratio * force * (x - X) + t(-1, 1)

dy = ratio * force * (y - Y) + t(-1, 1)

return x - dx, y - dy

def calc(self, generate_frame):

ratio = 10 * curve(generate_frame / 10 * pi)

halo_radius = int(4 + 6 * (1 + curve(generate_frame / 10 * pi)))

halo_number = int(

3000 + 4000 * abs(curve(generate_frame / 10 * pi) ** 2))

all_points = []

# 光环

heart_halo_point = set()

for _ in range(halo_number):

t = m(0, 2 * pi)

x, y = heart(t, shrink_ratio=11.6)

x, y = shrink(x, y, halo_radius)

if (x, y) not in heart_halo_point:

heart_halo_((x, y))

x += t(-14, 14)

y += t(-14, 14)

size = ((1, 2, 2))

all_((x, y, size))

# 轮廓

for x, y in self._points:

x, y = _position(x, y, ratio)

size = t(1, 3)

all_((x, y, size))

# 内容

for x, y in self._edge_diffusion_points:

x, y = _position(x, y, ratio)

size = t(1, 2)

all_((x, y, size))

_points[generate_frame] = all_points

for x, y in self._center_diffusion_points:

x, y = _position(x, y, ratio)

size = t(1, 2)

all_((x, y, size))

_points[generate_frame] = all_points


发布者:admin,转转请注明出处:http://www.yc00.com/news/1705993932a1434016.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信