2012-02-09 340 views
2

我如何定位vtkActor2D相對於右上角渲染窗口的一角?我使用下面的代碼加載圖像並將其顯示在我的3D場景的重疊:如何將vtkActor2D放置在右上角?

vtkPNGReader pngReader = vtkPNGReader.New(); 
pngReader.SetFileName("image.png"); 
pngReader.Update(); 

vtkImageMapper imageMapper = vtkImageMapper.New(); 
imageMapper.SetInputConnection(pngReader.GetOutputPort()); 
imageMapper.SetColorWindow(255); 
imageMapper.SetColorLevel(127.5); 

vtkActor2D imageActor = vtkActor2D.New(); 
imageActor.SetMapper(imageMapper); 

vtkRenderer renderer = renderWindowControl1.RenderWindow.GetRenderers().GetFirstRenderer(); 
renderer.AddActor2D(imageActor); 

我知道我可以使用

imageActor.SetPosition(42, 42); 

設置,演員的位置,但是這是當然的, ,相對於左下角。那麼,如何指定圖像是相對於(分別位於)渲染窗口的右上角繪製的,並且即使在渲染窗口的大小調整期間也保持其相對位置?我現在搜索了幾個小時的互聯網,但甚至找不到提示。

回答

3

您可以觀察vtkRenderWindow上的ModifiedEvent並檢查它的GetSize方法是否返回與上次觀察事件相比不同的值。然後你可以使用GetSize - [你的位置]來設置你的演員的座標。