查看: 1557|回复: 7

请教,如何实现模型的等比例缩放交互?

[复制链接]

该用户从未签到

发表于 2011-10-18 21:54:27 | 显示全部楼层 |阅读模式
如题,请教大家,如何实现对模型等比例缩放的Dragger?osgManipulator库中好像没有等比例缩放的支持,谢谢。

该用户从未签到

发表于 2011-10-19 09:33:27 | 显示全部楼层
用osg::MatrixTransform类,设置一个矩阵控制节点,完成放缩矩阵,然后将这个节点作为你要操作的节点的父节点加入,就OK了。

该用户从未签到

发表于 2011-10-19 10:56:55 | 显示全部楼层
或者Pat节点,scale参数~~~~~~~~

该用户从未签到

 楼主| 发表于 2011-10-19 18:43:58 | 显示全部楼层
大家可能没明白,我指的是实现类似于osgManipulator库中TabBoxDragger,等比例缩放的这种拖曳器,直接响应鼠标完成模型的等比例缩放功能。如果有类似经验,请指教。

该用户从未签到

发表于 2011-10-21 17:01:17 | 显示全部楼层
什么叫“等比例缩放”的拖曳器

该用户从未签到

发表于 2011-10-21 17:48:08 | 显示全部楼层
本帖最后由 justwww 于 2011-10-21 17:50 编辑
什么叫“等比例缩放”的拖曳器
array 发表于 2011-10-21 17:01



    楼主的意思是:比如在画图板 mspaint 中,画一个椭圆,可以用鼠标往不同方向拖,画出的椭圆的长宽比可能是1:5,也可能是2:1,完全取决于鼠标拖动方向。

                       楼中要想的是相当于在上面按往Shift再进行拖动,这么不管鼠标往什么方向拖,永远是1:1的圆。即XYZ三个方向上缩放比例永远相同。

该用户从未签到

发表于 2011-10-24 09:57:27 | 显示全部楼层
这个不难处理吧,而且您已经找到可以参考的TabBoxDragger类了

该用户从未签到

 楼主| 发表于 2011-10-24 20:37:50 | 显示全部楼层
回复 7# array

谢谢,你说的对,基于类似ScaleAxisDragger这种拖曳器,自定义事件处理即可,自己也没仔细考虑。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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