Python绘制玫瑰花

news2024/9/29 8:08:00

程序员的节日到了,给各位程序员花一朵玫瑰吧。

from matplotlib import cm
import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure()
ax = fig.add_subplot(projection='3d')
[x, t] = np.meshgrid(np.array(range(25)) / 24.0, np.arange(0, 575.5, 0.5) / 575 * 17 * np.pi - 2 * np.pi)
p = (np.pi / 2) * np.exp(-t / (8 * np.pi))
u = 1 - (1 - np.mod(3.6 * t, 2 * np.pi) / np.pi) ** 4 / 2
y = 2 * (x ** 2 - x) ** 2 * np.sin(p)
r = u * (x * np.sin(p) + y * np.cos(p))
surf = ax.plot_surface(r * np.cos(t), r * np.sin(t), u * (x * np.cos(p) - y * np.sin(p)), rstride=1, cstride=1,
                       cmap=cm.Reds_r, linewidth=0, antialiased=True)
# 自己设置文字内容和显示设置
ax.text(-0.3, 0, 1.2, 'love you ~', color='red')
plt.axis('off')
plt.show()
  • ax = fig.add_subplot(projection='3d')是用于创建一个三维坐标系的子图。在这个子图中,可以使用plot3D()函数来绘制三维图形。同时,可以使用set_xlabel()、set_ylabel()和set_zlabel()函数来设置坐标轴的标签,使用axis()函数来设置坐标轴的可见性,使用grid()函数来设置网格的可见性,使用w_xaxis、w_yaxis和w_zaxis属性来设置坐标轴的背景颜色。
  • [x, t] = np.meshgrid(np.array(range(25)) / 24.0, np.arange(0, 575.5, 0.5) / 575 * 17 * np.pi - 2 * np.pi)该函数用于生成一个二维的坐标矩阵,其中x轴和t轴的取值分别由np.array(range(25))/24.0和np.arange(0, 575.5, 0.5)/575 * 17 * np.pi - 2 * np.pi确定。其中,np.array(range(25))/24.0生成了一个长度为25的等差数列,每个元素都除以24.0,得到了0到1之间的25个数;np.arange(0, 575.5, 0.5)生成了一个从0到575.5的等差数列,步长为0.5,然后每个元素都乘以(17np.pi-2np.pi)/575,得到了一个从-2np.pi到15np.pi的数列。最终,meshgrid函数返回了两个矩阵x和t,它们的形状都是(576, 25)。
  • surf = ax.plot_surface(r * np.cos(t), r * np.sin(t), u * (x * np.cos(p) - y * np.sin(p)), rstride=1, cstride=1,
                           cmap=cm.Reds_r, linewidth=0, antialiased=True)这是一个用于绘制三维图形的代码,其中surf是一个三维曲面对象,由r、t、u、x、y、p等参数决定。具体来说,r、t、u、x、y、p分别代表半径、角度、系数、x坐标、y坐标和旋转角度。这个代码使用了numpy库中的cos和sin函数,以及matplotlib库中的plot_surface函数和Reds_r颜色映射。其中,rstride和cstride参数分别代表行和列的步长,cmap参数代表颜色映射,linewidth参数代表线宽,antialiased参数代表是否开启抗锯齿

祝节日快乐!

参考文章

python绘制立体玫瑰花

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

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

相关文章

EtherCAT从站转modbus RTU协议转换网关用modbus slave测试的方法

远创智控YC-ECT-RTU通讯网关具有EtherCAT从站功能,主要功能是将EtherCAT网络和Modbus-RTU网络连接起来。在使用方面,本网关可以连接到EtherCAT总线中作为从站使用,也可以连接到Modbus-RTU总线中作为主站或从站使用。这款通讯网关还支持多种不…

百度Comate代码助手全新上线SaaS服务,助力企业释放10倍软件生产力

❤️作者主页:小虚竹 ❤️作者简介:大家好,我是小虚竹。2022年度博客之星评选TOP 10🏆,Java领域优质创作者🏆,CSDN博客专家🏆,华为云享专家🏆,掘金年度人气作…

什么样的系统能够有效提升维修效率?报修工单管理系统哪家的好用?

维修派单系统的主要目标是为企业或组织提供一种更有效的方式来管理他们的维修任务。这个系统可以用来处理各种维修任务,包括分配任务、跟踪任务的执行情况以及评估任务的完成情况等等。通过使用这个系统,管理者可以全面地了解维修人员的工作情况&#xf…

【王道代码】【2.3链表】d4

关键字: AB归并,递增变递减(原表结点)、AB归并求交集到C(不破坏AB)、AB求交集到A

MySQL执行计划分析

执行计划中的常见的列的解释: type system/const :用户主键索引或者唯一索引查询时,只能匹配 1 条数据。一般可以对 sql 查询语句优化成一个常量,那么 type 一般就是 system 或者 const,system 是 const 的一个特例&…

“第六届世界声博会暨2023科大讯飞全球1024开发者节”开幕式回顾及舆情问题

☞ ░ 前往老猿Python博客 ░ https://blog.csdn.net/LaoYuanPython 2023年10月24日,笔者全程参加了在安徽合肥奥体中心举办的“第六届世界声博会暨2023科大讯飞全球1024开发者节”开幕式主论坛,下面来回顾一下。 一、会议简介 会议主题:“…

windows下使用springboot3.0 和 使用grallVM虚拟机

一:准备环境: JDK17 下载地址 :https://www.oracle.com/java/technologies/downloads/ GrallVM 虚拟机 下载地址:https://www.graalvm.org/downloads/ Gradle 7.5 or Maven 3.5 (以上版本) visual stud…

SolidworksSimulation完成对压力容器的强度分析

如何通过使用SolidworksSimulation完成对压力容器的分析并查看实 体的膜片应力强度以及弯曲应力强度,操作简单易学,让我们进入到操作界面。 我们以罐体底部实体模型为例,这里已经提前设置好了材料。 点击新算例,选择静应力分析 由…

【三维重建-PatchMatchNet复现笔记】

【三维重建-PatchMatchNet复现笔记】 1 突出贡献2 数据集描述3 训练PatchMatchNet3.1 输入参数3.2 制定数据集加载方式 1 突出贡献 在计算机GPU和运行时间受限的情况下,PatchMatchNet测试DTU数据集能以较低GPU内存和较低运行时间,整体误差位列中等&#…

Mac运行Docker报错

Mac运行Docker报错 📔 千寻简笔记介绍 千寻简笔记已开源,Gitee与GitHub搜索chihiro-notes,包含笔记源文件.md,以及PDF版本方便阅读,且是用了精美主题,阅读体验更佳,如果文章对你有帮助请帮我点…

利用扰动模型计算旋转矩阵的导数例题

深蓝学院《自动驾驶与机器人中的SLAM技术》第一次课习题 这里直接贴出图片了,懒得打字了。

计算机基础知识38

创建表的完整语法 create table t1(id int,name varchar(43),age int); create table 库名.表名( 字段名1 数据类型 约束条件 约束条件 约束条件 约束条件, 字段名2 数据类型 约束条件 约束条件 约束条件 约束条件...); 1. 字段名和数据类型必须…

Socket 是什么? 总结+详解

文章摘要:Socket 套接字 编程接口 netstat-ano 创建 建立连接 断开 删除 1.Socket 是什么 Socket :套接字(socket)是一个抽象层,应用程序可以通过它发送或接收数据,可对其进行像对文件一样的打开、读写和…

Netty 入门 — ByteBuf,Netty 数据传输的载体

上篇文章(Netty 入门 — Bootstrap,一切从这里开始),我们了解了 Netty 的第一个核心组件:Bootstrap,它是 Netty 程序的开端。今天我们来熟悉 Netty 的第二个组件:ByteBuf,Netty 数据…

尚硅谷大数据项目《在线教育之实时数仓》笔记003

视频地址:尚硅谷大数据项目《在线教育之实时数仓》_哔哩哔哩_bilibili 目录 第7章 数仓开发之ODS层 P015 第8章 数仓开发之DIM层 P016 P017 P018 P019 01、node001节点Linux命令 02、KafkaUtil.java 03、DimSinkApp.java P020 P021 P022 P023 第7章 数…

GNSS全球卫星导航系统相关技术

一、参考资料 映核物联网|什么是GNSS? 二、GNSS相关介绍 GNSS(Global Navigation Statellite System),即全球导航卫星系统,GNSS的作用是定位和导航。至少4颗卫星,实现准确定位。 1. 全球导航…

vue3使用flv播放视频监控

第一种方法使用安装的 npm install --save flv.js,会出现报错的情况,如flv.js播放视频时出现Failed to execute ‘appendBuffer’ on ‘SourceBuffer’ 解决方法[https://www.cnblogs.com/melancholys/p/14085804.html](https://www.cnblogs.com/melanch…

1024版烟花--2的10次方 快乐

效果: import java.awt.*; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent;public class App extends Frame {//背景int b1x[] {0, 666, 666, 0};int b1y[] {00, 0, 666, 666};Thread thread;int count 8;//个数App() {setLayout(new …

Potplayer通过公网访问群晖WebDav,快速搭建远程办公环境

文章目录 1 使用环境要求:2 配置webdav3 测试局域网使用potplayer访问webdav4 内网穿透,映射至公网5 使用固定地址在potplayer访问webdav ​ 国内流媒体平台的内容让人一言难尽,就算是购买了国外的优秀作品,也总是在关键剧情上删删…

apk反编译修改教程系列-----任意修改apk版本号 版本名 防止自动更新【二】

往期教程 apk反编译修改教程系列-----修改apk应用名称 任意修改名称 签名【一】 上期演示了下如何修改apk的名称。相信只要用心的友友都会操作了。这次讲解下如何修改软件的版本号与版本名字的操作 名词浅释: 在apk反编译中的VersionCode---是版本号的意思.是一…