CN113870345B - 基于三维场景的飞行定位方法以及装置、存储介质、电子装置 - Google Patents
基于三维场景的飞行定位方法以及装置、存储介质、电子装置 Download PDFInfo
- Publication number
- CN113870345B CN113870345B CN202111125898.1A CN202111125898A CN113870345B CN 113870345 B CN113870345 B CN 113870345B CN 202111125898 A CN202111125898 A CN 202111125898A CN 113870345 B CN113870345 B CN 113870345B
- Authority
- CN
- China
- Prior art keywords
- parameter value
- flight
- preset
- target
- initial
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/20—3D [Three Dimensional] animation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/05—Geographic models
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Remote Sensing (AREA)
- Computer Graphics (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请公开了一种基于三维场景的飞行定位方法以及装置、存储介质、电子装置。该方法包括初始化所述三维场景中的第一飞行参数,其中所述第一飞行参数至少包括初始中心点坐标参数值、目标朝向坐标参数值、旋转角参数值、俯仰角参数值;通过对所述目标朝向坐标参数值的曲线插值操作,得到所述目标距离参数值;通过对所述初始中心点坐标参数值的线性插值操作,得到所述目标朝向坐标参数值;在一个完整的预设飞行过程中,根据一个预设时间循环内确定的所述目标距离参数值、所述目标朝向坐标参数值、所述旋转角参数值、所述俯仰角参数值设置所述三维场景中相机位置,执行预设飞行画面呈现。本申请解决了三维场景中的的飞行动画,用户体验不佳的技术问题。通过本申请基于曲线插值、线性插值的方式计算目标距离以及目标朝向,并在飞行过程中实时调整相机的位置,从而实现了预设飞行动画效果。
Description
技术领域
本申请涉及三维场景处理领域,具体而言,涉及一种基于三维场景的飞行定位方法以及装置、存储介质、电子装置。
背景技术
通过地图服务商提供的地图软件,基于卫星技术可覆盖广泛的角落,并提供精密程度较高的地图服务。
相关技术中,对于地图软件中想要实现的一段飞行动画的效果,通常飞行过程不够平滑,用户体验不佳。进一步,在飞近目标点时缺乏一些阻尼效果。
针对相关技术中三维场景中提供的飞行动画,用户体验不佳的问题,目前尚未提出有效的解决方案。
发明内容
本申请的主要目的在于提供一种基于三维场景的飞行定位方法以及装置、存储介质、电子装置,以解决三维场景中提供的飞行动画,用户体验不佳的问题。
为了实现上述目的,根据本申请的一个方面,提供了一种基于三维场景的飞行定位方法。
根据本申请的基于三维场景的飞行定位方法包括:初始化所述三维场景中的第一飞行参数,其中所述第一飞行参数至少包括初始中心点坐标参数值、目标朝向坐标参数值、旋转角参数值、俯仰角参数值;通过对所述目标朝向坐标参数值的曲线插值操作,得到所述目标距离参数值;通过对所述初始中心点坐标参数值的线性插值操作,得到所述目标朝向坐标参数值;在一个完整的预设飞行过程中,根据一个预设时间循环内确定的所述目标距离参数值、所述目标朝向坐标参数值、所述旋转角参数值、所述俯仰角参数值设置所述三维场景中相机位置,执行预设飞行画面呈现。
进一步地,所述通过对所述目标朝向坐标参数值的曲线插值操作,得到所述目标距离参数值包括:通过对所述目标朝向坐标参数值的贝塞尔曲线插值操作,得到所述目标距离参数值;所述通过对所述初始中心点坐标参数值的线性插值操作,得到所述目标朝向坐标参数值包括:通过对所述初始中心点坐标参数值的线性插值操作以及根据Quadratic二次方程曲线对所述预设时间循环中占比的插值,得到所述目标朝向坐标参数值。
进一步地,所述在一个完整的预设飞行过程中,根据一个预设时间循环内确定的所述目标距离参数值、所述目标朝向坐标参数值、所述旋转角参数值、所述俯仰角参数值设置所述三维场景中相机位置,执行预设飞行画面呈现,包括:在当前时间t小于一个预设时间循环内的第一初始时间s1秒的情况下,将所述三维场景中的相机拉高视角时,所述旋转角参数值,且所述俯仰角参数值从当前角度以k*(2-k)曲线插值到第一俯视视角;根据所述预设时间循环中占比计算得出的所述目标朝向坐标参数值以及所述目标距离参数值、所述旋转角参数值、所述第一俯视视角设置所述三维场景中的相机位置,其中所述k=当前时间t除以俯仰角调整时间s2。
进一步地,所述在一个完整的预设飞行过程中,根据一个预设时间循环内确定的所述目标距离参数值、所述目标朝向坐标参数值、所述旋转角参数值、所述俯仰角参数值设置所述三维场景中相机位置,执行预设飞行画面呈现,包括:设t3=(t-(duration-s3))/s3>0,其中,结束时间s3,在当前时间t大一个预设时间循环内的第一时间s1秒的情况下,且t3大于0时,所述旋转角参数值不变,所述俯仰角参数值从俯视以k*(2-k)曲线插值到预设结束俯仰角;根据所述预设时间循环中占比计算得出的所述目标朝向坐标参数值以及所述目标距离参数值、所述旋转角参数值、所述预设结束俯仰角设置所述三维场景中的相机位置。
进一步地,所述在一个完整的预设飞行过程中,根据一个预设时间循环内确定的所述目标距离参数值、所述目标朝向坐标参数值、所述旋转角参数值、所述俯仰角参数值设置所述三维场景中相机位置,执行预设飞行画面呈现,包括:设t3=(t-(duration-s3))/s3>0,其中,结束时间s3,在当前时间t大一个预设时间循环内的第一时间s1秒的情况下,且t3小于等于0时,所述旋转角参数值以(t-s1)/(duration-s1-s3)的值做为初始旋转角到预设结束旋转角的线性插值;所述俯仰角参数值以k*(2-k)曲线插值t/s2,从预设初始俯仰角到俯视视角插值;根据所述预设时间循环中占比计算得出的所述目标朝向坐标参数值以及所述目标距离参数值、所述旋转角参数值的线性插值、所述俯仰角参数值的线性插值设置所述三维场景中的相机位置。
进一步地,所述通过对所述目标朝向坐标参数值的曲线插值操作,得到所述目标距离参数值包括:根据飞行起点和飞行终点的向量与上方向点乘、再乘以该上方向生成向量模,得到垂直方向距离;根据所述飞行起点和所述飞行终点的向量与右方向点乘、再乘以右方向生成向量模,得到水平方向距离;根据所述垂直方向距离与所述水平方向距离计算得到最远方向距离;设置贝塞尔曲线的起始点和终止点所述预设飞行画面的初始和结束时距离,且第一控制点通过所述最远方向距离乘以n1得到,第二控制点通过所述最远方向距离除以n2得到,其中n1、n2为控制点的数量,根据时间比例t/duration,通过贝塞尔公式计算出对应距离值,其中t为当前时间,duration为所述飞行画面总时长;根据所述对应距离值,得到所述目标距离参数值。
进一步地,所述通过对所述初始中心点坐标参数值的线性插值操作,得到所述目标朝向坐标参数值包括:根据Quadratic二次方程曲线对t/duration插值,得到新的时间百分占比值t1,其中t为当前时间,duration为所述飞行画面总时长;所述初始中心点坐标参数值中的初始点坐标经度与结束点经度坐标根据所述t1线性插值出当前经度;所述初始中心点坐标参数值中的初始点坐标纬度与结束点纬度坐标根据所述t1线性插值出当前纬度;所述初始中心点坐标参数值中的初始点坐标高度与结束点坐标高度根据所述t/duration线性插值出当前高度;通过所述当前经度、所述当前纬度、所述当前高度,得到所述目标朝向坐标参数值。
为了实现上述目的,根据本申请的另一方面,提供了一种基于三维场景的飞行定位装置。
根据本申请的基于三维场景的飞行定位装置包括:初始化模块,用于初始化所述三维场景中的第一飞行参数,其中所述第一飞行参数至少包括初始中心点坐标参数值、目标朝向坐标参数值、旋转角参数值、俯仰角参数值;目标距离计算模块,用于通过对所述目标朝向坐标参数值的曲线插值操作,得到所述目标距离参数值;目标朝向计算模块,用于通过对所述初始中心点坐标参数值的线性插值操作,得到所述目标朝向坐标参数值;定位模块,用于在一个完整的预设飞行过程中,根据一个预设时间循环内确定的所述目标距离参数值、所述目标朝向坐标参数值、所述旋转角参数值、所述俯仰角参数值设置所述三维场景中相机位置,执行预设飞行画面呈现。
为了实现上述目的,根据本申请的又一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述方法。
为了实现上述目的,根据本申请的再一方面,提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述的方法。
在本申请实施例中基于三维场景的飞行定位方法以及装置、存储介质、电子装置,采用初始化所述三维场景中的第一飞行参数的方式,通过对所述目标朝向坐标参数值的曲线插值操作,得到所述目标距离参数值以及通过对所述初始中心点坐标参数值的线性插值操作,得到所述目标朝向坐标参数值,达到了在一个完整的预设飞行过程中,根据一个预设时间循环内确定的所述目标距离参数值、所述目标朝向坐标参数值、所述旋转角参数值、所述俯仰角参数值设置所述三维场景中相机位置,执行预设飞行画面呈现的目的,从而实现了提升用户视觉体验的技术效果,进而解决了三维场景中提供的飞行动画,用户体验不佳的技术问题。
附图说明
构成本申请的一部分的附图用来提供对本申请的进一步理解,使得本申请的其它特征、目的和优点变得更明显。本申请的示意性实施例附图及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的基于三维场景的飞行定位方法的硬件结构示意图;
图2是根据本申请实施例的基于三维场景的飞行定位方法流程示意图;
图3是根据本申请实施例的基于三维场景的飞行定位装置结构示意图;
图4是根据本申请优选实施例的基于三维场景的飞行定位方法流程示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本申请中,术语“上”、“下”、“左”、“右”、“前”、“后”、“顶”、“底”、“内”、“外”、“中”、“竖直”、“水平”、“横向”、“纵向”等指示的方位或位置关系为基于附图所示的方位或位置关系。这些术语主要是为了更好地描述本申请及其实施例,并非用于限定所指示的装置、元件或组成部分必须具有特定方位,或以特定方位进行构造和操作。
并且,上述部分术语除了可以用于表示方位或位置关系以外,还可能用于表示其他含义,例如术语“上”在某些情况下也可能用于表示某种依附关系或连接关系。对于本领域普通技术人员而言,可以根据具体情况理解这些术语在本申请中的具体含义。
此外,术语“安装”、“设置”、“设有”、“连接”、“相连”、“套接”应做广义理解。例如,可以是固定连接,可拆卸连接,或整体式构造;可以是机械连接,或电连接;可以是直接相连,或者是通过中间媒介间接相连,又或者是两个装置、元件或组成部分之间内部的连通。对于本领域普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
如图1所示,是根据本申请实施例的基于三维场景的飞行定位方法的硬件结构示意图。其中包括:后台服务器200、电脑终端300、用户100。所述飞行动画是通过所述三维场景飞行定位的计算机程序运行,并最终向用户显示的。所述后台服务器200用于渲染地图输数据。所述电脑终端300用于在本地缓存地图数据,并实时向所述用户100进行飞行效果的显示。所述三维场景飞行定位的计算机程序将飞行预设为三个过程:三维球远离目标后空中飞行、空中飞行以及到目标点缓慢飞入的飞行动画效果。
如图2所示,该方法包括如下的步骤S201至步骤S204:
步骤S201,初始化所述三维场景中的第一飞行参数,其中所述第一飞行参数至少包括初始中心点坐标参数值、目标朝向坐标参数值、旋转角参数值、俯仰角参数值;
步骤S202,通过对所述目标朝向坐标参数值的曲线插值操作,得到所述目标距离参数值;
步骤S203,通过对所述初始中心点坐标参数值的线性插值操作,得到所述目标朝向坐标参数值;
步骤S204,在一个完整的预设飞行过程中,根据一个预设时间循环内确定的所述目标距离参数值、所述目标朝向坐标参数值、所述旋转角参数值、所述俯仰角参数值设置所述三维场景中相机位置,执行预设飞行画面呈现。
从以上的描述中,可以看出,本申请实现了如下技术效果:
采用初始化所述三维场景中的第一飞行参数的方式,通过对所述目标朝向坐标参数值的曲线插值操作,得到所述目标距离参数值以及通过对所述初始中心点坐标参数值的线性插值操作,得到所述目标朝向坐标参数值,达到了在一个完整的预设飞行过程中,根据一个预设时间循环内确定的所述目标距离参数值、所述目标朝向坐标参数值、所述旋转角参数值、所述俯仰角参数值设置所述三维场景中相机位置,执行预设飞行画面呈现的目的,从而实现了提升用户视觉体验的技术效果,进而解决了三维场景中提供的飞行动画,用户体验不佳的技术问题。
在上述步骤S201中通过初始化得到所述三维场景中的第一飞行参数。所述第一飞行参数主要用于配置在三维场景中飞行动画的飞行时间、飞行目的地、飞行出发地以及飞行过程中的相机角度等等。
作为一种可选的实施方式,所述第一飞行参数至少包括初始中心点坐标参数值、目标朝向坐标参数值。所述初始中心点坐标参数值以及所述目标朝向坐标参数值,是在飞行过程需要确定的且贯穿整个飞行过程。
作为一种优选的实施方式,所述第一飞行参数至少包括:旋转角参数值、俯仰角参数值,所述旋转角参数值、俯仰角参数值用于调整在飞行过程中的相机视角,从而满足不同的动画需求。
在上述步骤S202中可以通过对所述目标朝向坐标参数值的曲线插值操作,得到所述目标距离参数值。
作为一种可选的实施方式,目标朝向坐标参数值至少包括了起始点的坐标向量信息。
作为一种优选的实施方式,采用贝塞尔曲线对距离插值。
在上述步骤S203中通过对所述初始中心点坐标参数值的线性插值操作,得到所述目标朝向坐标参数值。
作为一种可选的实施方式,初始中心点坐标参数值即初始屏幕中心点坐标。所述目标朝向坐标参数值即包括初始位置的目标朝向信息。
作为一种优选的实施方式,采用预设曲线对经纬度位置插值。
在上述步骤S204中具体计算时在一个完整的预设飞行过程中,根据一个预设时间循环内确定的所述目标距离参数值、所述目标朝向坐标参数值、所述旋转角参数值、所述俯仰角参数值设置所述三维场景中相机位置,执行预设飞行画面呈现。
作为一种可选的实施方式,一个预设时间循环内可以包括0至循环帧的时间段。
作为一种优选的实施方式,一个完整的预设飞行过程中包括了:远离目标,空中飞行,到目标点缓慢飞入效果。
作为本实施例中的优选,所述通过对所述目标朝向坐标参数值的曲线插值操作,得到所述目标距离参数值包括:通过对所述目标朝向坐标参数值的贝塞尔曲线插值操作,得到所述目标距离参数值;所述通过对所述初始中心点坐标参数值的线性插值操作,得到所述目标朝向坐标参数值包括:通过对所述初始中心点坐标参数值的线性插值操作以及根据Quadratic二次方程曲线对所述预设时间循环中占比的插值,得到所述目标朝向坐标参数值。
具体实施时,优选地,为了提高用户的体验,通过对所述目标朝向坐标参数值的贝塞尔曲线插值操作,得到所述目标距离参数值。同时,通过对所述初始中心点坐标参数值的线性插值操作以及根据Quadratic二次方程曲线对所述预设时间循环中占比的插值,得到所述目标朝向坐标参数值。也就是说,对所述目标朝向坐标参数值的贝塞尔曲线插值操作,对于所述初始中心点坐标参数值的线性插值操作以及根据Quadratic二次方程曲线对所述预设时间循环中占比的插值,分别得到的插值,可以较好地确定目标朝向坐标和目标距离。
作为本实施例中的优选,所述在一个完整的预设飞行过程中,根据一个预设时间循环内确定的所述目标距离参数值、所述目标朝向坐标参数值、所述旋转角参数值、所述俯仰角参数值设置所述三维场景中相机位置,执行预设飞行画面呈现,包括:在当前时间t小于一个预设时间循环内的第一初始时间s1秒的情况下,将所述三维场景中的相机拉高视角时,所述旋转角参数值,且所述俯仰角参数值从当前角度以k*(2-k)曲线插值到第一俯视视角;根据所述预设时间循环中占比计算得出的所述目标朝向坐标参数值以及所述目标距离参数值、所述旋转角参数值、所述第一俯视视角设置所述三维场景中的相机位置,其中所述k=当前时间t除以俯仰角调整时间s2。
具体实施时,在飞行动画显示的第一阶段,此时飞行的朝向不会变但是距离会变化。当前时间t小于第一阶段时间s1秒时,相机拉高视角,旋转角不变,俯仰角从当前角度,并以k*(2-k)曲线插值到俯视视角。根据时间计算得出的坐标位置及目标距离、旋转角俯仰角设置相机位置。需要注意的是,此时k=当前时间t除以俯仰角调整时间s2。
作为本实施例中的优选,所述在一个完整的预设飞行过程中,根据一个预设时间循环内确定的所述目标距离参数值、所述目标朝向坐标参数值、所述旋转角参数值、所述俯仰角参数值设置所述三维场景中相机位置,执行预设飞行画面呈现,包括:设t3=(t-(duration-s3))/s3>0,其中,结束时间s3,在当前时间t大一个预设时间循环内的第一时间s1秒的情况下,且t3大于0时,所述旋转角参数值不变,所述俯仰角参数值从俯视以k*(2-k)曲线插值到预设结束俯仰角;根据所述预设时间循环中占比计算得出的所述目标朝向坐标参数值以及所述目标距离参数值、所述旋转角参数值、所述预设结束俯仰角设置所述三维场景中的相机位置。
具体实施时,在飞行动画显示的第二阶段,此时飞行的朝向不会变,但是距离会发生变化。当前时间t大于第一阶段时间s1秒时,定义t3等于当前时间t减去整个飞行时间duration与结束时间s3的插值再除以s3。
进一步,当t3大于0时,旋转角不变,俯仰角从俯视以k*(2-k)曲线插值到设置结束俯仰角,根据时间计算得出的坐标位置及目标距离、旋转角俯仰角设置相机位置。
作为本实施例中的优选,所述在一个完整的预设飞行过程中,根据一个预设时间循环内确定的所述目标距离参数值、所述目标朝向坐标参数值、所述旋转角参数值、所述俯仰角参数值设置所述三维场景中相机位置,执行预设飞行画面呈现,包括:设t3=(t-(duration-s3))/s3>0,其中,结束时间s3,在当前时间t大一个预设时间循环内的第一时间s1秒的情况下,且t3小于等于0时,所述旋转角参数值以(t-s1)/(duration-s1-s3)的值做为初始旋转角到预设结束旋转角的线性插值;所述俯仰角参数值以k*(2-k)曲线插值t/s2,从预设初始俯仰角到俯视视角插值;根据所述预设时间循环中占比计算得出的所述目标朝向坐标参数值以及所述目标距离参数值、所述旋转角参数值的线性插值、所述俯仰角参数值的线性插值设置所述三维场景中的相机位置。
具体实施时,在飞行动画显示的第三阶段,利用贝塞尔曲线插值计算三维球上到目标点距离,生成距离非对称曲线,实现飞近目标点时阻尼效果。
进一步,当上述t3小于等于0时,旋转角以(t-s1)/(duration-s1-s3)的值做为初始旋转角到目标旋转角的线性插值;
俯仰角以k*(2-k)曲线插值t/s2,从初始startPitch到俯视视角插值。根据时间计算得出的坐标位置及距离distance、旋转角俯仰角设置相机位置。
作为本实施例中的优选,所述通过对所述目标朝向坐标参数值的曲线插值操作,得到所述目标距离参数值包括:根据飞行起点和飞行终点的向量与上方向点乘、再乘以该上方向生成向量模,得到垂直方向距离;根据所述飞行起点和所述飞行终点的向量与右方向点乘、再乘以右方向生成向量模,得到水平方向距离;根据所述垂直方向距离与所述水平方向距离计算得到最远方向距离;设置贝塞尔曲线的起始点和终止点所述预设飞行画面的初始和结束时距离,且第一控制点通过所述最远方向距离乘以n1得到,第二控制点通过所述最远方向距离除以n2得到,其中n1、n2为控制点的数量,根据时间比例t/duration,通过贝塞尔公式计算出对应距离值,其中t为当前时间,duration为所述飞行画面总时长;根据所述对应距离值,得到所述目标距离参数值。
具体实施时,对于帧循环,即是从当前时间t从0到duration。
根据起点终点的向量与上方向点乘再乘以上方向生成向量模是垂直方向距离;根据起点终点的向量与右方向点乘再乘以右方向生成向量模是水平方向距离;根据垂直距离与水平距离计算得出最远maxDistance;设置贝塞尔曲线的起始点和终止点为飞行动画初始和结束时距离。贝塞尔曲线的算法原理,将控制点1是maxDistance乘以n1,同时控制点2设置为maxDistance除以n2。其中n1、n2为控制点的数量。最后,根据时间比例t/duration,用贝塞尔公式计算出对应目标距离值。
作为本实施例中的优选,所述通过对所述初始中心点坐标参数值的线性插值操作,得到所述目标朝向坐标参数值包括:根据Quadratic二次方程曲线对t/duration插值,得到新的时间百分占比值t1,其中t为当前时间,duration为所述飞行画面总时长;所述初始中心点坐标参数值中的初始点坐标经度与结束点经度坐标根据所述t1线性插值出当前经度;所述初始中心点坐标参数值中的初始点坐标纬度与结束点纬度坐标根据所述t1线性插值出当前纬度;所述初始中心点坐标参数值中的初始点坐标高度与结束点坐标高度根据所述t/duration线性插值出当前高度;通过所述当前经度、所述当前纬度、所述当前高度,得到所述目标朝向坐标参数值。
具体实施时,对于经纬度位置进行插值。使用二次方QuadraticInOut曲线对t/duration插值,得到新的时间百分比值t1;初始点startCartographic坐标经度与结束点endCartographic;然后经度根据t1线性插值出当前经度。然后初始点startCartographic坐标纬度与结束点endCartographic纬度根据t1线性插值出当前纬度。最后初始点startCartographic坐标高度与结束点endCartographic高度根据t/duration线性插值出当前高度。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
根据本申请实施例,还提供了一种用于实施上述方法的基于三维场景的飞行定位装置,如图3所示,该装置包括:
初始化模块301,用于初始化所述三维场景中的第一飞行参数,其中所述第一飞行参数至少包括初始中心点坐标参数值、目标朝向坐标参数值、旋转角参数值、俯仰角参数值;
目标距离计算模块302,用于通过对所述目标朝向坐标参数值的曲线插值操作,得到所述目标距离参数值;
目标朝向计算模块303,用于通过对所述初始中心点坐标参数值的线性插值操作,得到所述目标朝向坐标参数值;
定位模块304,用于在一个完整的预设飞行过程中,根据一个预设时间循环内确定的所述目标距离参数值、所述目标朝向坐标参数值、所述旋转角参数值、所述俯仰角参数值设置所述三维场景中相机位置,执行预设飞行画面呈现。
上述的初始化模块301中通过初始化得到所述三维场景中的第一飞行参数。所述第一飞行参数主要用于配置在三维场景中飞行动画的飞行时间、飞行目的地、飞行出发地以及飞行过程中的相机角度等等。
作为一种可选的实施方式,所述第一飞行参数至少包括初始中心点坐标参数值、目标朝向坐标参数值。所述初始中心点坐标参数值以及所述目标朝向坐标参数值,是在飞行过程需要确定的且贯穿整个飞行过程。
作为一种优选的实施方式,所述第一飞行参数至少包括:旋转角参数值、俯仰角参数值,所述旋转角参数值、俯仰角参数值用于调整在飞行过程中的相机视角,从而满足不同的动画需求。
上述的目标距离计算模块302中可以通过对所述目标朝向坐标参数值的曲线插值操作,得到所述目标距离参数值。
作为一种可选的实施方式,目标朝向坐标参数值至少包括了起始点的坐标向量信息。
作为一种优选的实施方式,采用贝塞尔曲线对距离插值。
上述的目标朝向计算模块303中通过对所述初始中心点坐标参数值的线性插值操作,得到所述目标朝向坐标参数值。
作为一种可选的实施方式,初始中心点坐标参数值即初始屏幕中心点坐标。所述目标朝向坐标参数值即包括初始位置的目标朝向信息。
作为一种优选的实施方式,采用预设曲线对经纬度位置插值。
上述的定位模块304中具体计算时在一个完整的预设飞行过程中,根据一个预设时间循环内确定的所述目标距离参数值、所述目标朝向坐标参数值、所述旋转角参数值、所述俯仰角参数值设置所述三维场景中相机位置,执行预设飞行画面呈现。
作为一种可选的实施方式,一个预设时间循环内可以包括0至循环帧的时间段。
作为一种优选的实施方式,一个完整的预设飞行过程中包括了:远离目标,空中飞行,到目标点缓慢飞入效果。
显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。
为了更好的理解上述基于三维场景的飞行定位方法流程,以下结合优选实施例对上述技术方案进行解释说明,但不用于限定本发明实施例的技术方案。
本申请实施例中的基于三维场景的飞行定位方法,根据一个预设时间循环内确定的所述目标距离参数值、所述目标朝向坐标参数值、所述旋转角参数值、所述俯仰角参数值设置所述三维场景中相机位置,执行预设飞行画面呈现的目的,从而实现了提升用户视觉体验的技术效果。
如图4所示,是本申请实施例中基于三维场景的飞行定位方法的流程示意图,实现的具体过程包括如下步骤:
步骤S401,开始。
步骤S402,初始化参数。
计算三维场景中初始参数:
飞行动画总时长duration;
初始屏幕中心点坐标startCartographic;
目标朝向坐标endCartographic;
目标距离endDistance;
初始旋转角startHeading;
结束旋转角endHeading;
初始俯仰角startPitch;
结束俯仰角endPitch。
步骤S403,计算距离。
根据飞行起点和飞行终点的向量与上方向点乘、再乘以该上方向生成向量模,得到垂直方向距离;根据所述飞行起点和所述飞行终点的向量与右方向点乘、再乘以右方向生成向量模,得到水平方向距离;根据所述垂直方向距离与所述水平方向距离计算得到最远方向距离;设置贝塞尔曲线的起始点和终止点所述预设飞行画面的初始和结束时距离,且第一控制点通过所述最远方向距离乘以n1得到,第二控制点通过所述最远方向距离除以n2得到,其中n1、n2为控制点的数量,根据时间比例t/duration,通过贝塞尔公式计算出对应距离值,其中t为当前时间,duration为所述飞行画面总时长;根据所述对应距离值,得到所述目标距离参数值。
步骤S404,计算朝向点坐标。
根据Quadratic二次方程曲线对t/duration插值,得到新的时间百分占比值t1,其中t为当前时间,duration为所述飞行画面总时长;所述初始中心点坐标参数值中的初始点坐标经度与结束点经度坐标根据所述t1线性插值出当前经度;所述初始中心点坐标参数值中的初始点坐标纬度与结束点纬度坐标根据所述t1线性插值出当前纬度;所述初始中心点坐标参数值中的初始点坐标高度与结束点坐标高度根据所述t/duration线性插值出当前高度;通过所述当前经度、所述当前纬度、所述当前高度,得到所述目标朝向坐标参数值。
步骤S405,t<s1的情况。如果是则进入步骤S407。
具体实施时,在飞行动画显示的第一阶段,此时飞行的朝向不会变但是距离会变化。当前时间t小于第一阶段时间s1秒时,相机拉高视角,旋转角不变,俯仰角从当前角度,并以k*(2-k)曲线插值到俯视视角。根据时间计算得出的坐标位置及目标距离、旋转角俯仰角设置相机位置。需要注意的是,此时k=当前时间t除以俯仰角调整时间s2。
步骤S406,(t-(duration-s3))/s3>0的情况。
在飞行动画显示的第二阶段,此时飞行的朝向不会变,但是距离会发生变化。当前时间t大于第一阶段时间s1秒时,定义t3等于当前时间t减去整个飞行时间duration与结束时间s3的插值再除以s3。
进一步,当t3大于0时,旋转角不变,俯仰角从俯视以k*(2-k)曲线插值到设置结束俯仰角,根据时间计算得出的坐标位置及目标距离、旋转角俯仰角设置相机位置。
在飞行动画显示的第三阶段,利用贝塞尔曲线插值计算三维球上到目标点距离,生成距离非对称曲线,实现飞近目标点时阻尼效果。
进一步,当上述t3小于等于0时,旋转角以(t-s1)/(duration-s1-s3)的值做为初始旋转角到目标旋转角的线性插值;
俯仰角以k*(2-k)曲线插值t/s2,从初始startPitch到俯视视角插值。根据时间计算得出的坐标位置及距离distance、旋转角俯仰角设置相机位置。
步骤S407,计算俯仰角。
具体实施时,当前时间t小于第一阶段时间s1秒时,相机拉高视角,旋转角不变,俯仰角从当前角度,以k*(2-k)(k=当前时间t除以俯仰角调整时间s2)曲线插值到俯视视角。根据时间计算得出的坐标位置及距离distance、旋转角俯仰角设置相机位置
步骤S408,计算俯仰角。
具体实施时,当前时间t大于第一阶段时间s1秒时,定义t3等于当前时间t减去整个飞行时间duration与结束时间s3的插值再除以s3,
当t3大于0时,旋转角不变,俯仰角从俯视以k*(2-k)曲线插值到设置角度endPitch,根据时间计算得出的坐标位置及距离distance、旋转角俯仰角设置相机位置。
步骤S409,计算俯仰角。
步骤S410,计算旋转角。
具体实施时,当t3小于等于0时,旋转角以(t-s1)/(duration-s1-s3)的值做为初始旋转角到目标旋转角的线性插值。俯仰角以k*(2-k)曲线插值t/s2,从初始startPitch到俯视视角插值。根据时间计算得出的坐标位置及距离distance、旋转角俯仰角设置相机位置。
步骤S411,根据朝向点坐标、距离、俯仰角、旋转角设置相机参数。
步骤S412,结束。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (7)
1.一种基于三维场景的飞行定位方法,其特征在于,包括:
初始化所述三维场景中的第一飞行参数,其中所述第一飞行参数至少包括初始中心点坐标参数值、目标朝向坐标参数值、旋转角参数值、俯仰角参数值;
通过对所述目标朝向坐标参数值的曲线插值操作,得到所述目标距离参数值;
通过对所述初始中心点坐标参数值的线性插值操作,得到所述目标朝向坐标参数值;
在一个完整的预设飞行过程中,根据一个预设时间循环内确定的所述目标距离参数值、所述目标朝向坐标参数值、所述旋转角参数值、所述俯仰角参数值设置所述三维场景中相机位置,执行预设飞行画面呈现;
所述在一个完整的预设飞行过程中,根据一个预设时间循环内确定的所述目标距离参数值、所述目标朝向坐标参数值、所述旋转角参数值、所述俯仰角参数值设置所述三维场景中相机位置,执行预设飞行画面呈现,包括:
在当前时间t小于一个预设时间循环内的第一初始时间s1秒的情况下,将所述三维场景中的相机拉高视角时,所述旋转角参数值,且所述俯仰角参数值从当前角度以k*(2-k)曲线插值到第一俯视视角;
根据所述预设时间循环中占比计算得出的所述目标朝向坐标参数值以及所述目标距离参数值、所述旋转角参数值、所述第一俯视视角设置所述三维场景中的相机位置,其中所述k=当前时间t除以俯仰角调整时间s2;
设t3=(t-(duration-s3))/s3>0,其中,结束时间s3,
在当前时间t大于一个预设时间循环内的第一初始时间s1秒的情况下,且t3大于0时,所述旋转角参数值不变,所述俯仰角参数值从俯视以k*(2-k)曲线插值到预设结束俯仰角;
根据所述预设时间循环中占比计算得出的所述目标朝向坐标参数值以及所述目标距离参数值、所述旋转角参数值、所述预设结束俯仰角设置所述三维场景中的相机位置;
在当前时间t大于一个预设时间循环内的第一初始时间s1秒的情况下,且t3小于等于0时,所述旋转角参数值以(t-s1)/(duration-s1-s3)的值做为初始旋转角到预设结束旋转角的线性插值;
所述俯仰角参数值以k*(2-k)曲线插值t/s2,从预设初始俯仰角到俯视视角插值;
根据所述预设时间循环中占比计算得出的所述目标朝向坐标参数值以及所述目标距离参数值、所述旋转角参数值的线性插值、所述俯仰角参数值的线性插值设置所述三维场景中的相机位置。
2.根据权利要求1所述的方法,其特征在于:
所述通过对所述目标朝向坐标参数值的曲线插值操作,得到所述目标距离参数值包括:
通过对所述目标朝向坐标参数值的贝塞尔曲线插值操作,得到所述目标距离参数值;
所述通过对所述初始中心点坐标参数值的线性插值操作,得到所述目标朝向坐标参数值包括:
通过对所述初始中心点坐标参数值的线性插值操作以及根据Quadratic二次方程曲线对所述预设时间循环中占比的插值,得到所述目标朝向坐标参数值。
3.根据权利要求1所述的方法,其特征在于,所述通过对所述目标朝向坐标参数值的曲线插值操作,得到所述目标距离参数值包括:
根据飞行起点和飞行终点的向量与上方向点乘、再乘以该上方向生成向量模,得到垂直方向距离;
根据所述飞行起点和所述飞行终点的向量与右方向点乘、再乘以右方向生成向量模,得到水平方向距离;
根据所述垂直方向距离与所述水平方向距离计算得到最远方向距离;
设置贝塞尔曲线的起始点和终止点所述预设飞行画面的初始和结束时距离,且第一控制点通过所述最远方向距离乘以n1得到,第二控制点通过所述最远方向距离除以n2得到,其中n1、n2为控制点的数量,
根据时间比例t/duration,通过贝塞尔公式计算出对应距离值,其中t为当前时间,duration为所述飞行画面总时长;
根据所述对应距离值,得到所述目标距离参数值。
4.根据权利要求1所述的方法,其特征在于,所述通过对所述初始中心点坐标参数值的线性插值操作,得到所述目标朝向坐标参数值包括:
根据Quadratic二次方程曲线对t/duration插值,得到新的时间百分占比值t1,其中t为当前时间,duration为所述飞行画面总时长;
所述初始中心点坐标参数值中的初始点坐标经度与结束点经度坐标根据所述t1线性插值出当前经度;
所述初始中心点坐标参数值中的初始点坐标纬度与结束点纬度坐标根据所述t1线性插值出当前纬度;
所述初始中心点坐标参数值中的初始点坐标高度与结束点坐标高度根据所述t/duration线性插值出当前高度;
通过所述当前经度、所述当前纬度、所述当前高度,得到所述目标朝向坐标参数值。
5.一种基于三维场景的飞行定位装置,其特征在于,包括:
初始化模块,用于初始化所述三维场景中的第一飞行参数,其中所述第一飞行参数至少包括初始中心点坐标参数值、目标朝向坐标参数值、旋转角参数值、俯仰角参数值;
目标距离计算模块,用于通过对所述目标朝向坐标参数值的曲线插值操作,得到所述目标距离参数值;
目标朝向计算模块,用于通过对所述初始中心点坐标参数值的线性插值操作,得到所述目标朝向坐标参数值;
定位模块,用于在一个完整的预设飞行过程中,根据一个预设时间循环内确定的所述目标距离参数值、所述目标朝向坐标参数值、所述旋转角参数值、所述俯仰角参数值设置所述三维场景中相机位置,执行预设飞行画面呈现;
所述在一个完整的预设飞行过程中,根据一个预设时间循环内确定的所述目标距离参数值、所述目标朝向坐标参数值、所述旋转角参数值、所述俯仰角参数值设置所述三维场景中相机位置,执行预设飞行画面呈现,包括:
在当前时间t小于一个预设时间循环内的第一初始时间s1秒的情况下,将所述三维场景中的相机拉高视角时,所述旋转角参数值,且所述俯仰角参数值从当前角度以k*(2-k)曲线插值到第一俯视视角;
根据所述预设时间循环中占比计算得出的所述目标朝向坐标参数值以及所述目标距离参数值、所述旋转角参数值、所述第一俯视视角设置所述三维场景中的相机位置,其中所述k=当前时间t除以俯仰角调整时间s2;
设t3=(t-(duration-s3))/s3>0,其中,结束时间s3,
在当前时间t大于一个预设时间循环内的第一初始时间s1秒的情况下,且t3大于0时,所述旋转角参数值不变,所述俯仰角参数值从俯视以k*(2-k)曲线插值到预设结束俯仰角;
根据所述预设时间循环中占比计算得出的所述目标朝向坐标参数值以及所述目标距离参数值、所述旋转角参数值、所述预设结束俯仰角设置所述三维场景中的相机位置;
在当前时间t大于一个预设时间循环内的第一初始时间s1秒的情况下,且t3小于等于0时,所述旋转角参数值以(t-s1)/(duration-s1-s3)的值做为初始旋转角到预设结束旋转角的线性插值;
所述俯仰角参数值以k*(2-k)曲线插值t/s2,从预设初始俯仰角到俯视视角插值;
根据所述预设时间循环中占比计算得出的所述目标朝向坐标参数值以及所述目标距离参数值、所述旋转角参数值的线性插值、所述俯仰角参数值的线性插值设置所述三维场景中的相机位置。
6.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至4任一项所述的方法。
7.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至4任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111125898.1A CN113870345B (zh) | 2021-09-24 | 2021-09-24 | 基于三维场景的飞行定位方法以及装置、存储介质、电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111125898.1A CN113870345B (zh) | 2021-09-24 | 2021-09-24 | 基于三维场景的飞行定位方法以及装置、存储介质、电子装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113870345A CN113870345A (zh) | 2021-12-31 |
CN113870345B true CN113870345B (zh) | 2022-10-18 |
Family
ID=78994239
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111125898.1A Active CN113870345B (zh) | 2021-09-24 | 2021-09-24 | 基于三维场景的飞行定位方法以及装置、存储介质、电子装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113870345B (zh) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008153836A2 (en) * | 2007-05-31 | 2008-12-18 | President And Fellows Of Harvard College | Target-locking acquisition with real-time confocal (tarc) microscopy |
CN106529495B (zh) * | 2016-11-24 | 2020-02-07 | 腾讯科技(深圳)有限公司 | 一种飞行器的障碍物检测方法和装置 |
CN109074168B (zh) * | 2018-01-23 | 2022-06-17 | 深圳市大疆创新科技有限公司 | 无人机的控制方法、设备和无人机 |
-
2021
- 2021-09-24 CN CN202111125898.1A patent/CN113870345B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113870345A (zh) | 2021-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9626790B1 (en) | View-dependent textures for interactive geographic information system | |
CN106296783B (zh) | 一种结合空间全局3d视图和全景图片的空间展示方法 | |
WO2017113731A1 (zh) | 360度全景显示方法、显示模块及移动终端 | |
JP6672315B2 (ja) | 画像生成装置、及び画像表示制御装置 | |
CN111526328B (zh) | 视频监控巡视方法、装置、终端及存储介质 | |
CN111028336A (zh) | 场景切换方法及装置、存储介质 | |
US20190199992A1 (en) | Information processing apparatus, method for controlling the same, and recording medium | |
CN113223130B (zh) | 一种路径漫游方法、终端设备以及计算机存储介质 | |
CN111294584B (zh) | 三维场景模型的展示方法、装置、存储介质及电子设备 | |
CN106780707B (zh) | 模拟场景中全局光照的方法和装置 | |
CN108553895A (zh) | 用户界面元素与三维空间模型关联的方法和装置 | |
CN111008928A (zh) | 一种实现图像雨滴滴落、划动波纹特效的方法及系统 | |
CA3199128A1 (en) | Systems and methods for augmented reality video generation | |
CN111489430A (zh) | 游戏的光影数据处理方法、装置以及游戏设备 | |
CN113870345B (zh) | 基于三维场景的飞行定位方法以及装置、存储介质、电子装置 | |
CN109801351B (zh) | 动态图像生成方法和处理设备 | |
CN113724331A (zh) | 视频处理方法、视频处理装置和非瞬时性存储介质 | |
CN111292234B (zh) | 一种全景图像生成方法及装置 | |
CN108510433B (zh) | 空间展示方法、装置及终端 | |
CN115936986A (zh) | 全景图像生成方法、装置、设备及存储介质 | |
CN115970281A (zh) | 模型图标生成方法、装置、设备及存储介质 | |
CN115512089A (zh) | 一种bim模型的快速浏览方法 | |
CN114327174A (zh) | 虚拟现实场景的显示方法、光标的三维显示方法和装置 | |
CN117389338B (zh) | 无人机的多视角交互方法、装置及存储介质 | |
CN110910482B (zh) | 视频数据组织调度的方法、系统及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |