如何实现卫星绕地球的旋转
现在想做一个卫星围绕地球的模拟,卫星轨道已经画出来了,卫星模型也添加上了,但是我不知道如何使卫星沿着轨道进行旋转,最好能用osgEarth函数实现,希望大神能够给予指导,多谢! osg的AnimationPath可以实现 ago 发表于 2015-4-28 09:58osg的AnimationPath可以实现
非常感谢!!! 有没有什么办法能实现地球自转的啊? mousezhp 发表于 2015-5-5 15:42
有没有什么办法能实现地球自转的啊?
针对mapNode节点进行操作就行吧 LZ的轨道是根据TLE数据画的么? mousezhp 发表于 2015-5-5 15:42
有没有什么办法能实现地球自转的啊?
把地球的earthnode加到matrixtransform里面,让后旋转matrixtransform 卫星绕地球旋转实现了么?卫星绕圈的时候会转动么? // 控制地球自转的
earthRotator = new osg::PositionAttitudeTransform();
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::Quat(angle, osg::Vec3d(0, 0, 1)));
}
页:
[1]