与Mayavi的线框等值面

时间:2017-12-12 19:47:40

标签: python mayavi

Mayavi中的mesh函数接受representation关键字,该关键字允许将曲面视为三角形线框网格。如何使用mlab.pipeline.iso_surfacemlab.contour3d

为iso表面获得类似的结果

例如,我想达到效果:

import numpy as np
from mayavi import mlab

# Create image volume with sphere as zero level surface.
x,y,z = np.mgrid[-20:21, -20:21, -20:21].astype(np.float)
vol = np.sqrt(x**2 + y**2 + z**2) - 7

# Visualize the level surface.
sf = mlab.pipeline.scalar_field(vol)
mlab.pipeline.iso_surface(sf, contours=[0.0],
                          representation='wireframe')
mlab.show()

当然,此代码无法运行,因为representation函数不存在iso_surface关键字参数。

1 个答案:

答案 0 :(得分:1)

我通过使用mlab.view_pipeline()命令并使用GUI来探索所创建管道的属性来解决这个问题。

线框可以通过以下方式实现:

sf = mlab.pipeline.scalar_field(vol)
iso = mlab.pipeline.iso_surface(sf, contours=[0.0])

# Added line.
iso.actor.property.representation = 'wireframe'

mlab.show()

导致

enter image description here