【Python表白系列】这个情人节送她一个漂浮的爱心吧(完整代码)

文章目录

  • 漂浮的爱心
  • 环境需求
  • 完整代码
  • 详细分析
  • 系列文章

漂浮的爱心

漂浮的爱心

环境需求

  • python3.11.4
  • PyCharm Community Edition 2023.2.5
  • pyinstaller6.2.0可选,这个库用于打包,使程序没有python环境也可以运行,如果想发给好朋友的话需要这个库哦~)

【注】

  • python环境搭建请见:https://want595.blog.csdn.net/article/details/134586653
  • pyinstaller使用教程见:https://want595.blog.csdn.net/article/details/134106807

完整代码

import turtle as tu
import random as ra
import mathtu.setup(1.0, 1.0)
tu.screensize(1.0, 1.0)
t = tu.Pen()
t.ht()
colors = ['pink']
class Heart():    #每个爱心(爱心类)def __init__(self):self.r = ra.randint(10,15)        #爱心的半径self.x = ra.randint(-1000,1000)   #爱心的横坐标self.y = ra.randint(-500,500)     #爱心的纵坐标self.f = ra.uniform(-3.14,3.14)   #爱心左右移动呈正弦函数self.speed = ra.randint(5,10)     #爱心移动速度self.color = ra.choice(colors)    #爱心的颜色self.outline = 1                  #爱心的外框大小(可不要)def move(self):                    #爱心移动函数if self.y <= 500:            #当爱心还在画布中时self.y += self.speed     #设置上下移动速度self.x += self.speed * math.sin(self.f)    #设置左右移动速度self.f += 0.1            #可以理解成标志,改变左右移动的方向else:                        #当爱心漂出了画布时,重新生成一个爱心self.r = ra.randint(10,15)self.x = ra.randint(-1000,1000)self.y = -500self.f = ra.uniform(-3.14,3.14)self.speed = ra.randint(5,10)self.color = ra.choice(colors)self.outline = 1def draw(self):       #画爱心函数,就是用turtle画爱心t.pensize(self.outline)t.penup()t.color(self.color)t.goto(self.x, self.y)t.pendown()t.begin_fill()t.fillcolor('pink')t.setheading(120)t.circle(self.r, 195)t.fd(self.r * 2.4)t.left(90)t.forward(self.r * 2.4)t.circle(self.r, 195)t.end_fill()
Hearts = []            #用列表保存所有爱心
for i in range(100):Hearts.append(Heart())
tu.bgcolor('black')
while True:           #开始漂浮tu.tracer(0)t.clear()for i in range(50):    #在画布中设置50个漂浮的爱心Hearts[i].move()Hearts[i].draw()tu.update()
tu.mainloop()

详细分析

这个程序是使用Python的turtle库画出漂浮的爱心效果。程序中定义了一个“爱心”类,每个爱心具有以下属性:

  • 半径:r
  • 横坐标:x
  • 纵坐标:y
  • 左右移动标志:f
  • 移动速度:speed
  • 颜色:color
  • 外框大小:outline

其中,半径、横坐标、纵坐标、左右移动标志、移动速度和颜色都是随机生成的,以达到多样化的效果。而外框大小则是可选的。

每个爱心还有两个功能:移动和画出。移动函数用来控制爱心的移动方向和速度,当爱心移出画布时,重新生成一个爱心。画出函数则是用turtle库画出爱心的形状。

程序在主程序中生成100个爱心,并在画布中随机漂浮。每次移动结束后,清空画布并重新画出所有爱心,以实现爱心漂浮的连续效果。

在具体实现过程中,turtle库的一些函数也被用到了。例如:

  • tu.setup(x,y):设置窗口大小为x和y。
  • tu.screensize(x,y):设置画布大小为x和y。
  • t.penup():将笔头移动,不画出形状。
  • t.pendown():将笔头移回,开始画出形状。
  • t.begin_fill():开始填充形状。
  • t.fillcolor(color):填充颜色。
  • t.end_fill():结束填充。

总体上,这个程序使用Python的turtle库,生成了漂浮的爱心效果。程序中运用了随机数和循环等编程知识,通过对爱心类的定义和实例化、以及对turtle库函数的使用,实现了动态的漂浮效果。

系列文章

Python表白系列文章目录直达链接
1无法拒绝的表白界面
2满屏表白代码https://want595.blog.csdn.net/article/details/134744711
3跳动的爱心https://want595.blog.csdn.net/article/details/134744191
4漂浮的爱心
5爱心光波
6流星雨
7玫瑰花

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

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

相关文章

21.Python 操作文件

目录 1. 认识文件和I/O2. 打开文件在异常处理语句中打开在上下文管理中打开 3.读取文件3. 写入文件4. 删除文件5. 复制文件6. 重命名文件7. 文件查找和替换 1. 认识文件和I/O 文件是存储在设备上的一组字符或字节序列&#xff0c;可以包含任何内容&#xff0c;它是数据的集合和…

SQL中left join、right join、inner join等的区别

一张图可以简洁明了的理解出left join、right join、join、inner join的区别&#xff1a; 1、left join 就是“左连接”&#xff0c;表1左连接表2&#xff0c;以左为主&#xff0c;表示以表1为主&#xff0c;关联上表2的数据&#xff0c;查出来的结果显示左边的所有数据&#…

【自动化测试】Selenium IDE脚本编辑与操作(了解)

之前&#xff0c;我们录制脚本时是录制鼠标和键盘的所有在浏览器的操作&#xff0c;那么脚本会出现多余的步骤&#xff0c;有时候我们需要手动填写脚本或修改脚本&#xff0c;所以我们有必要对selenium IDE脚本编辑与操作有所了解&#xff1b;&#xff08;采用录制的方式很容易…

Java+SSM+MySQL基于微信小程序的商城购物小程序(附源码 调试 文档)

基于微信小程序的商城购物小程序 一、引言二、国内外研究现状三、系统设计四、系统实现五、测试与评估六、结论七、界面展示八、源码获取 摘要&#xff1a; 本文介绍了一种基于微信小程序的商城购物小程序&#xff0c;该系统分为管理员和用户两种用户角色。管理员可以通过系统进…

流量内存cpu使用率使用工具

类似360工具球的工具 我提供了夸克下载喜欢的朋友可以直接下载使用 我用夸克网盘分享了「TrafficMonitor」&#xff0c;点击链接即可保存。打开「夸克APP」&#xff0c;无需下载在线播放视频&#xff0c;畅享原画5倍速&#xff0c;支持电视投屏。 链接&#xff1a;https://pan…

(详细教程)笔记本电脑安装Ubuntu系统

1.前言 老的小米笔记本淘汰了&#xff0c;装一下linux系统玩一下。 使用工具如下&#xff1a;一台小米笔记本pro15.6一个惠普32G U盘一个台式机用于下载镜像等资源 2.下载Ubuntu桌面版 cn.ubuntu.com/download/de… 这里我下载的是 22.04.3 LTS 3.下载烧录工具&#xff0c…

前端面试高频考点—TCP vs UDP

目录 简介&#xff1a; 区别&#xff1a; 应用选择&#xff1a; tcp为什么需要三次握手&#xff1f; 简介&#xff1a; TCP(传输控制协议)和UDP&#xff08;用户数据报协议&#xff09; TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议&#xff0c;是专门为了在不…

MySQL之性能分析和系统调优

MySQL之性能分析和系统调优 性能分析 查看执行计划 EXPLAIN EXPLAIN作为MySQL的性能分析神器&#xff0c;可以用来分析SQL执行计划&#xff0c;需要理解分析结果可以帮助我们优化SQL explain select … from … [where ...]TABLE 表名 查询的每一行记录都对于着一张表 id 该…

干了3年功能测试,技术回到原点

简单概括一下 先说一下自己的情况&#xff0c;普通本科&#xff0c;18年通过校招进入深圳某软件公司&#xff0c;干了3年多的功能测试&#xff0c;21年的那会&#xff0c;因为大环境不好&#xff0c;我整个人心惊胆战的&#xff0c;怕自己卷铺盖走人了&#xff0c;我感觉自己不…

推荐一款优秀的json在线格式化校验工具

www.bjson.chat 这个工具是目前见过最好用的JSON工具&#xff0c; 页面简单&#xff0c;支持text&#xff0c;tree两种显示格式&#xff0c;关键词高亮显示支持亮白和暗黑两种风格最主要的是如果要格式化很长的json的话&#xff0c;这个工具还可以全屏显示&#xff0c;简直不…

非标设计之螺纹选型

目录 一、螺纹种类二、 螺纹加工&#xff1a;第一大类&#xff1a;螺纹切削第二大类&#xff1a;螺纹滚压三、螺丝钻孔和选型&#xff1a; 一、螺纹种类 一、螺纹种类 按牙型可分为三角形、梯形、矩形、锯齿形和圆弧螺纹&#xff1b; 按螺纹旋向可分为左旋和右旋&#xff1b;…

电脑如何录音?适合初学者的详细教程

“电脑怎么录音呀&#xff1f;参加了一个学校举办的短视频大赛&#xff0c;视频拍摄都很顺利&#xff0c;音乐却出了问题&#xff0c;朋友说可以用电脑录制一段音乐应付一下&#xff0c;可是我不会操作&#xff0c;有哪位大佬教教我&#xff01;” 声音是一种强大的媒介&#…

七天.NET 8操作SQLite入门到实战 - 第五天引入SQLite-net ORM并封装常用方法(SQLiteHelper)

前言 上一章节我们搭建好了EasySQLite的前后端框架&#xff0c;今天我们的主要任务是在后端框架中引入SQLite-net ORM并封装常用方法&#xff08;SQLiteHelper&#xff09;。 七天.NET 8操作SQLite入门到实战详细教程 第一天 SQLite 简介第二天 在 Windows 上配置 SQLite环境…

C语言每日一题(43)旋转链表

力扣 61 旋转链表 题目描述 给你一个链表的头节点 head &#xff0c;旋转链表&#xff0c;将链表每个节点向右移动 k 个位置。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5], k 2 输出&#xff1a;[4,5,1,2,3]示例 2&#xff1a; 输入&#xff1a;head [0,1,2], …

⭐ Unity 开发bug —— 打包后shader失效或者bug (我这里用Shader做两张图片的合并发现了问题)

1.这里我代码没啥问题~~~编辑器里也没毛病 void Start(){// 加载底图和上层图片string backgroundImagePath Application.streamingAssetsPath "/background.jpg";Texture2D backgroundTexture new Texture2D(2, 2);byte[] backgroundImageData System.IO.File.R…

永恒之蓝漏洞复现

网安2211-202221336029 目录 1.介绍&#xff1a; 2.操作&#xff1a; 1.实验环境&#xff1a; 2.渗透实现 3.实现后操作 3.总结&#xff1a; 1.介绍&#xff1a; 1.漏洞描述&#xff1a;Eternalblue通过TCP端口445和139来利用SMBv1和NBT中的远程代码执行漏洞&#xff0…

【无标题】mmocr在云服务器上

这里写目录标题 1、创建虚拟环境2、切换和退出conda虚拟环境3. 显示、复制&#xff08;克隆&#xff09;、删除虚拟环境4、删除环境安装指示中 cd进项目文件夹开始训练模型&#xff08;python XXX.py | tee record.txt 记录训练结果&#xff09;如何在Linux服务器上安装Anacond…

数据结构--->单链表

文章目录 链表链表的分类 单链表单链表的存储结构单链表主要实现的接口函数单链表尾插动态申请新节点单链表头插单链表的尾删单链表的头删在指定位置之前插入单链表查找插入 在指定位置之后插删除指定位置元素删除指定位置之后的元素顺序输出链表销毁单链表 顺序表和单链表的区…

Redis主从与哨兵架构详解

目录 主从架构 主从环境搭建 主从复制流程 1. 全量复制 2. 部分复制 主从风暴 哨兵架构 概念 哨兵环境搭建 主从架构 主从环境搭建 1. 复制一份redis.conf文件, 修改下面几行配置 port 6380 pidfile /var/run/redis_6380.pid logfile "6380.log" dir /usr/…

基于A*的网格地图最短路径问题求解

基于A*的网格地图最短路径问题求解 一、A*算法介绍、原理及步骤二、Dijkstra算法和A*的区别三、A*算法应用场景四、启发函数五、距离六、基于A*的网格地图最短路径问题求解实例分析完整代码 七、A*算法的改进思路 一、A*算法介绍、原理及步骤 A*搜索算法&#xff08;A star al…