python实现3d人物建模_很强!用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()#显示模块中的所有绘图对象

python实现3d人物建模_很强!用Python实现3D建模!_第1张图片

然后设置算法,不同的算法会生成不同的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)

查看数据类型

python实现3d人物建模_很强!用Python实现3D建模!_第2张图片

生成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)

图像显示

python实现3d人物建模_很强!用Python实现3D建模!_第3张图片

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

#网兜图形

def fun(x,y):

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

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

你可能感兴趣的:(python实现3d人物建模)