一种实体在固定区域内实现随机运动的方法及存储介质与流程

文档序号:18741237发布日期:2019-09-21 01:47阅读:394来源:国知局
一种实体在固定区域内实现随机运动的方法及存储介质与流程

本发明涉及仿真模拟领域,具体的,涉及在作战仿真中,对实体的固定区域内进行随机运动的方法及其存储介质。



背景技术:

在真实作战情况中,为了执行一个不规则区域内的无死角巡逻任务,需要一种实体巡逻路线实现算法。在不规则区域内巡逻时,实体的机动过程和机动路线呈现一定的无规则性。

在现有技术中,模拟实体在不规则区域内的随机运动,常规的做法是随机取一个点,判断该点是否在区域内部,若在区域内部则朝该点以随机速度机动,若不在则循环直至选到在区域内的点。到达该点后再随机取一个点,再执行判断该点是否在区域内部的循环,如此循环执行直至时间结束。

现有技术中的方法,随机点生成次数以及判断随机点是否落在区域内的次数都较多,因此,如何提高算法计算效率,在给定的区域内,既实现作战实体在区域内的随机运动,又减少了随机点生成次数以及随机点是否位于区域内的判断的次数,提高了程序执行效率,成为现有技术亟需解决的技术问题。



技术实现要素:

本发明的目的在于提出一种在固定区域内生成作战实体随机路径的方法及其存储介质,能够提高算法的运算速度,减少了随机点生成次数以及随机点是否位于区域内的判断的次数。

为达此目的,本发明采用以下技术方案:

一种实体在固定区域内实现随机运动的方法,包括如下步骤:

区域给定步骤S110:给定区域Zone,要求实体在区域内做随机运动;

起点和运动时间随机生成步骤S120:随机选取区域内某一个点作为机动起始点,随机生成第一个运动时间段t1,t1时间运动完后随机生成第二个运动时间段t2,如此循环生成t3、…tn,直至所有时间段的综合=总的巡逻时间为止,在每个运动时间段内执行运动步骤S130;

运动步骤S130:第一个运动时间段t1以机动起始点作为起点,在上一个运动时间段内最终到达的点作为下一个时间段内运动起点,设定随机速度和随机偏移方向,得到新的目标点tpi,判断其是否在多边形区域内,如果新点tpi在多边形区域内,则将新点作为随机运动的下一个点,继续循环获取下一时间段的随机航线;如果新点tpi不在多边形区域内,则在多边形区域交线处随机向区域内反射,以获取更新后的点tpi′,并继续执行tpi′是否在多边形区域内的判断,直至找到在区域内的更新点tpi′为止。

可选的,在步骤S110中,所述区域为任意形状的区域,根据仿真的要求而定。

可选的,在所述运动步骤S130中,若新点tpi不在多边形区域内,则在与多边形交点处求法线,找出指向区域内的角度,并加上[-90°,90°]范围内随机生成的角度值得到新的方向角theta,再从交点出发,选择偏移角theta,偏移距离=交点与tpi之间的距离,得到更新后的点tpi′,并继续执行tpi′是否在多边形区域内的判断,直至找到在区域内的更新点tpi′为止。

可选的,当新点tpi不在多边形区域内,则在多边形区域交线处随机向区域内反射时,该时间段剩余的时间不变,随机运动的速度能够改变。

本发明进一步公开了一种存储介质,用于存储计算机可执行指令,其特征在于:所述计算机可执行指令在被处理器执行时上述的随机运动的方法。

在给定的区域内,根据本发明的法可实现作战实体在区域内的随机运动,且相对于常规的随机路径生成的算法,减少了随机点生成次数以及随机点是否位于区域内的判断的次数,提高了程序执行效率。

附图说明

图1是根据本发明具体实施例的实体在固定区域内实现随机运动的方法的流程图;

图2是根据本发明具体实施例的实体在固定区域内实现随机运动的方法的具体判断流程图;

图3是根据本发明具体实施例的实体在固定区域内实现随机运动的方法的示例;

图4是根据本发明具体实施例的实体在固定区域内实现随机运动的方法在矩形的实现效果;

图5是根据本发明具体实施例的实体在固定区域内实现随机运动的方法在凸多边形的实现效果;

图6是根据本发明具体实施例的实体在固定区域内实现随机运动的方法在凹多边形的实现效果。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

参见图1,示出了本发明具体实施例的实体在固定区域内实现随机运动的方法的流程图,该方法包括如下步骤:

区域给定步骤S110:给定区域Zone,要求实体在区域内做随机运动;

其中,所述区域可以为任意形状的区域,根据仿真的要求而定。

在本发明中,实体是计算机对现实对象的映射,如:飞机、车辆等。在仿真实现上,通过实体来刻画现实对象的特征、行为。

起点和运动时间随机生成步骤S120:随机选取区域内某一个点作为机动起始点,随机生成第一个运动时间段t1,t1时间运动完后随机生成第二个运动时间段t2,如此循环生成t3、…tn,直至所有时间段的综合=总的巡逻时间为止,在每个运动时间段内执行运动步骤S130;

运动步骤S130:第一个运动时间段t1以机动起始点作为起点,在上一个运动时间段内最终到达的点作为下一个时间段内运动起点,设定随机速度和随机偏移方向,得到新的目标点tpi,判断其是否在多边形区域内,如果新点tpi在多边形区域内,则将新点作为随机运动的下一个点,继续循环获取下一时间段的随机航线;如果新点tpi不在多边形区域内,则在多边形区域交线处随机向区域内反射,以获取更新后的点tpi′,并继续执行tpi′是否在多边形区域内的判断,直至找到在区域内的更新点tpi′为止。

例如,参见图3,V1-V5围城了一个运动区域,以点1为机动起始点,在t1时间内运动到点2,随后在t2时间内,以点2为起点继续再次设定新的随机速度和随机偏移方向进行随机运动,得到新的目标点tp1,但此时tp1已经超出区域,因此,利用在点tp1与点2在多边形的交线处得到点3,以点3为起点向区域内随机反射继续得到新的运动点tp2,此时tp2也超出区域,因此,利用在点tp2与点3在多边形的交线处得到点4,以点4为起点向区域内随机反射继续运动,直到运动点5位于区域内。然后进行t3的时间段内的随机运动,以此轮训,直到达到总的巡逻时间。

更进一步的,若新点tpi不在多边形区域内,则在与多边形交点处求法线,找出指向区域内的角度,并加上[-90°,90°]范围内随机生成的角度值得到新的方向角theta,再从交点出发,选择偏移角theta,偏移距离=交点与tpi之间的距离,得到更新后的点tpi′,并继续执行tpi′是否在多边形区域内的判断,直至找到在区域内的更新点tpi′为止。

即,利用在该时间内新的随机速度和时间算出的距离,在指定区域的边界处通过区域内偏移的方式使得随机运动的点始终位于区域Zone。

更进一步的,当新点tpi不在多边形区域内,则在多边形区域交线处随机向区域内反射时,该时间段剩余的时间不变,随机运动的速度能够改变,以使得运动的随机性更大。

当然,也可以保持在一个时间段内运动速度不变。

参见图2,示出了实体在固定区域内实现随机运动的方法的具体判断流程图。

进一步,参见图4-6,分别示出了实体在固定区域内实现随机运动的方法分别在矩形、凸多边形、凹多边形内进行实验,生成的随机路径效果。

本发明具有如下的特点:

1.路径起始点在限定区域内随机选取。

2.依次随机生成每个阶段的时间段ti,并累计当前随机时间段总和,直至达到总的巡逻时间为止。

3.从第一个时间段开始进行随机匀速运动,速度大小也随机,提前计算当前时间段结束点是否在区域内,若超出区域,则取交点作为该时间段内的中转点,并从交点开机继续新的随机运动,直至该时间段跑完。

4.依次循环执行上述步骤,直至所有随机时间段机动完毕为止。

因此,在给定的区域内,根据本发明的法可实现作战实体在区域内的随机运动,且相对于常规的随机路径生成的算法,减少了随机点生成次数以及随机点是否位于区域内的判断的次数,提高了方法,以及运行该方法的程序的执行效率。

进一步的,本发明公开了一种存储介质,用于存储计算机可执行指令,所述计算机可执行指令在被处理器执行时执行上述的随机运动的方法。

显然,本领域技术人员应该明白,上述的本发明的各单元或各步骤可以用通用的计算装置来实现,它们可以集中在单个计算装置上,可选地,他们可以用计算机装置可执行的程序代码来实现,从而可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件的结合。

以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施方式仅限于此,对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单的推演或替换,都应当视为属于本发明由所提交的权利要求书确定保护范围。

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