查看: 1780|回复: 3

如何实现放大镜的功能

[复制链接]

该用户从未签到

发表于 2012-10-11 00:57:20 | 显示全部楼层 |阅读模式
本帖最后由 smilewithyou02 于 2012-10-11 00:58 编辑

      我想实现如下一个功能:场景中有一个模型,比如是一个飞机模型,然后我将鼠标移动到飞机上的某个地方,就能将这一块放大显示出来(直接在以鼠标位置为中心的一个方形或圆形区域中显示放大的部分),该怎么实现呢。
      我的想法是使用多视口方法,用主视口去显示飞机模型,然后另外用一个方形或圆形的视口来显示放大的部分,并且根据鼠标当前的位置来决定第二个视口的位置。
      如下图所示,我的鼠标位置在屏幕左下角,并不在飞机上,但是仍然显示飞机的放大内容。

放大镜1

放大镜1

      在下面这个图中,鼠标位置在机翼上,但是仍然显示机头的放大内容。

      (1)怎样才能实现鼠标移动到哪里,就放大哪一部分的内容呢?
      (2)我判断鼠标位置,然后设置视口位置的方法有点问题,不知道怎么做效果会好些?
希望指教。谢谢

该用户从未签到

发表于 2012-10-11 08:57:03 | 显示全部楼层
本帖最后由 sy2178668 于 2012-10-11 09:15 编辑

你用setViewMatrixAsLookAt()分别设置第二个视口的eye,center,up试试。刚看了http://bbs.osgchina.org/forum.ph ... &extra=page%3D1这个帖子,里面说可以用osgWidgets来控制视点位置进行缩放

该用户从未签到

发表于 2012-10-12 08:48:08 | 显示全部楼层
根据当前Camera的位置,设置放大Camera的位置,设置distence就可以,但是设置多少,放大到什么效果还需要确定,已经离模型很近了等等,这些问题都需要考虑

该用户从未签到

 楼主| 发表于 2012-10-16 22:21:39 | 显示全部楼层
谢谢你们的回答
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表