3D旋转玫瑰花pythonmatplotlib实现
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()
2021年养娃总结心得体会之真香定律有娃之前,我是最讨厌小孩的!印象中那种拖着鼻涕泡泡哭个没完没了的小家伙,怎么会有人喜欢他!可真香定律那是真香!自从有了儿子,不单单是对我的观念,简直从灵魂到肉体给我来了个脱胎换骨的
如何教育孩子正确认识死亡和大家普及一个知识。我发现很多人对于维特效应有一种误会认为只要是关于ZS这一类的内容,就不应该传播。其实上,维特效应里面最大的问题不是死亡信息的传播,而是对其美化的描述。其实关于这
南得遇见你,孩子可以从南瓜身上学到什么?陈鹤琴先生提倡大自然,大社会都是活教材。活教材是取自大自然大社会的直接的书,儿童在与大自然社会的直接接触中,在亲身观察中获取经验和知识。春种夏收,在播种绿色希望的主题下,我们探寻课
家长呼吁开设假期托管班,老师回答很直接别往学校送加德纳的至理名言每个孩子都是独一无二的,即使是普通的孩子,只要教育得法也会成为不平凡的人。望子成龙,望女成凤是每个家长最普遍的心态,有着这种想法是可以理解的,但是常常因为家长的教育
父母看过来改掉不良习惯,帮助孩子更好地成长孩子尿床是很常见的事情,但对于56岁的孩子还尿床,很多父母都觉得这是一件很不正常的事情,甚至责怪于孩子,其实这都是不理智的行为。一般情况下,孩子在三岁之后尿床率就变低了,有的孩子则
三伏去处暑来,提高孩子免疫力就靠这四个字长达40天的三伏天结束了,处暑节将在月23日(周一)开始。节气一变,身体也在变,特别是多年的慢性病可能又露头。慢性病以防为主,今天特地提前提醒一下,哪些慢性病需要注意。处暑是夏秋过
孩子总是沉迷于手机,做好这几点,让孩子自愿放下手机为什么现在的孩子沉迷于手机,是因为孤独。别说孩子了,即使是我们家长,您离得开手机一天吗?哪怕是半天,甚至是3小时。所以,别总是对孩子吼骂,那都没用的,因为作为成人的我们都达到了爱不
婴儿干性湿疹能打疫苗吗?当婴儿出现湿疹后,不论是哪种类型的湿疹,都不能打疫苗。因为婴儿在注射了疫苗后,身体会出现一些不良反应,过敏长疹子就是其中一种。如果婴儿患有湿疹的情况下还继续注射疫苗,就会加重病情。
孕期用化妆品对胎儿不好?牢记三多,三少,对宝宝没坏处化妆品真的对胎儿有坏处吗?作者YOYO说育儿导言不知道各位宝妈在怀孕的时候是不是也有同样的烦恼?素颜不敢出门,但用化妆品又怕影响到胎儿的发育?记得我在怀YOYO的时候就是这种状态,
云朵森系的女孩名字,仰望天空,灿若我心很多父母在为宝宝起名的过程中,会在网上搜索各样的起名文章,在看过大量的文章之后,反而觉得什么名字都差不多,无法辨别名字的好坏了。这是非常容易出现的情况,这里子墨老师提醒大家名字在精
整只鸡搭配米饭一起烤,肉香浓郁,营养丰富,孩子爱吃的主食美味大家好,这里是杨爸的育儿经,主题介绍简单的育儿辅食和育儿知识,只为分享对孩子更好的。本款美食适合5周岁以上的孩子品尝。烤鸡在我们的日常生活中应该是一款人人都爱吃的肉食美味。虽然对于