VTK vtkCamera 参数设置

一杯清酒邀明月 / 2023-08-14 / 原文

VTK 可以实现旋转的方式有很多。

本文主要讲 vtkCamera, 可以想象这个就是你的眼睛, 焦点位置为图片, ViewUp 是为Camera的方向。

下图明确的表示了参数对于Camera和焦点的影响因子。

  vtkCamera除了提供设置与相机投影因素相关的方法之外,还提供了大量的控制相机运动的方法,如:vtkCamera::Dolly(),vtkCamera::Roll(),vtkCamera::Azimuth()(纬度),vtkCamera::Yaw(),vtkCamera::Elevation()(经度),vtkCamera::Pitch(),vtkCamera::Zoom()。这些方法具体表示相机是怎么运动,以及相对哪个位置或者方向运动,请参考图3.7或者关于类vtkCamera的文档说明。

默认的情况下 : ViewUp 是 (0, 1, 0)

想要利用 camera 实现一些图像的旋转以及镜像:

 1     // HFlip
 2     viewer->GetRenderer()->GetActiveCamera()->SetViewUp(0, 1 ,0 );
 3     viewer->GetRenderer()->GetActiveCamera()->Azimuth(180);
 4     // end HFlip
 5 
 6     // VFlip
 7     viewer->GetRenderer()->GetActiveCamera()->SetViewUp(0, -1 ,0 );
 8     viewer->GetRenderer()->GetActiveCamera()->Elevation(-180); 
 9     // end VFlip
10 
11     // rotation n degrees
12     double n = -90.0f;
13     viewer->GetRenderer()->GetActiveCamera()->Roll(n);