0
3D 공간에서 데이터 포인트 집합을 가지며 바운딩 박스에 적합하고 싶습니다. 나는 vtkOBBTree :: ComputeOBB가 나를 위해 이것을 할 수 있다는 것을 안다. 그러나 나는 경계 된 경계 상자를 시각화하는 방법을 알아낼 수 없습니다.3d 공간에서 vtk 지향 바운딩 박스
도움을 주시면 감사하겠습니다.
3D 공간에서 데이터 포인트 집합을 가지며 바운딩 박스에 적합하고 싶습니다. 나는 vtkOBBTree :: ComputeOBB가 나를 위해 이것을 할 수 있다는 것을 안다. 그러나 나는 경계 된 경계 상자를 시각화하는 방법을 알아낼 수 없습니다.3d 공간에서 vtk 지향 바운딩 박스
도움을 주시면 감사하겠습니다.
테두리 상자의 경우 vtkOutlineFilter
을 사용할 수 있습니다. 3D 데이터를 입력으로 설정하면됩니다. 그런 다음 매퍼와 액터를 만들고 일반적인 VTK 시나리오에서와 같이 장면에 추가합니다. 다음은 Python에서 작동하는 예제입니다.
from vtk import *
quadric = vtkQuadric()
quadric.SetCoefficients(.5, 1, .2, 0, .1, 0, 0, .2, 0, 0)
sample = vtkSampleFunction()
sample.SetSampleDimensions(50,50,50)
sample.SetImplicitFunction(quadric)
contour = vtkContourFilter()
contour.SetInputConnection(sample.GetOutputPort())
contour.GenerateValues(5,0,1)
contourMapper = vtkPolyDataMapper()
contourMapper.SetInputConnection(contour.GetOutputPort())
contourMapper.SetScalarRange(0,1.2)
contourActor = vtkActor()
contourActor.SetMapper(contourMapper)
outline = vtkOutlineFilter()
outline.SetInputConnection(sample.GetOutputPort())
outlineMapper = vtkPolyDataMapper()
outlineMapper.SetInputConnection(outline.GetOutputPort())
outlineActor = vtkActor()
outlineActor.SetMapper(outlineMapper)
outlineActor.GetProperty().SetColor(1,1,1)
ren = vtkRenderer()
ren.SetBackground(0.188,0.373,0.647)
ren.AddActor(contourActor)
ren.AddActor(outlineActor)
renWin = vtkRenderWindow()
renWin.AddRenderer(ren)
renWin.SetWindowName("IsoSurface")
renWin.SetSize(500,500)
iren = vtkRenderWindowInteractor()
iren.SetRenderWindow(renWin)
renWin.Render()
iren.Initialize()
iren.Start()