查看: 3717|回复: 5

当我想让视点Fly to地形上的某点时,如何实现googleearth那种慢慢旋转到目标的效果?

[复制链接]

该用户从未签到

发表于 2009-3-1 20:19:33 | 显示全部楼层 |阅读模式
请大家提供思路!

[ 本帖最后由 口口广大 于 2009-3-1 20:21 编辑 ]

该用户从未签到

发表于 2009-3-1 21:46:01 | 显示全部楼层
可以考虑使用AnimationPathManipulator,不过更建议自己编写类似功能的漫游器,以实现自定义的动画路径功能

该用户从未签到

发表于 2010-9-10 02:18:44 | 显示全部楼层
王锐你好,我正想做类似效果的漫游器,想实现点击场景某个位置然后以fly_to的方式缓缓飞过去,用的AnimationPathManipulator,设置一个AnimationPath,然后insert进去起点和终点,再将这个AnimationPath加入AnimationPathManipulator。我现在遇到这样一个问题:我在单击的响应函数中执行insert:
animationPath->insert(0.0,osg::AnimationPath::ControlPoint(startPosition));
animationPath->insert(3.0,osg::AnimationPath::ControlPoint(endPosition));

我想实现这样的效果:单击之后由startPosition经3秒飞到endPosition,但是实际效果是好像时间起点不是单击后开始的,而是系统开始运行就开始执行了,所以每次都是从中间某个位置过去的,如果系统运行过了3秒,就会直接跳到最后的位置,我不知道是什么原因,我原来做过一个类似的,实现物体运动,用的AnimationPathCallback,就不存在这样的问题啊,不知道这个时间是怎么参考的,万望指教!

该用户从未签到

发表于 2010-9-10 08:32:13 | 显示全部楼层
AnimationPathManipulator目前的设计并没有setStartTime(),您可以参考AnimationPathCallback给它添加一个并在实现函数中计算所需的时间偏移,或者您可以直接从getFrameStamp()中取得当前时间并设置到animationPath的控制点中

该用户从未签到

发表于 2015-2-11 17:20:49 | 显示全部楼层
来晚了,使用EarthManipulator就可以实现smoth fly to viewpoint的功能

该用户从未签到

发表于 2016-5-18 13:19:45 | 显示全部楼层
osg::ref_ptr<osgEarth::Util::EarthManipulator> m_maniEarth;       
m_maniEarth->setViewpoint(osgEarth::Util::Viewpoint("wgs84", 116.3, 39.9, 200.0f, 0.0f, -90.0f, 2E7), 4.0);
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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