|
楼主 |
发表于 2009-6-9 15:04:43
|
显示全部楼层
在函数handle的FRAME事件中
我是这样写的
osgViewer::view* view = dynamic_cast<osgViewer::view*>(&us);
osg::Camera* camera = view ->getCamera();
osg::vec3 eye,center,up;
camera>getMatrix->getLookat(eye,center,up);
这样获取的三个值还是相同的
您说的从 getInverseMatrix()中分解eye,center,up这三个值,它的返回值是一个矩阵,麻烦您指教下如何分解这三个值,getInverseMatrix()函数中的代码如下:
return osg::Matrixd::translate(-_center)*osg::Matrixd::rotate(_rotation.inverse())*osg::Matrixd::translate(0.0,0.0,-_distance);
上面只有center的值,不知道是否还要深入的分解,望您指教下,谢谢!!! |
|