确定路径的方法及装置的制造方法_4

文档序号:8285938阅读:来源:国知局
终点对应的矩形网格确定初始路径之后,还将对初始路径进行优化,得到优化后的路径。
[0155]具体地,对初始路径进行优化的方式,包括但不限于:
[0156]首先,依次从初始路径中选取连续的任意三个路径拐点,将三个路径拐点中的第一个路径拐点及第三个路径拐点相连组成一条线段;
[0157]其次,判断由线段组成的路径能否直接到达,若由线段组成的路径能够直接到达,则将第二路径拐点删除,得到优化后的路径。
[0158]具体地,判断由线段组成的路径能否直接到达,包括但不限于:
[0159]获取组成线段的两个路径拐点中任一路径拐点所在的矩形网格,并获取矩形网格邻接的矩形网格;
[0160]根据线段与矩形网格邻接的矩形网格的相交状态判断由线段组成的路径能否直接到达。
[0161]具体地,根据线段与矩形网格邻接的矩形网格的相交状态判断由线段组成的路径能否直接到达,包括但不限于:
[0162]若线段与矩形网格邻接的矩形网格都不相交,则判断由线段组成的路径不能直接到达;
[0163]若线段与矩形网格邻接的矩形网格中至少有一个矩形网格相交,且交点在相交矩形网格的邻接边上,则判断线段是否与相交矩形网格的邻接矩形网格相交;
[0164]若线段与相交矩形网格邻接的矩形网格都不相交,则判断由线段组成的路径不能直接到达;
[0165]若线段与相交矩形网格邻接的矩形网格中至少有一个矩形网格相交,且交点在相交矩形网格邻接的矩形网格的邻接边上,则判断由线段组成的路径能够直接到达。
[0166]对于上述过程,为了便于理解,下面将以一个具体的例子进行详细地解释解释说明。
[0167]如图8所示,A点为本次确定的初始路径的起点,F点为本次确定的初始路径的终点,B、C、D、E四点为路径拐点。在对初始路径进行优化的过程中,以选取的三个点为A、B、C,将点A与点C相连组成一条线段A C,且选取A点所在的矩形网格I为例。由图8可知矩形起点A所在的矩形网格I的矩形网格为矩形网格2和矩形网格3,由于线段AC与矩形网格3相交,矩形网格2不相交,因此,需要判断线段AC与矩形网格3邻接的矩形网格的相交状态,进而判断由线段AC组成的路径不能直接到达。由图8可知线段AC与矩形网格3邻接的矩形网格10相交,且交点在矩形网格10的邻接边上,因此,判断由线段AC组成的路径能够直接到达。
[0168]至此,通过上述操作可确定一条从起点到终点的路径,该路径为离线状态下起点到终点的最优路径。然而当用户在线使用游戏类应用时,用户在线的操作可能会改变原有的场景地图,导致原有场景地图中的可行走区域变为不可行走区域,此时需要对离线状态下的优化路径进行验证。具体地,对离线状态下的优化路径进行验证,包括但限于如下方式:
[0169]首先,确定动态阻隔物的位置,并确定起点到动态阻隔物之间的距离;
[0170]其中,动态阻隔物为在线状态下因用户的操作所生成的阻隔物,如,射击类游戏中用户丢失的背包、手雷等物体,本实施例不对动态阻隔物的作具体的限定。图9为游戏类应用的场景地图,其中,图9中的圆圈即为动态阻隔物。
[0171]其次,以起点为圆心、以起点到动态阻隔物之间的距离为半径作圆;
[0172]再次,判断优化后的路径与圆是否有交点,若优化后的路径与圆有交点,则采用栅格确定方式在起点及交点之间确定路径,并根据确定结果判断本次确定的路径是否为正确的路径。
[0173]具体地,根据确定结果判断本次确定的路径是否为正确的路径,包括但不限于如下两种情况:
[0174]第一种情况:若采用栅格确定方式在起点及交点之间不能确定一条路径,则判断本次确定的路径为不正确的路径;
[0175]其中,栅格确定方式为游戏类应用中路径确定的最原始的方式,在采用栅格确定方式确定路径时需要从起点所属的栅格开始逐个栅格进行确定。若采用栅格确定方式在起点及交点之间不能确定一条路径,说明起点到交点之间不可行走区域且无法可跨越,则判断本次确定的路径为不正确的路径。
[0176]第二种情况:若采用栅格确定方式在起点及交点之间能够确定一条路径,则判断本次确定的路径为正确的路径。
[0177]若采用栅格确定方式在起点及交点之间不能确定一条路径,说明起点到交点之间的区域为可行走区域,则判断本次确定的路径为不正确的路径。
[0178]进一步地,作为一种可选实施例,在判断确定的路径为正确的路径之后,本实施例提供的方法还包括:
[0179]获取采用栅格确定方式在起点到交点之间确定的路径,将采用栅格确定方式在起点到交点之间确定的路径与优化得到的路径中交点到终点之间的路径进行拼接,得到一条支持动态阻挡的路径。如图10所示,A为路径起点,B优化后的路径与以起点为圆心、以起点到动态阻隔物之间的距离为半径的圆的交点,C为路径终点。若通过栅格确定的方式在起点A到交点B之间确定的路径为AC,则可将采用栅格确定方式在起点到交点之间确定的路径AC与优化得到的路径中交点到终点之间的路径BC进行拼接,从而得到一条支持动态阻挡的路径。
[0180]本发明实施例提供的方法,通过获取预先生成的矩形网络,并确定本次待确定路径的起点及终点所属的栅格之后,根据起点及终点所属的栅格中存储的矩形网格的邻接信息确定起点在矩形网络中对应的矩形网格及终点在矩形网络中对应的矩形网格,进而根据起点对应的矩形网格及终点对应的矩形网格确定初始路径。由于矩形网格的邻接边较多且矩形网格与栅格兼容,因而提高了确定路径的速度及精度。
[0181]参见图11,本发明实施例提供了一种确定路径的装置,该装置用于执行上述图1或图2所示的实施例提供的确定路径的方法,该装置包括:
[0182]第一获取模块1101,用于获取预先生成的矩形网络,矩形网络由第一预设数量个矩形网格邻接构成,每个矩形网格由正方形的栅格组成,且组成每个矩形网格的所有正方形的栅格中均存储着矩形网格的邻接信息,邻接信息至少包括矩形网格的属性信息及矩形网格的每条边上邻接的其他矩形网格的属性信息;
[0183]第一确定模块1102,用于确定本次待确定路径的起点及终点所属的栅格;
[0184]第二确定模块1103,用于根据起点及终点所属的栅格中存储的矩形网格的邻接信息确定起点在矩形网络中对应的矩形网格及终点在矩形网络中对应的矩形网格;
[0185]第三确定模块1104,用于根据起点对应的矩形网格及终点对应的矩形网格确定初始路径。
[0186]作为一种可选的实施例,第一获取模块1101,包括:
[0187]第一获取单元,用于获取场景地图,场景地图由第二预设数量个正方形的栅格组成;
[0188]第一选取单元,用于在场景地图的所有栅格中随机选取一个栅格;
[0189]第一扩张单元,用于采用递归方式以选取的栅格为起点在场景地图上进行扩张,得到一个以选取的栅格为起点且面积最大的矩形网格,将面积最大的矩形网格中包含的栅格作为处理过的栅格;
[0190]第二选取单元,用于依次在场景地图的所有未处理的栅格中随机选取一个未处理的栅格;
[0191]第二扩张单元,用于采用递归方式以选取的栅格为起点在场景地图上向其他未处理的栅格所在的区域进行扩张,得到一个以选取的栅格为起点且面积最大的矩形网格,直至场景地图的所有栅格均被处理;
[0192]第二获取单元,用于获取得到的所有矩形网格;
[0193]生成单元,用于根据得到的所有矩形网格生成矩形网络。
[0194]作为一种可选的实施例,第一扩张单元,包括:
[0195]第一扩张子单元,用于以选取的栅格为起点在场景地图上进行扩张,得到满足第一预设条件的第一矩形;
[0196]第二扩张子单元,用于以第一矩形中除起点所在栅格之外的每个栅格为起点分别进行扩张;
[0197]合并子单元,用于将扩张得到的各个矩形与第一矩形进行合并,得到满足第一预设条件的第二矩形;
[0198]获取子单元,用于获取第一矩形的面积及第二矩形的面积;
[0199]比较子单元,用于将第二矩形的面积与第一矩形的面积进行比较;
[0200]判断子单元,用于当第二矩形的面积大于第一矩形的面积时,判断第二矩形是否满足第二预设条件;
[0201]处理子单元,用于当第二矩形不满足第二预设条件时,按照对第一矩形的处理方式处理第二矩形,依次循环,直至获取到满足第二预设条件的矩形,并将满足第二预设条件的矩形作为以选取的栅格为起点且面积最大的矩形网格。
[0202]作为一种可选的实施例,第三确定模块1104,用于当起点对应的矩形网格与终点对应的矩形网格为同一个矩形网格时,直接将起点及终点进行连接,并将连接起点和终点的线段作为初始路径。
[0203]作为一种可选的实施例,第三确定模块1104,用于当起点对应的矩形网格与终点对应的矩形网格为不同的矩形网格时,根据起点对应的矩形网格的邻接信息及终点对应的矩形网格的邻接信息确定初始路径。
[0204]作为一种可选的实施例,第三确定模块1104,包括:
[0205]确定单元,用于根据起点对应的矩形网格的邻接信息确定起点对应的矩形网格的各个邻接边;
[0206]第一选取单元,用于在起点对应的矩形网格的各个邻接边中任意选取一条邻接边;
[0207]第一判断单元,用于判断选取的邻接边是否满足第三预设条件;
[0208]第二选取单元,用于当选取的邻接边满足第三预设条件时,在邻接边上选取一个到起点的距离与到终点的距离之和最小的点,将被选取的点作为选取的邻接边对应的路点,将路点到起点的距离与路点到终端的距离之和作为选取的邻接边对应的路径距离;
[0209]存储单元,用于存储选取的邻接边对应的路点信息及路径距离;
[0210]第一处理单元,用于按照对选取的邻接边的处理方式对起点对应的矩形网格的其他邻接边进行处理;
[0211]第三选取单元,用于在起点对应的矩形网格的所有邻接边对应的路径距离中选取最小路径距离,将最小路径距离对应的邻接边对应的路点作为第一路径拐点;
[0212]第二判断单元,用于判断第一路径拐点所在的矩形网格与终点所在的矩形网格是否为同一个矩形网格;
[0213]第二处理单元,用于当第一路径拐点所在的矩形网格与终点所在的矩形网格不为同一个矩形网格时,按照处理起点的方式处理第一路径拐点,直至得到所在的矩形网格与终点所在的矩形网格为同一个矩形网格的路径拐点;
[0214]获取单元,用于获取得到的各个路径拐点;
[0215]连接单元,用于用线段将各个路径拐点连接起来,得到初始路径。
[0216]作为一种可选的实施例,该装置,还包括:
[0217]优化模块,用于对初始路径进行优化,得到优化后的路径。
[0218]作为一种可选的实施例,优化模块,包括:
[0219]选取单元,用于依次从初始路径中选取连续的任意三个路径拐点;
[0220]连接单元,用于将三个路径拐点中的第一个路径拐点及第三个路径拐点相连组成一条线段;
[0221]判断单元,用于判断由线段组成的路径能否直接到达;
[0222]删除单元,用于当由线段组成的路径能够直接到达时,将第二路径拐点删除,得到优化后的路径。
[0223]作为一种可选的实施例,判断单元,包括:
[0224]第一获取子单元,用于获取组成线段的两个路径拐点中任一路径拐点所在的矩形网格;
[0225]第二获取子单元,用于获取矩形网格邻接的矩形网格;
[0226]判断子单元,用于根据线段与矩形网格邻接的矩形网格的相交状态判断由线段组成的路径能否直接到达。
[0227]作为一种可选的实施例,判断子单元,用于当线段与矩形网格邻接的矩形网格都不相交时,判断由线段组成的路径不能直接到达;当线段与矩形网格邻接的矩形网格中至少有一个矩形网格相交,且交点在相交矩形网格的邻接边上时,判断线段是否与相交矩形网格的邻接矩形网格相交;当线段与相交矩形网格邻接的矩形网格都不相交时,判断由线段组成的路径不能直接到达;当线段与相交矩形网格邻接的矩形网格中至少有一个矩形网格相交,且交点在相交矩形网格邻接的矩形网格的邻接边上时,判断由线段组成的路径能够直接到达。
[0228]作为一种可选的实施例,该装置,还包括:
[0229]第四确定模块,用于确定动态阻隔物的位置;
[0230]第五确定模块,用于确定起点到动态阻隔物之间的距离,并以起点为圆心、以起点到动态阻隔物之间的距离为半径作圆;
[0231]第一判断模块,用于判断优化后的路径与圆是否有交点;
[0232]第六确定模块,用于当优化后的路径与圆有交点时,采用栅格确定方式在起点及交点之间确定路径;
[0233]第二判断模块,用于根据确定结果判断本次确定的路径是否为正确的路径。
[0234]作为一种可选的实施例,第二判断模块,包括:
[0235]第一判断单元,用于当采用栅格确定方式在起点及交点之间不能确定一条路径时,判断本次确定的路径为不正确的路径;
[0236]第二判断单
当前第4页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1