CN104613976B - 确定路径的方法及装置 - Google Patents
确定路径的方法及装置 Download PDFInfo
- Publication number
- CN104613976B CN104613976B CN201410427153.4A CN201410427153A CN104613976B CN 104613976 B CN104613976 B CN 104613976B CN 201410427153 A CN201410427153 A CN 201410427153A CN 104613976 B CN104613976 B CN 104613976B
- Authority
- CN
- China
- Prior art keywords
- path
- rectangular mesh
- starting point
- grid
- rectangular
- 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
- 238000000034 method Methods 0.000 title claims abstract description 71
- 239000000203 mixture Substances 0.000 claims abstract description 12
- 238000012545 processing Methods 0.000 claims description 24
- 230000004888 barrier function Effects 0.000 claims description 23
- 238000005457 optimization Methods 0.000 claims description 23
- 108010001267 Protein Subunits Proteins 0.000 claims description 5
- 238000013473 artificial intelligence Methods 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 11
- 230000000694 effects Effects 0.000 description 10
- 238000003860 storage Methods 0.000 description 9
- 238000009826 distribution Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 235000007926 Craterellus fallax Nutrition 0.000 description 1
- 240000007175 Datura inoxia Species 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/30—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by output arrangements for receiving control signals generated by the game device
- A63F2300/303—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by output arrangements for receiving control signals generated by the game device for displaying additional data, e.g. simulating a Head Up Display
- A63F2300/305—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by output arrangements for receiving control signals generated by the game device for displaying additional data, e.g. simulating a Head Up Display for providing a graphical or textual hint to the player
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种确定路径的方法及装置,属于人工智能技术领域。方法包括:获取预先生成的矩形网络,矩形网络由第一预设数量个矩形网格邻接构成,每个矩形网格由正方形的栅格组成,且组成每个矩形网格的所有正方形的栅格中均存储着矩形网格的邻接信息,邻接信息至少包括矩形网格的属性信息及矩形网格的每条边上邻接的其他矩形网格的属性信息;确定起点及终点所属的栅格,并根据起点及终点所属的栅格中存储的矩形网格的邻接信息确定起点在矩形网络中对应的矩形网格及终点在矩形网络中对应的矩形网格;根据起点对应的矩形网格及终点对应的矩形网格确定初始路径。由于矩形网格的邻接边较多且与栅格兼容,因而提高了确定路径的速度及精度。
Description
技术领域
本发明涉及人工智能技术领域,特别涉及一种确定路径的方法及装置。
背景技术
目前开发的大多数游戏类应用都为用户设定了路径探索任务,需要用户在使用游戏类应用时寻找到正确的路径,以完成游戏类应用设定的任务。而通常用户在寻找路径时需要耗费较长的时间,导致用户使用游戏类应用的体验效果不佳。而人工智能作为一种利用计算机等现代化工具来模拟人类的思维和行动的技术,被广泛的应用于人们的生产实践中,尤其被应用于游戏类应用的开发设计中。因此,为了提高用户的体验效果,可采用人工智能的方式确定路径。
相关技术在确定路径时,采用如下方式:
第一步,获取由许多正方形的栅格组成的场景地图,然后以场景地图中的栅格为起点将场景地图中表征可行走的区域用三角形网格表示出来,每个三角形网格由正方形的栅格组成;
第二步,获取采用上述步骤一生成的所有三角形网格,并根据所有三角形网格生成三角形网络,进而将每个三角形网格的邻接边信息存储到其包含的所有栅格中;
第三步,确定本次待确定路径的起点和终点所属的栅格,并根据起点和终点所属栅格中存储的三角形网格的邻接边信息确定起点及终点对应的三角形网格;
第四步,获取起点所在的三角形网格的邻接边,并在起点所在的三角形网格的邻接边上选取一个到起点的距离与到终点的距离之和最小的点,并将该点作为第一个路径拐点;
第五步,获取第一个路径拐点所在的三角形网格的邻接边,在第一个路径拐点所在的三角形网格的邻接边上选取一个到路径拐点距离与到终点距离之和最小的点,并将该点作为第二个路径拐点;
第六步,采用上述方式确定第三个路径拐点、第四个路径拐点、…..,直至成功确定路径;
第七步,获取起点、终点及上述确定的所有路径拐点,并将起点、路径拐点及终点依次顺序连接成一条线段,该线段即为本次确定的路径。
在实现本发明的过程中,发明人发现相关技术至少存在以下问题:
相关技术在确定路径时,由于根据三角形网络进行确定,基于三角形网络的特性,组成三角形网络的每个三角形网格的每条边上邻接的三角形网格数量较少,导致确定路径的速度较慢;另外,由于场景地图中的栅格为正方形,基于场景地图中的栅格生成的三角形网格与场景地图中的栅格兼容性较差,导致确定的路径精度不高。
发明内容
为了解决相关技术的问题,本发明实施例提供了一种确定路径的方法及装置。所述技术方案如下:
一方面,提供了一种确定路径的方法,所述方法包括:
获取预先生成的矩形网络,所述矩形网络由第一预设数量个矩形网格邻接构成,每个矩形网格由正方形的栅格组成,且组成每个矩形网格的所有正方形的栅格中均存储着所述矩形网格的邻接信息,所述邻接信息至少包括所述矩形网格的属性信息及所述矩形网格的每条边上邻接的其他矩形网格的属性信息;
确定本次待确定路径的起点及终点所属的栅格,并根据所述起点及所述终点所属的栅格中存储的矩形网格的邻接信息确定所述起点在所述矩形网络中对应的矩形网格及所述终点在所述矩形网络中对应的矩形网格;
根据所述起点对应的矩形网格及所述终点对应的矩形网格确定初始路径。
另一方面,提供了一种确定路径的装置,所述装置包括:
第一获取模块,用于获取预先生成的矩形网络,所述矩形网络由第一预设数量个矩形网格邻接构成,每个矩形网格由正方形的栅格组成,且组成每个矩形网格的所有正方形的栅格中均存储着所述矩形网格的邻接信息,所述邻接信息至少包括所述矩形网格的属性信息及所述矩形网格的每条边上邻接的其他矩形网格的属性信息;
第一确定模块,用于确定本次待确定路径的起点及终点所属的栅格;
第二确定模块,用于根据所述起点及所述终点所属的栅格中存储的矩形网格的邻接信息确定所述起点在所述矩形网络中对应的矩形网格及所述终点在所述矩形网络中对应的矩形网格;
第三确定模块,用于根据所述起点对应的矩形网格及所述终点对应的矩形网格确定初始路径。
本发明实施例提供的技术方案带来的有益效果是:
通过获取预先生成的矩形网络,并确定本次待确定路径的起点及终点所属的栅格之后,根据起点及终点所属的栅格中存储的矩形网格的邻接信息确定起点在矩形网络中对应的矩形网格及终点在矩形网络中对应的矩形网格,进而根据起点对应的矩形网格及终点对应的矩形网格确定初始路径。由于矩形网格的邻接边较多且矩形网格与栅格兼容,因而提高了确定路径的速度及精度。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的一种确定路径的方法流程图;
图2是本发明另一实施例提供的一种确定路径的方法流程图;
图3是本发明另一实施例提供的一种场景地图的示意图;
图4是本发明另一实施例提供的一种场景地图的示意图;
图5是本发明另一实施例提供的一种场景地图的示意图;
图6是本发明另一实施例提供的一种场景地图的示意图;
图7是本发明另一实施例提供的一种场景地图的示意图;
图8是本发明另一实施例提供的一种场景地图的示意图;
图9是本发明另一实施例提供的一种场景地图的示意图;
图10是本发明另一实施例提供的一种场景地图的示意图;
图11是本发明另一实施例提供的一种确定路径的装置结构图;
图12是本发明另一实施例提供的一种确定路径的装置的示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
目前大多数游戏类应用在开发设计时均为用户设定了路径探索任务,而探索路径任务需要用户耗费较长的时间,导致用户的体验效果不佳,为了提升用户的体验效果,本发明实施例提供了一种确定路径的方法,该方法通过人工智能的方式为使用游戏类应用的用户确定一条路径,使得用户在使用游戏类应用时,可直接使用本发明确定的路径进行游戏互动。参见图1,本实施例提供的方法流程包括:
101:获取预先生成的矩形网络,矩形网络由第一预设数量个矩形网格邻接构成,每个矩形网格由正方形的栅格组成,且组成每个矩形网格的所有正方形的栅格中均存储着矩形网格的邻接信息,邻接信息至少包括矩形网格的属性信息及矩形网格的每条边上邻接的其他矩形网格的属性信息。
作为一种可选的实施例,获取预先生成的矩形网络,包括:
获取场景地图,场景地图由第二预设数量个正方形的栅格组成;
在场景地图的所有栅格中随机选取一个栅格,采用递归方式以选取的栅格为起点在场景地图上进行扩张,得到一个以选取的栅格为起点且面积最大的矩形网格,将面积最大的矩形网格中包含的栅格作为处理过的栅格;
依次在场景地图的所有未处理的栅格中随机选取一个未处理的栅格,采用递归方式以选取的栅格为起点在场景地图上向其他未处理的栅格所在的区域进行扩张,得到一个以选取的栅格为起点且面积最大的矩形网格,直至场景地图的所有栅格均被处理;
获取得到的所有矩形网格,并根据得到的所有矩形网格生成矩形网络。
作为一种可选的实施例,采用递归方式以选取的栅格为起点在场景地图上进行扩张,得到一个以选取的栅格为起点且面积最大的矩形网格,包括:
以选取的栅格为起点在场景地图上进行扩张,得到满足第一预设条件的第一矩形;
以第一矩形中除起点所在栅格之外的每个栅格为起点分别进行扩张,并将扩张得到的各个矩形与第一矩形进行合并,得到满足第一预设条件的第二矩形;
获取第一矩形的面积及第二矩形的面积,并将第二矩形的面积与第一矩形的面积进行比较;
若第二矩形的面积大于第一矩形的面积,则判断第二矩形是否满足第二预设条件;
如果第二矩形不满足第二预设条件,则按照对第一矩形的处理方式处理第二矩形,依次循环,直至获取到满足第二预设条件的矩形,并将满足第二预设条件的矩形作为以选取的栅格为起点且面积最大的矩形网格。
102:确定本次待确定路径的起点及终点所属的栅格,并根据起点及终点所属的栅格中存储的矩形网格的邻接信息确定起点在矩形网络中对应的矩形网格及终点在矩形网络中对应的矩形网格。
103:根据起点对应的矩形网格及终点对应的矩形网格确定初始路径。
作为一种可选的实施例,根据起点对应的矩形网格及终点对应的矩形网格确定初始路径,包括:
若起点对应的矩形网格与终点对应的矩形网格为同一个矩形网格,则直接将起点及终点进行连接,并将连接起点和终点的线段作为初始路径。
作为一种可选的实施例,根据起点对应的矩形网格及终点对应的矩形网格确定初始路径,包括:
若起点对应的矩形网格与终点对应的矩形网格为不同的矩形网格,则根据起点对应的矩形网格的邻接信息及终点对应的矩形网格的邻接信息确定初始路径。
作为一种可选的实施例,根据起点对应的矩形网格的邻接信息及终点对应的矩形网格的邻接信息确定初始路径,包括:
根据起点对应的矩形网格的邻接信息确定起点对应的矩形网格的各个邻接边;
在起点对应的矩形网格的各个邻接边中任意选取一条邻接边,并判断选取的邻接边是否满足第三预设条件;
若选取的邻接边满足第三预设条件,则在邻接边上选取一个到起点的距离与到终点的距离之和最小的点,将被选取的点作为选取的邻接边对应的路点,将路点到起点的距离与路点到终端的距离之和作为选取的邻接边对应的路径距离;
存储选取的邻接边对应的路点信息及路径距离;
按照对选取的邻接边的处理方式对起点对应的矩形网格的其他邻接边进行处理;
在起点对应的矩形网格的所有邻接边对应的路径距离中选取最小路径距离,将最小路径距离对应的邻接边对应的路点作为第一路径拐点;
判断第一路径拐点所在的矩形网格与终点所在的矩形网格是否为同一个矩形网格;
如果第一路径拐点所在的矩形网格与终点所在的矩形网格不为同一个矩形网格,则按照处理起点的方式处理第一路径拐点,直至得到所在的矩形网格与终点所在的矩形网格为同一个矩形网格的路径拐点;
获取得到的各个路径拐点,并用线段将各个路径拐点连接起来,得到初始路径。
作为一种可选的实施例,根据起点对应的矩形网格及终点对应的矩形网格确定初始路径之后,还包括:
对初始路径进行优化,得到优化后的路径。
作为一种可选的实施例,对初始路径进行优化,包括:
依次从初始路径中选取连续的任意三个路径拐点,将三个路径拐点中的第一个路径拐点及第三个路径拐点相连组成一条线段;
判断由线段组成的路径能否直接到达,若由线段组成的路径能够直接到达,则将第二路径拐点删除,得到优化后的路径。
作为一种可选的实施例,判断由线段组成的路径能否直接到达,包括:
获取组成线段的两个路径拐点中任一路径拐点所在的矩形网格,并获取矩形网格邻接的矩形网格;
根据线段与矩形网格邻接的矩形网格的相交状态判断由线段组成的路径能否直接到达。
作为一种可选的实施例,根据线段与矩形网格邻接的矩形网格的相交状态判断由线段组成的路径能否直接到达,包括:
若线段与矩形网格邻接的矩形网格都不相交,则判断由线段组成的路径不能直接到达;
若线段与矩形网格邻接的矩形网格中至少有一个矩形网格相交,且交点在相交矩形网格的邻接边上,则判断线段是否与相交矩形网格的邻接矩形网格相交;
若线段与相交矩形网格邻接的矩形网格都不相交,则判断由线段组成的路径不能直接到达;
若线段与相交矩形网格邻接的矩形网格中至少有一个矩形网格相交,且交点在相交矩形网格邻接的矩形网格的邻接边上,则判断由线段组成的路径能够直接到达。
作为一种可选的实施例,得到优化后的路径之后,还包括:
确定动态阻隔物的位置,并确定起点到动态阻隔物之间的距离;
以起点为圆心、以起点到动态阻隔物之间的距离为半径作圆;
判断优化后的路径与圆是否有交点;
若优化后的路径与圆有交点,则采用栅格确定方式在起点及交点之间确定路径,并根据确定结果判断本次确定的路径是否为正确的路径。
作为一种可选的实施例,根据确定结果判断本次确定的路径是否为正确的路径,包括:
若采用栅格确定方式在起点及交点之间不能确定一条路径,则判断本次确定的路径为不正确的路径;
若采用栅格确定方式在起点及交点之间能够确定一条路径,则判断本次确定的路径为正确的路径。
作为一种可选的实施例,判断确定的路径为正确的路径之后,还包括:
获取采用栅格确定方式在起点到交点之间确定的路径,将采用栅格确定方式在起点到交点之间确定的路径与优化得到的路径中交点到终点之间的路径进行拼接,得到一条支持动态阻挡的路径。
本发明实施例提供的方法,通过获取预先生成的矩形网络,并确定本次待确定路径的起点及终点所属的栅格之后,根据起点及终点所属的栅格中存储的矩形网格的邻接信息确定起点在矩形网络中对应的矩形网格及终点在矩形网络中对应的矩形网格,进而根据起点对应的矩形网格及终点对应的矩形网格确定初始路径。由于矩形网格的邻接边较多且矩形网格与栅格兼容,因而提高了确定路径的速度及精度。
结合上述实施例,本发明实施例提供了一种确定路径的方法,参见图2,本发明实施例提供的方法流程包括:
201:获取预先生成的矩形网络。
目前开发的游戏类应用大多为场景游戏类应用,每个场景游戏类应用均对应一个实施环境,当用户使用场景游戏类应用时,需要在该场景游戏类应用的实施环境中完成相应的任务。然而场景类游戏类应用的实施环境较为抽象,用户在根据抽象的实施环境去完成具体任务的难度较大,用户体验效果不佳,因此,为了直观地展现每个场景游戏类应用的实施环境,以提升用户的体验效果,可用场景地图来描述场景游戏类应用的实施环境。其中,场景地图为表征游戏类应用实施环境的数据结构。场景地图由正方形的栅格组成,不同的正方形的栅格具有不同的属性信息,通过每个正方形的栅格的属性信息可以确定该栅格对应的实施环境的不同地貌。其中,属性信息包括但不限于栅格所表征的游戏类应用对应的地形描述数据等,本实施例不对属性信息作具体的限定。例如,若正方形的栅格的属性信息为河流的地形描述数据,则可确定该栅格对应的实施环境为河流;若正方形的栅格的属性信息为草地的地形描述数据,则可确定该栅格对应的实施环境为草地。
另外,由于游戏类应用的实施场景中包含的地形区域较为丰富,有用于表征实施环境为高山的地形区域,有用于表征实施环境为海洋的地形区域,也有用于表征实施环境为草地的地形区域等,而本实施例提供的方法所确定的路径主要是为游戏类应用中的执行主体确定的,且游戏类应用的执行主体在游戏类应用的实施环境中并不是所有的区域均可穿越,因此,为了便于后续确定路径,在本实施例中将游戏类应用的执行主体能够穿越的区域成为可行走区域,将游戏类应用的执行主体不能穿越的区域成为不可行走区域。
进一步地,由于速度是衡量游戏类应用带给用户体验效果的重要指标,而传统的基于场景地图中的栅格确定路径的方法在确定路径时,需要逐个栅格进行确定,当场景地图中的栅格数量较大时,采用传统的路径确定方法确定路径时速度较慢,用户体验效果不佳,因此,为了提升用户的体验效果,本实施例提供的方法在确定路径时基于预先生成的矩形网络进行确定。由于矩形网络由第一预设数量个矩形网格邻接构成,且每个矩形网格又由多个正方形的栅格组成,因此,较单一根据正方形的栅格确定路径的速度要快。其中,第一预设数量可以为10个、20个、60个等,本实施例不对矩形网络中包括的矩形网格的数量作具体的限定。
进一步地,由于本实施例提供的方法在确定路径时主要是基于预先生成的矩形网络,因此,在确定路径之前,需要先获取预先生成的矩形网络。具体地,关于获取预先生成的矩形网络的方式,包括但不限于如下步骤:
第一步,获取场景地图,场景地图由第二预设数量个正方形的栅格组成;
其中,第二预设数量可以为100个、200个、500个等,本实施例不对第二预设数量作具体的限定。
第二步,在场景地图的所有栅格中随机选取一个栅格,采用递归方式以选取的栅格为起点在场景地图上进行扩张,得到一个以选取的栅格为起点且面积最大的矩形网格,将面积最大的矩形网格中包含的栅格作为处理过的栅格。
为了将场景地图中的可行走区域最大化的呈现出来,本实施例提供的方法以上述第一步获取到的场景地图为基础,将在获取到的场景地图的所有栅格中随机选取一个栅格,并采用递归方式以选取的栅格为起点在场景地图上不断进行扩张,直至得到一个以选取的栅格为起点且面积最大的矩形网格。其中,递归方式为将需要解决的问题转化为规模缩小了的同类问题的子问题,然后递归调用函数(或过程)来表示问题的解的一种方式。
需要说明的是,由于场景地图由第二预设数量个正方形的栅格组成,且每个正方形的栅格具有不同的属性信息以表示覆盖的区域是否为可行走区域,而场景游戏类应用需要用户确定的路径为跨越可行走区域的路径,因此,在采用递归方式以选取的栅格为起点在场景地图上进行扩张时,应保证扩张到的区域为场景地图中的可行走区域。当以选取的栅格为起点在场景地图上进行扩张时,若待扩张的区域为可行走区域,则可以选取的栅格为起点在场景地图上向该待扩张区域进行扩张;若待扩张的区域为不可行走区域,则本次扩张停止。
具体地,采用递归方式以选取的栅格为起点在场景地图上进行扩张,得到一个以选取的栅格为起点且面积最大的矩形网格,包括但不限于如下方式:
1)、以选取的栅格为起点在场景地图上进行扩张,得到满足第一预设条件的第一矩形;
由于场景地图中并不是所有的区域都是可行走区域,如场景地区中表征实施环境为湖泊的区域为不可行走区域,场景地图中实施环境为草地的区域为可行走区域,而游戏类应用为用户设定的路径寻找任务希望用户寻找到的路径穿越的区域为可行走区域,且本实施例中的矩形网格及由矩形网格组成的矩形网络中所包含的区域应为可行走区域,因此,在以选取的栅格为起点在场景地图上进行扩张时,需要保证扩张得到的第一矩形满足第一预设条件。其中,第一预设条件包括但不限于矩形的最大长宽比、扩张到的区域是否为可行走区域等,本实施例不对第一预设条件作具体的限定。关于以选取的栅格为起点在场景地图上扩张的方式,包括但不限于如下方式:
首先,以选取的场景地图为基础建立直角坐标系;
其次,以选取的栅格为起点在场景地图中向X轴、Y轴正方向进行整体扩张。
需要说明的是,为了便于后续步骤中根据本步骤中生成的矩形网络确定路径,本发明实施例中设定每个正方形的栅格的边长为1个单位,且以栅格或得到的矩形网格为基础进行扩张时,每次扩张均以栅格为单位进行扩张。
对于上述过程,为了便于理解,下面将以一个具体的例子进行详细地解释说明。
图3为场景地图,1为在场景地图中随机选的一个栅格,设定矩形的最大长宽比为2:1。在以选取的栅格为起点进行扩张时,以将栅格1先向X轴正方向扩张、后向Y轴正方向扩张为例,当将栅格1为起点向X轴正方向扩张一个单位时,可得到一个长为2个单位、宽为1个单位的矩形。由于该矩形的长宽比为2:1,恰为矩形的最大长宽比,因此,此时无法将得到的矩形以栅格1为起点向X轴正方向扩张,但可将得到的矩形以栅格1为起点向Y轴正方向扩张。当将得到的矩形向Y轴正方向扩张4个单位时,可得到一个长为4个单位、宽为2个单位的新矩形。由于该新矩形的长宽比为2:1,恰为矩形的最大长宽比,因此,此时无法将新矩形以栅格1为起点向Y轴正方向扩张,但可将新矩形以栅格1为起点向X轴正方向进行扩张。重复执行上述扩张过程,直至以栅格1为起点向X轴正方向及Y轴正方向扩张的过程中遇到不可行走区域。获取以栅格1为起点扩张得到的最后的矩形,并将该矩形作为第一矩形。
2)、以第一矩形中除起点所在栅格之外的每个栅格为起点分别进行扩张,并将扩张得到的各个矩形与第一矩形进行合并,得到满足第一预设条件的第二矩形;
为了得到满足第一预设条件且面积最大的矩形,在得到第一矩形之后,本实施例提供的方法还将以第一矩形中除起点所在栅格之外的每个栅格为起点进行扩张。由于第一矩形中包含着除起点以外的多个栅格,因此,通过以第一矩形中除起点所在栅格之外的每个栅格为起点进行扩张可得到多个满足第一预设条件的矩形。由于得到的多个满足第一预设条件的矩形与第一矩形邻接,因此,可将得到的多个满足第一预设条件的矩形与第一矩形进行合并,从而得到满足第一预设条件的第二矩形。例如,以上述图3中得到的第一矩形为基础,在以第一矩形中除起点之外的每个栅格为起点进行扩张,可得到多个以第一矩形中除起点之外的每个栅格为起点的矩形。由于这些矩形是以图3中的第一矩形中除起点之外的栅格为起点进行扩张得到的,因此,得到的多个满足第一预设条件的栅格为第一矩形的邻接矩形,此时可将得到的多个满足第一预设条件的矩形与第一矩形进行合并,合并后得到的矩形可参见图4,该矩形即为满足第一预设条件的第二矩形。
3)、获取第一矩形的面积及第二矩形的面积,并将第二矩形的面积与第一矩形的面积进行比较,若第二矩形的面积大于第一矩形的面积,则判断第二矩形是否满足第二预设条件,如果第二矩形不满足第二预设条件,则按照对第一矩形的处理方式处理第二矩形,依次循环,直至获取到满足第二预设条件的矩形,并将满足第二预设条件的矩形作为以选取的栅格为起点且面积最大的矩形网格。
由于第二矩形是以第一矩形中除起点之外的栅格为基础进行扩张得到的,在以第一矩形中除起点之外的栅格为基础进行扩张时,可能存在以下两种情况:以第一矩形中除起点之前的栅格为基础进行扩张得到的第二矩形面积比第一矩形面积大,以第一矩形中除起点之前的栅格为基础进行扩张得到的第二矩形面积与第一矩形面积相等,而本实施例中以第一矩形中除起点之外的栅格为基础进行扩张的目的是为了得到比第一矩形面积更大的矩形,因此,在以第一矩形中除起点之外的栅格为基础进行扩张得到第二矩形之后,还需要获取第一矩形的面积及第二矩形的面积,并将第二矩形的面积与第一矩形的面积进行比较,当第二矩形的面积大于第一矩形的面积,说明第二矩形中包含的可行走区域要比第一矩形中包含的可行走区域要大,此时若第二矩形不满足第二预设条件,则将按照对第一矩形的处理方式处理第二矩形。具体地,可以第二矩形中除起点所在栅格之外的每个栅格为起点分别进行扩张,并将扩张得到的各个矩形与第二矩形进行合并,得到满足第一预设条件的第三矩形,判断得到的第三矩形的面积是否大于第二矩形的面积,当第三矩形的面积大于第二矩形的面积且第三矩形不满足第二预设条件,则以第三矩形中除起点所在栅格之外的每个栅格为起点分别进行扩张,并将扩张得到的各个矩形与第三矩形进行合并,得到满足第一预设条件的第四矩形,依次循环,直至获取到满足第二预设条件的矩形,并将满足第二预设条件的矩形作为以选取的栅格为起点且面积最大的矩形网格。其中,第二预设条件包括但不限于扩张次数达到预设次数、扩张后的矩形面积与扩张前的矩形面积差小于预设阈值,本实施例不对第二预设条件作具体的限定。具体地,预设次数可以为3次、5次、6次等,本实施例不对预设次数作具体的限定。预设阈值可以为1个栅格的面积、2个栅格的面积、3个栅格的面积等,本实施例不对预设阈值作具体的限定。
另外,为了便于区分矩形网格内与矩形网格外的栅格,在本实施例中将矩形网格内的栅格作为处理过的栅格,将矩形网格外的栅格作为未处理的栅格。
4)、依次在场景地图的所有未处理的栅格中随机选取一个未处理的栅格,采用递归方式以选取的栅格为起点在场景地图上向其他未处理的栅格所在的区域进行扩张,得到一个以选取的栅格为起点且面积最大的矩形网格,直至场景地图的所有栅格均被处理;
上述过程仅以对场景地图中的一个未处理的栅格进行扩张处理得到一个以选取的栅格为起点且面积最大的矩形网格为例进行说明的,对于场景地图中的其他未处理的栅格均可采用上述方法以选取的栅格为起点在场景地图上向其他未处理的栅格所在的区域进行扩张,直至场景地图中的所有表征可行走区域的栅格均被处理,从而得到多个以选取的栅格为起点且面积最大的矩形网格。
5)获取得到的所有矩形网格,并根据得到的所有矩形网格生成矩形网络。
虽然通过上述过程可得到多个矩形网格,但得到的各个矩形网格之间彼此是独立的,此时可通过获取各个矩形网格的邻接边信息,并将邻接边信息保存到邻接的矩形网格中,从而使得邻接的矩形网格之间彼此联通,最终得到一个矩形网络。其中,邻接边信息包括但不限于矩形网格的属性信息及矩形网格的每条边上邻接的其他矩形网格的属性信息等,本实施例不对邻接边信息作具体的限定。其中,属性信息包括但不限于矩形的ID、边长等信息。
进一步地,由于本实施例提供的方法所确定的路径为起点到终点之间的路径,而待确定路径的起点及终点所在的位置仅为场景地图中某一个栅格,且本实施例提供的方法在确定路径时主要借助于矩形网络进行确定,因此,为了方便后续步骤中确定路径,在将邻接边信息保存至邻接的矩形网格之后,将邻接边信息存储至其包含的所有栅格中。
202:确定本次待确定路径的起点及终点所属的栅格。
关于确定本次待确定路径的起点及终点所属的栅格的方式,包括但不限于如下方式:
首先,以上述步骤201中获取到的场景地图为基础建立直角坐标系,并确定场景地图中的每个栅格的坐标范围;
其次,获取本次待确定路径的起点及终点的坐标;
再次,分别获取坐标范围包含本次待确定路径的起点及终点的坐标的栅格,并将获取到的坐标范围中包含本次待确定路径的起点的坐标的栅格确定为起点所属的栅格,将获取到的坐标范围中包含本次待确定路径的终点的坐标的栅格确定为终点所属的栅格。
对于上述过程,为了便于理解,下面将以一个具体的例子进行详细地解释说明。
参见图5,图5为场景地图中包含的矩形网络图,由图5可知,矩形网络由矩形网格1、矩形网格2、矩形网格3、矩形网格4、矩形网格5、矩形网格6、矩形网格7、矩形网格8、矩形网格9、矩形网格10、矩形网格11、矩形网格12和矩形网格13邻接构成,且每个矩形网格数量不同的正方形栅格组成。若本次待确定路径的起点坐标为(2.5,4.5),终点坐标为(18.6,17.3),则可确定起点所属的栅格为黑色的栅格,终点所属的栅格为带条纹的栅格。
203:根据起点及终点所属的栅格中存储的矩形网格的邻接信息确定起点在矩形网络中对应的矩形网格及终点在矩形网络中对应的矩形网格。
由于组成矩形网格的每个正方形的栅格中均存储着矩形网格的邻接边信息,且邻接边信息至少包括每个矩形网格的属性信息及该矩形网格的每条邻接边上邻接的其他矩形网格的属性信息,因此,在确定起点及终点所属的栅格之后,可根据起点及终点所属的栅格中存储的矩形网格的邻接边信息确定起点在矩形网络中对应的矩形网格及终点在矩形网络中对应的矩形网格。仍以图5为例,设定矩形网格1的ID为A,矩形网格2的ID为B,矩形网格3的ID为C,矩形网格4的ID为D,矩形网格5的ID为E,矩形网格6的ID为F,矩形网格7的ID为G,矩形网格8的ID为H,矩形网格9的ID为J,矩形网格10的ID为K,矩形网格11的ID为L,矩形网格12的ID为Q,矩形网格13的ID为W,若起点所属的栅格中存储的邻接边信息为:起点所属的矩形网格的ID为J,且邻接的矩形网格的ID为A和K,则根据起点所属的栅格中存储的矩形网格的邻接信息确定起点在矩形网络中对应的矩形网格为矩形网格9;若终点所属的栅格中存储的邻接边信息为:终点所属的矩形网格的ID为B,且邻接的矩形网格的ID为A、C和D,则根据终点所属的栅格中存储的矩形网格的邻接信息确定终点在矩形网络中对应的矩形网格为矩形网格2。
204:根据起点对应的矩形网格及终点对应的矩形网格确定初始路径。
由于本实施例提供的基于矩形网络的路径确定方法在确定初始路径时,主要根据起点对应的矩形网格及终点对应的矩形网格进行确定,因此,针对于起点对应的矩形网格及终点对应的矩形网格的不同情况,在根据起点对应的矩形网格及终点对应的矩形网格确定初始路径时,包括但不限于如下几种情况:
第一种情况:起点对应一个矩形网格,终点未对应一个矩形网格;
针对第一种情况,由于矩形网格内的区域为可行走区域,当起点及终点所属的栅格位于矩形网格内,则说明起点和终点所处的区域为可行走区域;当起点及终点所属的栅格位于矩形网格外,说明起点和终点所处的区域为不可行走区域,因此,当起点对应一个矩形网格、终点未对应一个矩形网格时,说明起点所在的区域为可行走区域,终点所在的区域为不可行走区域。由于终点所在的区域为不可行走区域,说明终点为不可到达的区域,此时无法在起点及终点之间确定一条路径,本次路径确定失败。
第二种情况:起点对应一个矩形网格,终点对应一个矩形网格,且起点对应的矩形网格与终点对应的矩形网格为同一个矩形网格;
针对第二种情况,由于矩形网格中包含的区域为可行走的区域,而当起点对应的矩形网格与终点对应的矩形网格为同一个矩形网格时,说明起点和终点之间可直接到达,此时可直接将起点及终点进行连接,并将连接起点和终点的线段作为初始路径。如图6所示,黑色的栅格表示起点所属的栅格,带条纹的栅格表示终点所属的栅格,由图6可知,起点所属的矩形网格为矩形网格1,终点所属的矩形网格也为矩形网格1,由于起点对应的矩形网格与终点对应的矩形网格为同一个矩形网格,因此,可直接将起点和终点连接起来,并将连接起点和终端的线段作为初始路径。
第三种情况,起点对应一个矩形网格,终点对应一个矩形网格,且起点对应的矩形网格与终点对应的矩形网格为不同的矩形网格;
针对第三种情况,当起点对应矩形网格与终点对应的矩形网格为不同的矩形网格时,说明起点和终点所在的区域为可到达的区域,通过本实施例提供的路径确定方法可在起点到终点之间确定一条路径,但由于起点对应矩形网格与终点对应的矩形网格为不同的矩形网格,说明起点和终点之间不可直接到达,此时可根据起点对应的矩形网格的邻接信息及终点对应的矩形网格的邻接信息确定初始路径。
具体地,根据起点对应的矩形网格的邻接信息及终点对应的矩形网格的邻接信息确定初始路径的方式,包括但不限于如下步骤:
第一步,根据起点对应的矩形网格的邻接信息确定起点对应的矩形网格的各个邻接边;
针对第一步,由于起点所在的矩形网格中存储着该矩形网格的邻接信息,而邻接信息至少包括矩形网格的属性信息及矩形网格的每条边上邻接的其他矩形网格的属性信息,因此,根据起点对应的矩形网格的邻接信息可确定起点对应的矩形网格的各个邻接边。
第二步,在起点对应的矩形网格的各个邻接边中任意选取一条邻接边,并判断选取的邻接边是否满足第三预设条件,若选取的邻接边满足第三预设条件,则在邻接边上选取一个到起点的距离与到终点的距离之和最小的点,将被选取的点作为选取的邻接边对应的路点,将路点到起点的距离与路点到终端的距离之和作为选取的邻接边对应的路径距离,并存储选取的邻接边对应的路点信息及路径距离;
由于在确定的路径上通过的目标物体具有一定的宽度,而矩形网格的每条邻接边也具有一定的通过能力,当目标物体的宽度在邻接边的通过能力内,则目标物体可从该邻接边上顺利通过,此时确定的路径为正确的路径;当目标物体的宽度超过了邻接边的通过能力,则目标物体无法从该邻接边上顺利通过,此时确定的路径为不正确的路径。因此,为了保证确定的路径为正确的路径,在起点对应的矩形网格的各个邻接边中任意选取一条邻接边之后,还需考察选取的邻接边是否满足第三预设条件。其中,通过能力为选取的邻接边上允许通过的物体的最大半径,通过能力可以为10厘米、20厘米、30厘米等,本实施例不对通过能力作具体的限定。第三预设条件包括但不限于邻接边的宽度是否大于目标物体的宽度等,本实施例不对第三预设条件作具体的限定。若目标物体的宽度小于邻接边的宽度,即该选取的邻接边满足第三预设条件,此时可在邻接边上选取一个到起点的距离与到终点的距离之和最小的点,并将被选取的点作为选取的邻接边对应的路点,将路点到起点的距离与路点到终端的距离之和作为选取的邻接边对应的路径距离。
进一步地,由于选取的邻接边对应的路点信息及路径距离在后续路径的确定过程中将继续使用,因此,本实施例提供的方法在获取到选取的邻接边对应的路点信息及路径距离之后,还执行将选取的邻接边对应的路点信息及路径距离进行存储的步骤。关于存储选取的邻接边对应的路点信息及路径距离的方式,包括但不限于将选取的邻接边对应的路点信息及路径距离存储到邻接边对应的节点中等。其中,节点为本实施例中用于存储邻接边上选取的路点、路径距离等信息的存储介质。由于矩形网络中的邻接边的数量较大,且每一条邻接边对应一个节点,因此,为了便于对矩形网络中的邻接边对应的节点进行区分,本实施例提供的方法还将为每一个节点分配一个节点ID。例如,为邻接边a对应的节点分配一个节点ID为100,为邻接边b对应的节点分配一个节点ID为110,为邻接边c对应的节点分配一个节点ID为101等。
第三步,按照对选取的邻接边的处理方式对起点对应的矩形网格的其他邻接边进行处理,并在起点对应的矩形网格的所有邻接边对应的路径距离中选取最小路径距离,将最小路径距离对应的邻接边对应的路点作为第一路径拐点;
由于起点所在的矩形网格有多个邻接边,通过每个邻接边均可确定一个起点到终点的路径。然而在确定的这些路径中有些路径的路径距离较长,有些路径的路径距离较短。当确定的路径较长时,用户在使用游戏类应用时耗费在路径上的时间较长,用户体验效果不佳,当确定的路径较短时,用户在使用游戏类应用时耗费在路径上的时间较短,用户体验效果较佳。因此,为了使确定的路径为最短的路径,本实施例提供的方法在起点对应的矩形网格中的各个邻接边上任意选取一个邻接边并在该邻接边上选取一个路点之后,还将按照对选取的邻接边的处理方式对起点对应的矩形网格的其他邻接边进行处理,并在起点对应的矩形网格的所有邻接边对应的路径距离中选取最小路径距离,将最小路径距离对应的邻接边对应的路点作为第一路径拐点。
对于上述过程,为了便于理解,下面将以一个具体的例子进行详细地解释说明。
图7为场景地形图,其中,黑色的栅格为起点所属的栅格,带条纹的栅格为终点所属的栅格。根据起点对应的矩形网格的邻接信息确定起点对应的矩形网格的邻接边为a、b、c和d。若邻接边a上选取的路点为A,路径距离为10厘米,邻接边b上选取的路点为B,路径距离为6厘米,邻接边c上选取的路点为C,路径距离为12厘米,邻接边d上选取的路点为D,路径距离为9厘米,由于在起点对应的矩形网格的所有邻接边中邻接边b对应的路点距离最小,因此,可将邻接边b对应的路点B作为第一路径拐点。
第四步,判断第一路径拐点所在的矩形网格与终点所在的矩形网格是否为同一个矩形网格,如果第一路径拐点所在的矩形网格与终点所在的矩形网格不为同一个矩形网格,则按照处理起点的方式处理第一路径拐点,直至得到所在的矩形网格与终点所在的矩形网格为同一个矩形网格的路径拐点;
由于本实施例提供的路径确定方法在确定路径时主要通过在邻接矩形中确定路径拐点,并根据路径拐点确定初始路径,而在确定路径拐点的过程中,当路径拐点所在的矩网格与终端所在的矩形网格为同一个矩形网格时,可成功的确定一条路径。因此,为了避免能够成功确定路径的情况下对邻接的矩形网格作额外的计算,在得到第一路径拐点之后,还将判断第一路径拐点所在的矩形网格与终点所在的矩形网格是否为同一个矩形网格。如果第一路径拐点所在的矩形网格与终点所在的矩形网格为同一个矩形网格,则可将起点、第一路径拐点和终点相连,并将连接的线段作为初始路径;如果第一路径拐点所在的矩形网格与终点所在的矩形网格不为同一个矩形网格,则按照处理起点的方式处理第一路径拐点,直至得到所在的矩形网格与终点所在的矩形网格为同一个矩形网格的路径拐点。
需要说明的是,由于在确定初始路径的过程中,每次确定一个路径拐点之后,均需要考察该路径拐点所在的矩形网格的邻接边,而在考察路径拐点所在的矩形网格的邻接边时,若路径拐点所在矩形网格的邻接边已被处理或者路径拐点所在的矩形网格不存在邻接边,此时根据该路径拐点无法再确定下一个路径拐点,导致本次确定路径失败,为了提高确定路径的成功率,本实施例提供的方法将路径拐点对应的节点存储在关闭列表中,将未作为路径拐点的路点对应的节点存储在开放列表中。当将前一个路径拐点作为起点按照处理起点的方式处理该路径拐点时,该路径拐点所在矩形网格的邻接边已被处理或者该路径拐点所在的矩形网格不存在邻接边时,可在开放列表中存储与前一个路径拐点对应的邻接边同时考察的其他节点中重新选取一个路径最小的节点,并将选取的节点对应的路点作为前一个路径拐点。
另外,为了便于后续步骤中根据获取到的路径拐点确定初始路径,本实施例提供的方法还将得到前一个路径拐点的节点ID作为下一个路径拐点的父节点ID存储到路径拐点对应的节点中。
第五步,获取得到的各个路径拐点,并用线段将各个路径拐点连接起来,得到初始路径。
通过上述方法得到了各个路径拐点之后,即可用线段将各个路径拐点连接起来,从而得到初始路径。在用线段将各个路径拐点连接得到初始路径时,包括但不限于:根据路径拐点对应的节点中存储的父节点,从起点开始顺次将各个节点连接起来,直至连接到终点,从而得到初始路径。
进一步地,虽然采用上述方法可以得到了初始路径,但得到的初始路径可能不是最优的路径,初始路径中可能会存在一些不必要的拐点,由于这些不必要路径拐点的存在,导致得到的初始路径的距离在理论上并不是最近的,为了使生成的路径为理论上距离最近的路径,作为一种可选实施例,本发明实施例提供的方法在获取根据起点对应的矩形网格及终点对应的矩形网格确定初始路径之后,还将对初始路径进行优化,得到优化后的路径。
具体地,对初始路径进行优化的方式,包括但不限于:
首先,依次从初始路径中选取连续的任意三个路径拐点,将三个路径拐点中的第一个路径拐点及第三个路径拐点相连组成一条线段;
其次,判断由线段组成的路径能否直接到达,若由线段组成的路径能够直接到达,则将第二路径拐点删除,得到优化后的路径。
具体地,判断由线段组成的路径能否直接到达,包括但不限于:
获取组成线段的两个路径拐点中任一路径拐点所在的矩形网格,并获取矩形网格邻接的矩形网格;
根据线段与矩形网格邻接的矩形网格的相交状态判断由线段组成的路径能否直接到达。
具体地,根据线段与矩形网格邻接的矩形网格的相交状态判断由线段组成的路径能否直接到达,包括但不限于:
若线段与矩形网格邻接的矩形网格都不相交,则判断由线段组成的路径不能直接到达;
若线段与矩形网格邻接的矩形网格中至少有一个矩形网格相交,且交点在相交矩形网格的邻接边上,则判断线段是否与相交矩形网格的邻接矩形网格相交;
若线段与相交矩形网格邻接的矩形网格都不相交,则判断由线段组成的路径不能直接到达;
若线段与相交矩形网格邻接的矩形网格中至少有一个矩形网格相交,且交点在相交矩形网格邻接的矩形网格的邻接边上,则判断由线段组成的路径能够直接到达。
对于上述过程,为了便于理解,下面将以一个具体的例子进行详细地解释解释说明。
如图8所示,A点为本次确定的初始路径的起点,F点为本次确定的初始路径的终点,B、C、D、E四点为路径拐点。在对初始路径进行优化的过程中,以选取的三个点为A、B、C,将点A与点C相连组成一条线段A C,且选取A点所在的矩形网格1为例。由图8可知矩形起点A所在的矩形网格1的矩形网格为矩形网格2和矩形网格3,由于线段AC与矩形网格3相交,矩形网格2不相交,因此,需要判断线段AC与矩形网格3邻接的矩形网格的相交状态,进而判断由线段AC组成的路径不能直接到达。由图8可知线段AC与矩形网格3邻接的矩形网格10相交,且交点在矩形网格10的邻接边上,因此,判断由线段AC组成的路径能够直接到达。
至此,通过上述操作可确定一条从起点到终点的路径,该路径为离线状态下起点到终点的最优路径。然而当用户在线使用游戏类应用时,用户在线的操作可能会改变原有的场景地图,导致原有场景地图中的可行走区域变为不可行走区域,此时需要对离线状态下的优化路径进行验证。具体地,对离线状态下的优化路径进行验证,包括但限于如下方式:
首先,确定动态阻隔物的位置,并确定起点到动态阻隔物之间的距离;
其中,动态阻隔物为在线状态下因用户的操作所生成的阻隔物,如,射击类游戏中用户丢失的背包、手雷等物体,本实施例不对动态阻隔物的作具体的限定。图9为游戏类应用的场景地图,其中,图9中的圆圈即为动态阻隔物。
其次,以起点为圆心、以起点到动态阻隔物之间的距离为半径作圆;
再次,判断优化后的路径与圆是否有交点,若优化后的路径与圆有交点,则采用栅格确定方式在起点及交点之间确定路径,并根据确定结果判断本次确定的路径是否为正确的路径。
具体地,根据确定结果判断本次确定的路径是否为正确的路径,包括但不限于如下两种情况:
第一种情况:若采用栅格确定方式在起点及交点之间不能确定一条路径,则判断本次确定的路径为不正确的路径;
其中,栅格确定方式为游戏类应用中路径确定的最原始的方式,在采用栅格确定方式确定路径时需要从起点所属的栅格开始逐个栅格进行确定。若采用栅格确定方式在起点及交点之间不能确定一条路径,说明起点到交点之间不可行走区域且无法可跨越,则判断本次确定的路径为不正确的路径。
第二种情况:若采用栅格确定方式在起点及交点之间能够确定一条路径,则判断本次确定的路径为正确的路径。
若采用栅格确定方式在起点及交点之间不能确定一条路径,说明起点到交点之间的区域为可行走区域,则判断本次确定的路径为不正确的路径。
进一步地,作为一种可选实施例,在判断确定的路径为正确的路径之后,本实施例提供的方法还包括:
获取采用栅格确定方式在起点到交点之间确定的路径,将采用栅格确定方式在起点到交点之间确定的路径与优化得到的路径中交点到终点之间的路径进行拼接,得到一条支持动态阻挡的路径。如图10所示,A为路径起点,B优化后的路径与以起点为圆心、以起点到动态阻隔物之间的距离为半径的圆的交点,C为路径终点。若通过栅格确定的方式在起点A到交点B之间确定的路径为AC,则可将采用栅格确定方式在起点到交点之间确定的路径AC与优化得到的路径中交点到终点之间的路径BC进行拼接,从而得到一条支持动态阻挡的路径。
本发明实施例提供的方法,通过获取预先生成的矩形网络,并确定本次待确定路径的起点及终点所属的栅格之后,根据起点及终点所属的栅格中存储的矩形网格的邻接信息确定起点在矩形网络中对应的矩形网格及终点在矩形网络中对应的矩形网格,进而根据起点对应的矩形网格及终点对应的矩形网格确定初始路径。由于矩形网格的邻接边较多且矩形网格与栅格兼容,因而提高了确定路径的速度及精度。
参见图11,本发明实施例提供了一种确定路径的装置,该装置用于执行上述图1或图2所示的实施例提供的确定路径的方法,该装置包括:
第一获取模块1101,用于获取预先生成的矩形网络,矩形网络由第一预设数量个矩形网格邻接构成,每个矩形网格由正方形的栅格组成,且组成每个矩形网格的所有正方形的栅格中均存储着矩形网格的邻接信息,邻接信息至少包括矩形网格的属性信息及矩形网格的每条边上邻接的其他矩形网格的属性信息;
第一确定模块1102,用于确定本次待确定路径的起点及终点所属的栅格;
第二确定模块1103,用于根据起点及终点所属的栅格中存储的矩形网格的邻接信息确定起点在矩形网络中对应的矩形网格及终点在矩形网络中对应的矩形网格;
第三确定模块1104,用于根据起点对应的矩形网格及终点对应的矩形网格确定初始路径。
作为一种可选的实施例,第一获取模块1101,包括:
第一获取单元,用于获取场景地图,场景地图由第二预设数量个正方形的栅格组成;
第一选取单元,用于在场景地图的所有栅格中随机选取一个栅格;
第一扩张单元,用于采用递归方式以选取的栅格为起点在场景地图上进行扩张,得到一个以选取的栅格为起点且面积最大的矩形网格,将面积最大的矩形网格中包含的栅格作为处理过的栅格;
第二选取单元,用于依次在场景地图的所有未处理的栅格中随机选取一个未处理的栅格;
第二扩张单元,用于采用递归方式以选取的栅格为起点在场景地图上向其他未处理的栅格所在的区域进行扩张,得到一个以选取的栅格为起点且面积最大的矩形网格,直至场景地图的所有栅格均被处理;
第二获取单元,用于获取得到的所有矩形网格;
生成单元,用于根据得到的所有矩形网格生成矩形网络。
作为一种可选的实施例,第一扩张单元,包括:
第一扩张子单元,用于以选取的栅格为起点在场景地图上进行扩张,得到满足第一预设条件的第一矩形;
第二扩张子单元,用于以第一矩形中除起点所在栅格之外的每个栅格为起点分别进行扩张;
合并子单元,用于将扩张得到的各个矩形与第一矩形进行合并,得到满足第一预设条件的第二矩形;
获取子单元,用于获取第一矩形的面积及第二矩形的面积;
比较子单元,用于将第二矩形的面积与第一矩形的面积进行比较;
判断子单元,用于当第二矩形的面积大于第一矩形的面积时,判断第二矩形是否满足第二预设条件;
处理子单元,用于当第二矩形不满足第二预设条件时,按照对第一矩形的处理方式处理第二矩形,依次循环,直至获取到满足第二预设条件的矩形,并将满足第二预设条件的矩形作为以选取的栅格为起点且面积最大的矩形网格。
作为一种可选的实施例,第三确定模块1104,用于当起点对应的矩形网格与终点对应的矩形网格为同一个矩形网格时,直接将起点及终点进行连接,并将连接起点和终点的线段作为初始路径。
作为一种可选的实施例,第三确定模块1104,用于当起点对应的矩形网格与终点对应的矩形网格为不同的矩形网格时,根据起点对应的矩形网格的邻接信息及终点对应的矩形网格的邻接信息确定初始路径。
作为一种可选的实施例,第三确定模块1104,包括:
确定单元,用于根据起点对应的矩形网格的邻接信息确定起点对应的矩形网格的各个邻接边;
第一选取单元,用于在起点对应的矩形网格的各个邻接边中任意选取一条邻接边;
第一判断单元,用于判断选取的邻接边是否满足第三预设条件;
第二选取单元,用于当选取的邻接边满足第三预设条件时,在邻接边上选取一个到起点的距离与到终点的距离之和最小的点,将被选取的点作为选取的邻接边对应的路点,将路点到起点的距离与路点到终端的距离之和作为选取的邻接边对应的路径距离;
存储单元,用于存储选取的邻接边对应的路点信息及路径距离;
第一处理单元,用于按照对选取的邻接边的处理方式对起点对应的矩形网格的其他邻接边进行处理;
第三选取单元,用于在起点对应的矩形网格的所有邻接边对应的路径距离中选取最小路径距离,将最小路径距离对应的邻接边对应的路点作为第一路径拐点;
第二判断单元,用于判断第一路径拐点所在的矩形网格与终点所在的矩形网格是否为同一个矩形网格;
第二处理单元,用于当第一路径拐点所在的矩形网格与终点所在的矩形网格不为同一个矩形网格时,按照处理起点的方式处理第一路径拐点,直至得到所在的矩形网格与终点所在的矩形网格为同一个矩形网格的路径拐点;
获取单元,用于获取得到的各个路径拐点;
连接单元,用于用线段将各个路径拐点连接起来,得到初始路径。
作为一种可选的实施例,该装置,还包括:
优化模块,用于对初始路径进行优化,得到优化后的路径。
作为一种可选的实施例,优化模块,包括:
选取单元,用于依次从初始路径中选取连续的任意三个路径拐点;
连接单元,用于将三个路径拐点中的第一个路径拐点及第三个路径拐点相连组成一条线段;
判断单元,用于判断由线段组成的路径能否直接到达;
删除单元,用于当由线段组成的路径能够直接到达时,将第二路径拐点删除,得到优化后的路径。
作为一种可选的实施例,判断单元,包括:
第一获取子单元,用于获取组成线段的两个路径拐点中任一路径拐点所在的矩形网格;
第二获取子单元,用于获取矩形网格邻接的矩形网格;
判断子单元,用于根据线段与矩形网格邻接的矩形网格的相交状态判断由线段组成的路径能否直接到达。
作为一种可选的实施例,判断子单元,用于当线段与矩形网格邻接的矩形网格都不相交时,判断由线段组成的路径不能直接到达;当线段与矩形网格邻接的矩形网格中至少有一个矩形网格相交,且交点在相交矩形网格的邻接边上时,判断线段是否与相交矩形网格的邻接矩形网格相交;当线段与相交矩形网格邻接的矩形网格都不相交时,判断由线段组成的路径不能直接到达;当线段与相交矩形网格邻接的矩形网格中至少有一个矩形网格相交,且交点在相交矩形网格邻接的矩形网格的邻接边上时,判断由线段组成的路径能够直接到达。
作为一种可选的实施例,该装置,还包括:
第四确定模块,用于确定动态阻隔物的位置;
第五确定模块,用于确定起点到动态阻隔物之间的距离,并以起点为圆心、以起点到动态阻隔物之间的距离为半径作圆;
第一判断模块,用于判断优化后的路径与圆是否有交点;
第六确定模块,用于当优化后的路径与圆有交点时,采用栅格确定方式在起点及交点之间确定路径;
第二判断模块,用于根据确定结果判断本次确定的路径是否为正确的路径。
作为一种可选的实施例,第二判断模块,包括:
第一判断单元,用于当采用栅格确定方式在起点及交点之间不能确定一条路径时,判断本次确定的路径为不正确的路径;
第二判断单元,用于当采用栅格确定方式在起点及交点之间能够确定一条路径时,判断本次确定的路径为正确的路径。
作为一种可选的实施例,该装置,还包括:
第二获取模块,用于获取采用栅格确定方式在起点到交点之间确定的路径;
拼接模块,用于将采用栅格确定方式在所述起点到所述交点之间确定的路径与优化得到的路径中所述交点到所述终点之间的路径进行拼接,得到一条支持动态阻挡的路径。
综上所述,本发明实施例提供的装置,通过获取预先生成的矩形网络,并确定本次待确定路径的起点及终点所属的栅格之后,根据起点及终点所属的栅格中存储的矩形网格的邻接信息确定起点在矩形网络中对应的矩形网格及终点在矩形网络中对应的矩形网格,进而根据起点对应的矩形网格及终点对应的矩形网格确定初始路径。由于矩形网格的邻接边较多且矩形网格与栅格兼容,因而提高了确定路径的速度及精度。
图12是根据一示例性实施例示出的一种用于确定路径的装置1200的框图。例如,装置1200可以被提供为一服务器。参照图12,装置1200包括处理组件1232,其进一步包括一个或多个处理器,以及由存储器1232所代表的存储器资源,用于存储可由处理组件1222的执行的指令,例如应用程序。存储器1232中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1222被配置为执行指令,以执行上述确定路径的方法,该方法包括:
获取预先生成的矩形网络,矩形网络由第一预设数量个矩形网格邻接构成,每个矩形网格由正方形的栅格组成,且组成每个矩形网格的所有正方形的栅格中均存储着矩形网格的邻接信息,邻接信息至少包括矩形网格的属性信息及矩形网格的每条边上邻接的其他矩形网格的属性信息;
确定本次待确定路径的起点及终点所属的栅格,并根据起点及终点所属的栅格中存储的矩形网格的邻接信息确定起点在矩形网络中对应的矩形网格及终点在矩形网络中对应的矩形网格;
根据起点对应的矩形网格及终点对应的矩形网格确定初始路径。
作为一种可选的实施例,获取预先生成的矩形网络,包括:
获取场景地图,场景地图由第二预设数量个正方形的栅格组成;
在场景地图的所有栅格中随机选取一个栅格,采用递归方式以选取的栅格为起点在场景地图上进行扩张,得到一个以选取的栅格为起点且面积最大的矩形网格,将面积最大的矩形网格中包含的栅格作为处理过的栅格;
依次在场景地图的所有未处理的栅格中随机选取一个未处理的栅格,采用递归方式以选取的栅格为起点在场景地图上向其他未处理的栅格所在的区域进行扩张,得到一个以选取的栅格为起点且面积最大的矩形网格,直至场景地图的所有栅格均被处理;
获取得到的所有矩形网格,并根据得到的所有矩形网格生成矩形网络。
作为一种可选的实施例,采用递归方式以选取的栅格为起点在场景地图上进行扩张,得到一个以选取的栅格为起点且面积最大的矩形网格,包括:
以选取的栅格为起点在场景地图上进行扩张,得到满足第一预设条件的第一矩形;
以第一矩形中除起点所在栅格之外的每个栅格为起点分别进行扩张,并将扩张得到的各个矩形与第一矩形进行合并,得到满足第一预设条件的第二矩形;
获取第一矩形的面积及第二矩形的面积,并将第二矩形的面积与第一矩形的面积进行比较;
若第二矩形的面积大于第一矩形的面积,则判断第二矩形是否满足第二预设条件;
如果第二矩形不满足第二预设条件,则按照对第一矩形的处理方式处理第二矩形,依次循环,直至获取到满足第二预设条件的矩形,并将满足第二预设条件的矩形作为以选取的栅格为起点且面积最大的矩形网格。
作为一种可选的实施例,根据起点对应的矩形网格及终点对应的矩形网格确定初始路径,包括:
若起点对应的矩形网格与终点对应的矩形网格为同一个矩形网格,则直接将起点及终点进行连接,并将连接起点和终点的线段作为初始路径。
作为一种可选的实施例,根据起点对应的矩形网格及终点对应的矩形网格确定初始路径,包括:
若起点对应的矩形网格与终点对应的矩形网格为不同的矩形网格,则根据起点对应的矩形网格的邻接信息及终点对应的矩形网格的邻接信息确定初始路径。
作为一种可选的实施例,根据起点对应的矩形网格的邻接信息及终点对应的矩形网格的邻接信息确定初始路径,包括:
根据起点对应的矩形网格的邻接信息确定起点对应的矩形网格的各个邻接边;
在起点对应的矩形网格的各个邻接边中任意选取一条邻接边,并判断选取的邻接边是否满足第三预设条件;
若选取的邻接边满足第三预设条件,则在邻接边上选取一个到起点的距离与到终点的距离之和最小的点,将被选取的点作为选取的邻接边对应的路点,将路点到起点的距离与路点到终端的距离之和作为选取的邻接边对应的路径距离;
存储选取的邻接边对应的路点信息及路径距离;
按照对选取的邻接边的处理方式对起点对应的矩形网格的其他邻接边进行处理;
在起点对应的矩形网格的所有邻接边对应的路径距离中选取最小路径距离,将最小路径距离对应的邻接边对应的路点作为第一路径拐点;
判断第一路径拐点所在的矩形网格与终点所在的矩形网格是否为同一个矩形网格;
如果第一路径拐点所在的矩形网格与终点所在的矩形网格不为同一个矩形网格,则按照处理起点的方式处理第一路径拐点,直至得到所在的矩形网格与终点所在的矩形网格为同一个矩形网格的路径拐点;
获取得到的各个路径拐点,并用线段将各个路径拐点连接起来,得到初始路径。
作为一种可选的实施例,根据起点对应的矩形网格及终点对应的矩形网格确定初始路径之后,还包括:
对初始路径进行优化,得到优化后的路径。
作为一种可选的实施例,对初始路径进行优化,包括:
依次从初始路径中选取连续的任意三个路径拐点,将三个路径拐点中的第一个路径拐点及第三个路径拐点相连组成一条线段;
判断由线段组成的路径能否直接到达,若由线段组成的路径能够直接到达,则将第二路径拐点删除,得到优化后的路径。
作为一种可选的实施例,判断由线段组成的路径能否直接到达,包括:
获取组成线段的两个路径拐点中任一路径拐点所在的矩形网格,并获取矩形网格邻接的矩形网格;
根据线段与矩形网格邻接的矩形网格的相交状态判断由线段组成的路径能否直接到达。
作为一种可选的实施例,根据线段与矩形网格邻接的矩形网格的相交状态判断由线段组成的路径能否直接到达,包括:
若线段与矩形网格邻接的矩形网格都不相交,则判断由线段组成的路径不能直接到达;
若线段与矩形网格邻接的矩形网格中至少有一个矩形网格相交,且交点在相交矩形网格的邻接边上,则判断线段是否与相交矩形网格的邻接矩形网格相交;
若线段与相交矩形网格邻接的矩形网格都不相交,则判断由线段组成的路径不能直接到达;
若线段与相交矩形网格邻接的矩形网格中至少有一个矩形网格相交,且交点在相交矩形网格邻接的矩形网格的邻接边上,则判断由线段组成的路径能够直接到达。
作为一种可选的实施例,得到优化后的路径之后,还包括:
确定动态阻隔物的位置,并确定起点到动态阻隔物之间的距离;
以起点为圆心、以起点到动态阻隔物之间的距离为半径作圆;
判断优化后的路径与圆是否有交点;
若优化后的路径与圆有交点,则采用栅格确定方式在起点及交点之间确定路径,并根据确定结果判断本次确定的路径是否为正确的路径。
作为一种可选的实施例,根据确定结果判断本次确定的路径是否为正确的路径,包括:
若采用栅格确定方式在起点及交点之间不能确定一条路径,则判断本次确定的路径为不正确的路径;
若采用栅格确定方式在起点及交点之间能够确定一条路径,则判断本次确定的路径为正确的路径。
作为一种可选的实施例,判断确定的路径为正确的路径之后,还包括:
获取采用栅格确定方式在起点到交点之间确定的路径,将采用栅格确定方式在起点到交点之间确定的路径与优化得到的路径中交点到终点之间的路径进行拼接,得到一条支持动态阻挡的路径。
本发明实施例提供的装置,通过获取预先生成的矩形网络,并确定本次待确定路径的起点及终点所属的栅格之后,根据起点及终点所属的栅格中存储的矩形网格的邻接信息确定起点在矩形网络中对应的矩形网格及终点在矩形网络中对应的矩形网格,进而根据起点对应的矩形网格及终点对应的矩形网格确定初始路径。由于矩形网格的邻接边较多且矩形网格与栅格兼容,因而提高了确定路径的速度及精度。
需要说明的是:上述实施例提供的确定路径的装置在确定路径时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将确定路径的装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的确定路径的装置与确定路径的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (22)
1.一种确定路径的方法,其特征在于,所述方法包括:
获取场景地图,所述场景地图由第二预设数量个正方形的栅格组成;
在所述场景地图的所有栅格中随机选取一个栅格,以选取的栅格为起点在所述场景地图上进行扩张,得到满足第一预设条件的第一矩形,所述第一预设条件至少包括矩形的最大长宽比、扩张到的区域为可行走的区域;以所述第一矩形中除起点所在栅格之外的每个栅格为起点分别进行扩张,并将扩张得到的各个矩形与所述第一矩形进行合并,得到满足所述第一预设条件的第二矩形;获取所述第一矩形的面积及所述第二矩形的面积,并将所述第二矩形的面积与所述第一矩形的面积进行比较;若所述第二矩形的面积大于所述第一矩形的面积,则判断所述第二矩形是否满足第二预设条件,所述第二预设条件至少包括扩张次数达到预设次数、扩张后的矩形面积与扩张前的矩形面积差小于预设阈值;如果所述第二矩形不满足第二预设条件,则按照对所述第一矩形的处理方式处理所述第二矩形,依次循环,直至获取到满足第二预设条件的矩形,并将满足第二预设条件的矩形作为以选取的栅格为起点且面积最大的矩形网格,将所述面积最大的矩形网格中包含的栅格作为处理过的栅格;
依次在所述场景地图的所有未处理的栅格中随机选取一个未处理的栅格,采用递归方式以选取的栅格为起点在所述场景地图上向其他未处理的栅格所在的区域进行扩张,得到一个以选取的栅格为起点且面积最大的矩形网格,直至所述场景地图的所有栅格均被处理;
获取得到的所有矩形网格,并根据得到的所有矩形网格生成矩形网络,所述矩形网络由第一预设数量个矩形网格邻接构成,每个矩形网格由正方形的栅格组成,且组成每个矩形网格的所有正方形的栅格中均存储着所述矩形网格的邻接信息,所述邻接信息至少包括所述矩形网格的属性信息及所述矩形网格的每条边上邻接的其他矩形网格的属性信息;
确定本次待确定路径的起点及终点所属的栅格,并根据所述起点及所述终点所属的栅格中存储的矩形网格的邻接信息确定所述起点在所述矩形网络中对应的矩形网格及所述终点在所述矩形网络中对应的矩形网格;
根据所述起点对应的矩形网格及所述终点对应的矩形网格确定初始路径。
2.根据权利要求1所述的方法,其特征在于,所述根据所述起点对应的矩形网格及所述终点对应的矩形网格确定初始路径,包括:
若所述起点对应的矩形网格与所述终点对应的矩形网格为不同的矩形网格,则根据所述起点对应的矩形网格的邻接信息及所述终点对应的矩形网格的邻接信息确定初始路径。
3.根据权利要求1所述的方法,其特征在于,所述根据所述起点对应的矩形网格及所述终点对应的矩形网格确定初始路径,包括:
若所述起点对应的矩形网格与所述终点对应的矩形网格为同一个矩形网格,则直接将所述起点及所述终点进行连接,并将连接所述起点和所述终点的线段作为初始路径。
4.根据权利要求3所述的方法,其特征在于,所述根据所述起点对应的矩形网格的邻接信息及所述终点对应的矩形网格的邻接信息确定初始路径,包括:
根据所述起点对应的矩形网格的邻接信息确定所述起点对应的矩形网格的各个邻接边;
在所述起点对应的矩形网格的各个邻接边中任意选取一条邻接边,并判断选取的邻接边是否满足第三预设条件,所述第三预设条件至少包括所述邻接边的宽度大于目标物体的宽度;
若选取的邻接边满足第三预设条件,则在所述邻接边上选取一个到所述起点的距离与到所述终点的距离之和最小的点,将被选取的点作为所述选取的邻接边对应的路点,将所述路点到所述起点的距离与所述路点到所述终端的距离之和作为所述选取的邻接边对应的路径距离;
存储所述选取的邻接边对应的路点信息及路径距离;
按照对所述选取的邻接边的处理方式对所述起点对应的矩形网格的其他邻接边进行处理;
在所述起点对应的矩形网格的所有邻接边对应的路径距离中选取最小路径距离,将所述最小路径距离对应的邻接边对应的路点作为第一路径拐点;
判断所述第一路径拐点所在的矩形网格与所述终点所在的矩形网格是否为同一个矩形网格;
如果所述第一路径拐点所在的矩形网格与所述终点所在的矩形网格不为同一个矩形网格,则按照处理所述起点的方式处理所述第一路径拐点,直至得到所在的矩形网格与所述终点所在的矩形网格为同一个矩形网格的路径拐点;
获取得到的各个路径拐点,并用线段将各个路径拐点连接起来,得到初始路径。
5.根据权利要求1至4中任一权利要求所述的方法,其特征在于,所述根据所述起点对应的矩形网格及所述终点对应的矩形网格确定初始路径之后,还包括:
对所述初始路径进行优化,得到优化后的路径。
6.根据权利要求5所述的方法,其特征在于,所述对所述初始路径进行优化,包括:
依次从所述初始路径中选取连续的任意三个路径拐点,将所述三个路径拐点中的第一个路径拐点及第三个路径拐点相连组成一条线段;
判断由所述线段组成的路径能否直接到达,若由所述线段组成的路径能够直接到达,则将第二路径拐点删除,得到优化后的路径。
7.根据权利要求6所述的方法,其特征在于,所述判断由所述线段组成的路径能否直接到达,包括:
获取组成线段的两个路径拐点中任一路径拐点所在的矩形网格,并获取所述矩形网格邻接的矩形网格;
根据所述线段与所述矩形网格邻接的矩形网格的相交状态判断由所述线段组成的路径能否直接到达。
8.根据权利要求7所述的方法,其特征在于,所述根据所述线段与所述矩形网格邻接的矩形网格的相交状态判断由所述线段组成的路径能否直接到达,包括:
若所述线段与所述矩形网格邻接的矩形网格都不相交,则判断由所述线段组成的路径不能直接到达;
若所述线段与所述矩形网格邻接的矩形网格中至少有一个矩形网格相交,且交点在相交矩形网格的邻接边上,则判断所述线段是否与所述相交矩形网格的邻接矩形网格相交;
若所述线段与所述相交矩形网格邻接的矩形网格都不相交,则判断由所述线段组成的路径不能直接到达;
若所述线段与所述相交矩形网格邻接的矩形网格中至少有一个矩形网格相交,且交点在相交矩形网格邻接的矩形网格的邻接边上,则判断由所述线段组成的路径能够直接到达。
9.根据权利要求5所述的方法,其特征在于,所述得到优化后的路径之后,还包括:
确定动态阻隔物的位置,并确定所述起点到所述动态阻隔物之间的距离;
以所述起点为圆心、以所述起点到所述动态阻隔物之间的距离为半径作圆;
判断所述优化后的路径与所述圆是否有交点;
若所述优化后的路径与所述圆有交点,则采用栅格确定方式在所述起点及所述交点之间确定路径,并根据确定结果判断本次确定的路径是否为正确的路径。
10.根据权利要求9所述的方法,其特征在于,所述根据确定结果判断本次确定的路径是否为正确的路径,包括:
若采用栅格确定方式在所述起点及所述交点之间不能确定一条路径,则判断本次确定的路径为不正确的路径;
若采用栅格确定方式在所述起点及所述交点之间能够确定一条路径,则判断本次确定的路径为正确的路径。
11.根据权利要求9所述的方法,其特征在于,所述判断确定的路径为正确的路径之后,还包括:
获取采用栅格确定方式在所述起点到所述交点之间确定的路径,将采用栅格确定方式在所述起点到所述交点之间确定的路径与优化得到的路径中所述交点到所述终点之间的路径进行拼接,得到一条支持动态阻挡的路径。
12.一种确定路径的装置,其特征在于,所述装置包括:
第一获取模块,用于获取场景地图,所述场景地图由第二预设数量个正方形的栅格组成;在所述场景地图的所有栅格中随机选取一个栅格,以选取的栅格为起点在所述场景地图上进行扩张,得到满足第一预设条件的第一矩形,所述第一预设条件至少包括矩形的最大长宽比、扩张到的区域为可行走的区域;以所述第一矩形中除起点所在栅格之外的每个栅格为起点分别进行扩张,并将扩张得到的各个矩形与所述第一矩形进行合并,得到满足所述第一预设条件的第二矩形;获取所述第一矩形的面积及所述第二矩形的面积,并将所述第二矩形的面积与所述第一矩形的面积进行比较;若所述第二矩形的面积大于所述第一矩形的面积,则判断所述第二矩形是否满足第二预设条件,所述第二预设条件至少包括扩张次数达到预设次数、扩张后的矩形面积与扩张前的矩形面积差小于预设阈值;如果所述第二矩形不满足第二预设条件,则按照对所述第一矩形的处理方式处理所述第二矩形,依次循环,直至获取到满足第二预设条件的矩形,并将满足第二预设条件的矩形作为以选取的栅格为起点且面积最大的矩形网格,将所述面积最大的矩形网格中包含的栅格作为处理过的栅格;
所述第一获取模块,还用于依次在所述场景地图的所有未处理的栅格中随机选取一个未处理的栅格,采用递归方式以选取的栅格为起点在所述场景地图上向其他未处理的栅格所在的区域进行扩张,得到一个以选取的栅格为起点且面积最大的矩形网格,直至所述场景地图的所有栅格均被处理;
所述第一获取模块,还用于获取得到的所有矩形网格,并根据得到的所有矩形网格生成矩形网络,所述矩形网络由第一预设数量个矩形网格邻接构成,每个矩形网格由正方形的栅格组成,且组成每个矩形网格的所有正方形的栅格中均存储着所述矩形网格的邻接信息,所述邻接信息至少包括所述矩形网格的属性信息及所述矩形网格的每条边上邻接的其他矩形网格的属性信息;
第一确定模块,用于确定本次待确定路径的起点及终点所属的栅格;
第二确定模块,用于根据所述起点及所述终点所属的栅格中存储的矩形网格的邻接信息确定所述起点在所述矩形网络中对应的矩形网格及所述终点在所述矩形网络中对应的矩形网格;
第三确定模块,用于根据所述起点对应的矩形网格及所述终点对应的矩形网格确定初始路径。
13.根据权利要求12所述的装置,其特征在于,所述第三确定模块,还用于当所述起点对应的矩形网格与所述终点对应的矩形网格为不同的矩形网格时,根据所述起点对应的矩形网格的邻接信息及所述终点对应的矩形网格的邻接信息确定初始路径。
14.根据权利要求12所述的装置,其特征在于,所述第三确定模块,还用于当所述起点对应的矩形网格与所述终点对应的矩形网格为同一个矩形网格时,直接将所述起点及所述终点进行连接,并将连接所述起点和所述终点的线段作为初始路径。
15.根据权利要求14所述的装置,其特征在于,所述第三确定模块,包括:
确定单元,用于根据所述起点对应的矩形网格的邻接信息确定所述起点对应的矩形网格的各个邻接边;
第一选取单元,用于在所述起点对应的矩形网格的各个邻接边中任意选取一条邻接边;
第一判断单元,用于判断选取的邻接边是否满足第三预设条件,所述第三预设条件至少包括所述邻接边的宽度大于目标物体的宽度;
第二选取单元,用于当选取的邻接边满足第三预设条件时,在所述邻接边上选取一个到所述起点的距离与到所述终点的距离之和最小的点,将被选取的点作为所述选取的邻接边对应的路点,将所述路点到所述起点的距离与所述路点到所述终端的距离之和作为所述选取的邻接边对应的路径距离;
存储单元,用于存储所述选取的邻接边对应的路点信息及路径距离;
第一处理单元,用于按照对所述选取的邻接边的处理方式对所述起点对应的矩形网格的其他邻接边进行处理;
第三选取单元,用于在所述起点对应的矩形网格的所有邻接边对应的路径距离中选取最小路径距离,将所述最小路径距离对应的邻接边对应的路点作为第一路径拐点;
第二判断单元,用于判断所述第一路径拐点所在的矩形网格与所述终点所在的矩形网格是否为同一个矩形网格;
第二处理单元,用于当所述第一路径拐点所在的矩形网格与所述终点所在的矩形网格不为同一个矩形网格时,按照处理所述起点的方式处理所述第一路径拐点,直至得到所在的矩形网格与所述终点所在的矩形网格为同一个矩形网格的路径拐点;
获取单元,用于获取得到的各个路径拐点;
连接单元,用于用线段将各个路径拐点连接起来,得到初始路径。
16.根据权利要求12至15中任一权利要求所述的装置,其特征在于,所述装置,还包括:
优化模块,用于对所述初始路径进行优化,得到优化后的路径。
17.根据权利要求16所述的装置,其特征在于,所述优化模块,包括:
选取单元,用于依次从所述初始路径中选取连续的任意三个路径拐点;
连接单元,用于将所述三个路径拐点中的第一个路径拐点及第三个路径拐点相连组成一条线段;
判断单元,用于判断由所述线段组成的路径能否直接到达;
删除单元,用于当由所述线段组成的路径能够直接到达时,将第二路径拐点删除,得到优化后的路径。
18.根据权利要求17所述的装置,其特征在于,所述判断单元,包括:
第一获取子单元,用于获取组成线段的两个路径拐点中任一路径拐点所在的矩形网格;
第二获取子单元,用于获取所述矩形网格邻接的矩形网格;
判断子单元,用于根据所述线段与所述矩形网格邻接的矩形网格的相交状态判断由所述线段组成的路径能否直接到达。
19.根据权利要求18所述的装置,其特征在于,所述判断子单元,用于当所述线段与所述矩形网格邻接的矩形网格都不相交时,判断由所述线段组成的路径不能直接到达;当所述线段与所述矩形网格邻接的矩形网格中至少有一个矩形网格相交,且交点在相交矩形网格的邻接边上时,判断所述线段是否与所述相交矩形网格的邻接矩形网格相交;当所述线段与所述相交矩形网格邻接的矩形网格都不相交时,判断由所述线段组成的路径不能直接到达;当所述线段与所述相交矩形网格邻接的矩形网格中至少有一个矩形网格相交,且交点在相交矩形网格邻接的矩形网格的邻接边上时,判断由所述线段组成的路径能够直接到达。
20.根据权利要求16所述的装置,其特征在于,所述装置,还包括:
第四确定模块,用于确定动态阻隔物的位置;
第五确定模块,用于确定所述起点到所述动态阻隔物之间的距离,并以所述起点为圆心、以所述起点到所述动态阻隔物之间的距离为半径作圆;
第一判断模块,用于判断所述优化后的路径与所述圆是否有交点;
第六确定模块,用于当所述优化后的路径与所述圆有交点时,采用栅格确定方式在所述起点及所述交点之间确定路径;
第二判断模块,用于根据确定结果判断本次确定的路径是否为正确的路径。
21.根据权利要求20述的装置,其特征在于,所述第二判断模块,包括:
第一判断单元,用于当采用栅格确定方式在所述起点及所述交点之间不能确定一条路径时,判断本次确定的路径为不正确的路径;
第二判断单元,用于当采用栅格确定方式在所述起点及所述交点之间能够确定一条路径时,判断本次确定的路径为正确的路径。
22.根据权利要求20所述的装置,其特征在于,所述装置,还包括:
第二获取模块,用于获取采用栅格确定方式在所述起点到所述交点之间确定的路径;
拼接模块,用于将采用栅格确定方式在所述起点到所述交点之间确定的路径与优化得到的路径中所述交点到所述终点之间的路径进行拼接,得到一条支持动态阻挡的路径。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410427153.4A CN104613976B (zh) | 2014-08-26 | 2014-08-26 | 确定路径的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410427153.4A CN104613976B (zh) | 2014-08-26 | 2014-08-26 | 确定路径的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104613976A CN104613976A (zh) | 2015-05-13 |
CN104613976B true CN104613976B (zh) | 2017-12-15 |
Family
ID=53148535
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410427153.4A Active CN104613976B (zh) | 2014-08-26 | 2014-08-26 | 确定路径的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104613976B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104994472A (zh) * | 2015-07-02 | 2015-10-21 | 苏州汉明科技有限公司 | 一种室内定位区域移动的防穿墙系统及其方法 |
CN106110656B (zh) * | 2016-07-07 | 2020-01-14 | 网易(杭州)网络有限公司 | 在游戏场景计算路线的方法和装置 |
CN106582023B (zh) * | 2016-12-01 | 2020-06-02 | 北京像素软件科技股份有限公司 | 一种游戏寻路方法和装置 |
CN106931945B (zh) * | 2017-03-10 | 2020-01-07 | 上海木木机器人技术有限公司 | 机器人导航方法和系统 |
CN109426681B (zh) * | 2017-08-25 | 2023-10-31 | 苏州织巢信息科技有限公司 | 一种线路自动化生成方法及装置 |
CN108021136A (zh) * | 2017-12-08 | 2018-05-11 | 北京奇虎科技有限公司 | 机器人沿行进路线行进的控制方法、装置及机器人 |
CN108229734A (zh) * | 2017-12-26 | 2018-06-29 | 北京像素软件科技股份有限公司 | 路径规划方法及装置 |
CN110211204B (zh) * | 2018-03-06 | 2022-07-26 | 腾讯科技(深圳)有限公司 | 一种确定道路任务包的方法、装置及存储介质 |
CN108507563B (zh) * | 2018-04-03 | 2020-05-19 | 北京知道创宇信息技术股份有限公司 | 巡航路径生成方法及装置 |
CN110940337B (zh) * | 2019-07-31 | 2022-03-11 | 中国第一汽车股份有限公司 | 一种路径识别方法、装置、设备和存储介质 |
CN110887503B (zh) * | 2019-12-06 | 2021-10-15 | 广州文远知行科技有限公司 | 移动轨迹模拟方法、装置、设备及介质 |
CN111672109B (zh) * | 2020-06-10 | 2021-12-03 | 腾讯科技(深圳)有限公司 | 一种游戏地图生成的方法、游戏测试的方法以及相关装置 |
CN112155477B (zh) * | 2020-09-28 | 2021-08-24 | 珠海市一微半导体有限公司 | 一种基于栅格地图的密集障碍物点标记方法 |
CN115601521B (zh) * | 2022-12-14 | 2023-03-10 | 腾讯科技(深圳)有限公司 | 一种路径处理方法、电子设备、存储介质及程序产品 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1996320A (zh) * | 2006-01-04 | 2007-07-11 | 腾讯科技(深圳)有限公司 | 一种最优路径的寻径方法 |
CN101241507A (zh) * | 2008-01-17 | 2008-08-13 | 腾讯科技(深圳)有限公司 | 一种地图寻路方法及系统 |
JP2008309665A (ja) * | 2007-06-15 | 2008-12-25 | Tokyo Univ Of Marine Science & Technology | 最短経路探索方法 |
CN101650189A (zh) * | 2008-08-14 | 2010-02-17 | 微星科技股份有限公司 | 行走路径规划方法与避开动态障碍物的导航方法 |
JP2011227807A (ja) * | 2010-04-22 | 2011-11-10 | Toyota Motor Corp | 経路探索システム、経路探索方法、及び移動体 |
CN103020443A (zh) * | 2012-12-08 | 2013-04-03 | 大连创达技术交易市场有限公司 | 一种地图训练的方法 |
CN103198234A (zh) * | 2013-04-25 | 2013-07-10 | 腾讯科技(深圳)有限公司 | 一种寻路方法和装置 |
-
2014
- 2014-08-26 CN CN201410427153.4A patent/CN104613976B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1996320A (zh) * | 2006-01-04 | 2007-07-11 | 腾讯科技(深圳)有限公司 | 一种最优路径的寻径方法 |
JP2008309665A (ja) * | 2007-06-15 | 2008-12-25 | Tokyo Univ Of Marine Science & Technology | 最短経路探索方法 |
CN101241507A (zh) * | 2008-01-17 | 2008-08-13 | 腾讯科技(深圳)有限公司 | 一种地图寻路方法及系统 |
CN101650189A (zh) * | 2008-08-14 | 2010-02-17 | 微星科技股份有限公司 | 行走路径规划方法与避开动态障碍物的导航方法 |
JP2011227807A (ja) * | 2010-04-22 | 2011-11-10 | Toyota Motor Corp | 経路探索システム、経路探索方法、及び移動体 |
CN103020443A (zh) * | 2012-12-08 | 2013-04-03 | 大连创达技术交易市场有限公司 | 一种地图训练的方法 |
CN103198234A (zh) * | 2013-04-25 | 2013-07-10 | 腾讯科技(深圳)有限公司 | 一种寻路方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104613976A (zh) | 2015-05-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104613976B (zh) | 确定路径的方法及装置 | |
CN104914862B (zh) | 基于目标方向约束的路径规划算法 | |
CN105765576B (zh) | 使用数据结构处理搜索查询 | |
CN106991617B (zh) | 一种基于信息传播的微博社交关系提取算法 | |
Cui et al. | Direction oriented pathfinding in video games | |
Cui et al. | Compromise-free pathfinding on a navigation mesh | |
CN107193942A (zh) | 一种有向图中所有连通子图的快速生成方法 | |
Geraerts et al. | Creating high-quality roadmaps for motion planning in virtual environments | |
Deng et al. | An efficient online direction-preserving compression approach for trajectory streaming data | |
CN109918549A (zh) | 一种基于seir传播模型的单一谣言源点溯源系统及方法 | |
Sturtevant et al. | Learning where you are going and from whence you came: h-and g-cost learning in real-time heuristic search | |
CN104268420A (zh) | 基于二叉堆节点排序的a星寻路方法及系统 | |
CN106295793A (zh) | 基于生物觅食行为的群机器人混合搜索方法 | |
CN108564604A (zh) | 基于平面约束和三角剖分的双目视觉立体匹配方法及装置 | |
CN105678844B (zh) | 一种基于地物散乱点逐点增加的轮廓构建方法 | |
CN114485611A (zh) | 基于北斗网格码的三维空间最短路径规划方法和装置 | |
CN109155846A (zh) | 一种场景的三维重建方法、装置、电子设备及存储介质 | |
CN106354633A (zh) | 基于算法插件的任务调度表生成方法 | |
Gharajeh | T*: a weighted double-heuristic search algorithm to find the shortest path | |
CN115779424A (zh) | 一种导航网格寻路方法、装置、设备及介质 | |
JP2007066125A (ja) | グラフ探索アルゴリズム及びそれを用いたグラフ探索装置 | |
CN104801044B (zh) | 生成轨迹线顶点序列的方法和装置 | |
CN109145160A (zh) | 概率图中选取关键边和优化关键边的方法及存储介质 | |
CN107404437A (zh) | 一种报文的路径确定方法及装置 | |
Zhang et al. | Pathfinding algorithm of 3D scene based on navigation mesh |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into 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: 20240111 Address after: 518057 Tencent Building, No. 1 High-tech Zone, Nanshan District, Shenzhen City, Guangdong Province, 35 floors Patentee after: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd. Patentee after: TENCENT CLOUD COMPUTING (BEIJING) Co.,Ltd. Address before: 2, 518000, East 403 room, SEG science and Technology Park, Zhenxing Road, Shenzhen, Guangdong, Futian District Patentee before: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd. |
|
TR01 | Transfer of patent right |