|
本帖最后由 abc-osg 于 2014-4-24 13:48 编辑
osg::ref_ptr<osg::MatrixTransform> omt;
omt = new osg::MatrixTransform() ;
osg::Matrix mr, mr1;
//旋转,绕-y轴,假设旋转90角度
mr.makeRotate(osg:: DegreesToRadians(angle),0.0f,-1.0f,0.0f);
//设置矩阵
omt->setMatrix(mr);
mr1=omt->getMatrix();
osg:: Quat quat=mr1.getRotate();
osg::Vec4d v=quat.asVec4();
CString str;
str.Format("%f",osg:: RadiansToDegrees(v[3]));
AfxMessageBox(str);
反过来得到旋转的角度。
得到的结果不是90度,错误在哪儿?大侠指点,有别的办法吗? |
|