0
私は3D空間内にデータポイントのセットを持っており、それらにバウンディングボックスを合わせたいと思います。私はvtkOBBTree :: ComputeOBBが私のためにこれを行うことができることを知っています。しかし、私は指向バウンディングボックスを視覚化する方法を把握していないようです。vtkは3D空間内のバウンディングボックスを指向しています
ご協力いただきましてありがとうございます。
私は3D空間内にデータポイントのセットを持っており、それらにバウンディングボックスを合わせたいと思います。私はvtkOBBTree :: ComputeOBBが私のためにこれを行うことができることを知っています。しかし、私は指向バウンディングボックスを視覚化する方法を把握していないようです。vtkは3D空間内のバウンディングボックスを指向しています
ご協力いただきましてありがとうございます。
バウンディングボックスの場合は、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()