osgearth操作器EarthManipulator解析

仅作参考(自己理解,有错不负责):

EarthManipulator操作器内部封装4个矩阵实现位置及姿态的变换(参考源码):

osg::Matrixd EarthManipulator::getMatrix() const
{
    return osg::Matrixd::translate(-_offset_x,-_offset_y,_distance)*
           osg::Matrixd::rotate(_rotation)*
           osg::Matrixd::rotate(_centerRotation)*
           osg::Matrixd::translate(_center);
}

其中第一个translate将相机移动至世界坐标原点位置;

第二个rotate表示相机绕北天东坐标系旋转;

第三个rotate表示相机根据位置(经纬坐标)调整自己的视口,使相机移动时始终拥有固定的北天东偏转角度;

第四个translate表示相机从球心至视点位置的矩阵;

你可能感兴趣的:(osgearth)