• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

osgEarth AnimationPath路径动画

武飞扬头像
娄肖飞
帮助2

目录

飞机飞行实例

路径动画暂停

路径动画继续

osgEarth 视角跟踪飞机飞行

相机跟踪飞机移动

视角移动到特定地点


        osg::AnimationPath 封装了一个随时间变化的过程,可以用来更新相机位置和模型对象的位置。

飞机飞行实例

  1.  
    void doAPreLine()
  2.  
    {
  3.  
    osg::ref_ptr<osg::Vec4Array> vaTemp = new osg::Vec4Array;
  4.  
     
  5.  
    // 设置飞行路径
  6.  
    vaTemp->push_back(osg::Vec4(109.1347, 34.3834, 437, 50));
  7.  
    vaTemp->push_back(osg::Vec4(109.1347, 34.3834, 487, 80));
  8.  
    vaTemp->push_back(osg::Vec4(109.1174, 34.3686, 500, 80));
  9.  
    vaTemp->push_back(osg::Vec4(108.8794, 34.1944, 3000, 200));
  10.  
    vaTemp->push_back(osg::Vec4(107.1302, 34.3941, 5000, 200));
  11.  
    vaTemp->push_back(osg::Vec4(108.9387, 34.9202, 8000, 200));
  12.  
    vaTemp->push_back(osg::Vec4(109.5066, 34.51, 8000, 200));
  13.  
    vaTemp->push_back(osg::Vec4(109.1347, 34.3834, 437, 200));
  14.  
    osg::ref_ptr<osg::AnimationPath> apc = new osg::AnimationPath(vaTemp);
  15.  
     
  16.  
    // 创建动画回调
  17.  
    osg::ref_ptr<osg::AnimationPathCallback> animationPath = new osg::AnimationPathCallback(apc, 0, 1);
  18.  
    // 调用动画回调 (mtfly 是飞机矩阵)
  19.  
    mtfly->addUpdateCallback(animationPath);
  20.  
     
  21.  
    }
学新通

路径动画暂停

  1.  
    // 路径动画暂停
  2.  
    animationPath->setPause(true);

路径动画继续

  1.  
    // 路径动画继续
  2.  
        animationPath->setPause(false);

osgEarth 视角跟踪飞机飞行

相机跟踪飞机移动

  1.  
    osg::ref_ptr<osgEarth::Util::EarthManipulator> em; // 地球操作器
  2.  
     
  3.  
    // 跟踪飞机移动 (flyAirport 是 飞机节点)
  4.  
    em->setTetherNode(flyAirport);

视角移动到特定地点

  1.  
    // 新建视点
  2.  
    osgEarth::Viewpoint vp;
  3.  
    // 设置视点位置
  4.  
    vp.setNode(flyAirpoit);
  5.  
    // 设置距离
  6.  
    vp.setRange(1500);
  7.  
    // 设置水平角度和垂直角度
  8.  
    vp.setHeading(-13);
  9.  
    vp.setPitch(-42);
  10.  
    // 设置视点 (参数:视点 和 转移到视点的时间(单位秒))
  11.  
    em->setViewpoint(vp, 5);

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhibccba
系列文章
更多 icon
同类精品
更多 icon
继续加载