百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

3D旋转玫瑰花:python-matplotlib实现

off999 2024-11-10 10:34 19 浏览 0 评论

1 说明

====

1.1 环境:python3.8+matplotlib3.3.2

1.2 效果图:3D自旋转玫瑰花

2 技术要点:

=========

2.1 3D的matplotlib作图mpl_toolkits.mplot3d import Axes3D和numpy的相关函数的复习。

2.2 matplotlib动画设置animmation复习。

2.3 matplotlib.cm颜色表中cm=colormap复习。

#可以通过调用以下内容找到matplotlib版本中可用的颜色图的完整列表
>>> from matplotlib import cm
>>> dir(cm)

3 代码步骤:

========

3.1 第一步:导入模块

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
import matplotlib.animation as animmation
import numpy as np

3.2 第二步:设置窗口和图表

#初始化一个图片,大小默认
fig=plt.figure()
#窗口标题名
fig.canvas.set_window_title('3D-rose')
#图片背景颜色
fig.patch.set_facecolor('black')
#定一个3d的画布
ax=fig.gca(projection='3d')
#轴背景颜色
ax.set_facecolor("black")

3.3 第三步:3D玫瑰花的初始数据

#难点,大量使用numpy的相关函数
#25代表花瓣想的方向,越大方向向下;24也是,越小代表花瓣方向向下
#10代表花瓣数
#x轴坐标
[x,t]=np.meshgrid(np.array(range(25))/24.0,np.arange(0,900,0.5)/900*10*np.pi-2*np.pi)

#角度
p=(np.pi/2)*np.exp(-t/(8*np.pi))

#z轴坐标
z=1-(1-np.mod(3.6*t,2*np.pi)/np.pi)**4/2

#y轴坐标
y=2*(x**2-x)**2*np.sin(p)

#半径
r=z*(x*np.sin(p)+y*np.cos(p))

其中np.sin、np.cos、np.pi、np.exp、np.mod等数学函数。

numpy.exp():返回e的幂次方,e是一个常数为2.71828。

numpy.mod(x1, x2):

相当于Python模运算符``x1%x2``,并且与除数x2具有相同的符号(正负号)。

====================================================

X,Y = numpy.meshgrid(x, y)

输入的x,y,就是网格点的横纵坐标列向量(非矩阵)

输出的X,Y,就是坐标矩阵。

np.meshgrid生成的坐标矩阵可以用np.stack指定axi还原各个点坐标。

===================================================

np.arange()函数返回一个有终点和起点的固定步长的排列,如[1,2,3,4,5],起点是1,终点是5,步长为1。

3.4 第四步:定义三维坐标

#定义三维坐标xx、yy、zz
xx=r*np.cos(t)
yy=r*np.sin(t)
zz=z*(x*np.cos(p)-y*np.sin(p))

3.5 第五步:动画设置,注意return 后面的fig逗号

#初始化
def init():
    ax.plot_surface(xx,yy,zz,rstride=1,cstride=1,cmap=cm.gist_rainbow_r,linewidth=0,antialiased=True)
    return fig,

#动画
def animate(i):
    ax.view_init(elev=10., azim=i)
    return fig,

#动画挂起
#在这里设置一个600帧的动画,每帧之间间隔0毫秒
anim = animmation.FuncAnimation(fig, animate, frames = 600, init_func = init,interval = 0)

3.6 第六步:plt相关设置

#数据清空和画轴不显示
plt.gca().set_axis_off()
#图标标题名,字体大小和颜色
plt.title('3D自旋转玫瑰花',fontsize=20,color='green')
#图片展示
plt.show()

相关推荐

戴尔笔记本电脑黑屏却开着机

对于电脑黑屏的处理基本上采用排除、替换相结合的方法,其原则应本着先替换排除可疑性最大的部件。对于普通电脑用户来讲,专业知识不足,可以按下列步骤分析故障原因,以便可以自己动手排除故障。首先检查接触是否良...

手机版电脑桌面下载(手机电脑桌面下载软件安装包)

只有电脑版手机助手软件,没有手机桌面这个软件在电脑上点击今日头条APP下载安装即可哦你好,陌陌电脑版如果说你想要下载到电脑桌面的话,你只需要长按把它添加到你的电脑桌面就可以了。要将软件下载到桌面并创建...

ghost备份中文图解(ghost备份1837)

其实是这样的ghost文件备份后会生成两个文件一个是.GHO一个是.GHS文件FAT32格式的分区,单个文件最大只支持到2G(2048M),如果你的镜像>2G,这时的做的GHOST在一个文件里装...

win10一键重装win7(win10一键重装系统)

1、首先准备一个4GB以上可以正常使用的U盘。2、在一个可以正常使用的电脑上,下载老毛桃软件并安装。3、去网上下载所需的win7,win10选择自己所需要的系统,并下载下来。4、插入u盘并打开老毛桃...

戴尔按f12还原系统步骤win10
  • 戴尔按f12还原系统步骤win10
  • 戴尔按f12还原系统步骤win10
  • 戴尔按f12还原系统步骤win10
  • 戴尔按f12还原系统步骤win10
qq网页版官网(qq1网页版)
  • qq网页版官网(qq1网页版)
  • qq网页版官网(qq1网页版)
  • qq网页版官网(qq1网页版)
  • qq网页版官网(qq1网页版)
联想软件商店官网(联想应用商店官网下载安装)

要设置联想电脑应用商店,首先需要打开商店应用并进行登录。之后可以根据个人需求浏览并下载商店中的应用,也可以通过搜索功能查找特定应用。在商店中还可以管理已下载的应用、更新应用以及查看应用评价和评论。此外...

xp如何看电脑是32位还是64位
  • xp如何看电脑是32位还是64位
  • xp如何看电脑是32位还是64位
  • xp如何看电脑是32位还是64位
  • xp如何看电脑是32位还是64位
tp路由器设置登录网址(tplink路由器设置网址登录)

tplogin.cn是TPlink路由器界面的默认登陆入口地址。TPlink常见的登陆入口地址:192.168.1.1,192.168.0.1,tplogin.cn,192.168.0.254,192...

qq邮箱码正确格式(qq邮箱格式怎么写正确)
qq邮箱码正确格式(qq邮箱格式怎么写正确)

1.每个人在注册QQ时都会有关联的一个邮箱,它的格式就是“QQ号码@qq.com”。2.用户可以免费开通自己的手机号码邮箱帐号。3.QQ邮箱还可以注册“……@foxmail.com”这样的商务型帐号。4.@qq.com邮箱可以有一个数字帐号...

2025-11-18 13:03 off999

移动硬盘做启动盘教程(移动硬盘如何制作系统启动盘)

1.在xp系统中安装矮人DOS。2.在xp系统中用PQ(windows版)将移动硬盘的第一个分区设为活动,并激活。(注:你将要在该分区写入引导信息)3.重启电脑,进入矮人DOS,选择支持usb驱动...

怎样打开cdr文件(.cdr用什么打开)

cdr是什么文件?cdr文件用什么打开?cdr文件是CorelDraw图像制作软件标准的输出格式,与photoshop(PS)图片设计软件类似都属于图片设计软件,需要打开cdr文件我们就需要先了解C...

微软拼音输入法好用吗(微软拼音输入法好用吗知乎)

  CTRL(Control)组合键;Ctrl+Alt+A(截屏);Ctrl+A(All)全选;Ctrl+C(Copy)复制;Ctrl+V粘贴Ctrl+S保存,窗口...

怎么设置屏保密码(怎么设置屏保密码和锁定时间)

屏保密码设置的方法步骤1、鼠标左键单击桌面下的【开始】菜单键;点击【控制面板】;2、点击【外观和个性化】;然后点击【个性化】选项卡中的【更改屏幕保护程序】;3、选择一个自己喜欢的程序,勾选,然后再点击...

无法下载ie浏览器怎么办(ie浏览器显示无法下载)

如果您在使用IE浏览器时遇到无法下载的问题,以下是一些常见的解决办法:1.清除浏览器缓存:打开IE浏览器,依次点击工具(齿轮图标)->Internet选项->常规选项->...

取消回复欢迎 发表评论: