查看: 1342|回复: 5

OSG的官方例子中的一个问题

[复制链接]

该用户从未签到

发表于 2010-8-11 17:33:59 | 显示全部楼层 |阅读模式
在OSG的许多官方例子中,鼠标左键动作后,模型会自动旋转,
是什么让它旋转的?
如何能不让模型旋转呢??

该用户从未签到

发表于 2010-8-11 22:42:30 | 显示全部楼层
添加一个鼠标事件响应事件,在里面写上你要的动作就行了

该用户从未签到

发表于 2010-8-12 00:00:20 | 显示全部楼层
您似乎需要考虑的是,其实并不是模型在旋转,而是您的视点在变换~~~它默认使用TrackballManipulator这个场景操作器

该用户从未签到

 楼主| 发表于 2010-8-12 10:11:31 | 显示全部楼层
3# FlySky


void cOSG::InitManipulators(void)
{
    // Create a trackball manipulator 创建一个trackball操作器
    trackball = new osgGA::TrackballManipulator();
    // Create a Manipulator Switcher 创建一个KEY切换
    keyswitchManipulator = new osgGA::KeySwitchMatrixManipulator;
    // Add our trackball manipulator to the switcher 加入KEY切换
    keyswitchManipulator->addMatrixManipulator( '3', "Drive", trackball.get());
    // Init the switcher to the first manipulator (in this case the only
能不能说详细一点啊?manipulator) 选择一个
    keyswitchManipulator->selectMatrixManipulator(0);  // Zero based index Value
}

mViewer->setCameraManipulator(keyswitchManipulator.get());

是这两段的原因吗??
能不能说详细点啊

该用户从未签到

发表于 2010-8-12 10:43:40 | 显示全部楼层
你可以看看TrackballManipulator的源码

该用户从未签到

发表于 2010-8-12 11:21:27 | 显示全部楼层
setCameraManipulator会设置一个漫游器,因此您可以使用鼠标来浏览场景。将这里设置为NULL,并且不要使用viewer.run()而是用viewer.frame(),就可以屏蔽这些工作了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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