如何将vtkActor2D
相对于渲染窗口的右上角角定位?我使用以下代码加载图像并将其显示为3D场景中的叠加层:
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);
但这当然是相对于左下角。那么如何指定图像相对于(分别在)渲染窗口的右上角绘制并且即使在渲染窗口的大小调整期间也保持其相对位置?我现在在互联网上搜索了好几个小时,但甚至找不到提示。
答案 0 :(得分:4)
您可以在vtkRenderWindow上观察ModifiedEvent并检查其GetSize方法是否返回与上次观察事件时不同的值。然后你可以使用GetSize - [你的位置]来设置你的演员的坐标。