我试图在交互后将 3D 对象重置为其原始 View (例如正交的、矢状的)。
这是我尝试重置的代码,但没有成功:
private vtkAxesActor axes;
private vtkOrientationMarkerWidget widget;
public void ResetView()
{
// axes.InitPathTraversal();
if (axes != null)
{
if (axes.GetUserMatrix() != null)
axes.GetUserMatrix().Identity();
axes.GetMatrix().Identity();
axes.SetOrigin(0,0,0);
axes.SetOrientation(0, 0, 0);
axes.SetScale(1, 1, 1);
axes.SetPosition(0, 0, 0);
}
if (widget != null)
{
widget.SetOrientationMarker(axes);
}
ForceWindowToRender();
}
我应该怎么做?非常感谢。
最佳答案
private vtkCamera camera;
camera.SetPosition(DoubleArrayToIntPtr(defaultCamPos));
camera.SetViewUp(DoubleArrayToIntPtr(defaultCamViewup));
camera.SetFocalPoint(DoubleArrayToIntPtr(defaultCamFocus));
当然,您需要根据您的场景调整焦点、位置和方向(有关坐标系,请参阅 VTK 手册),但这基本上就是我在对象被渲染后将 3D 渲染对象设置为其默认 View 的方式旋转和移动。
关于c# - VTK ActiViz 将对象重置为原始 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20359412/