情人节到了,写一份爱心程序(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()相关文章:
情人节到了,写一份爱心程序(python)
前言 情人节到了,写一份爱心代码给喜欢的人呀 公式 首先我们介绍下爱心的公式的参数方程: x 16 s i n 3 ( t ) x 16sin^3(t) x16sin3(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) - 2co…...
Java图形化界面编程—— 基本组件和对话框 笔记
2.5 AWT中常用组件 2.5.1 基本组件 组件名功能ButtonButtonCanvas用于绘图的画布Checkbox复选框组件(也可当做单选框组件使用)CheckboxGroup选项组,用于将多个Checkbox 组件组合成一组, 一组 Checkbox 组件将只有一个可以 被选中…...
使用Docker,拉取Nginx镜像,创建并运行Nginx容器
查看DockerHub,拉取Nginx镜像,创建并运行Nginx容器。 在DockerHub中搜索Ningx镜像,查看镜像名称 拉取Nginx镜像 [rootservice ~]# systemctl start docker [rootservice ~]# mkdir -p /etc/docker [rootservice ~]# tee /etc/docker/daemo…...
InstantBox:开箱即用的临时 Linux 环境
在云计算和虚拟化技术日益成熟的今天,我们有时需要一个快速、简单、临时的 Linux 环境来进行各种任务。这就是 InstantBox 的用武之地。 什么是 InstantBox? InstantBox 是一个开源项目,它可以快速启动临时的 Linux 系统,并提供…...
【面试】国家公务员考试复试,面试内容准备方向(非技术面试考察点)
【面试】国家公务员考试复试,面试内容准备方向(非技术面试考察点) 说明: csdn无法发部分考试相关例题(提示涉z),所以本文主要还是针对评分标准和仪表等相关因素。 文章目录 1、面试试卷与评分1.…...
点餐|外卖订餐小程序|基于微信小程序的外卖订餐系统设计与实现(源码+数据库+文档)
点餐|外卖订餐小程序目录 目录 基于微信小程序的外卖订餐系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、用户微信端功能模块 2、管理员服务端功能模块 3、商家务端功能模块 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考 七、最新计算机毕设…...
使用Cargo创建、编译与运行Rust项目
在 Rust 开发中,Cargo 是一个非常重要的工具,它负责项目的构建、管理和依赖管理。以下是如何使用 Cargo 创建、编译和运行 Rust 项目的详细步骤。 1. 创建新项目 首先确保你已经在计算机上安装了 Rust 和 Cargo。然后,在命令行中输入以下命…...
Js中toFixed(2)精度问题的原因及解决办法
toFixed() 方法可把 Number 四舍五入为指定小数位数的数字。例如将数据Num保留2位小数,则表示为:toFixed(Num);但是其四舍五入的规则与数学中的规则不同,使用的是银行家舍入规则,银行家舍入:所谓银行家舍入…...
【医学大模型 知识增强】SMedBERT:结构化语义知识 + 医学大模型 = 显著提升大模型医学文本挖掘性能
SMedBERT:结构化语义知识 医学大模型 显著提升医学文本挖掘任务性能 名词解释结构化语义知识预训练语言模型医学文本挖掘任务 提出背景具体步骤提及-邻居混合注意力机制实体嵌入增强实体描述增强三元组句子增强 提及-邻居上下文建模域内词汇权重学习领域自监督任务…...
Python爬虫:安全与会话管理
源码分享 https://docs.qq.com/sheet/DUHNQdlRUVUp5Vll2?tabBB08J2 在进行网站数据抓取时,会话管理是保持与目标网站通信连续性的一种机制。这对于模拟登录、保持用户状态、维护cookie等场景至关重要。同时,安全性也是我们不可忽视的一个方面…...
[Python进阶] 识别验证码
11.3 识别验证码 我们再开发某些项目的时候,如果遇到要登录某些网页,那么会经常遇到输入验证码的情况,而每次人工输入验证码的话,比较浪费时间。于是,可以通过调用某些接口进行识别。 11.3.1 调用百度文字识别接口 …...
华为问界M9:全方位自动驾驶技术解决方案
华为问界M9的自动驾驶技术采用了多种方法来提高驾驶的便利性和安全性。以下是一些关键技术: 智能感知系统:问界M9配备了先进的传感器,包括高清摄像头、毫米波雷达、超声波雷达等,这些传感器可以实时监测车辆周围的环境࿰…...
Java 与 JavaScript 的区别与联系
Java 和 JavaScript 两种编程语言在软件开发中扮演着重要的角色。尽管它们都以“Java”命名,但实际上它们是完全不同的语言,各有其独特的特点和用途。本文将深入探讨 Java 和 JavaScript 的区别与联系,帮助大家更好地理解它们在编程世界中的作…...
React18原理: 时间分片技术选择
渲染1w个节点的不同方式 1 )案例1:一次渲染1w个节点 <div idroot><div><script type"text/javascript">function randomHexColor() {return "#" ("0000" (Math.random() * 0x1000000 << 0).toS…...
【QT+QGIS跨平台编译】之三十三:【SpatiaLite+Qt跨平台编译】(一套代码、一套框架,跨平台编译)
文章目录 一、SpatiaLite介绍二、文件下载三、文件分析四、pro文件五、编译实践一、SpatiaLite介绍 SpatiaLite是一个开源的空间数据库库,它是在SQLite关系数据库管理系统上扩展而来的。SpatiaLite提供了对地理空间数据的存储、查询和分析功能,使得开发人员可以在应用程序中…...
【JavaEE】_CSS选择器
目录 1. 基本语法格式 2. 引入方式 2.1 内部样式 2.2 内联样式 2.3 外部样式 3. 基础选择器 3.1 标签选择器 3.2 类选择器 3.3 ID选择器 4. 复合选择器 4.1 后代选择器 4.2 子选择器 4.3 并集选择器 4.4 伪类选择器 1. 基本语法格式 选择器若干属性声明 2. 引入…...
Flaurm实现中文搜索
目录 摘要需求本文涉及环境情况如下解决方案最终效果文章其他链接: 摘要 Flarum本身对中文支持并不理想,但随着版本更新,逐渐加强了对中文的优化。然而在1.8.5版本,却还是不支持中文搜索网站文章内容。作者在检索了全网教程&#…...
STM32自学☞定时器外部时钟案例
本案例主要是通过外部时钟实现对射式红外传感器的计次,在oled显示屏上显示CNT的次数 timer_interrupt.c文件 #include "stm32f10x.h" #include "stm32f10x_tim.h" #include "timer_interrupt.h" #include "stdint.h" …...
PyCharm中无法调用ffmpeg命令行
问题前提 ffmpeg在系统中正确安装,且在cmd命令行可以正确使用。但在PyCharm中无法调用! 但是在外部系统cmd中使用确是正常的~ 问题关键 我的python解释器使用的是anaconda的虚拟环境,导致在外部环境配置的path路径没有包括在内 解决办法…...
Go基础知识学习-习题题解
这里给出来官方教程中部分题目的答案,都是自己练习的时候写的,可以参考来提供思路。 当然了,练习还是最好自己写,要不对相关的知识点不可能理解透彻。 Exercise: Loops and Functions package mainimport ("fmt" )fu…...
DxO PureRAW中文破解版
🔥RAW图像降噪神器!DxO PureRAW中文破解版来了!🚀哈喽,各位摄影老铁们好呀!👋👋 今天给大家安利一款超级硬核的RAW图像处理工具—— ✨ DxO PureRAW ✨ 这可是 DxO Labs 旗下的行业领…...
金融涉外业务赋能,守护跨境金融安全
随着跨境金融业务的快速发展,银行、保险等金融机构的涉外业务日益增多,外籍客户开户、跨境转账、保险投保等业务,都需要进行严格的证件核验与身份确认。传统的人工核验模式,不仅效率低下,还难以应对复杂的证件伪造手段…...
高通机器人RB5平台:从RAM转储分析到安全启动的实战配置指南
1. 高通RB5平台RAM转储分析实战 第一次拿到高通RB5开发板时,遇到系统崩溃完全不知道从何下手。后来发现RAM转储分析就像给机器人做"脑部CT",能完整记录崩溃瞬间的系统状态。这里分享我摸索出来的完整操作流程。 1.1 环境准备与工具链配置 工欲…...
ZYNQ启动太慢?从FSBL到U-Boot的完整性能分析与优化实战
ZYNQ启动太慢?从FSBL到U-Boot的完整性能分析与优化实战 在嵌入式系统开发中,启动时间往往是衡量产品性能的关键指标之一。对于基于Xilinx ZYNQ平台的产品,从按下电源键到系统完全就绪,这中间经历的毫秒级延迟可能决定着一个工业控…...
HLK-V20语音模块的智能家居实战:如何用STM32控制灯、电机并连接ESP8266上云
HLK-V20语音模块的智能家居实战:STM32联动控制与云端接入全解析 在智能家居DIY领域,语音控制早已从概念走向现实。HLK-V20作为一款高性价比的纯离线语音识别模块,配合STM32的丰富外设控制能力,可以构建出响应迅速、隐私安全的本地…...
电子项目布线指南:从导线、电缆到连接器的核心选型与避坑
1. 项目概述:为什么“线”比“电路”本身更重要?干了十几年电子项目,从学生时代的第一个闪烁LED,到后来复杂的机器人系统和工业控制器,我踩过最多的坑,往往不是芯片选型或代码逻辑,而是那些看起…...
【亲测免费】 PLC1200四路抢答器程序:打造高效公平的抢答体验
PLC1200四路抢答器程序:打造高效公平的抢答体验 【下载地址】PLC1200四路抢答器程序 本仓库提供了一个完整的S7-1200四路抢答器程序,可以直接下载并使用。该程序适用于需要进行四路抢答的场景,如竞赛、培训等。程序经过精心设计和测试&#x…...
【亲测免费】 开启高效OCR之旅:Delphi集成Tesseract 4.0完全指南
开启高效OCR之旅:Delphi集成Tesseract 4.0完全指南 【下载地址】Delphi调用Tesseract4.0进行OCR识别已打包全部DLL 本仓库提供了通过Delphi环境调用Google的Tesseract OCR引擎4.0版本的示例代码和所有必要的DLL文件。Tesseract是一款强大的开源文字识别系统…...
【免费下载】 轻松连接Hive数据库:Hive JDBC驱动包下载指南
轻松连接Hive数据库:Hive JDBC驱动包下载指南 【下载地址】HiveJDBC驱动包下载 该资源文件是一个压缩包,使用zip格式进行压缩,方便用户直接解压并获取Hive JDBC驱动。解压后即可使用其中的hive-jdbc-uber-2.6.5.0-292.jar文件 项目地址: ht…...
解放Windows潜能:APK安装器让安卓应用在电脑上完美运行
解放Windows潜能:APK安装器让安卓应用在电脑上完美运行 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否曾梦想过在Windows电脑上直接运行手机应用&am…...
