1.osg图形中坐标转换总结
(1)欧拉转矩阵
欧拉角 (单位度)
偏航角 :heading 绕z轴旋转,
俯仰角:pitch 绕x轴旋转
自转角:roll y轴旋转
osg::Matrix mt=osg::Matrix::rotate( pitch*osg::PI/180,osg::Vec3d(1,0,0),roll*osg::PI/180,osg::Vec3d(0,1,0),heading*osg::PI/180,osg::Vec3d(0,0,1));
(2) 矩阵转欧拉
已知矩阵osg::Matrix mt;
osg::Quat quat=mt.getRotate();//先得到四元数,再通过四元数转欧拉角。
(3) 欧拉转四元数
//弧度单位
osg::Quat HPRToQuat(double heading, double pitch, double roll)
{
osg::Quat q(
roll, osg::Vec3d(0.0, 1.0, 0.0),
pitch, osg::Vec3d(1.0, 0.0, 0.0),
heading, osg::Vec3d(0.0, 0.0, 1.0));
return q;
}