python粒子爱心代码注解

#创建爱心粒子效果层数和抖动效果

for _ in range(halo_number):

t = random.uniform(0, 2 * pi)

x, y = heart_function(t, shrink_ratio=11.6) # alg

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

if (x, y) not in heart_halo_point:

# new pts

heart_halo_point.add((x, y))

x += random.randint(-14, 14)

y += random.randint(-14, 14)

size = random.choice((1, 2, 2))

all_points.append((x, y, size))

 

# 轮廓

for x, y in self._points:

x, y = self.calc_position(x, y, ratio)

size = random.randint(1, 3)

all_points.append((x, y, size))

 

# content

#历遍边缘效果点集合,加入画布显示点集合

for x, y in self._edge_diffusion_points:

x, y = self.calc_position(x, y, ratio)

size = random.randint(1, 2)

all_points.append((x, y, size))

 

#历遍中心效果点集合,加入画布显示点集合

for x, y in self._center_diffusion_points:

x, y = self.calc_position(x, y, ratio)

size = random.randint(1, 2)

all_points.append((x, y, size))

 

self.all_points[generate_frame] = all_points

 

##历遍爱心点集,对爱心点集填充颜色和定义大小

def render(self, render_canvas, render_frame):

for x, y, size in self.all_points[render_frame % self.generate_frame]:

render_canvas.create_rectangle(x, y, x + size, y + size, width=0, fill=random.choice(HEART_COLOR_LIST))

 

 

def draw(main: Tk, render_canvas: Canvas, render_heart: Heart, render_frame=0):

render_canvas.delete('all')

render_heart.render(render_canvas, render_frame)

main.after(70, draw, main, render_canvas, render_heart, render_frame + 1)

 

 

if __name__ == '__main__':

root = Tk() # Tk

#画布创建

canvas = Canvas(root, bg='black', height=CANVAS_HEIGHT, width=CANVAS_WIDTH)

canvas.pack()

# 爱心点集创建

heart = Heart()

#爱心生成

draw(root, canvas, heart) # draw

#生成并添加文字标签

text1 = Label(root, text="By SilverPriest ᏊˊꈊˋᏊ", font=("Helvetica", 18), fg="#c12bec", bg="black")

text1.place(x=650, y=500)

 

text2 = Label(root, text="爱你", font=("Helvetica", 18), fg="#c12bec", bg="black") #

text2.place(x=460, y=350)

 

root.mainloop()

c54022cdd71e43cf8493cff01869bf08.jpg

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值