2012-02-09 3 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

Вы можете увидеть ModifiedEvent в vtkRenderWindow и проверить, возвращает ли его метод GetSize разные значения, чем в последний раз, когда вы наблюдали событие. Затем вы можете использовать GetSize - [свою позицию], чтобы установить координаты вашего актера.

Смежные вопросы