如何相对于渲染窗口的右上角定位 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);
我知道我可以使用设置 Actor 的位置
imageActor.SetPosition(42, 42);
但这当然是相对于左下角的。那么如何指定图像是相对于(分别在)渲染窗口的右上角绘制的,并且即使在调整渲染窗口的大小期间也保持在其相对位置?我现在在互联网上搜索了几个小时,但甚至找不到任何提示。
最佳答案
您可以观察 vtkRenderWindow 上的 ModifiedEvent 并检查其 GetSize 方法返回的值是否与您上次观察该事件时返回的值不同。然后您可以使用 GetSize - [您的位置] 来设置您的 Actor 的坐标。
关于c# - 如何在右上角放置一个 vtkActor2D?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9216211/