李峋同款心跳Python代码

李峋同款心跳Python代码【按头安利《点燃我温暖你》】

在这里插入图片描述

import random
from math import sin,cos,pi,log
from tkinter import *
CANVAS_WIDTH = 640
CANVAS_HEIGHT = 640
CANVAS_CENTER_X = CANVAS_WIDTH / 2
CANVAS_CENTER_Y = CANVAS_HEIGHT / 2
IMAGE_ENLARGE = 11
HEART_COLOR = "#Fd798f"def heart_function(t,shrink_ratio:float = IMAGE_ENLARGE):#爱心的宽度x = 16 * (sin(t) ** 3)#爱心的长度(高度,心头)y = -(15 * cos(t) - 5 * cos(2 * t) - 2 * cos(3 * t) - cos(3 * t))#放大x *= shrink_ratio #收缩率y *= shrink_ratio#移到画布中央x += CANVAS_CENTER_Xy += CANVAS_CENTER_Yreturn int(x), int(y)
#散射_侧面
def scatter_inside(x,y,beta=0.15):ratio_x = -beta * log(random.random())ratio_y = -beta * log(random.random())dx = ratio_x * (x - CANVAS_CENTER_X)dy = ratio_y * (y - CANVAS_CENTER_Y)return x - dx, y - dy#收缩
def shrink(x, y, ratio):force = -1 / (((x - CANVAS_CENTER_X) ** 2 +(y - CANVAS_CENTER_Y) ** 2) ** 0.6)dx = ratio * force * (x - CANVAS_CENTER_X)dy = ratio * force * (y - CANVAS_CENTER_Y)return x - dx, y - dy#曲线
def curve(p):return 2 * (2 * sin(4 * p)) / (2 * pi)class Heart:def __init__(self, generate_frame=20):self._points = set() #原始爱心坐标集合self._edge_diffusion_points = set() #边缘扩散效果点self._center_diffusion_points = set() #中心扩散效果点self.all_points = {} #每帧动态点坐标self.build(2000)#随机光晕1000self.random_halo = 1000self.generate_frame = generate_framefor frame in range(generate_frame):self.calc(frame)def build(self, number):for _ in range(number):t = random.uniform(0, 2 * pi) #0.2x, y = heart_function(t)self._points.add((x,y))#爱心内扩散for _x, _y, in list(self._points):for _ in range(3):x, y = scatter_inside(_x, _y, 0.3) #0.2self._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.2) #0.2self._center_diffusion_points.add((x,y))@staticmethod#计算位置def calc_position(x, y, ratio):force = 1 / (((x - CANVAS_CENTER_X) ** 2 +(y - CANVAS_CENTER_Y) ** 2) ** 0.520)dx = ratio * force * (x - CANVAS_CENTER_X) + random.randint(-2, 2)dy = ratio * force * (y - CANVAS_CENTER_Y) + random.randint(-2, 2)return x - dx, y - dydef calc(self, generate_frame):ratio = 15 * curve(generate_frame / 15 * pi)halo_radius = int(4 + 6 * (1 + curve(generate_frame / 15 * pi)))halo_number = int(3000 + 4000 * abs(curve(generate_frame / 15 * pi) ** 2))all_points = []#光环heart_halo_point = set()for _ in range(halo_number):t = random.uniform(0, 2 * pi)x, y = heart_function(t, shrink_ratio=11.5)x, y = shrink(x, y, halo_radius)if(x, y) not in heart_halo_point:heart_halo_point.add((x, y))x += random.randint(-16, 16)y += random.randint(-16, 16)#点的大小size = random.choice((2, 2, 1)) # 1 2 2all_points.append((x, y, size))#轮廓for x, y in self._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._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_pointsfor 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_pointsdef 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 = HEART_COLOR)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(160, draw, main, render_canvas, render_Heart, render_frame + 1)if __name__ == '__main__':root = Tk()root.title("~怦怦~是心动呀!") #展示框的标题canvas = Canvas(root, bg='black', height=CANVAS_HEIGHT, width=CANVAS_WIDTH)canvas.pack()heart = Heart()draw(root, canvas, heart)root.mainloop()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/51498.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Python案例】Python实现垃圾分类APP(附带微信小程序)

嗨嗨,大家好呀,我是小圆~ 今天给你们分享一个有趣的东西 如何利用现有的工具来实现一个垃圾分类的应用 主要做了三个核心内容: 对比现有垃圾分类服务,挑选一个合适并编码实现开发桌面版垃圾分类APP开发垃圾分类微信小程序 上…

【python】制作李峋同款爱心代码,也不是很难嘛~

前言 嗨喽~大家好呀,这里是魔王呐 ❤ ~! 最近,一部名叫《点燃我,温暖你》得电视剧冲进了大家得视野~ 其中李峋用代码做出的红色跳动的爱心,一下子跳到朱韵的心坎里,同样也跳到我们的心坎 今天,我们就用py…

太棒了 | 手把手教你用Python做一个 “举牌小人” 生成器!

教你如何使用Selenium库 本文禁止转载,如有违反,严肃处理! 前几天写了一个婴儿级别的爬虫图文教程,大家很喜欢。戳我查看:3000字 “婴儿级” 爬虫图文教学 | 手把手教你用Python爬取 “实习网”! 趁热打铁…

李峋的跳动爱心代码(python)

运行效果 代码: """ author:Athena Geng """ import random from math import sin, cos, pi, log from tkinter import *CANVAS_WIDTH 640 # 画布的宽 CANVAS_HEIGHT 480 # 画布的高 CANVAS_CENTER_X CANVAS_WIDTH / 2 # 画布中…

李峋爱心Python代码

李峋爱心Python代码: # codinggbk import random from math import sin, cos, pi, log from tkinter import * CANVAS_WIDTH 640 CANVAS_HEIGHT 480 CANVAS_CENTER_X CANVAS_WIDTH / 2 CANVAS_CENTER_Y CANVAS_HEIGHT / 2 IMAGE_ENLARGE 11 HEART_COLOR "…

李峋同款爱心python实现

爱心运行结果截图: import random from math import sin, cos, pi, log from tkinter import *CANVAS_WIDTH 840 # 画布的宽 CANVAS_HEIGHT 680 # 画布的高 CANVAS_CENTER_X CANVAS_WIDTH / 2 # 画布中心的X轴坐标 CANVAS_CENTER_Y CANVAS_HEIGHT / 2 # 画…

OpenAI CEO创建的Worldcoin正式推出「世界币」:AI 时代的数字通行证?

编辑:秦晋 据外媒Semafor独家报道,知情人士透露,由 OpenAI 首席执行官 Sam Altman 创建的Worldcoin 代币将于今日推出。 在硅谷引发争议的Worldcoin 代币试图解决两个棘手问题:在线身份认证与收入不平等问题。 据知情人士透露&…

华为鸿蒙HarmonyOS 4定档8月;ChatGPT之父的加密货币正式上线;微软必应聊天将推出重新生成答案功能|极客头条...

「极客头条」—— 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧。 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews) 一分钟速览新闻点&#…

数据分析实战(六):英国电商用户行为分析

案例:英国电商用户行为数据分析 Part 1. 数据获取 1.1 数据集简介 https://archive.ics.uci.edu/ml/datasets/onlineretail# 该数据集为英国在线零售商在2010年12月1日至2011年12月9日间发生的所有网络交易订单信息。 1.2 数据集内容 数据集为xlsx格式&#xff0c…

亚马逊跟卖分析与经验分享

亚马逊设置跟卖机制,也是给了卖家一个机会,对于新手来说自己制作产品的listing花费大量的时间与精力大多数出单效果很不理想,这个时候把握得当跟卖就会取得很大的优势。 首先它能快速的获得流量 亚马逊的跟卖就是产品的listing共享&#xff…

Lazada和Shopee选品分析之马来西亚电商市场详解-海鲸跨境

马来西亚基础信息: 马来西亚是东南亚第三大经济体,国民富足;并且年轻人众多,对中国的产品非常喜爱。 国民经济:2019你那GDP 3543亿美元,增长4.7% 人均收入:10460美元,仅次于新加坡 年龄结构:30岁以下年轻人占人口53% 电商市场规模与潜力: 马来西亚电商用户数量…

为Lazada商家量身定做的精细化运营数据分析软件,Ushop BI

跨境电商数据可视化BI系统现在在市面上也是比较普遍,但是针对Lazada平台的目前只有一个Ushop BI系统,Ushop BI系统能够把Lazada平台数据可视化做的非常好,其功能覆盖面广,操作简单,是Lazada商家不可多得的好帮手&#…

亚马逊商品销售数据爬虫分析报告

家电产业和消费者升级悄然地展开。 市场的这种变化使消费者对家用电器的期望不再仅仅是一个简单的功能满足,而是更多的细节体验和技术创新。 通过洞察家用电器的消费特点,有利于确定市场的未来趋势,从而积极应对市场变化。 ▼ 我们围绕亚马逊…

Lazada数据大分析:帮你正确解析Lazada市场!

Lazada数据大分析:帮你正确解析Lazada市场! 2021年是跨境电商飞速发展的一年,各行各业都选择了加入跨境电商这个行业,而如今在互联网的大趋势下国内电商行业的发展已经非常成熟,而跨境电商行业就后来居上,…

解决TimeWait过多的问题

原文链接:https://www.tiejiang.org/27040.html 服务端客户端通信连接示意图 1、 time_wait的作用: TIME_WAIT状态存在的理由: 1)可靠地实现TCP全双工连接的终止 在进行关闭连接四次挥手协议时,最后的ACK是由主动关闭…

Confluence 调整会话超时(session timeout)

文章目录 前言一、概括二、实际场景应用1.更改空闲超时2.更改记住我 cookie 的生命周期3.在用户通过身份验证后的某个时间强制注销用户 总结 前言 在 Confluence 中有两个会话 Cookie: JSESSIONID: 由 Tomcat 使用和管理。 默认情况下,这被视为会话 co…

微信智能机器人助手,基于hook技术,自动聊天机器人

微信智能助手说明文档 资料获取方式,关注公总号RaoRao1994,查看往期精彩-所有文章,即可获取资源下载链接 更多资源获取,请关注公总号RaoRao1994 简介 微信智能助手是一款基于PC微信研发的微信助手类软件,能帮助大家…

如何监测高价值货物在物流运输过程中受到的振动和冲击?全面保障货物安全

引言 不同种类的货物对运输的要求不同,钢铁、煤炭、矿石等大宗物资通常对运输要求较低,而电子产品、IT 产品、家电等高价值敏感类货物则更强调运输的安全性,时效性,往往希望能尽可能安全和快速送达这类货物,使之尽快进…

2022卡塔尔世界杯赛程直播北京时间_足球世界杯对阵表图完整全部

2022卡塔尔世界杯赛程直播北京时间 足球世界杯对阵表图完整全部 2022卡塔尔世界杯今晚就要开幕了,21日0点卡塔尔世界杯揭幕战卡塔尔队VS厄瓜多尔队就要开打了。下面小编分享2022卡塔尔世界杯完整赛程时间对阵图表,有需要的朋友们可以收藏,到…

2022卡塔尔世界杯。CSDN世界杯勋章来啦

卡塔尔世界杯正在如火如茶的举办着,在比赛场上,我看到了来自世界各地的球队,他们都充满活力,充满激情,每一支球队都在努力的拼搏,无论是为了胜利,还是为了荣誉。我看到了一支支优秀的球队&#…