空间路径的沿线漫游方法及计算机可读存储介质与流程

文档序号:34107311发布日期:2023-05-10 20:45阅读:69来源:国知局
空间路径的沿线漫游方法及计算机可读存储介质与流程

本发明涉及三维空间,具体为一种空间路径的沿线漫游方法及计算机可读存储介质。


背景技术:

1、三维gis开发中经常会遇到沿固定路径漫游的场景,其主要的漫游方式有两种:

2、1)设备沿固定路径运动,设置虚拟相机的固定视点位置,虚拟相机在固定视点位置对观察对象进行追踪;

3、2)设备沿固定路径运动,设置多个虚拟相机的视点位置,记录虚拟相机在多个视点位置的姿态,根据记录的虚拟相机在每个视点位置的姿态调整虚拟相机视角。

4、目前三维gis平台的搭建通常是基于cesium,cesium为三维gis平台提供设备追踪机制,使设备按照固定路径运动,实时调整设备的运动方向,但并没有调整虚拟相机视角的观察方向,故而在路径漫游的时候不会有身临其境的感觉,为了在沿固定路径漫游时,更好的调整虚拟相机视角的观察方向,通常会手动操作记录虚拟相机在每一个视点位置的姿态,根据记录的虚拟相机在每个位置的姿态调整虚拟相机视角,此漫游方法依靠手动操作效率较低,漫游时会偏离固定路径且转弯处无法定点插值。

5、如cn202111151452.6顾及地形起伏的web端三维场景姿态自适应的路径漫游方法,其主要是通过获取生态空间已有要素图形,生态空间已有要素图形具有连续xy坐标点;利用道格拉斯节点抽吸算法对生态空间已有要素图形进行简化,保留的节点作为自动漫游路径节点;基于自动漫游路径节点,结合三维场景中的地形数据,实时计算漫游行进途中每一帧三维场景的漫游姿态参数;在web端浏览器中对每一帧的三维场景进行实时渲染和刷新,完成沿自动漫游路径节点自动漫游的过程。此漫游方法中的高程仅依靠地形数据获取,局限性太大,漫游时地面上空的点、拐点均无法处理。

6、因此,目前的三维gis平台在路径漫游时仅适用于在固定范围观察设备的运动,虚拟相机的观察方向并不能很好的控制,而实际中需要虚拟相机以设备视角沿空间路径漫游随处可见,现亟需设计一种空间路径的沿线漫游方法,以克服现有漫游的上述缺陷。


技术实现思路

1、本发明的目的在于提供一种空间路径的沿线漫游方法,以解决现有的漫游方法不能控制虚拟相机观察方向,不便于虚拟相机以设备视角对空间路径进行沿线漫游的问题。

2、为实现上述目的,本发明提供如下技术方案:

3、一种空间路径的沿线漫游方法,其包括以下步骤:

4、步骤s1:在三维空间场景中绘制空间路径,获取空间路径的三维坐标数据;

5、步骤s2:设置虚拟相机漫游的初始值,包括初始漫游速度v0、相机初始俯仰角β0以及虚拟相机与视点的距离r0;

6、步骤s3:将空间路径拆分为间隔分布的直线路径和拐点路径;

7、步骤s4:计算直线路径的距离和方向向量以及虚拟相机运动所需要的时间;

8、步骤s5:对直线路径进行线性插值,计算插值位置的航向角、直线路径与水平面之间的夹角以及虚拟相机的俯仰角,构建直线路径的线性动画;

9、步骤s6:利用拐点两侧的直线路径的航向角以及虚拟相机的初始俯仰角β0构建虚拟相机绕该拐点旋转前和旋转后的四元数;

10、步骤s7:确定拐点两侧的直线路径的方向向量,分别对虚拟相机绕该拐点旋转前和旋转后的四元数进行平滑线性插值、对拐点两侧的直线路径的方向向量进行线性插值,并确定出该拐点插值方向与水平面之间的夹角以及虚拟相机在该拐点处对应的俯仰角,构建该拐点处的旋转动画;

11、步骤s8:按照上述步骤s4~步骤s7的方法分别绘制出步骤s3中拆分出的各直线路径和拐点路径对应的线性动画和旋转动画,并按照多线段顺序组合成全路径动画,完成空间路线的沿线漫游。

12、进一步限定,所述步骤s1具体为:获取空间场景中空间路径的三维坐标数据,包括x,y坐标值以及高程h,标记空间路径的n个空间坐标点合集为{p1、p2…pi、pi+1…pn},i∈[1,n-1],且hpi为pi点的高程,hpi+1为pi+1点的高程。

13、进一步限定,所述步骤s3中直线路径为拐点为p2、p3、p4…pn-1。

14、进一步限定,所述步骤s4中,直线路径其中pi至pi+1的方向向量ni通过以下公式计算:

15、

16、虚拟相机从pi匀速运动至pi+1所需要的时间ti为:

17、

18、进一步限定,所述步骤s5具体为:

19、步骤s5.1:对直线路径pi至pi+1用时间ti进行线性插值,插值坐标为pt,确定出插值位置的航向角αt,计算线段pi至pi+1与水平面之间的夹角其中δ表示插值pt与直线路径pi至pi+1的方向向量ni之间的夹角,进而确定出虚拟相机俯仰角为βs=β0+βt;

20、步骤s5.2:根据插值pt和由航向角αt以及虚拟相机俯仰角βs以及虚拟相机与视点的距离r0组成的偏移集{αt,βs,r0},实时更新虚拟相机的位置和方向,形成pi至pi+1的直线路径动画sai。

21、进一步限定,所述步骤s5.2之后还包括步骤s5.3改变虚拟相机的漫游速度,具体操作为:

22、停止所有动画,记录虚拟相机的当前位置,重复步骤s3-s8的操作,直至完成当前位置至pn点之间的路径漫游。

23、进一步限定,所述插值位置的航向角αt的确定方法为:

24、获取插值坐标pt垂直于当前地表的垂直坐标系矩阵,计算出其逆矩阵;

25、计算地心到插值点的方向,确定出单位向量;

26、分别计算逆矩阵与单位向量的乘积u和逆矩阵与方向向量的乘积m;

27、判断m是否与z轴平行,若是,则αt=math.atan2(u.y,u.x)-π/2;若否,则αt=

28、math.atan2(m.y,m.x)-π/2;

29、利用αt=2π-cesium.math.zerototwopi(αt)将αt转换为0<=αt<=2π的角度。

30、进一步限定,所述步骤s6具体为:计算相邻两直线路径pi至pi+1和pi+1至pi+2的航向角αi、αi+1,利用步骤s1虚拟相机的初始俯仰角β0分别构建虚拟相机绕pi+1点旋转前的起始旋转四元数qi和旋转后的终止旋转四元数qi+1。

31、进一步限定,所述步骤s7具体为:

32、s7.1:按照步骤s4的方法计算出计算pi+1至pi+2的方向向量ni+1

33、s7.2:对虚拟相机绕该拐点旋转前和旋转后的四元数qi,qi+1进行线性插值,插值为q t;

34、s7.3:对拐点两侧的直线路径的方向向量ni和ni+1进行线性插值,插值为nt,计算拐点pi+1处插值方向与水平面之间的夹角βp以及虚拟相机在该拐点处对应的俯仰角为βi+1=β0+βp;

35、s7.4:根据pi+1和旋转偏移集{αi+1,βi+1,r0},实时更新虚拟相机的位置和方向,形成拐点pi+1处的旋转动画cai,其中航向角αi+1从插值qt中获取,其中δi+1表示插值pi+1与插值nt之间的夹角。

36、进一步限定,所述步骤s7.4中航向角αi+1从插值qt中获取,具体为:将插值qt转换为cesium.headingpitchroll对象,提取其参数heading,即为航向角αi+1。

37、进一步限定,所述步骤s7.4之后还包括s7.5,具体为:虚拟相机漫游速度的改变发生在拐点路段,停止所有动画,记录当前位置,执行步骤s6-s7,之后重复步骤s3-s8的操作,完成当前位置至pn点之间的路径漫游。

38、一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现上述的空间路径的沿线漫游方法。

39、与现有技术相比,本发明的有益效果是:能够动态实时调整虚拟相机的观察方向,兼容调整设备的运动方向,合理处理路径上虚拟相机视角的转弯,解决了沿线漫游时虚拟相机方向与固定路径方向不同步的问题,便于虚拟相机以设备视角对空间中的固定路径进行沿线漫游。

40、(1)本发明将空间路径拆分为多个直线路径和多个拐点路径,分别对直线路径和拐点路径进行插值,计算插值点的航向角和俯仰角,实时调整虚拟相机的位置和方向,形成直线路径动画和拐点路径动画,漫游时动画之间无缝连接,间隔时间为0秒,将直线路径动画和拐点路径动画按照空间路径拆分的顺序进行整合形成完整的空间路径动画,实现了动态实时调整虚拟相机观察的姿态,拐点路径上虚拟相机视角在拐点处转弯,解决了沿线漫游时虚拟相机方向与固定路径方向不同步的问题。

41、(2)本发明基于直线路径和拐点路径,在空间路径中设置调速方法,改变虚拟相机的漫游速度,判断漫游速度的改变是发生在直线路或是在拐点路径中;当路径中漫游速度发生改变时,停止所有动画,记录虚拟相机在空间路径中的当前位置,重新计算虚拟相机的插值点和虚拟相机在插值点的航向角和俯仰角,直至完成整个空间路径,实现虚拟相机在设备视角下的变速运动,增加虚拟相机沿路径的运动方式,增强第一人称视角沿固定路径漫游的不同感官体验。

42、(3)本发明虚拟相机的参数均可以根据实际需要进行设置,如漫游的速度,相机观察范围即相机距视点的距离,初始俯仰角,因此可以拓展为不同参数模式下的固定路径沿线漫游,使得虚拟相机的运动形式更加多样化。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1