当前位置: 首页 > 后端技术 > Python

李寻动人爱心的Python代码版

时间:2023-03-26 00:43:36 Python

最近看到很多关于李寻爱心的视频和文章。今天我们也来分享一下李寻之恋的Python代码版。李寻是谁?不太懂,大家自行百度,这是我百度的结果,仅供参考。简单来说,李寻的爱心就是动态的?效果。主要Python代码实现如下:defbuild(self,number):for_inrange(number):t=random.uniform(0,2*pi)x,y=heart(t)self._points.add((x,y))#心脏扩散内部for_x,_yinlist(self._points):for_inrange(3):x,y=scatter_inside(_x,_y,0.05)self._edge_diffusion_points.add((x,y))#Diffusionpoint_list=list(self._points)for_inrange(4000):x,y=random.choice(point_list)x,y=scatter_inside(x,y,0.17)self._center_diffusion_points.add((x,y))@staticmethodstaticmethoddefcalc_position(x,y,ratio):force=1/(((x-X)**2+(y-Y)**2)**0.520)dx=ratio*force*(x-X)+random.randint(-1,1)dy=ratio*force*(y-Y)+random.randint(-1,1)returnx-dx,y-dydefcalc(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=[]#haloheart_halo_point=set()for_inrange(halo_number):t=random.uniform(0,2*pi)x,y=heart(t,shrink_ratio=11.6)x,y=shrink(x,y,halo_radius)如果(x,y)不在heart_halo_point中: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))#轮库forx,yinself._points:x,y=self.calc_position(x,y,ratio)size=random.randint(1,3)all_points.append((x,y,size))#包含forx,yinself._edge_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_pointsforx,yinself._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实际效果如下:源码在公号Python小二后台回复pyLiXu获取~