vtk相机控制

vtkCamera常用方

例子:
对 camera 的操作方法如下: 
vtkCamera *aCamera = vtkCamera::New(); 
aCamera->SetViewUp (0, 0, -1);//设视角位置 
aCamera->SetPosition (0, 1, 0);//设观察对象位
aCamera->SetFocalPoint (0, 0, 0);//设焦点 
aCamera->ComputeViewPlaneNormal();//自动
aRenderer->SetActiveCamera(aCamera);

1.SetClippingPlane
      设置相机照摄方向的最近端和最远端切片距离。感觉参数像是平行光投影到体数据上前面一片和最后一片的位置信息。(世界坐标系表示)渲染时好像把平面外的数据剪掉了。

2.SetFocalPoint /SetPosition
(世界坐标系),控制相机距离。

3.ComputeViewPlaneNormal
        重置视平面法向,基于当前的位置和焦点。否则会出现斜推剪切效果。

4.SetViewUp
设置摄像机的向上的方向。

5.Zoom
通过改变视角的方法放大对象。

6.SetViewAngle
设置摄像机的视角,默认角度为30度,如果为平行投影则该角度无效。
通常完美视角计算=2*atan((h/2)/d) ,h是renderwindow的高度,d是眼睛到屏幕的距离。
OrthogonalizeViewup()--设置正交角度。

7.修改摄像机位置
设置好焦点后通过Azimuth()修改方位角和Elevation()修改摄像机位置。使摄像机围绕焦点在球形纬度上运动。例子:
Azimuth(150)//表示 camera 的视点位置沿顺时针旋转 150 度角 
Elevation(60)// 表示 camera 的视点位置沿向上的方面旋转 60 度角

你可能感兴趣的:(VTK)