查看: 1002|回复: 6

TrackballManipulator的设置

[复制链接]

该用户从未签到

发表于 2015-11-25 16:48:11 | 显示全部楼层 |阅读模式
osg默认的TrackballManipulator有这样的问题:
旋转、缩放的中心都是在原点处,当平移后,旋转中心不再是物体的自身中心,缩放也放不是。
我能不能重载TrackballManipulator来实现这个效果呢,如果要实现的话,该怎么做呢?

该用户从未签到

发表于 2015-11-26 08:36:48 | 显示全部楼层
昨天刚解决了这个问题,再每次旋转的时候重新计算中心点,然后设置进去,
        //m_vCenter是中心点位,一般使用鼠标点击位置
        setHomePosition(eye,m_vCenter,up);
这有个前提是,我已经假设你重载了旋转,如果没有要先重载旋转,再把这个代码加在旋转之前就可以了

该用户从未签到

 楼主| 发表于 2015-11-26 10:40:33 | 显示全部楼层
eerfcfc 发表于 2015-11-26 08:36
昨天刚解决了这个问题,再每次旋转的时候重新计算中心点,然后设置进去,
        //m_vCenter是中心点位 ...

你说的重载旋转是重载rotateTrackball么

该用户从未签到

 楼主| 发表于 2015-11-26 13:32:34 | 显示全部楼层
eerfcfc 发表于 2015-11-26 08:36
昨天刚解决了这个问题,再每次旋转的时候重新计算中心点,然后设置进去,
        //m_vCenter是中心点位 ...

这个中心点该如何计算呢,好像不是boundingsphere center

该用户从未签到

发表于 2015-11-27 14:50:14 | 显示全部楼层
这个中心点是自定义的,怎么算都行,效果不一样。
一般用鼠标按下的点即可

该用户从未签到

 楼主| 发表于 2015-11-28 11:40:37 | 显示全部楼层
eerfcfc 发表于 2015-11-27 14:50
这个中心点是自定义的,怎么算都行,效果不一样。
一般用鼠标按下的点即可

不好意思啊,要怎么计算鼠标坐标在世界坐标系下的坐标啊

该用户从未签到

发表于 2015-12-9 08:29:44 | 显示全部楼层
江湖贫侠 发表于 2015-11-28 11:40
不好意思啊,要怎么计算鼠标坐标在世界坐标系下的坐标啊

两种,一种用PICK,计算交点,如果不知道可以看osgExample
另一种直接计算坐标,http://bbs.osgchina.org/forum.ph ... amp;page=1#pid69955
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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