查看: 2106|回复: 4

参考坐标轴

[复制链接]

该用户从未签到

发表于 2009-11-20 15:15:20 | 显示全部楼层 |阅读模式
想做一个参考坐标轴,作用是为了表示某个物体的坐标方向问题,现在有一个问题就是参考坐标轴是不能缩放,只能随着场景的选择而进行旋转,且每次显示都需要在物体的最前方进行显示,不能被物体说遮挡。我看了旧帖看到array说到继承Transform,重写computeLocalToWorldMatrix和computeWorldToLocalMatrix,只接受旋转参数,我这个人比较愚笨,始终不知道是怎么只接受旋转参数,computeLocalToWorldMatrix(osg::Matrix& matrix,osg::NodeVisitor*)我猜想应该是只接受matrix的参数,但是始终还是领会不到真正的意思,特此求助,万分感谢。

该用户从未签到

发表于 2009-11-20 16:32:37 | 显示全部楼层
方法很多:比如您预先就用一个成员变量记录下旋转值;又比如用Matrix::getRotate(),但是要保证矩阵没有经过放缩~~

该用户从未签到

 楼主| 发表于 2009-11-21 12:04:49 | 显示全部楼层
2# array
您的意思是computeLocalToWorldMatrix(osg::Matrix&matrix,osg::NodeVisitor*)保存matrix的旋转参数,然后保证matrix没有进行缩放,也就是说重新设置matrix的值,保证其没有缩放?

该用户从未签到

 楼主| 发表于 2009-11-21 20:48:11 | 显示全部楼层
2# array
我在computeLocalToWorldMatrix(osg::Matrix& matrix,osg::NodeVisitor* nv) const里写了下面代码,可是效果虽然没有缩放了,但是发现在进行旋转的时候,位置移动了。不知道哪块还需要注意的
osg:uat& q = matrix.getRotate();   
    osg::Matrix pTmp;   
    pTmp.setRotate(q);
if (_referenceFrame==RELATIVE_RF)
    {        
        matrix = pTmp;
        return false;
    }

该用户从未签到

发表于 2009-11-22 15:27:27 | 显示全部楼层
凭目前的信息,抱歉我猜不到~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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