位置: IT常识 - 正文

Python跳动的爱心(python编程爱心形状)

编辑:rootadmin
Python跳动的爱心

推荐整理分享Python跳动的爱心(python编程爱心形状),希望有所帮助,仅作参考,欢迎阅读内容。

Python跳动的爱心(python编程爱心形状)

文章相关热门搜索词:python爱心函数,python怎么弄个爱心,python动态心形代码简单,python动态心形代码简单,用python画爱心动图,python跳动的爱心代码,用python画爱心动图,python动态心形代码,内容如对您有帮助,希望把文章链接给更多的朋友!

目录

前言 

表白界面 

爱心类 

其他函数 


前言 

跳动的爱心,这又是谁的青春吖,源码在文末公众号自取哈

表白界面 

   

def OK(): #同意按钮 root.destroy() love() #同意后显示漂浮爱心def NO(): #拒绝按钮,拒绝不会退出,必须同意才可以退出哦~ tk.messagebox.showwarning('❤','再给你一次机会!')def closeWindow(): tk.messagebox.showwarning('❤','逃避是没有用的哦')爱心类 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(4000): x, y = random.choice(point_list) x, y = scatter_inside(x, y, 0.17) self._center_diffusion_points.add((x, y)) @staticmethod def calc_position(x, y, ratio): force = 1 / (((x - heartx) ** 2 + (y - hearty) ** 2) ** 0.520) # 魔法参数 dx = ratio * force * (x - heartx) + random.randint(-1, 1) dy = ratio * force * (y - hearty) + random.randint(-1, 1) return x - dx, y - dy def 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_function(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)) 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=heartcolor)其他函数 def heart_function(t, shrink_ratio: float = side): x = 16 * (sin(t) ** 3) y = -(13 * cos(t) - 5 * cos(2 * t) - 2 * cos(3 * t) - cos(4 * t)) x *= shrink_ratio y *= shrink_ratio x += heartx y += hearty return 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 - heartx) dy = ratio_y * (y - hearty) return x - dx, y - dydef shrink(x, y, ratio): force = -1 / (((x - heartx) ** 2 + (y - hearty) ** 2) ** 0.6) # 这个参数... dx = ratio * force * (x - heartx) dy = ratio * force * (y - hearty) return x - dx, y - dydef curve(p): return 2 * (2 * sin(4 * p)) / (2 * pi)def draw(main: tk.Tk, render_canvas: tk.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)
本文链接地址:https://www.jiuchutong.com/zhishi/297797.html 转载请保留说明!

上一篇:Vue中实现清空数组和清空el-table(vue清空input file的值)

下一篇:我的第一次edusrc漏洞挖掘 (三连挖)(我的第一次作文400字左右)

  • 丰网速运去哪里取件(中通快递 物流)

    丰网速运去哪里取件(中通快递 物流)

  • 苹果的屏幕镜像怎么连接电视机(苹果的屏幕镜像可以连ipad吗)

    苹果的屏幕镜像怎么连接电视机(苹果的屏幕镜像可以连ipad吗)

  • 淘宝红包会自动退回的吗(淘宝红包自动续费怎样关闭)

    淘宝红包会自动退回的吗(淘宝红包自动续费怎样关闭)

  • 怎么开启华为手机的小艺功能(怎么开启华为手机的小艺)

    怎么开启华为手机的小艺功能(怎么开启华为手机的小艺)

  • 如何让对方短信显示发送失败(如何让对方短信和微信发不出去)

    如何让对方短信显示发送失败(如何让对方短信和微信发不出去)

  • 电脑钉钉的缓存文件路径(电脑钉钉的缓存在哪里清除)

    电脑钉钉的缓存文件路径(电脑钉钉的缓存在哪里清除)

  • 抖音极速版一天能刷多少金币(抖音极速版一天最多能赚多少钱)

    抖音极速版一天能刷多少金币(抖音极速版一天最多能赚多少钱)

  • b站评论发不出去(b站评论发不出去用户等级太低)

    b站评论发不出去(b站评论发不出去用户等级太低)

  • b450m和b450主板区别(b450m系列主板对比)

    b450m和b450主板区别(b450m系列主板对比)

  • 内存卡里下了二十几首歌,却只能听十几首,怎么办(内存卡装上去了没用怎么办)

    内存卡里下了二十几首歌,却只能听十几首,怎么办(内存卡装上去了没用怎么办)

  • 手机绿光膜的危害(手机绿光膜对眼睛好吗)

    手机绿光膜的危害(手机绿光膜对眼睛好吗)

  • 拼多多一个月能退货吗(拼多多一个月能提现多少次)

    拼多多一个月能退货吗(拼多多一个月能提现多少次)

  • 华为p30能5g吗(华为p30能用5g网络吗)

    华为p30能5g吗(华为p30能用5g网络吗)

  • 微信小窗口怎么开启(微信小窗口怎么变大)

    微信小窗口怎么开启(微信小窗口怎么变大)

  • 抖音蓝v认证后有效果吗(抖音蓝v认证后昵称必须和公司名一样吗?)

    抖音蓝v认证后有效果吗(抖音蓝v认证后昵称必须和公司名一样吗?)

  • 怎么辨别华为手机是新机(怎么辨别华为手表是不是正品行货)

    怎么辨别华为手机是新机(怎么辨别华为手表是不是正品行货)

  • 苹果11pro美版是双卡吗(苹果12pro美版)

    苹果11pro美版是双卡吗(苹果12pro美版)

  • 淘宝海外版app叫什么(淘宝海外app下载)

    淘宝海外版app叫什么(淘宝海外app下载)

  • 苹果xs多重(苹果xs多重多少g)

    苹果xs多重(苹果xs多重多少g)

  • 抖音直播点亮花钱吗(抖音直播间点灯什么意思)

    抖音直播点亮花钱吗(抖音直播间点灯什么意思)

  • 荣耀20支持面部识别吗(荣耀20系列 有人脸识别吗)

    荣耀20支持面部识别吗(荣耀20系列 有人脸识别吗)

  • mate30 pro屏幕尺寸(mate30pro屏幕尺寸长宽)

    mate30 pro屏幕尺寸(mate30pro屏幕尺寸长宽)

  • oppoa9怎么关闭运行程序(oppoa11x怎么关闭运行)

    oppoa9怎么关闭运行程序(oppoa11x怎么关闭运行)

  • 快手怎么把自己的作品置顶(快手怎么把自己的作品删除)

    快手怎么把自己的作品置顶(快手怎么把自己的作品删除)

  • 微信群发所有人怎么发(微信群发所有人怎么撤回)

    微信群发所有人怎么发(微信群发所有人怎么撤回)

  • 安保服务税点
  • 教育费附加的计征依据包括
  • 材料费发票税点
  • 兼职劳务报酬需要发票吗
  • 固定资产直接计入成本的规定
  • 业务招待费扣除标准营业收入包括
  • 员工出差自驾怎么看待
  • 年平均资金占用额计算公式
  • 固定资产折旧购买日期还是使用日期呢
  • 税费漏报
  • 缴纳所得税费用的会计分录
  • 发生销售折让时为什么不冲减成本
  • 贸易类公司做产品代理账务如何处理
  • 购进出口商品的会计分录
  • 预付卡充值可以退吗
  • 滞纳金用留抵增值税交怎么处理
  • 从银行取现回单怎么取
  • 营改增后广告行业税率
  • 电梯维修增值税
  • 税务清算审计需要多久
  • 营改增后可以抵扣的范围
  • 公车私用情形有哪些
  • 留抵税额怎么计算
  • 外币折算差额怎么记账
  • 货币资金闲置对企业偿债能力的影响
  • 金融性负债总额是什么
  • 代销返还
  • 金融会计风险及防范措施研究目的和意义
  • 不交社保是否可以马上辞职
  • 劳务服务包括哪些范围
  • 工会经费如何计提会计分录
  • 生产成本结转库存商品的数量
  • 购买办公用品是否缴纳印花税
  • PHP:xml_parser_create_ns()的用法_XML解析器函数
  • win11笔记本如何让电池充电到100%
  • php变量如何定义
  • 房地产评估计费
  • 个人股权分红如何缴税
  • 应付债券的会计分录有哪些
  • 东京塔的意义
  • 使用php进行mysql数据库编程的基本步骤
  • wordpress自定义api
  • 一品红叶发黄咋回事儿
  • 员工工资扣工作服合法吗?
  • dom-to-image原理
  • 安装elementUI
  • 微信小程序实现支付功能
  • 酒店会计科目及账务处理视频
  • 应收账款资产负债表负数
  • python捕获异常继续执行
  • python画3d图形
  • 在建工程核算的内容有哪些
  • 进项税额是什么意思
  • 增值税一般纳税人企业对同属于增值税
  • 企业进项是什么意思
  • 固定资产公司
  • 长期待摊费用未摊销完一次性处理怎么走
  • 政府对失业人员补贴
  • 以前年度损益调整
  • 跨年收入会计分录
  • 去税局购买税盘要注意什么
  • 生产成本的主要构成要素
  • 公司增资需要哪些材料
  • 苹果15手机价格和图片颜色
  • win7旗舰版和家庭版哪个对电脑要求低
  • 操作系统安全配置一般包括哪些内容
  • win7开机屏幕狂闪不停怎么解决
  • android viewpager
  • bat删除所有文件
  • 深入理解关于教育两个大计
  • 纸嫁衣6攻略全文图解
  • 利用Matplotlib对一组数据进行分析
  • 基于flask框架
  • jquery怎么写
  • javascript基础笔记
  • 每天一篇小练笔30字
  • 个人所得税明细申报记录 厦门
  • 手机银行如何查询明细
  • 国家税务总局南京市秦淮区税务局纳税服务中心
  • 机动驳船是什么
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设