osgearth 仿真平台之卫星仿真(实现STK卫星仿真基本功能)

7 篇文章 4 订阅
4 篇文章 2 订阅

卫星工具软件 STK(Satellite Tool Kit,STK)是航天领域中先进的系统分析软件,由美国分析图形有限公司(Analytical Graphics Inc,AGI)研制,用于分析复杂的陆地、海洋、航空及航天任务。它可提供逼真的2维、3维可视化动态场景以及精确的图表、报告等多种分析结果。支持卫星寿命的全过程,在航天飞行任务的系统分析、设计制造,测试发射以及在轨运行等各个环节中都有广泛的应用,对于军事遥感卫星的战场监测、覆盖分析、打击效果评估等方面同样具有极大的应用潜力。

主要功能:

1)分析能力:计算卫星在任何时刻的位置和姿态,卫星或地面站遥感器的覆盖区域;

2)生成轨道:提供卫星轨道生成向导,帮助用户建立常见轨道,如地球同步轨道、近地轨道等;

3)可见性分析:计算空间对象间的访问时间并在二维地图窗口中动画显示,可以在对象间增加几何约束条件(如可视范围、最小仰角等)来进行细节上的仿真;

4)可视化计算结果:可以显示所有以时间为单位的信息,对任务场景变化等具备多窗口实时显示能力;

5)全面的数据报告:STK可以提供超过一百种的文字或图表形式的报告信息,用户可以为自己关心的对象定制报告。

osgearth 仿真平台模拟了STK卫星仿真基本功能,可以加载多达上万颗卫星,也可以加载STK仿真轨迹来加载卫星。仿真效果如下图所示:、

 图1 stk仿真图像

图2 osgearth仿真三维

图3 osgearth 仿真二维

 图4 osgearth 仿真三维

 

图5 二维

图6 三维

 

 图7 2维

关键代码:

osg::Geode* line_gnode = new osg::Geode;
    osg::ref_ptr<osg::Vec3Array>vectex = new osg::Vec3Array;
    osg::ref_ptr<osg::Vec4Array>color = new osg::Vec4Array;
    osg::ref_ptr<osg::Geometry>gemo = new osg::Geometry;

    double delta = 25;
    //在两点间插25个值
    for (int i = 0; i <= delta; i++)
    {
        osg::Vec3d temp;
        //经纬度
        temp.x() = start.x() + (end.x() - start.x()) * (i / delta);
        temp.y() = start.y() + (end.y() - start.y()) * (i / delta);
        temp.z() = start.z() + (end.z() - start.z()) * (i / delta);
        vectex->push_back(LngLatHeight2XYZ(temp));
    }

    for (int i = 0; i < vectex->size(); i++)
    {
        color->push_back(Color);
    }

    //画线
    gemo->setVertexArray(vectex);
    gemo->setColorArray(color);
    //此句影响绘制效率
    gemo->setColorBinding(osg::Geometry::BIND_OVERALL);
    gemo->addPrimitiveSet(new osg::DrawArrays(GL_LINE_STRIP, 0, vectex->size()));
    //灯光
    gemo->getOrCreateStateSet()->setAttribute(new osg::LineWidth(3.0), osg::StateAttribute::ON);
    gemo->getOrCreateStateSet()->setMode(GL_LIGHTING, osg::StateAttribute::OFF);
    line_gnode->addDrawable(gemo);

  • 3
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吉生太

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值