情人节到了,写一份爱心程序(python)

前言

情人节到了,写一份爱心代码给喜欢的人呀

公式

首先我们介绍下爱心的公式的参数方程:

x = 16 s i n 3 ( t ) x = 16sin^3(t) x=16sin3(t)
y = 13 c o s ( t ) − 5 c o s ( 2 t ) − 2 c o s ( 3 t ) − c o s ( 4 t ) y = 13cos(t) - 5cos(2t) - 2cos(3t) - cos(4t) y=13cos(t)5cos(2t)2cos(3t)cos(4t)

根据这个公式,我们可以实现基本的代码
首先使用 n p . l i n s p a c e ( a , b , n u m ) np.linspace(a, b, num) np.linspace(a,b,num) 这个函数生成 a到b区间内的num个数,这些数作为参数t,然后生成对应x,y的值,

t = np.linspace(0, 2 * np.pi, 100)
x = 16 * np.sin(t)**3
y = 13 * np.cos(t) - 5 * np.cos(2*t) - 2 * np.cos(3*t) - np.cos(4*t)

然后我们将生成的点平铺在二维坐标上

plt.plot(x, y, color='red')
plt.title('Heart ')
plt.axis('equal')  # 保持坐标轴相等
plt.show()

最终效果
在这里插入图片描述
完整代码

import matplotlib.pyplot as plt
import numpy as np# 生成爱心形状的数据点
t = np.linspace(0, 2 * np.pi, 100)
x = 16 * np.sin(t)**3
y = 13 * np.cos(t) - 5 * np.cos(2*t) - 2 * np.cos(3*t) - np.cos(4*t)# 绘制爱心
plt.plot(x, y, color='red')
plt.title('Heart ')
plt.axis('equal')  # 保持坐标轴相等
plt.show()

进阶

我们使用pygame创建一个界面,在界面上随机生成不同颜色的爱心

初始化pygame:

# 初始化 Pygame
pygame.init()# 设置窗口大小
width, height = 800, 600
screen = pygame.display.set_mode((width, height))
pygame.display.set_caption('Random Hearts')

编写绘制爱心的函数,根据形参x,y确定位置,color确定颜色

def draw_heart(x, y, color):# 生成爱心形状的直角坐标数据点t = np.linspace(0, 2 * np.pi, 1000)heart_x = x + 16 * np.sin(t)**3heart_y = y - (13 * np.cos(t) - 5 * np.cos(2*t) - 2 * np.cos(3*t) - np.cos(4*t))# 绘制爱心形状pygame.draw.lines(screen, color, False, list(zip(heart_x, heart_y)), 2)

在主循环中一直生成随机的位置和颜色,绘制pygame界面,然后刷新显示

# 主循环
running = True
while running:for event in pygame.event.get():if event.type == pygame.QUIT:running = False# 随机生成爱心的位置和颜色heart_x = random.randint(0, width)heart_y = random.randint(0, height)heart_color = (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))# 在随机位置绘制不清空的爱心draw_heart(heart_x, heart_y, heart_color)# 刷新屏幕pygame.display.flip()# 控制帧率pygame.time.Clock().tick(1)

效果
在这里插入图片描述

完整代码

import pygame
import sys
import random
import numpy as np# 初始化 Pygame
pygame.init()# 设置窗口大小
width, height = 800, 600
screen = pygame.display.set_mode((width, height))
pygame.display.set_caption('Random Hearts')def draw_heart(x, y, color):# 生成爱心形状的直角坐标数据点t = np.linspace(0, 2 * np.pi, 1000)heart_x = x + 16 * np.sin(t)**3heart_y = y - (13 * np.cos(t) - 5 * np.cos(2*t) - 2 * np.cos(3*t) - np.cos(4*t))# 绘制爱心形状pygame.draw.lines(screen, color, False, list(zip(heart_x, heart_y)), 2)# 主循环
running = True
while running:for event in pygame.event.get():if event.type == pygame.QUIT:running = False# 随机生成爱心的位置和颜色heart_x = random.randint(0, width)heart_y = random.randint(0, height)heart_color = (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))# 在随机位置绘制不清空的爱心draw_heart(heart_x, heart_y, heart_color)# 刷新屏幕pygame.display.flip()# 控制帧率pygame.time.Clock().tick(1)# 退出程序
pygame.quit()
sys.exit()

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

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

相关文章

飞天使-k8s知识点17-kubernetes实操2-pod探针的使用

文章目录 探针的使用容器探针启动实验1-启动探针的使用-startupprobeLiveness Probes 和 Readiness Probes演示若存在started.html 则进行 探针的使用 kubectl edit deploy -n kube-system corednslivenessprobe 的使用 livenessProbe:failureThreshold: 5httpGet:path: /heal…

rtt设备io框架面向对象学习-pwm设备

目录 1.pwm设备基类2.pwm设备基类的子类3.初始化/构造流程3.1设备驱动层3.2 设备驱动框架层3.3 设备io管理层 4.总结5.使用 1.pwm设备基类 此层处于设备驱动框架层。该层的类也是抽象类。 在/ components / drivers / include / drivers 下的rt_drv_pwm.h定义了如下pwm设备基…

第三百四十八回

文章目录 1. 概念介绍2. 使用方法2.1 List2.2 Map2.3 Set 3. 示例代码4. 内容总结 我们在上一章回中介绍了"convert包"相关的内容,本章回中将介绍collection.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 我们在本章回中介绍的内容是col…

华为OD机试真题-最大N个数与最小N个数的和-2024年OD统一考试(C卷)

题目描述: 给定一个数组,编写一个函数来计算它的最大N个数与最小N个数的和。你需要对数组进行去重。 说明: 数组中数字范围[0, 1000] 最大N个数与最小N个数不能有重叠,如有重叠,输入非法返回-1 输入非法返回-1 输入描述: 第一行输入M, M标识数组大小\n第二行输入M个数,标…

【无人机】PIXHAWK、PX4、APM区别

PIXHAWK、PX4、APM APM固件专为Arduupilot开发的固件,现也用于PIXHAWK。有ArduCopter社区支撑、开放,功能全、迭代升级快,适合直接用。由于有较多的历史兼容性需求,软件代码体系相对杂乱,还封装了PX4的内核&#xff0c…

【数据结构】无向图创建邻接矩阵、深度优先遍历和广度优先遍历(C语言版)

无向图创建邻接矩阵、深度优先遍历和广度优先遍历 一、概念解析: (1)无向图:(2)邻接矩阵: 二、创建邻接矩阵:三、深度遍历、广度遍历 (1)深度遍历概念&#x…

学习笔记18:Codeforces Round 923 (Div. 3)

D 预处理,ans[i]记录一a[i]后面第一个与a[i]相等的值(如果没有,则需要特殊判断或者初始化成一个极大值) 每次询问时,可以直接看ans[l]是否大于r,如果大于则不存在,如果小于则存在 #include&l…

用HTML5实现动画

用HTML5实现动画 要在HTML5中实现动画&#xff0c;可以使用以下几种方法&#xff1a;CSS动画、使用<canvas>元素和JavaScript来实现动画、使用JavaScript动画库。重点介绍前两种。 一、CSS动画 CSS3 动画&#xff1a;使用CSS3的动画属性和关键帧&#xff08;keyframes&…

Fluke ADPT 连接器新增对福禄克万用 Fluke 17B Max 的支持

所需设备&#xff1a; 1、Fluke ADPT连接器&#xff1b; 2、Fluke 17B Max&#xff1b; Fluke 17B Max拆机图&#xff1a; 显示界面如下图&#xff1a; 并且可以将波形导出到EXCEL: 福禄克万用表需要自己动手改造&#xff01;&#xff01;&#xff01;

Spring Boot 笔记 020 redis集成

1.1 安装redis Windows 下 Redis 安装与配置 教程_redis windows-CSDN博客 2.1 引入redis坐标 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency> 2.2 配置…

无人机导航技术,无人机导航理论基础,无人机导航技术应用发展详解

惯性/卫星定位组合是一种比较理想的组合导航系统。在无人机导航领域&#xff0c;多年来惯性/卫星定位组合导航系统的研究一直受到普遍的关注&#xff0c;大量的理论研究成果得到实际应用。 常见的几类导航系统 单一导航 卫星导航系统 、多普勒导航、惯性导航系统(INS) 、图形…

【Java多线程】对进程与线程的理解

目录 1、进程/任务&#xff08;Process/Task&#xff09; 2、进程控制块抽象(PCB Process Control Block) 2.1、PCB重要属性 2.2、PCB中支持进程调度的一些属性 3、 内存分配 —— 内存管理&#xff08;Memory Manage&#xff09; 4、线程&#xff08;Thread&#xff09;…

蓝桥杯每日一题(python)

##斐波那契数列的应用 --- 题目斐波那契 题目&#xff1a; 如果数组 A (a0, a1, , an−1) 满足以下条件&#xff0c;就说它是一个斐波那契数组&#xff1a; 1. n ≥ 2&#xff1b; 2. a0 a1&#xff1b; 3. 对于所有的 i(i ≥ 2)&#xff0c;都满足 ai ai−1 ai−2…

阿里云幻兽帕鲁服务器更新了1.4之后,进游戏要重新创建角色,怎么解决?

阿里云幻兽帕鲁服务器更新了1.4之后&#xff0c;进游戏要重新创建角色&#xff0c;怎么解决&#xff1f; 其实这个问题的主要原因可能还是因为前后的APPID不一致导致。 因为Palworld服务端有两种&#xff0c;一种是有APPID&#xff0c;还有一种是没有APPID。 参考这篇教程&am…

曝某头部电商企业急招鸿蒙开发高手 年薪超过百万

近日某头部电商企业急需鸿蒙开发高手&#xff0c;提供高达100万的年薪&#xff0c;工作地点位于北京。 随着鸿蒙生态不断发展壮大&#xff0c;越来越多的企业开始加入其中&#xff0c;对鸿蒙OS开发工程师的需求也越来越迫切。据新浪科技报道&#xff0c;多家互联网公司相继发布…

gem5学习(20):替换策略——Replacement Policies

目录 一、Random 二、Least Recently Used (LRU) 三、Tree Pseudo Least Recently Used (TreePLRU) 四、Bimodal Insertion Policy (BIP) 五、LRU Insertion Policy (LIP) 六、Most Recently Used (MRU) 七、Least Frequently Used (LFU) 八、First-In, First-Out (FIF…

cefsharp121(cef121.3.7Chromium121.0.6167.160)升级测试及其他H264版本

一、版本说明 1.1 本此版本 此版本CEF 121.3.7+g82c7c57+chromium-121.0.6167.160 / Chromium 121.0.6167.160 1.2 其他支持H264版本 支持H264推荐版本:V100,V109,V111,V119版本,其他V114,V115,V108,V107 支持win7/win8/win8.1最后版本v109.x 支持NET4.5.2最后版本v114.x …

如何合理评估信号过孔的残桩效应--Via Stub

设计中&#xff0c;之所以会去考察信号过孔的残桩效应&#xff08;Via Stub&#xff09;&#xff0c;是因为它的存在导致了不需要的频率谐振&#xff0c;当这些谐振出现在所关注的信号通道的插入损耗中时&#xff0c;就会引发较为严重的信号完整性&#xff08;SI&#xff09;问…

python---Pixiv排行榜图片获取(2024.2.16)

1.提示&#xff1a; 使用需要安装各种import的包&#xff0c;都是很基础的包&#xff0c;直接安装即可。 自备梯子 。 2.严肃警告 本程序仅可用作个人爱好&#xff0c;商业用途严禁&#xff01;请自觉遵守君子协定robots.txt不要给网址过大的压力&#xff0c;每天以及同一时段…

Springboot --- 使用国内的 AI 大模型 对话

实在是不知道标题写什么了 可以在评论区给个建议哈哈哈哈 先用这个作为标题吧 尝试使用 国内给出的 AI 大模型做出一个 可以和 AI 对话的 网站出来 使用 智普AI 只能 在控制台中输出 对应的信息 不如就做一个 maven 的 项目调用对应的API https://open.bigmodel.cn/dev/api#g…