如何在右上角定位vtkActor2D

本文关键字:定位 vtkActor2D 右上角 | 更新日期: 2023-09-27 18:23:52

如何相对于渲染窗口的右上角定位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);

当然,这是相对于左下角的。那么,我如何指定图像是相对于渲染窗口的右上角绘制的(分别位于),并且即使在调整渲染窗口大小的过程中也保持在其相对位置?我在网上搜索了好几个小时,但都找不到任何提示。

如何在右上角定位vtkActor2D

您可以在vtkRenderWindow上观察ModifiedEvent,并检查其GetSize方法返回的值是否与上次观察事件时不同。然后你可以使用GetSize-[你的位置]来设置你的演员的坐标。