jeton19891229 发表于 2015-4-27 17:41:53

如何实现卫星绕地球的旋转

现在想做一个卫星围绕地球的模拟,卫星轨道已经画出来了,卫星模型也添加上了,但是我不知道如何使卫星沿着轨道进行旋转,最好能用osgEarth函数实现,希望大神能够给予指导,多谢!

ago 发表于 2015-4-28 09:58:22

osg的AnimationPath可以实现

jeton19891229 发表于 2015-4-29 15:31:10

ago 发表于 2015-4-28 09:58
osg的AnimationPath可以实现

非常感谢!!!

mousezhp 发表于 2015-5-5 15:42:20

有没有什么办法能实现地球自转的啊?

jeton19891229 发表于 2015-5-5 16:24:58

mousezhp 发表于 2015-5-5 15:42
有没有什么办法能实现地球自转的啊?

针对mapNode节点进行操作就行吧

kookwangzheng 发表于 2015-11-2 17:13:05

LZ的轨道是根据TLE数据画的么?

hjqh 发表于 2015-11-3 13:41:58

mousezhp 发表于 2015-5-5 15:42
有没有什么办法能实现地球自转的啊?

把地球的earthnode加到matrixtransform里面,让后旋转matrixtransform

yyyDDDyyy 发表于 2020-9-16 11:07:30

卫星绕地球旋转实现了么?卫星绕圈的时候会转动么?

robinfoxnan 发表于 2020-10-14 17:49:12

// 控制地球自转的
    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]
查看完整版本: 如何实现卫星绕地球的旋转