VTK入门——VTKCamera

本文介绍了VTKCamera的常用接口,如ParallelProjectionOn()开启平行光投影、OrthogonalizeViewUp()设置正交角度等。还说明了各接口使用时的注意事项,如开启平行光投影后部分操作可能失效。最后给出了几个使用接口的示例,包括构造函数、设置远近交互和初始化等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近写项目时被这个camera搞得晕头转向的,先介绍下camera的一些常用接口

1、ParallelProjectionOn()开启平行光投影,需要注意的时一旦你用了这个你后面对camera的setpostion()、zoom()这些操作都无法正常生效,想要改变大小你只能通过SetParallelScale(int temp)这个数表示着camera到图像距离越小图像就越大

2、OrthogonalizeViewUp()设置正交角度,这个一般和1那个函数一起用

3、ComputeViewPlaneNormal()基于当前的位置和焦点重置视平面法向,否则会出现斜推剪切效果,这个我一般和resetCamera()一起用,就是说在初始化的用

4、ResetCameraClippingRange()重置相机的最远端和最近段的距离范围,这个我遇到的是我用了setpostion然后没效果后面加这个函数就行了

5、SetVierAngle(double angle)默认角度是30°如果是平行投影,这个函数也无效

6、vtkCamera::Dolly(),vtkCamera::Roll()旋转,vtkCamera::Azimuth()(纬度),vtkCamera::Yaw(),vtkCamera::Elevation()(经度),vtkCamera::Pitch(),vtkCamera::Zoom()这些都是可以控制camera的移动

下面是我使用的几个接口:

构造函数:m_render->GetActiveCamera()->ParallelProjectionOn();//二维的开启平行光投影
    m_render->GetActiveCamera()->OrthogonalizeViewUp();//设置正交角度

设置远近交互:double temp_scale = m_viewer->GetRenderer()->GetActiveCamera()->GetParallelScale();
    m_viewer->GetRenderer()->GetActiveCamera()->SetParallelScale(temp_scale--);

m_viewer->GetRenderer()->GetActiveCamera()->SetParallelScale(temp_scale++);//由于开启了平行投影,用zoom会出现bug,用setpostion没用也不知道为啥

初始化reset: this->m_render->ResetCamera();
        this->m_render->GetActiveCamera()->ComputeViewPlaneNormal();
        this->m_render->GetActiveCamera()->SetParallelScale(75.0);//越近越大

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值