vtk:创建一个Line Cutter

时间:2013-01-10 17:23:09

标签: python vtk

我正在尝试使用vtkCutter在3D字段mygrid(vtkStructuredGrid或vtkUnstructuredGrid)中提取1D行。 一种肮脏的方法是使用vtkPlane myplane1执行第一个vtkCutter,并使用vtkPlane myplane2将另一个vtkCutter应用于输出。 这个解决方案似乎有效,但我想做的是使用vtkImplicitBoolean来创建实际的行,然后只应用一个vtkCutter和这个函数,但我不确定这个vtkImplicitBoolean是如何工作的。 显而易见的事情是:

myline = vtk.vtkImplicitBoolean()
myline.SetOperationTypeToIntersection()
myline.AddFunction(myplane1)
myline.AddFunction(myplane2)

cutter = vtk.vtkCutter()
cutter.SetCutFunction(myline)
cutter.SetInput(mygrid)
cutter.Update()
line = cutter.GetOutput()

但是这并没有返回我期望的结果:输出是由两个半平面组成的2D切割...我试图改变布尔运算(Union,Difference)但似乎没有任何效果!

1 个答案:

答案 0 :(得分:0)

似乎vtkCutter只能将对象尺寸减小到1:3D到2D或2D到1D。 vtkCutter doc说:In VTK, cutting means reducing a cell of dimension N to a cut surface of dimension N-1.

这就是为什么连续的平面切割有效而不是双面平面。