|
我建了一个HudCamera,然后挂了几个图片在上面模拟按钮.现在想做一个时钟,分针和钟表盘都是用图片,但是在旋转分针时有问题了.
我分针(图片)Z坐标是-0.1. 下面是伪代码
osg::MatrixTransform* _matrix = new osg::MatrixTransform();
钟表盘->AddChild(_matrix);
osg:uat q;
osg:ositionAttitudeTransform* _trans = new osg::PositionAttitudeTransform();
_matrix->addChild(_trans);
_trans->addChild(分针);
q.makeRotate(0.3f,osg::Vec3(0,0,1));
_trans->setAttitude(q);
旋转的时候并不是以图片的中点,而是以空间的某一点在旋转.围Z轴旋转后,图片是旋转了,但是也向右和下平移了一段距离.
而且把这一句q.makeRotate(0.3f,osg::Vec3(0,0,1));该为q.makeRotate(0.3f,osg::Vec3(0,1,1));同时绕y轴和z轴旋转,效果也一样,只是平移的距离更大了.
应该怎样解决? 我想让图片中点对应空间的一点作旋转.用了_trans->setPivotPoint()也没有用,不知道怎么设置该点.希望能得到帮助 |
|