更多课程 选择中心


Python培训

400-996-5531

很强!用Python实现3D建模!


在一些大型的科幻片中,常常能看到这样的场景,需要地图的时候,往往不是拿出一张纸,而是出现非常炫酷的3d投影地图,一目了然。在如今,3d技术早已经被人们所熟知,并且熟练地应用。网购鞋子的时候,出现的3d鞋子图片,可以全方位的了解鞋子的样式,还有3D网络广告,3D电影等等。

我们今天就一起来学习用python建一个3D的模型图。老规矩,先导入功能库:

import numpy as np

import matplotlib.pyplot as plt

from mpl_toolkits.mplot3d.axes3d import Axes3D

#用matplotlib绘制的图显示在页面里而不是弹出一个窗口

%matplotlib inline


先生成3D坐标轴来看看效果吧

fig1=plt.figure()#创建一个绘图对象  

ax=Axes3D(fig1)#用这个绘图对象创建一个Axes对象(有3D坐标)  

plt.show()#显示模块中的所有绘图对象  

然后设置算法,不同的算法会生成不同的3D模型图。

#系数,有X,Y生成Z

a = 0.7

#将圆周率赋值给b

b = np.pi          

#计算Z轴的值

def mk_Z(X,Y):

    return 2+a-2*np.cos(X)*np.cos(Y)-a*np.cos(b-2*X)


生成X,Y,Z的数据

 #生成X,Y,Z

#numpy.linspace(start, stop, num=xxx, endpoint=True, retstep=False, dtype=None)

#在指定的间隔内返回均匀间隔的100个数字

x = np.linspace(0,2*np.pi,100)

y = np.linspace(0,2*np.pi,100)

##用这两个对象中的可能取值一一映射去扩充为所有可能的取样点

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

Z = mk_Z(X,Y)


查看数据类型

生成3D图形

 #创建绘图对象,设置对象大小

fig = plt.figure(figsize=(14,6))

#创建3d的视图,使用属性projection

#add_subplot在一块画布上确定图形分布,1行,2列,占据第一列

ax = fig.add_subplot(1, 2, 1, projection='3d')

#rstride和cstride表示行列隔多少个取样点建一个小面

ax.plot_surface(X,Y,Z,rstride = 5,cstride = 5)


生成带有颜色的3D图像

 #创建3d视图,使用colorbar,添加颜色柱

#add_subplot在一块画布上确定图形分布,1行,2列,占据第二列

ax = fig.add_subplot(1, 2, 2, projection='3d')

#rstride和cstride表示行列隔多少个取样点建一个小面,cmap表示绘制曲面的颜色,rainbow代表彩虹色

p = ax.plot_surface(X, Y, Z, rstride=5, cstride=5, cmap='rainbow', antialiased=True)

cb = fig.colorbar(p, shrink=0.5)

图像显示

如果不喜欢这种图片呢,我们还可以换一种算法来创建不同的3D图形,

 #网兜图形

def fun(x,y):  

    return np.power(x,2)+np.power(y,2)


怎么样,小伙伴们快来试一试吧!

预约申请免费试听课

填写下面表单即可预约申请免费试听! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:Python系统学习流程图,教你一步步学习python
下一篇:python培训教程:Python 2.X与3.X快速切换版本

Python IDE推荐7个你可能会错过的Python IDE

Python面试题之Python中爬虫框架或模块的区别

2021年Python面试题及答案汇总详解

python数据分析,你需要这些工具

Copyright © 2023 Tedu.cn All Rights Reserved 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有

选择城市和中心
黑龙江省

吉林省

河北省

湖南省

贵州省

云南省

广西省

海南省