使用vtk切割具有许多平面的3D表面

时间:2015-07-07 11:06:36

标签: c++ vtk

我使用vtkcutter解决了这个问题,但vtkcutter有机会只用一个平面切割我的3D表面。在我的问题中,我需要用许多平面切割我的3D表面,那么如何使用vtkcutter创建许多平面?

1 个答案:

答案 0 :(得分:2)

试试这个(适用于vtkUnstructuredGrid' ugrid')。它在点p01和p02之间创建10个切片,并将切片附加到vtkPolyData的一个实例。它是用python编写的..

polys = vtk.vtkAppendPolyData()

Nslices = 10
p01 = (0,0,0)
p02 = (0,1,0)
for ks in range(Nslices):
    p0 = (0,p01[1]+(p02[1]-p01[1])/float(Nslices)*ks,0)
    plane = vtk.vtkPlane()
    plane.SetNormal(0,1,0)
    plane.SetOrigin(p0)

    cut = vtk.vtkCutter()
    cut.SetInput(ugrid)
    cut.SetCutFunction(plane)
    cut.Update()
    output = cut.GetOutput()
    polys.AddInput(output)