Plot3d in Python



我有一个由Meshlab生成的OBJ文件,其中包含顶点和面数据。在 MATLAB 中,我将函数"patch"与 1 个数组 (5937x3) 中的顶点数据以及另一个数组中的人脸 (11870x3) 数据一起使用,结果如下:

Simplified version of the code
[V,F] = read_vertices_and_faces_from_obj_file(filename);
patch('Vertices',V,'Faces',F,'FaceColor','r','LineStyle','-')
axis equal

结果

问题是,我如何在 Python 中做到这一点?有一个简单的方法,就像在 Matlab 中??

我将非常感谢任何帮助。

最好的办法是使用matplotlib库中的mplot3d工具包。

这里也提出了类似的问题。也许这个问题中略微编辑的代码摘录会对您有所帮助。

守则:

from mpl_toolkits.mplot3d import Axes3D
from mpl_toolkits.mplot3d.art3d import Poly3DCollection
import matplotlib.pyplot as plt
fig = plt.figure()
ax = Axes3D(fig)
# Specify 4 vertices
x = [0,1,1,0] # Specify x-coordinates of vertices
y = [0,0,1,1] # Specify y-coordinates of vertices
z = [0,1,0,1] # Specify z-coordinates of vertices
verts = [zip(x, y, z)] # [(0,0,0), (1,0,1), (1,1,0), (0,1,1)]
tri = Poly3DCollection(verts) # Create polygons by connecting all of the vertices you have specified
tri.set_color(colors.rgb2hex(sp.rand(3))) # Give the faces random colors
tri.set_edgecolor('k') # Color the edges of every polygon black
ax.add_collection3d(tri) # Connect polygon collection to the 3D axis
plt.show()

相关内容

  • 没有找到相关文章

最新更新