我正在尝试mygrid
使用 vtkCutter 在 3D 字段(vtkStructuredGrid 或 vtkUnstructuredGrid)中提取 1D 线。一种肮脏的方法是使用 vtkPlane 执行第一个 vtkCuttermyplane1
并使用 vtkPlane 将另一个 vtkCutter 应用于输出myplane2
。该解决方案似乎可行,但我想做的是使用 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 切割......我试图改变布尔运算(联合,差异)但似乎没有任何效果!