查看: 3500|回复: 8

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

[复制链接]

该用户从未签到

发表于 2015-4-27 17:41:53 | 显示全部楼层 |阅读模式
现在想做一个卫星围绕地球的模拟,卫星轨道已经画出来了,卫星模型也添加上了,但是我不知道如何使卫星沿着轨道进行旋转,最好能用osgEarth函数实现,希望大神能够给予指导,多谢!

该用户从未签到

发表于 2015-4-28 09:58:22 | 显示全部楼层
osg的AnimationPath可以实现

该用户从未签到

 楼主| 发表于 2015-4-29 15:31:10 | 显示全部楼层
ago 发表于 2015-4-28 09:58
osg的AnimationPath可以实现

非常感谢!!!

该用户从未签到

发表于 2015-5-5 15:42:20 | 显示全部楼层
有没有什么办法能实现地球自转的啊?

该用户从未签到

 楼主| 发表于 2015-5-5 16:24:58 | 显示全部楼层
mousezhp 发表于 2015-5-5 15:42
有没有什么办法能实现地球自转的啊?

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

该用户从未签到

发表于 2015-11-2 17:13:05 | 显示全部楼层
LZ的轨道是根据TLE数据画的么?

该用户从未签到

发表于 2015-11-3 13:41:58 | 显示全部楼层
mousezhp 发表于 2015-5-5 15:42
有没有什么办法能实现地球自转的啊?

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

该用户从未签到

发表于 2020-9-16 11:07:30 | 显示全部楼层
卫星绕地球旋转实现了么?卫星绕圈的时候会转动么?

该用户从未签到

发表于 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)));
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表