李峋同款爱心代码

1 篇文章 1 订阅
订阅专栏
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  # 画布中心的Y轴坐标
IMAGE_ENLARGE = 11  # 放大比例
HEART_COLOR = "lightcoral"

def heart_function(t, shrink_ratio: float = IMAGE_ENLARGE):
    """
    “爱心函数生成器”
    :param shrink_ratio: 放大比例
    :param t: 参数
    :return: 坐标
    """
    # 基础函数
    x = 17 * (sin(t) ** 3)
    y = -(16 * cos(t) - 5 * cos(2 * t) - 2 * cos(3 * t) - cos(3 * t))

    # 放大
    #x *= shrink_ratio
    #y *= shrink_ratio
    x*=IMAGE_ENLARGE
    y*=IMAGE_ENLARGE
    # 移到画布中央
    x += CANVAS_CENTER_X
    y += CANVAS_CENTER_Y

    return int(x), int(y)


def scatter_inside(x, y, beta=0.15):
    """
    随机内部扩散
    :param x: 原x
    :param y: 原y
    :param beta: 强度
    :return: 新坐标
    """
    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):
    """
    抖动
    :param x: 原x
    :param y: 原y
    :param ratio: 比例
    :return: 新坐标
    """
    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):
    """
    自定义曲线函数,调整跳动周期
    :param p: 参数
    :return: 正弦
    """
    # 可以尝试换其他的动态函数,达到更有力量的效果(贝塞尔?)
    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)

        self.random_halo = 1000

        self.generate_frame = generate_frame
        for frame in range(generate_frame):
            self.calc(frame)

    def build(self, number):
        # 爱心
        for _ in range(number):
            t = random.uniform(0, 2 * pi)  # 随机不到的地方造成爱心有缺口
            x, 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.05)
                self._edge_diffusion_points.add((x, y))

        # 爱心内再次扩散
        point_list = list(self._points)
        for _ in range(10000):
            x, y = random.choice(point_list)
            x, y = scatter_inside(x, y, 0.27)
            self._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.420)  # 魔法参数

        dx = ratio * force * (x - CANVAS_CENTER_X) + random.randint(-1, 1)
        dy = ratio * force * (y - CANVAS_CENTER_Y) + random.randint(-1, 1)

        return x - dx, y - dy

    def calc(self, generate_frame):
        ratio = 15 * 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_function(t, shrink_ratio=-15)  # 魔法参数
            x, y = shrink(x, y, halo_radius)
            if (x, y) not in heart_halo_point:
                # 处理新的点
                heart_halo_point.add((x, y))
                x += random.randint(-60, 60)
                y += random.randint(-60, 60)
                size = random.choice((1, 1, 2))
                all_points.append((x, y, size))
                all_points.append((x+20, y+20, size))
                all_points.append((x-20, y -20, size))
                all_points.append((x+20, y - 20, size))
                all_points.append((x - 20, y +20, 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))

        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=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(1, draw, main, render_canvas, render_heart, render_frame + 1)


if __name__ == '__main__':
    root = Tk()
    canvas = Canvas(root, bg='black', height=CANVAS_HEIGHT, width=CANVAS_WIDTH)
    canvas.pack()
    heart = Heart()
    draw(root, canvas, heart)
    root.mainloop()

VScode要安装python插件      windows要安装python环境

 

 想修改爱心的颜色只需在代码的首部修改如下变量的值

HEART_COLOR = "lightcoral"

代码写出浪漫__合集(python、matplotlib、Matlab、java绘制爱心、玫瑰花、前端特效玫瑰、爱心
逆境清醒的博客
08-01 3万+
有缘遇到真心对你好的人不容易,像父母、朋友、真爱你的人,如果遇到了,请好好珍惜,因为有时,有些你想象不到的事情会突然发生,如果遇到了,请别慌乱害怕,那些真心对你的人会陪在你身边和你一起度过最难熬的日子,所以请抓住每一分每一秒,好好对待身边人,凡事别计较太多,把心放宽。在你遇到。。。时,请记住,你并不是唯一一个,这世界上有很多人正在经历着和你一样的事情,虽然他们没有或者无法说出来。.....................
李峋爱心代码,表白神器!
weixin_51976923的博客
12-01 1855
自己写了个软件,实现超简单修改名字!
《点燃我,温暖你》李珣Python爱心代码,表白利器 !_李珣的跳动的爱心代码
最新发布
2401_84586380的博客
04-26 1827
最近延迟追剧,「」这部剧还挺好看的,讲述的是程序员的爱情故事。其中陈飞宇饰演的男主李峋,在剧中用程序做出的爱心跳动效果,非常炫。网上各个大佬也是纷纷给出看法,综合就是不太可能用C语言来实现的。大概率是AE这种做特效软件实现的,毕竟里面的编程语言、编辑器、程序出现太多问题啦。下面就给大家分享各个版本的跳动爱心,有兴趣的小伙伴可以去试试,送给那个人!文末领取Python全套学习资源我们来看看效果吧。涉及到了不少数学知识,需定义曲线函数,然后去调整爱心跳动周期。源代码如下,感兴趣的小伙伴可以去试试。
跳动爱心代码,百分百还原李峋跳动的爱心
alian1251的博客
08-31 361
pic.drawString("爱你一万年!pic.setFont(new Font("楷体", Font.BOLD, 40));super("♥爱心");//设置窗口的默认关闭方式。
《点燃我,温暖你》李峋爱心代码java
m0_48405744的博客
01-23 762
* 首先,使用三次正弦函数 Math.sin(z) * Math.sin(z) * Math.sin(z) 对 z 进行运算,这个部分可能会生成一个振荡模式。/*在这一行中,首先计算了一个关于 cos(z) 的组合函数,包含了不同频率的余弦波,它们的系数和阶数各异,这会产生一种复杂的周期性模式。
李峋爱心代码 程序员教你用代码制作爱心网页[樱花+爱心],正好拿去送给女神给她个惊喜
无边热爱,来日方长
11-08 4514
李峋爱心代码 程序员教你用代码制作爱心网页[樱花+爱心],正好拿去送给女神给她个惊喜
李峋爱心代码.zip
06-12
李峋爱心代码.zip 代码完整下载可用。会复制就可以表白啦,还等什么赶紧行动啊。 李峋爱心代码.zip 代码完整下载可用。会复制就可以表白啦,还等什么赶紧行动啊。李峋爱心代码.zip 代码完整下载可用...
李峋爱心代码爱心跳动
12-12
在编程世界中,"李峋爱心代码"是一种用编程语言实现的视觉效果,它通常展示为一个在屏幕上不断跳动的爱心图形。这种代码的流行源于影视作品中的角色李峋,通过编写代码来表达情感,使得编程与艺术、情感结合在...
爱心源码-李峋爱心代码-h5形式
12-10
爱心源码-李峋爱心代码-h5形式
李峋爱心代码-爱心源码
12-14
李峋爱心代码-爱心源码】是一集合了四种不同风格的爱心代码资源,主要涉及HTML和Python编程语言。这些代码可以用于创建各种视觉上吸引人的爱心图案或者动画,适用于网页设计、个性化编程项目或者浪漫的表达...
html爱心特效代码
热门推荐
梦游星海的博客
10-26 44万+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE> New Document </TITLE> <META NAME="Generator" CONTENT="EditPlus"> <META NAME="Author" CONTENT=""> <META NAME="Keywor...
【圣诞节特辑】爱心代码(程序员的浪漫plus+)-李峋
好好读书
12-22 1万+
【圣诞节特辑】爱心代码(程序员的浪漫plus+)-李峋 内容更新 页面跳转 登录 更特别更特殊 充满创意
李珣同爱心特效代码,加DIY教程,快拿去送给你喜欢的那个ta吧。
**My Coding Family**
11-10 2万+
听说全网都在挑战这个,李珣同爱心代码,bug菌马不停蹄送来代码教程!快去送给你喜欢的那个ta吧。
李峋爱心Python代码版来了
分享关于数据的知识。
11-13 15万+
李峋爱心Python代码版来了
李峋爱心代码(附源码)
qq245454的博客
11-14 7万+
李峋浪漫爱心代码(快拿去给爸爸妈妈,给男(女)朋友看!!!)
用Python制作李峋爱心代码(附原码)
sunanpython的博客
12-13 6404
最近有个剧挺火的 就是那个程序员的剧,叫什么温暖你来着咳咳,剧情我没怎么看,但是吧,里面有个爱心代码,最近可是蛮火的,今天就用Python来尝试一下吧 搞这个表白也是不错滴
html+css+js爱心代码
jiangcr123的博客
11-06 1万+
最近好像爱心代码很火
《点燃我温暖你》中李峋的同爱心代码
SuiHao
11-09 3万+
最近《点燃我温暖你》中李峋爱心代码超级火,看着特别心动,这不,光棍节快到了,给兄弟们教学一波爱心代码,赶在双十一前表白,让这个双十一不在是孤单一个人!
李峋爱心代码 h5
07-09
李峋爱心代码是指通过H5技术实现李峋爱心动画效果。H5是一种基于HTML、CSS和JavaScript的技术,可以用来开发跨平台的网页应用。 要实现李峋爱心代码,首先需要用HTML定义一个包含爱心动画效果的区域...

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • 项目启动报错:If you want an embedded database (H2, HSQL or Derby), please put it on the classpath 40300
  • 异常:java.net.ConnectException: Connection timed out: no further information 14846
  • IDEA已经导入了jar包 还是提示找不到类(解决!!!) 9501
  • layui(4)——内置模块日期与时间选择 6358
  • Eclipse快捷方式无法在桌面上打开 5843

分类专栏

  • 疑难解决 付费 30篇
  • mongodb 付费 14篇
  • 软考中级设计师 付费 17篇
  • 机试算法 付费 3篇
  • 工作学习 31篇
  • layui学习 7篇
  • Echarts学习 1篇
  • Arthas 1篇
  • react 8篇
  • XC项目 3篇
  • 问题解决 19篇
  • 工具类 2篇
  • Java基础 34篇
  • rabbitmq 3篇
  • Reids 8篇
  • docker 1篇
  • 版本控制 1篇
  • SQL 2篇
  • 其他 7篇
  • springboot 7篇
  • MyBatis 6篇
  • python 1篇
  • HTML基础 3篇
  • javaweb 13篇
  • Lua/Canal 3篇
  • Linux 3篇
  • FastDFS 3篇
  • springcloud 2篇
  • jQuery 3篇
  • SpringMVC 4篇
  • Spring 6篇

最新评论

  • Eclipse快捷方式无法在桌面上打开

    清风恰自来372: 你怎么解决滴,我也没有jre而且我下载过多次了表情包

  • 使用java将doc/docx转换成html

    十户: 文件中有图片的话,转化后,图片就消失了

  • 使用java将doc/docx转换成html

    qq_28060013: 带标题的docx文件可以转吗

  • 使用Xshell出现命令无法找到解决方法-bash: ls: command not found

    0提拉米苏0: 楼主,我修改profile文件以后,修改了环境变量还是不行,求解

  • 使用java将doc/docx转换成html

    Clover~: 想问一下文字大小为什么没有带过来啊?docx里文字大小不一样,但是转换为html后都是默认大小

您愿意向朋友推荐“博客详情页”吗?

  • 强烈不推荐
  • 不推荐
  • 一般般
  • 推荐
  • 强烈推荐
提交

最新文章

  • 将mongo查出的数据导出来,变成json,然后转Excel
  • react 对img图片进行放大 缩小 拖拽
  • 使用layui 上传图片,选择图片后对图片进行筛选后控制上传
2024年2篇
2023年104篇
2022年98篇
2021年35篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java-请多指教

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值

深圳SEO优化公司永州百度网站优化价格临沂关键词排名的价格庐山市网站优化亚马逊打关键词排名企业优化网站推广南通网站单词优化提高关键词排名拣选火28星达金华有实力的网站设计优化网站优化技能高企业网站的优化建议安庆企业网站优化哪家便宜宜昌市seo关键词优化排名兰州网站优化推广怎么做河南整站网站优化系统网站结构优化的定义关键词搜索排名ob丷云速捷天津关键词优化网排名关键词排名拍金手指科杰二七潞城区关键词seo排名优化项城优化网站排名哪家服务好皮肤病医院网站优化方案慈溪外贸网站优化网站优化是什么专业济宁网站优化系统锡山区百度网站优化排名网站黑帽怎么优化梧州网站优化电池浙江省定制版网站优化焦作seo关键词排名价格常州网站优化排行歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化