python爱心代码大全

news/2024/12/27 19:52:54/文章来源:https://www.cnblogs.com/xiaohonmao/p/18636618

python爱心代码

 

详细分析
这段代码实现了一个用Python的Tkinter库绘制跳动爱心的程序,其中包括了一个弹窗来询问是否做一个人的女朋友,如果同意则会显示跳动的爱心,如果拒绝则会重新询问。(无法解决,只能同意哦~)

下面对代码进行详细分析:

1.导入必要的库
首先,导入了一些必要的Python库,包括Tkinter库以及一些数学函数库和常量库。这些库是用于程序中需要用到的功能,例如绘图、随机数生成、数学函数计算等。

2.设置常量
接下来,设置了一些常量,包括了窗口的宽度和高度、爱心的颜色、以及心形的大小等。

3.定义心形类
定义了一个名为Heart的类,其中包括了一些函数和变量。在`__init__`函数中,首先定义了原始爱心坐标集合(`self._points`)、边缘扩散效果点坐标集合(`self._edge_diffusion_points`)、中心扩散效果点坐标集合(`self._center_diffusion_points`)以及每帧动态点坐标的集合(`self.all_points`)。然后调用了`build`函数生成原始爱心的坐标集合、边缘扩散效果点坐标集合和中心扩散效果点坐标集合。在`build`函数中,首先生成了一定量的原始爱心坐标,并将其加入`self._points`集合中。然后对于每一个原始爱心坐标,随机生成三个偏移量,通过`scatter_inside`函数将其加入到边缘扩散效果点坐标集合中。最后,随机从原始爱心坐标中选取一个,通过`shrink`函数将其缩小到某一个半径内,并将其加入到中心扩散效果点坐标集合中。

在另一个函数`calc`中,定义了半径的缩放比例、光晕的半径和数量,并生成了一定量的光晕点并将其加入到`self.all_points`中。然后,针对每一个点集合,通过调用`calc_position`函数计算其移动后的坐标,将其加入到`all_points`中。在`calc_position`函数中,根据当前点和心形的位置计算出力的大小与方向,并根据这个大小与方向随机移动一些距离。最后,在`render`函数中,将所有点集合中的点在画布上绘制出来。

4.绘制爱心
通过`draw`函数不停地在画布上绘制出变化的爱心,实现了动态爱心的效果。

5.问询窗口
在主函数中,首先创建了一个名为root的Tkinter窗口,并设置其标题和大小。然后创建了两个问询按钮的函数(同意和拒绝),并分别在窗口中设置其位置和响应函数。定义了一个函数`closeWindow`用于在点击窗口关闭按钮时提醒用户不能通过逃避来解决问题。最后,通过调用`mainloop`函数进入主循环,等待用户的响应。

总之,这段代码实现了一个简单的交互式动态爱心程序,可以通过相应的函数绘制跳动的爱心,并通过弹窗与用户进行简单的互动。

链接:https://pan.xunlei.com/s/VOF6waHayF5B6KsYWx4mu4nNA1?pwd=w2b5#


 

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

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

相关文章

C#使用Tesseract C++ API过程记录

Tesseract Tesseract 是一个开源的光学字符识别(OCR)引擎,最初由 Hewlett-Packard(惠普)实验室开发,后来由 Google 收购并继续维护和开源贡献。Tesseract 可以识别多种语言的文字,广泛应用于将图片或扫描文档中的文本内容转换成可编辑的文本格式。随着深度学习技术的发展…

[攻防世界]信号不好先挂了

[攻防世界]信号不好先挂了[攻防世界]信号不好先挂了 分析 又是图片隐写我也先挂了…… 解题save bin 保存后的zip还需要修复一下才能解压缩……怎么里面又是这张图片 Misc隐写术 - Scr1pt? - 博客园两张一样图片还可在stegslove合成图片 用BlindWaterMark这个工具一直报错(麻…

10. 组合框控件

一、组合框控件组合框控件主要以列表形式为用户提供选择的项目,用户可以从中选择项。PySide6 中常用的列表类控件主要有 QComboBox(下拉组合框控件)、QFontComBox(字体组合框控件)。我们可以在终端中使用 pip 安装 pyside6 模块。 pip install pyside6二、下拉组合框控件下…

git review错误: is not registered in your account, and you lack forge committer permission

肉眼看上去,远端的邮箱和自己输入的邮箱是一致的 罪魁祸首是 git commit --amend 里面的邮箱带了中文引号,导致本地和远端邮箱名称不一致 从git review 命令报错email address那一行的奇怪字符可以看出端倪如上图所示,引号不是标准的linux字符

2.1基本选择器

选择器: 作用:选择页面上的某一个或者某一类元素 2.1基本选择器:1.标签选择器:选择一类标签 2.类选择器 class:选中所有class属性一致的标签(可以跨标签) .class名称{} 3.id选择器:id全局唯一 #id名称{} 不遵循就近原则:id>class>标签

痞子衡嵌入式:MCUXpresso for VS Code开发环境搭建及SDK工程导入

大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是MCUXpresso for VS Code开发环境搭建及SDK工程导入。MCUXpresso IDE(包括其前身 LPCXpresso IDE、Kinetis Design Studio)是恩智浦软件团队持续开发了十多年的免费集成开发环境,现在功能已经相当完善,IDE…

3.选择器

选择器: 作用:选择页面上的某一个或者某一类元素 3.1基本选择器:1.标签选择器:选择一类标签 2.类选择器 class:选中所有class属性一致的标签(可以跨标签) .class名称{} 3.id选择器:id全局唯一 #id名称{} 不遵循就近原则:id>class>标签

2.CSS的三种导入方式

1.标签内部 2.head里面 3.css文件 1.链接式:html2.导入式:CSS2.1特有 优先级:行内样式>内部样式=外部样式(后导入的覆盖前导入的--就近原则)

谷歌Pixel 2 刷安卓10系统 APatch获取Root权限

事前准备手机需要解Bootloader锁 , 打开OEM解锁,开启USB调试链接电脑下载Platform-Tools # 地址 https://developer.android.google.cn/tools/releases/platform-tools?hl=zh-cn检查是否需要需要安装Android驱动刷机下载先刷机包 https://developers.google.cn/android/image…

六、汇编实战

打印:hello world 在屏幕上输出字符 mov dl,a ; 将要打印的字符放到dl中 mov ah, 02h ; 设置显示字符的功能号 int 21h ; 调用DOS中断,打印字符在屏幕上输出字符串 mov ah,09h ;设置显示字符串的功能号 int 21H …

可信执行环境

一、隐私计算与可信执行环境 1. 背景:随着云计算和大数据的普及,用户之间需要进行隐私数据的共享与协作,这些数据被上传到云端进行计算和处理。 但是,由于隐私数据交由不可信的第三方存储和管理,用户隐私数据面临被泄露的风险,公民的生命和财产安全乃至国家的安全都受到不…

Foldermove 轻松地把电脑里的软件搬到另一个硬盘,甚至是U盘里

Foldermove 大家好,今天我要介绍一个超实用的小工具,它能让你轻松地把电脑里的软件搬到另一个硬盘,甚至是U盘里,听起来是不是很酷? ●软件简介 软件名:FolderMove 体积:只有201kb,轻得像羽毛。 版本:v3.0 适用系统:Windows ●使用体验 这个小工具,体积小到几乎可以…