2013-01-10 2 views
0

vtkCutter를 사용하여 3D 필드 mygrid (vtkStructuredGrid 또는 vtkUnstructuredGrid)에서 1D 라인을 추출하려고합니다. 더러운 방법은 vtkPlane myplane1을 사용하여 첫 번째 vtkCutter를 실행하고 vtkPlane myplane2을 사용하여 다른 vtkCutter를 출력에 적용하는 것입니다. 이 솔루션은 효과가있는 것처럼 보입니다. 대신 vtkImplicitBoolean을 사용하여 실제 라인을 만든 다음이 함수에 하나의 vtkCutter 만 적용하는 것이지만이 vtkImplicitBoolean의 작동 방식을 잘 모르겠습니다. 나는 (연합 부울 작업을 변경하려고 ... 출력은 두 개의 반 비행기로 구성된 2 차원 컷 :vtk : 라인 커터 만들기

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() 

그러나 이것은 내가 기대했던 결과를 반환하지 않습니다 할 분명한 일이었다 차이)하지만 아무것도 작동하지 않는 것 같습니다!

답변

0

vtkCutter는 개체 차원을 1 : 3D에서 2D 또는 2D에서 1D로 줄이는 것만 같습니다. vtkCutter의 문서는 말한다 : 연속 평면 작품이 아니라 dubble 비행기를 잘라 왜 In VTK, cutting means reducing a cell of dimension N to a cut surface of dimension N-1.

있다고.