2

vtkImageViewer クラスを使用して、3D ボリューム内のさまざまな平面を視覚化しています。次に、縦線と横線を重ねて現在のマウス位置をマークするのが好きです。次のコードを使用して、vtkActor2D をビューアーに追加します。

    imageViewer = vtk.vtkImageViewer()        
    ...
    line = vtk.vtkLineSource()
    line.SetResolution(20)
    mapper = vtk.vtkPolyDataMapper2D()
    mapper.SetInputConnection(line.GetOutputPort())
    actor = vtk.vtkActor2D()
    actor.SetMapper(mapper)
    imageViewer.GetRenderer().AddActor2D(actor)
    ...
    line.SetPoint1(x,0.0,0.0)
    line.SetPoint2(x,y,0.0)
    actor.GetProperty().SetColor(color)
    actor.GetProperty().SetOpacity(0.75)
    ...
    imageViewer.Render()

Mac OS X では期待どおりに動作しますが、Windows マシンで試してみると、線がまったく表示されません。

更新: アクターが imageViewer の背後でレンダリングされる代わりに vtkActor に変更した場合、vtkActor をフォアグラウンドに移動するにはどうすればよいですか?

    imageViewer = vtk.vtkImageViewer()        
    ...
    line = vtk.vtkLineSource()
    line.SetResolution(20)
    mapper = vtk.vtkPolyDataMapper()
    mapper.SetInputConnection(line.GetOutputPort())
    actor = vtk.vtkActor()
    actor.SetMapper(mapper)
    imageViewer.GetRenderer().AddActor(actor)
    ...
    line.SetPoint1(x,0.0,0.0)
    line.SetPoint2(x,y,0.0)
    actor.GetProperty().SetColor(color)
    actor.GetProperty().SetOpacity(0.75)
    ...
    imageViewer.Render()
4

0 に答える 0