mygrid
vtkCutter を使用して 3D フィールド (vtkStructuredGrid または vtkUnstructuredGrid)で 1D ラインを抽出しようとしています。汚い方法は、最初の vtkCutter を vtkPlane で実行myplane1
し、出力に別の vtkCutter を vtkPlane で適用することですmyplane2
。この解決策は機能しているようですが、代わりに vtkImplicitBoolean を使用して実際の行を作成し、この関数で vtkCutter を 1 つだけ適用することをお勧めしますが、この 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()
しかし、これは私が期待していた結果を返しません: 出力は 2 つの半平面で構成される 2D カットです... ブール演算 (Union、Difference) を変更しようとしましたが、何も機能していないようです!