本帖最后由 hue 于 2023-11-7 15:08 编辑  
 
我尝试使用 Mayavi 绘制一个长方体并提供其顶点和面的坐标。但是,当我用来mlab.mesh绘制面时,我遇到了面绘制错误的问题。使用 Matlab 时没有出现问题。 
 
有没有懂的mjj教一下我啊  感谢感谢 
 
绘图结果如图所示,绿色是matlab,蓝色是mayavi: 
  
 
  
 
代码如下: 
- from mayavi import mlab
 
 - import numpy as np
 
  
- vertices = np.array([[0., 0., 0.],
 
 -                      [0., 4.7124, 0.],
 
 -                      [4.7124, 0., 0.],
 
 -                      [4.7124, 4.7124, 0.],
 
 -                      [0., 0., 2.],
 
 -                      [0., 4.7124, 2.],
 
 -                      [4.7124, 0., 2.],
 
 -                      [4.7124, 4.7124, 2.]])
 
 - faces = np.array([[[4, 6, 7, 5]],
 
 -                   [[6, 7, 3, 2]],
 
 -                   [[6, 2, 0, 4]],
 
 -                   [[5, 4, 0, 1]],
 
 -                   [[7, 5, 1, 3]],
 
 -                   [[3, 1, 0, 2]]])
 
 - # point
 
 - x_points = vertices[:, 0]
 
 - y_points = vertices[:, 1]
 
 - z_points = vertices[:, 2]
 
 - mlab.points3d(x_points, y_points, z_points, color=(1, 0, 0), scale_factor=0.1)
 
  
- # face
 
 - x_face = []
 
 - y_face = []
 
 - z_face = []
 
 - for face in faces:
 
 -     face = face[0]
 
 -     x_face.append(vertices[face, 0])
 
 -     y_face.append(vertices[face, 1])
 
 -     z_face.append(vertices[face, 2])
 
 - mlab.mesh(x_face, y_face, z_face, color=(0, 0, 1), opacity=1)
 
  
- mlab.show()
 
 
  复制代码 |