|
发表于 2020-10-14 17:49:12
|
显示全部楼层
// 控制地球自转的
earthRotator = new osg:ositionAttitudeTransform();
earthRotator->addChild(mapNode);
/*
* osg::PositionAttiruteTransform类没有像osg::MatrixTransform那样的rotate方法,
* 只有setAttitude方法,该方法的参数是一个四元组对象,四元组的第一个参数是旋转的角度(弧度为单位),
* 第二个参数是个向量,表示绕哪个轴旋转的向量
*/
void OsgEarthScene::refreshDisplay() const
{
// 按秒计算当前转过的角度,
double angle = simTime().inUnit(SIMTIME_S) / 60.0 / 60 / 24 * 2 * M_PI;
earthRotator->setAttitude(osg:uat(angle, osg::Vec3d(0, 0, 1)));
} |
|