第七节《解决vtkActor显示大小不随相机改变而变化》

        相机在世界中的缩放发生变化后,vtkActor大小会随之变化,当我们项目设计一些3D控制器时或者标记点时,我们是不希望标记点大小发生变化的,这样就能保证标记点或者控制点大小永远不会发生变化。那么改如何解决这个问题,其实很简单,我们获取相机的缩放系数后,将此系数附加到vtkActor上,这样就保证了actor与相机之间大小是固定不变的。

图片中的小球与箭头大小相对于相机固定不变。 

具体实现步骤如下:

步骤一:

        将相机投影方式改成平行投影矩阵:camera->ParallelProjectionOn();

步骤二:

        获取相机的缩放系数:double zoom = camera->GetParallelScale();

步骤三:

        将此系数附加到vtkActor中:actor->SetScale(zoom, zoom, zoom);

步骤四:

        在鼠标管理事件中实时获取相机缩放系数,将最新的缩放系数设置到actor中。

        上面是具体实现步骤,但在实际项目开发中,如果是按照上面方式去完成此功能,这样写的代码应该是看不下去的,代码不具备封装性、拓展性、可维护性。想很好的完成此功能最好将vtkActor重写,vt

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

《雨声》

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值