从Mayavi的剖切面提取横截面

时间:2018-11-02 16:18:33

标签: python vtk mayavi

我正在尝试提取由Mayavi中的多个轨迹/线组成的数据集的横截面视图。使用scalar_cut_plane,我可以设置和查看数据集的管轮廓,但是如何访问/提取剖面对​​象中显示的内容以在其他地方进行操作?最终,这将生成一个网格以填充试管的横截面,然后将其绘制在另一个二维场景中。

我的简化代码是:

from mayavi import mlab
import numpy as np
from tvtk.api import tvtk

"generate data"
size = 50

"plot data"
fig = mlab.figure(size=(800, 600), bgcolor=(1, 1, 1), fgcolor=(0, 0, 0))

ap = tvtk.AppendPolyData()
for idx in range(size):
    x, y = np.random.uniform(size=2)
    s0, s1, s2 = np.random.uniform(size=3)

    src = mlab.plot3d([x, x+0.1, x], [y, y+0.1, y], [0, 0.5, 1], [s0, s1, s2],
                      tube_radius=0.005, tube_sides=10, opacity=0.75, figure=fig, vmin=0, vmax=1)
    fig.remove_child(fig.children[0])
    data_out = src.module_manager.source.get_output_dataset()

    ap.add_input_data(src.module_manager.source.outputs[0].output)
ap.update()

surf = mlab.pipeline.surface(ap.output, figure=fig)
surf.visible = False
vcp = mlab.pipeline.scalar_cut_plane(ap.output, plane_orientation='z_axes', figure=fig)
outline = mlab.outline(surf, figure=fig)

mlab.show()

0 个答案:

没有答案