查看: 1770|回复: 2

AnimationPath物体飞的很高

[复制链接]

该用户从未签到

发表于 2015-11-2 17:52:47 | 显示全部楼层 |阅读模式
模仿Sample osgearth_los 做一个demo,vecpoints是用Geometry->toVec3dArray()获取的地理坐标点,但是会出现沿着路径跑的对象飞到外太空去了。不知道如何入手。请教我一下,谢谢。

  1. osg::AnimationPath* CStormPlay::createAnimationPath(const vector<osg::Vec3d>& vecPoints, const SpatialReference* mapSRS)
  2. {
  3.         // set up the animation path
  4.         osg::AnimationPath* animationPath = new osg::AnimationPath;
  5.         animationPath->setLoopMode(osg::AnimationPath::NO_LOOPING);
  6.         int numSamples = 40;

  7.         double time=0.0f;
  8.         double time_delta = 1.0f;
  9.         for (int i = 0;i < vecPoints.size();i++)
  10.         {
  11.                 double dd = vecPoints[i].x();
  12.                 GeoPoint gpt(mapSRS, vecPoints[i].x(),vecPoints[i].y(),4133.06,ALTMODE_ABSOLUTE);
  13.                 GeoPoint mapPos;
  14.                 gpt.transform(mapSRS,mapPos);
  15.                 osg::Vec3d centerWorld;
  16.                 mapPos.toWorld(centerWorld);


  17.                 animationPath->insert(time,osg::AnimationPath::ControlPoint(centerWorld));
  18.                 time += time_delta;  
  19.         }
  20.        

  21.         return animationPath;   
  22. }
复制代码



无标题.png

该用户从未签到

发表于 2015-11-4 09:16:10 | 显示全部楼层
可能是因为path不是一个环状

该用户从未签到

 楼主| 发表于 2015-11-4 09:52:01 | 显示全部楼层
lee小子 发表于 2015-11-4 09:16
可能是因为path不是一个环状

先谢谢回复。
我把路径参数设为osg::AnimationPath:OOP,没有效果。只是循环播放了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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