李峋同款会动的爱心Python代码版

news/2024/11/27 17:33:14/

最近看到不少关于李峋同款爱心的视频、文章,今天我们也分享一下李峋同款爱心 Python 代码版。要问李峋是谁?我也不太清楚,大家可自行百度,这个是我百度的结果,仅供参考。

 

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

def build(self, number):
for _ in range(number):t = random.uniform(0, 2 * pi)x, y = heart(t)self._points.add((x, y))
# 爱心内扩散
for _x, _y in list(self._points):for _ in range(3):x, y = scatter_inside(_x, _y, 0.05)self._edge_diffusion_points.add((x, y))
# 爱心内再次扩散
point_list = list(self._points)
for _ in range(4000):x, y = random.choice(point_list)x, y = scatter_inside(x, y, 0.17)self._center_diffusion_points.add((x, y))@staticmethodstaticmethod
def calc_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)
return x - dx, y - dydef 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 = random.uniform(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_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))
# 内容
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))
self.all_points[generate_frame] = all_points
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

实现效果如下(会动的爱心):

 


http://www.ppmy.cn/news/1692.html

相关文章

HTML5期末考核大作业,网站——青岛民俗 7页。 美丽家乡 学生旅行 游玩 主题住宿网页

👨‍🎓静态网站的编写主要是用 HTML DⅣV CSSJS等来完成页面的排版设计👩‍🎓,一般的网页作业需要融入以下知识点:div布局、浮动定位、高级css、表格、表单及验证、js轮播图、音频视频Fash的应用、uli、下拉…

Almalinux 8 服务器初始化脚本

AlmaLinux centos 8 替代品 centos7 升级到 almalinux8 官方提供从centos7升级到almalinux8工具 AlmaLinux OS - 升级你的发行版 迁移CentOS 7到版本 8 的 AlmaLinux、Rocky Linux、Oracle Linux - Linux迷 (linuxmi.com) 从Centos-7迁移到AlmaLinux-8.6的教程_抽离1024的…

05、docker安装nginx

目录 1、自定义网络相关命令 2、nginx是什么 Nginxtomcat是目前主流的java web架构 3、安装nginx 4、docker实战之通过nginx镜像来部署SPA项目 5、nginx.conf讲解 1、自定义网络相关命令 1.创建自定义网络 docker network create --driver bridge --subnet 192.16…

卡尔曼滤波之最优状态估计和最优状态估计算法

1. 最优状态估计 情景1:假设一个一个比赛中,不同队伍的自动驾驶汽车使用 GPS 定位,在 100 种不同的地形上各行驶 1 公里。每次都尽可能停在终点。然后计算每只队伍的平均最终位置。 第一组输了:因为虽然方差小,但是偏差…

Json简介与基本使用

前言 本文为Json简介与基本使用相关知识,下边具体将对什么是JSON,XML与JSON的区别,JSON的语法格式,JSON数据的转换(包括:Java对象转换为JSON格式、JSON格式转换为Java对象)等进行详尽介绍~ &am…

最新出炉的阿里巴巴面试题及答案汇总(513页)

前言 秋招已经结束了,不知道各位有没有拿到自己心仪的offer?最近有不少粉丝去阿里巴巴面试了,回来之后我整理成了一份手册java面试时常用到的面试题(附答案)那么今天分享给大家,祝愿大家都能找到满意的工作…

C语言第十七课:初阶指针

目录 前言: 一、指针是什么: 1.那么指针到底是什么呢? 2.内存中的数据存储原理: 3.数据存储与指针使用实例: 4.存储编址原理: 二、指针和指针类型: 1.决定了指针的步长: 2.决定了…

C语言实现学生管理系统(顺序表版)

前言 涉及知识 使用语言:C语言 数据结构类型:顺序表 内容导图 效果展示 内容目录前言涉及知识内容导图效果展示静态管理系统菜单的实现选择功能实现静态开辟空间实现增删功能增加功能实现删除功能实现实现查找功能实现修改功能实现排序功能动态管理系…