正如参考资料[1]所言,在VTK中实现相机参数设置的类为vtkCamera,关于相机的原理和作用,可见参考资料[1],本文主要描述不同参数设置的不同效果。
1 参数说明
1.1 基本参数
在相机设置中,最基本的就是下面三个设置:
void vtkCamera::SetViewUp(double vx, double vy, double vz);% 朝上方向,默认为(0, 1, 0)
void vtkCamera::SetPosition(double x, double y, double z); % 相机位置,默认为(0, 0, 1)
void vtkCamera::SetFocalPoint(double x, double y, double z);% 焦点,默认为(0, 0, 0)
void vtkCamera::SetClippingRange(double dNear, double dFar);% 前后裁剪平面位置,默认为(0.1, 1000)
void vtkCamera::SetViewAngle(double angle); % 视角,默认为30度
注意:上述关于坐标设置的函数使用的都是世界坐标。
关于上述三个参数的意义,这里引用参考资料[1]的示意图来进行说明,如下图所示:
图 1.1 相机参数原理示意图
1.2 运动控制
void vtkCamera::Roll(double angle)
void vtkCamera::Azimuth(double angle)
void vtkCamera::Elevation(double angle)
上面函数都是设置旋转的,具体意义引用参考资料[1]的相机运动方向示意图来进行说明
图 1.2 相机运动方向示意图
2 参数效果示例
2.1 相机朝向设置
SetViewUp()采用不同的参数时,效果如下图:
图2.1 SetViewUp参数效果
需要注意的是,图1.2中两幅图的效果看起来是上下翻转的,其实不是的,只是旋转了180度而已!
2.2 Azimuth
Azimuth()采用不同的参数,其效果如下图
图 2.2 Azimuth参数设置
由图2.2可见,通过设置Azimuth参数,可以到达水平翻转的效果。
参考资料
[1]vtk Camera
[3]vtk相机控制