CN111145292A - 可扩展的适应二三维场景的矢量标绘图形态势推演方法 - Google Patents
可扩展的适应二三维场景的矢量标绘图形态势推演方法 Download PDFInfo
- Publication number
- CN111145292A CN111145292A CN201911264640.2A CN201911264640A CN111145292A CN 111145292 A CN111145292 A CN 111145292A CN 201911264640 A CN201911264640 A CN 201911264640A CN 111145292 A CN111145292 A CN 111145292A
- Authority
- CN
- China
- Prior art keywords
- situation
- vector
- vector plotting
- graph
- time
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
- G06T11/206—Drawing of charts or graphs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/80—Creating or modifying a manually drawn or painted image using a manual input device, e.g. mouse, light pen, direction keys on keyboard
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/61—Scene description
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/20—Indexing scheme for editing of 3D models
- G06T2219/2016—Rotation, translation, scaling
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Architecture (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种可扩展的适应二三维场景的矢量标绘图形态势推演方法。矢量标绘图形态势推演与仿真可提供丰富直观的战场态势表达和有序的态势推演过程,有助于指挥人员快速制定作战计划、赢得作战时间,从而对获取作战的胜利具有重大的指导意义。本发明主要包含如下几个关键步骤:设计各类矢量标绘图形态势规则;设计实现矢量标绘图形及态势文件管理;编辑矢量标绘图形态势;实现矢量标绘图形态势模拟。本发明适用于桌面端、Web端、移动端各端矢量标绘图形态势推演应用,可应用到二维地图场景和三维地图场景中,而且本发明设计上具有良好的扩展性,支持其它矢量标绘图形类型的扩展;本发明可灵活扩展,适用于各类专业组合图元动画类方案制作。
Description
技术领域
本发明涉及矢量标绘图形态势推演领域,更具体地说,涉及一种可扩展的适应二三维场景的矢量标绘图形态势推演方法。
背景技术
矢量标绘图形态势推演与仿真是应急调度、消防预案演习等众多领域使用的重要功能,矢量标绘图形态势推演与仿真可提供丰富直观的战场态势表达和有序的态势推演过程,有助于指挥人员快速制定作战计划、赢得处理时间,从而对获取事件的成功具有重大的指导意义。因此设计一种可扩展的、能够适应二三维(二维及三维)场景的矢量标绘图形态势推演方法具有重要的应用前景。
发明内容
针对上述技术问题,本发明解决其技术问题所采用的可扩展的适应二三维场景的矢量标绘图形态势推演方法,包含如下步骤:
S1、针对各类矢量标绘图形制定态势规则,包括矢量标绘图形的参数设定以及各类矢量标绘图形的适用矢量标绘图形类型;
所述各类矢量标绘图形的态势包括:
闪烁:按照设定的时间间隔,进行显隐切换或颜色切换;
旋转:按照设定的时间间隔和旋转角度,以几何中心为原点进行旋转;
比例缩放:按照设定的时间间隔和缩放比例,以几何中心为原点把矢量标绘图形几何放大或缩小;
漫游:按照设定的时间间隔和路线,对矢量标绘图形整体进行移动;
生长:按照设定的时间间隔或生长时间,沿指定的路线进行延伸;
闪烁的参数设定包括:唯一识别标识、开始时间、结束时间、时间间隔、适用矢量标绘图形类型数组以及闪烁颜色数组,适用矢量标绘图形类型为:除指北针以外的矢量标绘图形;
旋转的参数设定包括:唯一识别标识、开始时间、结束时间、时间间隔、适用矢量标绘图形类型数组以及旋转角度,适用矢量标绘图形类型为:所有类型;
比例缩放的参数设定包括:唯一识别标识、开始时间、结束时间、时间间隔、适用矢量标绘图形类型数组以及缩放比例,适用矢量标绘图形类型为:所有类型;
漫游的参数设定包括:唯一识别标识、开始时间、结束时间、时间间隔、适用矢量标绘图形类型数组以及漫游路径点数组,适用矢量标绘图形类型为:直箭头和燕尾箭头;
生长的参数设定包括:唯一识别标识、开始时间、结束时间、时间间隔、适用矢量标绘图形类型数组以及生长路径数组,适用矢量标绘图形类型为:双箭头、单箭头和燕尾箭头;
S2、保存矢量标绘图形及态势的相关信息,设计实现矢量标绘图形及态势文件管理;每个态势文件中含有一系列按照时间顺序排列的态势,每个态势都关联着一个矢量标绘图形对象;
S3、编辑和管理矢量标绘图形态势,实现态势管理类,态势管理类目的是实现态势文件的加载与保存,矢量标绘图形态势的添加、删除以及更新,以及针对一态势文件中所有态势的播放、停止及暂停;其中,矢量标绘图形态势的添加、删除以及更新时,保持与态势文件一致;
S4、模拟实现矢量标绘图形态势推演过程,具体包括如下步骤:
S41、通过态势管理类读取一态势文件,获取态势文件中所有态势信息,并对获取的态势信息序列按照起始时间排序;
S42、设计实现时钟类或直接使用第三方时钟类,该时钟类或第三方时钟类用于设置起止时间、时钟速率,以及获取当前时间和触发Tick事件;响应时,会调用与事件关联的函数;
S43、计算态势序列的起止时间,按照这个起止时间设定所述时钟类或第三方时钟类中时钟的起止时间;
S44、通过各态势的起止时间、间隔时间,计算各态势的时钟速率;
S45、计算各时钟速率最大的公约数来设置时钟的时钟速率,如果没有计算公约数,则以最小的时钟速率来设置时钟的时钟速率;
S46、启动时钟,触发Tick事件,计算时钟当前时间;
S47、根据当前时间判断态势序列中所有可执行的态势,计算每个态势的当前状态,即根据当前时间、起止时间线性计算每个态势的状态;态势的状态不同时间点态势的形状、位置等参数信息;对于漫游态势获取路径参照点后,按照控制点序列长度不变的原则,重新以路径参照点为结束点,沿路径计算控制点序列,并保留路径上的拐点,这个过程在计算控制点起始点时进行线性插值计算;对于生长类态势,计算控制点序列,双箭头钳击类矢量标绘图形只需保证路径参照点为新的控制点,单线箭头则需把沿路径方向到路径参照点所有的拐点都作为控制点,把以前的控制点和路径起点到路径参照点之间所有的拐点按路径方向连接起来作为新的控制点序列;
S48、根据计算得到的矢量标绘图形参数重新计算或更新矢量标绘图形几何;
S49、绘制矢量标绘图形几何实现态势推演。
进一步地,在本发明的可扩展的适应二三维场景的矢量标绘图形态势推演方法的步骤S2中,
态势参照CZML文件规范实施,以Json的方式来存储态势信息,每个文件以Json数组的形式存储一个态势序列,即一个方案中所有的态势存储到一个文件中;
每一个态势对应一个矢量标绘图形对象,而一个矢量标绘图形对象有一种或者多种态势。
进一步地,在本发明的可扩展的适应二三维场景的矢量标绘图形态势推演方法的步骤S2中,保存矢量标绘图形的相关信息包括:矢量标绘图形ID、矢量标绘图形类型、矢量标绘图形样式、矢量标绘图形控制点数组以及矢量标绘图形属性;保存的态势的相关信息包括:矢量标绘图形ID以及矢量标绘图形ID对应的态势参数设定。
进一步地,在本发明的可扩展的适应二三维场景的矢量标绘图形态势推演方法的步骤S3中,根据矢量标绘图形态势的不同呈现方式,态势的编辑分为两类,具体如下:
闪烁、旋转、比例缩放的态势:
(1)通过鼠标交互获取矢量标绘图形对象,以及矢量标绘图形对象的核心信息,核心信息包括控制点、样式以及属性;
(2)设计实现态势参数面板,根据矢量标绘图形类型选择态势的种类,包括闪烁、旋转、比例缩放;
(3)修改态势面板中相关态势的参数;
(4)通过态势管理类保存该矢量标绘图形及态势的相关信息;
漫游、生长类的态势:
(1)通过鼠标交互获取矢量标绘图形对象,以及矢量标绘图形对象的核心信息,核心信息包括控制点、样式以及属性;
(2)设计实现态势参数面板,根据矢量标绘图形类型选择态势的种类,包括闪烁、旋转、比例缩放;
(3)修改态势面板中相关态势的参数;
(4)通过鼠标交互获取相应态势的漫游路径或生长态势的路径;
(5)通过态势管理类保存该矢量标绘图形及态势的相关信息。
进一步地,在本发明的可扩展的适应二三维场景的矢量标绘图形态势推演方法的步骤S47中,计算每个态势的当前状态时,计算的过程根据态势的不同分为三类分别进行处理:(1)旋转的角度、缩放的比例直接根据按时间的比例、相关态势参数线性计算;(2)闪烁可简化处理,实现互斥即可,但需保证该态势结束时恢复为初始状态;(3)有路径参数的态势,根据路径长度按时间比例线性计算当前的长度,然后线性插值计算得到当前的路径参照点。
实施本发明的可扩展的适应二三维场景的矢量标绘图形态势推演方法,具有以下有益效果:本发明适用于桌面端、Web端、移动端各端矢量标绘图形态势推演应用,可应用到二维地图场景和三维地图场景中,而且本发明设计上具有良好的扩展性,支持其它矢量标绘图形类型的扩展;本发明可灵活扩展,适用于各类专业组合图元动画类方案制作。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明的可扩展的适应二三维场景的矢量标绘图形态势推演方法的流程图;
图2是态势管理类接口设计图;
图3是态势编辑流程图;
图4是态势推演实现流程图。
具体实施方式
为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图详细说明本发明的具体实施方式。
矢量标绘图形态势推演与仿真可提供丰富直观的战场态势表达和有序的态势推演过程,有助于指挥人员快速制定作战计划、赢得作战时间,从而对获取作战的胜利具有重大的指导意义。本解决方案是以消防预案推演为实例,基于开源平台Cesium,在三维场景中设计并实现在火灾事故发生时,对事故上报、政府分析决策、事故处置等过程模拟推演,是矢量标绘图形态势推演在消防事故处置中的一个简单的实现,用户可以通过借鉴和扩展该方案,从而实现其他应用领域的推演案例。
本发明的可扩展的适应二三维场景的矢量标绘图形态势推演方法如图1所示,主要包含以下几个关键步骤:
S1、不同类型的矢量标绘图形,在推演过程中有不同的态势,针对各类矢量标绘图形制定态势规则,包括矢量标绘图形的参数设定以及各类矢量标绘图形的适用矢量标绘图形类型;
S2、保存矢量标绘图形及态势的相关信息,设计实现矢量标绘图形及态势文件管理;每个态势文件中含有一系列按照时间顺序排列的态势,每个态势都关联着一个矢量标绘图形对象;
S3、编辑和管理矢量标绘图形态势,实现态势管理类,态势管理类目的是实现态势文件的加载与保存,矢量标绘图形态势的添加、删除以及更新,以及针对一态势文件中所有态势的播放、停止及暂停;其中,矢量标绘图形态势的添加、删除以及更新时,保持与态势文件一致;
S4、三维场景模拟实现矢量标绘图形态势推演过程。
在消防案例中,也将从这几个步骤入手,逐一实现如下的推演场景:
1、模拟事故发生时在事发地显示火焰粒子效果;
2、事故上报模拟,以单线箭头连接事发地与政府部门;
3、事故预案任务分发模拟,以单线箭头连接,政府部门与消防大队、政府部门与医院、政府部门与公安局;
4、宏观场景显示预案,以燕尾箭头生长态势模拟显示从消防、医院、公安局到事故现场的过程;
5、事故处理过程模拟,微观场景以第三人称漫游的方式显示消防车、救护车、警车的行进轨迹。
设计各类矢量标绘图形态势规则
矢量标绘图形的态势有多种呈现方式,主要分为闪烁、旋转、比例缩放、漫游、生长等,具体如下:
1.闪烁:按照设定的时间间隔,进行显隐切换或颜色切换;
2.旋转:按照设定的时间间隔和旋转角度(角度有正负之分,>0:顺时针,<0:逆时针),以几何中心为原点进行旋转;
3.比例缩放:按照设定的时间间隔和缩放比例,以几何中心为原点把矢量标绘图形几何放大或缩小;
4.漫游:按照设定的时间间隔和路线,对矢量标绘图形整体进行移动;
5.生长:按照设定的时间间隔或生长时间,沿指定的路线进行延伸,适用于钳击(双头)箭头矢量标绘图形等。
那么对于每种态势设定相应的规范,主要包含两个部分即参数设定和适用矢量标绘图形类型,具体如下,也可按需求进行扩展,如下程序代码片段1:
程序代码片段1
针对每种态势需要明确所支持的矢量标绘图形类型:
FlashAnimation:除指北针类以外的矢量标绘图形
RotateAnimation:所有类型
ScaleAnimation:所有类型
CruiseAnimation:直箭头、普通燕尾箭头
GrowAnimation:双箭头、单线箭头、普通燕尾箭头
结合消防案例的场景,主要需要实现两种态势:1.生长态势,即按照设定的时间间隔或生长时间,沿指定的路线进行延伸;2.漫游态势,即按照设定的时间间隔和路线,对矢量标绘图形整体进行移动,那么对于这两种态势设定相应的规范。针对这两种态势明确所支持的该消防案例中的矢量标绘图形类型,消防案例中的矢量标绘图形类型包括单线箭头、燕尾箭头、车辆模型:
CruiseAnimation(漫游):直箭头、普通燕尾箭头、车辆模型
GrowAnimation(生长):单线箭头、燕尾箭头
设计实现矢量标绘图形及态势文件管理
态势推演重要的一环就是态势设定,设定好的态势需保存起来才可以反复推演,常规方式可以储存到数据库或文件中,本方案中以文件作为存储方式,其他方式用户可根据实际应用进行扩展。实现矢量标绘图形及态势文件管理,主要有以下几个步骤:
1、文件格式及文件规范设定
经过研究,态势拟参照CZML文件规范实施,以Json的方式来存储态势信息,每个文件以Json数组的形式存储一个态势序列(即一个方案中所有的态势存储到一个文件中)。
2、态势存储规范设定
态势与矢量标绘图形是息息相关的,每一个态势对应一个矢量标绘图形对象,而一个矢量标绘图形对象有多种态势,参照以下程序代码片段1:
程序代码片段2
3、态势管理类设计
态势管理类主要目的是实现态势文件的加载、保存,矢量标绘图形态势的添加、删除、更新(注意:保持与态势文件一致),以及态势的播放、停止、暂停(针对一态势文件中所有态势的操作),如图2所示。
具体实现如下:
函数:function Load(jsonURL,successCallback,failCallBack)
说明:读取态势推演文件(本地json文件),成功则对该类维护的全局对象Animations赋值,对文件的读取可以通过原生js或Ajax实现都可以,参照如下程序代码片段3:
程序代码片段3
函数:function Save(jsonObj,filePath)
说明:保存态势文件,主要用于对态势文件的内容进行编辑后对内容进行保存,方法可采用开源库:FileSaver.js(可从GitHub上下载)
函数:function AppendAnimation(plotObj,animation)
说明:添加矢量标绘图形态势,该方法只对AnimationsManage类的全局变量(属性)Animations进行操作,即只操作内存,如需保存到文件,则需调用Save函数
函数:function DeleteAnimation(plotObj,animation)
说明:删除矢量标绘图形态势,该方法只对AnimationsManage类的全局变量(属性)Animations进行操作,即只操作内存,如需保存到文件,则需调用Save函数
函数:function UpdateAnimation(plotObj,animation)
说明:更新矢量标绘图形态势,该方法只对AnimationsManage类的全局变量(属性)Animations进行操作,即只操作内存,如需保存到文件,则需调用Save函数
函数:function PlayAnimations()
说明:播放态势推演
函数:function PauseAnimations()
说明:暂停态势推演
函数:function StopAnimations()
说明:停止态势推演
以上三个函数主要作用是对态势推演进行控制,通过研究cesium的代码,态势的控制可以通过Cesium提供的Animation和Clock控件类来实现。实现的思路如下:
(1)在AnimationManage态势管理类提供一个函数动态加载Animation和Clock
(2)通过Load函数或者对全局变量(属性)Animations成功赋值后,统计分析整个态势的起止时间、时间间隔等信息,对Clock的startTime、endTime、CurrentTime以及multiplier进行设置
(3)根据Animations,初始创建所有的矢量标绘图形对象(每个矢量标绘图形对象对应一个Entity,也可考虑使用primitive,其占用内存更低,渲染更快),使用Cesium.EntityCollection提供了getOrCreateEntity(id)其返回一个Entity对象,自定义其ID,availability(可以理解为生命周期,cesium提供的属性),根据不同的几何构成初始化其Entity的几何,注意:一个矢量标绘图形对象可以对应多个态势,但多个态势之间不能有时间上交叉的情况存在,因此一个Entity的availability是表示多个时间段的数组(Cesium.TimeInterval),在TimeInterval的data属性中可以保存当前时间段的态势ID。根据态势ID和Entity的实体ID可以在Animations中快速查询出当前矢量标绘图形的信息和态势信息。设计实现接口GetPlotByID()、GetAnimationByID(),从全局Animations中快速获取矢量标绘图形及其当前态势信息。
(4)在PlayAnimations函数中监听Clock.OnClick事件和TimeLine的settime事件。监听OnClick事件的作用是cesium Animation控件在播放状态下(前进、后退)中实现矢量标绘图形的绘制更新,settime事件的作用是在cesium Animation控件在暂停状态下通过拖拽TimeLine的时间条滑块触发来对矢量标绘图形绘制更新,该状态下不会触发OnClick事件。参照程序代码片段4如下:
程序代码片段4
注意:
(1)箭头的创建、更新参照矢量标绘图形绘制案例的具体实现,该算法只是生成Entity的几何部分。
(2)单线箭头、燕尾箭头控制点的变更是把路径按时间长短进行线性插值生成的新的控制点直接添加到箭头的控制点序列,根据新的控制点序列生成新的矢量标绘图形几何对象,同时需特别注意的是,新的控制点序列是在初始控制点的序列的基础上再加入从路径起始点到线性插值点之间所有的控制点,而不是每次都是累加,这样可以保证推演中回退时控制点的正确性。
(3)对矢量标绘图形的更新,即是对Entity里的几何进行更新,而不采用删除现有的Entity再添加新的Entity的方式
另:对于单线箭头也可以采用一种新的思路去实现,即通过Entity的Path和Position属性,通过Cesium.SampledPositionProperty去自定义路径中每个点的时间节点来实现推演模拟,同时可通过尾迹的形式显示路径,但是这种方式只适合于几何或模型在推演过程中不变的情况,可参照以下程序代码5判断:
程序代码片段5
4、设计实现态势管理界面
提供态势管理界面,该模块的功能基本上由AnimationsManage类提供接口,功能包括:读取态势文件、保存态势文件、态势修改、态势删除,作为态势管理类的一个交互界面,可提供一个按时间排序的列表展示所有的态势,也可用Echarts绘制时序图展示时间序列内各矢量标绘图形态势的分布情况(可选功能)。通过选择某一个态势可切换到单个态势的编辑界面(见后面),执行单个态势的编辑操作。
下面对消防案例里涉及的几个过程进行说明:
(1)事故上报推演,以单线箭头动态从事发地连接到政府部门所在地;
矢量标绘图形对象:单线箭头(1个),对应Entity中的Polyline带箭头材质
起点:事发地坐标
态势:生长态势
路径:事发地—政府机关
(2)事故分发推演,以单线箭头动态从政府部门连接公安、消防、医院所在地;
矢量标绘图形对象:单线箭头(3个)
起点:政法机关所在地坐标
态势:生长态势
路径:政府机关—公安局;政府机关—消防中队;政府机关—医院
(3)事故预案宏观模拟,以燕尾箭头从公安、消防、医院所在地动态生长到事发地;
矢量标绘图形对象:燕尾箭头(3个),对应Entity中的Polygon起点:公安局、消防中队、医院所在地坐标
态势:生长态势
路径:公安局—事发地;消防中队—事发地;医院—事发地
(4)事故预案微观模拟,以第三人称漫游的方式展示警车、消防车、救护车赶往事发地的动画;
矢量标绘图形对象:警车、消防车、救护车模型,对应Entity中的model
起点:公安局、消防中队、医院所在地坐标
态势:漫游态势,实现过程中可调整场景视角(分别设置一段时间跟踪警车、消防车、救护车,以微观视角展示行进过程:view.TrackEntity可实现)
路径:公安局—事发地;消防中队—事发地;医院—事发地
编辑矢量标绘图形态势
根据矢量标绘图形态势的不同呈现方式,态势的编辑分为两类:
第一类:闪烁、旋转、比例缩放的态势
(1)通过鼠标交互获取矢量标绘图形对象,以及矢量标绘图形对象的核心信息(控制点、样式、属性)
(2)设计实现态势参数面板,根据矢量标绘图形类型选择态势的种类(闪烁、旋转、比例缩放)
(3)修改态势面板中相关态势的参数,参照程序代码片段1
(4)通过态势管理类保存该矢量标绘图形及态势的相关信息;
第二类:漫游、生长类的态势
(1)通过鼠标交互获取矢量标绘图形对象,以及矢量标绘图形对象的核心信息(控制点、样式、属性)
(2)设计实现态势参数面板,根据矢量标绘图形类型选择态势的种类(漫游、生长)
(3)修改态势面板中相关态势的参数,参照程序代码片段1
(4)通过鼠标交互获取相应态势的漫游路径或生长态势的路径
(5)通过态势管理类保存该矢量标绘图形及态势的相关信息;
参考图3,针对消防案例,其只需漫游和生长类两种态势,而这两种态势可采用相同的流程来实现:
(1)通过鼠标交互获取矢量标绘图形对象,以及矢量标绘图形对象的核心信息(矢量标绘图形ID、类型、控制点、样式、属性等),并初始化其态势的基本信息,包括:态势ID(随机生成,因一个矢量标绘图形可能有多个态势,因此不采用矢量标绘图形ID作为态势ID)、开始时间、结束时间、态势类型、路径
(2)设计实现态势编辑参数面板,显示上一步获取的相关信息,矢量标绘图形相关内容可读不可编辑,态势相关内容除ID外都可编辑。开始、结束时间采用开源的时间选择插件即可,需精确到秒;态势选择界面类型为Combox类型,显示该类型的矢量标绘图形所支持的态势类型(漫游、生长),可选择其矢量标绘图形态势;路径可通过按钮触发交互操作选择路径点,转换成经纬度坐标显示在路径下的可编辑框内,框内内容可手工编辑。根据矢量标绘图形类型选择态势的种类(漫游、生长)
(3)修改态势编辑面板中相关态势的参数
(4)通过鼠标交互获取相应态势的漫游路径或生长态势的路径,这里需关注的是鼠标交互事件的监听和取消,路径输入完成后应取消该事件监听。
(5)通过态势管理类保存该矢量标绘图形及态势的相关信息
实现矢量标绘图形态势模拟
矢量标绘图形态势文件管理着一整个推演方案,该方案中含有一系列按时间序列排列的态势,每个态势都关联着一个矢量标绘图形对象,而态势之间也不具有排他性,也就是说两个态势是可以相互关联,可以驱动同一个矢量标绘图形对象,同时为了保证态势推演的正确性,对于这种驱动同一个矢量标绘图形的态势,需保证在一个态势结束后才可启动新的态势,这是我们在态势文件管理中添加单个态势(AppendAnimation)需重点关注的地方。整个推演方案的推演,其实就是通过时钟或者定时器在设定的时间内去触发多个态势,按照相应的规则或路径以设定的速率来对态势所关联矢量标绘图形的状态进行修改,这种修改包括闪烁、比例缩放、旋转、控制点变更等,这些修改在三维矢量标绘图形算法的解决方案中都有提及和实现,那么消防案例中涉及的漫游和生长类态势,对矢量标绘图形的修改都是由于控制点的变更所引起的。在Cesium中提供了Animation(动画类)和Clock(时钟类),利用这两个类可以非常方便的实现原生定时器的相关功能,并能模拟出加速、减速等在原生定时器中需要通过复杂的几何计算才能实现的效果,现在就推演方案的执行过程和需注意的细节进行详细说明,其过程如图4所示,代码可参照程序代码片段4:
(1)通过态势管理类读取态势文件,获取方案中所有态势信息,并对态势信息序列按照起始时间排序
(2)初始创建Cesium提供的Animation、Clock、TimeLine类对象,根据态势文件信息初始化这三个类的其相关信息,并实现相互关联
(3)监听Clock的Tick事件和TimeLine的settime事件
(4)触发Animation的播放按钮,触发Clock的Tick事件;或者拖动TimeLine的时间滑块,触发TimeLine的settime事件,计算时钟当前时间
(5)根据当前时间判断态势序列中所有可执行的态势,计算每个态势的当前状态(即根据当前时间、起止时间线性计算每个态势的状态),计算的过程根据态势的不同分别进行处理,对于漫游、生长类等有路径参数的,可根据路径长度按时间比例线性计算当前的长度,然后线性插值计算得到当前的路径参照点
(6)对于漫游态势获取路径参照点后,对于单线箭头、燕尾箭头矢量标绘图形,按照控制点序列长度不变的原则,重新以照路径参照点为结束点,沿路径计算控制点序列,并保留路径上的拐点,这个过程在计算控制点起始点时也需要进行线性插值计算,而对模型类型的矢量标绘图形,则简单很多,只需根据得到的路径参照点,修改模型位置和方位角、俯仰角等角度即可。以上对模型的漫游是一种常规的方式,其实还有一种更为简单直接的方法,通过使用Cesium提供的SampledPositionProperty,该对象可以对每个路径点赋予时间属性,并把该对象赋值给Entity的Position属性,同时与Entity对象的availability(生命周期)相配合,就可以轻松实现模型对象在生命周期内按SampledPositionProperty定义的每个时间节点的位置来移动,实现漫游的效果,可参考程序代码片段6。
(7)对于生长类态势,计算控制点序列,案例中涉及的矢量标绘图形单线箭头和燕尾箭头则需把沿路径方向到路径参照点所有的拐点都作为控制点,把以前的控制点和路径起点到路径参照点之间所有的拐点按路径方向连接起来作为新的控制点序列
(8)根据计算得到的矢量标绘图形参数重新计算或更新矢量标绘图形几何
(9)绘制矢量标绘图形几何实现态势推演
程序代码片段6
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。
Claims (5)
1.一种可扩展的适应二三维场景的矢量标绘图形态势推演方法,其特征在于,包含如下步骤:
S1、针对各类矢量标绘图形制定态势规则,包括矢量标绘图形的参数设定以及各类矢量标绘图形的适用矢量标绘图形类型;
所述各类矢量标绘图形的态势包括:
闪烁:按照设定的时间间隔,进行显隐切换或颜色切换;
旋转:按照设定的时间间隔和旋转角度,以几何中心为原点进行旋转;
比例缩放:按照设定的时间间隔和缩放比例,以几何中心为原点把矢量标绘图形几何放大或缩小;
漫游:按照设定的时间间隔和路线,对矢量标绘图形整体进行移动;
生长:按照设定的时间间隔或生长时间,沿指定的路线进行延伸;
闪烁的参数设定包括:唯一识别标识、开始时间、结束时间、时间间隔、适用矢量标绘图形类型数组以及闪烁颜色数组,适用矢量标绘图形类型为:除指北针以外的矢量标绘图形;
旋转的参数设定包括:唯一识别标识、开始时间、结束时间、时间间隔、适用矢量标绘图形类型数组以及旋转角度,适用矢量标绘图形类型为:所有类型;
比例缩放的参数设定包括:唯一识别标识、开始时间、结束时间、时间间隔、适用矢量标绘图形类型数组以及缩放比例,适用矢量标绘图形类型为:所有类型;
漫游的参数设定包括:唯一识别标识、开始时间、结束时间、时间间隔、适用矢量标绘图形类型数组以及漫游路径点数组,适用矢量标绘图形类型为:直箭头和燕尾箭头;
生长的参数设定包括:唯一识别标识、开始时间、结束时间、时间间隔、适用矢量标绘图形类型数组以及生长路径数组,适用矢量标绘图形类型为:双箭头、单箭头和燕尾箭头;
S2、保存矢量标绘图形及态势的相关信息,设计实现矢量标绘图形及态势文件管理;每个态势文件中含有一系列按照时间顺序排列的态势,每个态势都关联着一个矢量标绘图形对象;
S3、编辑和管理矢量标绘图形态势,实现态势管理类,态势管理类目的是实现态势文件的加载与保存,矢量标绘图形态势的添加、删除以及更新,以及针对一态势文件中所有态势的播放、停止及暂停;其中,矢量标绘图形态势的添加、删除以及更新时,保持与态势文件一致;
S4、模拟实现矢量标绘图形态势推演过程,具体包括如下步骤:
S41、通过态势管理类读取一态势文件,获取态势文件中所有态势信息,并对获取的态势信息序列按照起始时间排序;
S42、设计实现时钟类或直接使用第三方时钟类,该时钟类或第三方时钟类用于设置起止时间、时钟速率,以及获取当前时间和触发Tick事件;Tick事件响应时,会调用与事件关联的函数;
S43、计算态势序列的起止时间,按照这个起止时间设定所述时钟类或第三方时钟类中时钟的起止时间;
S44、通过各态势的起止时间、间隔时间,计算各态势的时钟速率;
S45、计算各时钟速率最大的公约数来设置时钟的时钟速率,如果没有计算公约数,则以最小的时钟速率来设置时钟的时钟速率;
S46、启动时钟,触发Tick事件,计算时钟当前时间;
S47、根据当前时间判断态势序列中所有可执行的态势,计算每个态势的当前状态,即根据当前时间、起止时间线性计算每个态势的状态;对于漫游态势获取路径参照点后,按照控制点序列长度不变的原则,重新以路径参照点为结束点,沿路径计算控制点序列,并保留路径上的拐点,这个过程在计算控制点起始点时进行线性插值计算;对于生长类态势,计算控制点序列,双箭头钳击类矢量标绘图形只需保证路径参照点为新的控制点,单线箭头则需把沿路径方向到路径参照点所有的拐点都作为控制点,把以前的控制点和路径起点到路径参照点之间所有的拐点按路径方向连接起来作为新的控制点序列;
S48、根据计算得到的矢量标绘图形参数重新计算或更新矢量标绘图形几何;
S49、绘制矢量标绘图形几何实现态势推演。
2.根据权利要求1所述的可扩展的适应二三维场景的矢量标绘图形态势推演方法,其特征在于,步骤S2中,
态势参照CZML文件规范实施,以Json的方式来存储态势信息,每个文件以Json数组的形式存储一个态势序列,即一个方案中所有的态势存储到一个文件中;
每一个态势对应一个矢量标绘图形对象,而一个矢量标绘图形对象有一种或者多种态势。
3.根据权利要求2所述的可扩展的适应二三维场景的矢量标绘图形态势推演方法,其特征在于,步骤S2中,保存矢量标绘图形的相关信息包括:矢量标绘图形ID、矢量标绘图形类型、矢量标绘图形样式、矢量标绘图形控制点数组以及矢量标绘图形属性;保存的态势的相关信息包括:矢量标绘图形ID以及矢量标绘图形ID对应的态势参数设定。
4.根据权利要求1所述的可扩展的适应二三维场景的矢量标绘图形态势推演方法,其特征在于,步骤S3中,根据矢量标绘图形态势的不同呈现方式,态势的编辑分为两类,具体如下:
闪烁、旋转、比例缩放的态势:
(1)通过鼠标交互获取矢量标绘图形对象,以及矢量标绘图形对象的核心信息,核心信息包括控制点、样式以及属性;
(2)设计实现态势参数面板,根据矢量标绘图形类型选择态势的种类,包括闪烁、旋转、比例缩放;
(3)修改态势面板中相关态势的参数;
(4)通过态势管理类保存该矢量标绘图形及态势的相关信息;
漫游、生长类的态势:
(1)通过鼠标交互获取矢量标绘图形对象,以及矢量标绘图形对象的核心信息,核心信息包括控制点、样式以及属性;
(2)设计实现态势参数面板,根据矢量标绘图形类型选择态势的种类,包括闪烁、旋转、比例缩放;
(3)修改态势面板中相关态势的参数;
(4)通过鼠标交互获取相应态势的漫游路径或生长态势的路径;
(5)通过态势管理类保存该矢量标绘图形及态势的相关信息。
5.根据权利要求1所述的可扩展的适应二三维场景的矢量标绘图形态势推演方法,其特征在于,步骤S47中,计算每个态势的当前状态时,计算的过程根据态势的不同分为三类分别进行处理:(1)旋转的角度、缩放的比例直接根据按时间的比例、相关态势参数线性计算;(2)闪烁可简化处理,实现互斥即可,但需保证该态势结束时恢复为初始状态;(3)有路径参数的态势,根据路径长度按时间比例线性计算当前的长度,然后线性插值计算得到当前的路径参照点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911264640.2A CN111145292B (zh) | 2019-12-11 | 2019-12-11 | 可扩展的适应二三维场景的矢量标绘图形态势推演方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911264640.2A CN111145292B (zh) | 2019-12-11 | 2019-12-11 | 可扩展的适应二三维场景的矢量标绘图形态势推演方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111145292A true CN111145292A (zh) | 2020-05-12 |
CN111145292B CN111145292B (zh) | 2021-08-27 |
Family
ID=70518008
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911264640.2A Active CN111145292B (zh) | 2019-12-11 | 2019-12-11 | 可扩展的适应二三维场景的矢量标绘图形态势推演方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111145292B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113157333A (zh) * | 2021-03-25 | 2021-07-23 | 中国电子科技集团公司第二十九研究所 | 一种新型态势标绘插件前端集成架构 |
CN113487704A (zh) * | 2021-06-25 | 2021-10-08 | 山东齐鲁数通科技有限公司 | 一种燕尾箭头标的绘制方法、装置、存储介质及终端设备 |
CN113554732A (zh) * | 2021-07-27 | 2021-10-26 | 南京莱斯信息技术股份有限公司 | 一种基于支撑应急领域演习的态势推演方法及系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080068381A1 (en) * | 2006-09-19 | 2008-03-20 | Searete Llc, A Limited Liability Corporation Of The State Of Delaware | Using network access port linkages for data structure update decisions |
US20150170033A1 (en) * | 2013-12-13 | 2015-06-18 | Electronics And Telecommunications Research Institute | Context reasoning apparatus, context recognition system and context reasoning method |
CN104978693A (zh) * | 2014-11-27 | 2015-10-14 | 国网山东省电力公司应急管理中心 | 一种基于国网gis电力应急处置态势模拟推演系统及方法 |
CN105260170A (zh) * | 2015-07-08 | 2016-01-20 | 中国科学院计算技术研究所 | 一种基于案例的突发事件态势推演方法及系统 |
CN107451195A (zh) * | 2017-07-03 | 2017-12-08 | 三峡大学 | 一种基于大数据可视化的兵棋推演系统 |
CN107492137A (zh) * | 2017-08-03 | 2017-12-19 | 中国电子科技集团公司第二十八研究所 | 一种基于三维数字地球的图形动画设计系统及其设计方法 |
CN107545788A (zh) * | 2017-10-17 | 2018-01-05 | 北京华如科技股份有限公司 | 基于增强现实显示的作战推演电子沙盘系统 |
CN107545371A (zh) * | 2017-09-07 | 2018-01-05 | 北京仿真中心 | 一种综合安全态势推演评估方法和系统 |
-
2019
- 2019-12-11 CN CN201911264640.2A patent/CN111145292B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080068381A1 (en) * | 2006-09-19 | 2008-03-20 | Searete Llc, A Limited Liability Corporation Of The State Of Delaware | Using network access port linkages for data structure update decisions |
US20150170033A1 (en) * | 2013-12-13 | 2015-06-18 | Electronics And Telecommunications Research Institute | Context reasoning apparatus, context recognition system and context reasoning method |
CN104978693A (zh) * | 2014-11-27 | 2015-10-14 | 国网山东省电力公司应急管理中心 | 一种基于国网gis电力应急处置态势模拟推演系统及方法 |
CN105260170A (zh) * | 2015-07-08 | 2016-01-20 | 中国科学院计算技术研究所 | 一种基于案例的突发事件态势推演方法及系统 |
CN107451195A (zh) * | 2017-07-03 | 2017-12-08 | 三峡大学 | 一种基于大数据可视化的兵棋推演系统 |
CN107492137A (zh) * | 2017-08-03 | 2017-12-19 | 中国电子科技集团公司第二十八研究所 | 一种基于三维数字地球的图形动画设计系统及其设计方法 |
CN107545371A (zh) * | 2017-09-07 | 2018-01-05 | 北京仿真中心 | 一种综合安全态势推演评估方法和系统 |
CN107545788A (zh) * | 2017-10-17 | 2018-01-05 | 北京华如科技股份有限公司 | 基于增强现实显示的作战推演电子沙盘系统 |
Non-Patent Citations (4)
Title |
---|
MINGQIANG GUO: "AN EFFECTIVE APPROACH TO ESTIMATING COMPUTING TIME OF VECTOR DATA SPATIAL COMPUTATIONAL DOMAINS IN WEBGIS", 《GEOMATICA》 * |
YANG WEN-JUN: "Design of Spatial Combat Situation Deducing System Based on HLA", 《2013 IEEE INTERNATIONAL CONFERENCE OF IEEE REGION 10 (TENCON 2013)》 * |
王赛君: "面向公共安全的态势推演系统研究与关键模块实现", 《中国优秀硕士学位论文全文数据库_社会科学Ⅰ辑》 * |
魏东琦,郭明强等: "基于WebGIS的GIS网络虚拟实验室建设", 《测绘工程》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113157333A (zh) * | 2021-03-25 | 2021-07-23 | 中国电子科技集团公司第二十九研究所 | 一种新型态势标绘插件前端集成架构 |
CN113157333B (zh) * | 2021-03-25 | 2022-09-02 | 中国电子科技集团公司第二十九研究所 | 一种态势标绘插件前端集成系统 |
CN113487704A (zh) * | 2021-06-25 | 2021-10-08 | 山东齐鲁数通科技有限公司 | 一种燕尾箭头标的绘制方法、装置、存储介质及终端设备 |
CN113487704B (zh) * | 2021-06-25 | 2024-01-30 | 山东齐鲁数通科技有限公司 | 一种燕尾箭头标的绘制方法、装置、存储介质及终端设备 |
CN113554732A (zh) * | 2021-07-27 | 2021-10-26 | 南京莱斯信息技术股份有限公司 | 一种基于支撑应急领域演习的态势推演方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111145292B (zh) | 2021-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111145292B (zh) | 可扩展的适应二三维场景的矢量标绘图形态势推演方法 | |
US11763530B2 (en) | Content association and history tracking in virtual and augmented realities | |
CN105184839B (zh) | 视频与几何图形的无缝表示 | |
US20060238538A1 (en) | System and method for data visualization using a synchronous display of sequential time data and on-map planning | |
JP4268586B2 (ja) | Gui用の動画挙動の作成および実行 | |
CA2922860C (en) | System and method for streamlining user interface development | |
CN105637477B (zh) | 用于促进草稿提醒的方法和装置 | |
JP2014502755A5 (zh) | ||
EP2587456A2 (en) | Method and systems for generating a dynamic multimodal and multidimensional presentation | |
CN114581565A (zh) | 动画路径可视化编辑方法、装置、计算机设备、存储介质 | |
CN111026370B (zh) | 预案可视化方法、计算机存储介质及电子设备 | |
CN112199007A (zh) | 菜单显示方法、装置、电子设备和存储介质 | |
US9449406B2 (en) | Manipulating timelines | |
CN112631691A (zh) | 游戏界面动效编辑方法、装置、处理设备及介质 | |
CN115470244A (zh) | 基于电子地图的交互方法、装置、计算机设备和存储介质 | |
US20100134500A1 (en) | Apparatus and method for producing crowd animation | |
CN109671139B (zh) | 用于创建概括三维对象的设计过程的动画的方法 | |
CN116778038A (zh) | 基于三维地图可视化平台的动画编辑器和动画设计方法 | |
CN105760375A (zh) | 甘特图显示方法和系统 | |
JP4992431B2 (ja) | 表示処理方法、表示処理装置、及び表示処理プログラム | |
KR101221452B1 (ko) | 군중 애니메이션 제작 장치 및 방법 | |
CN114697442B (zh) | 日程生成方法及装置、终端、存储介质 | |
CN112417061A (zh) | 一种基于时间驱动的三维动态标绘展示方法 | |
US20140126888A1 (en) | Mapping pixels to underlying assets in computer graphics | |
US20210150791A1 (en) | Apparatus and method for authoring motion of an avatar |
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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220117 Address after: 430000, 7th floor, Beidou building, 980 Gaoxin Avenue, Wuhan East Lake New Technology Development Zone, Wuhan City, Hubei Province Patentee after: HUBEI DIXIN TECHNOLOGY GROUP CO.,LTD. Address before: 430000 Lu Mill Road, Hongshan District, Wuhan, Hubei Province, No. 388 Patentee before: CHINA University OF GEOSCIENCES (WUHAN CITY) |
|
TR01 | Transfer of patent right |