一种基于拓扑不变性的圈地算法制造技术

技术编号:19264440 阅读:28 留言:0更新日期:2018-10-27 02:54
本发明专利技术涉及一种基于拓扑不变性的圈地算法,本发明专利技术通过将平面结构转化成为一个不变的拓扑结构,利用圈地算法,可以精确的计算出所包围元素的详细数据,解决了在平面内经过一段时间自由运动回到领地后,所圈到领地的详细数据(包括面积和坐标等)计算不准确的问题。

【技术实现步骤摘要】
一种基于拓扑不变性的圈地算法
本专利技术涉及计算机图形处理
,具体的说是一种基于拓扑不变性的圈地算法。
技术介绍
在圈地游戏中(二维平面),从一个点出发随意运动,当回到出发点后,需要把运动路径和领地包围的区域,设置为自己领地并求出领地的面积,现有技术中,在二维平面内构建一个直角坐标系,在坐标系算出领地和路径的具体的坐标,再把满足条件(大于某个值、小于某个值)的坐标点设置成自己的领地;通过路径点的坐标,自动量取,计算方程,然后用微积分计算出面积。但会存在以下的缺陷:1、在直角坐标系中,运动的路径是随机的,根据约束坐标满足相应的条件,无法满足极端特殊的情况,很难通过统一的坐标约束算法来算出领地,如图1所示,O1为起点,在规则的路径下,坐标系中随意一个点,当同时满足x>minX、x<maxX、y>minY、y<maxY(minX、maxX、minY、maxY四个点为当前坐标(x,y)下的路径的最大最小值)四个条件,就可以得到该点在路径范围内,也就是说这个点将是自己的领地,但这种算法无法满足如图2所示的路径,O2为起点,(x,y)满足条件x>minX、x<maxY、y>minY、y<maxY,但点(x,y)不属于领地;2、通过微积分计算面积,首先需要计算出路径的公式,因为运动的路径完全随机,求导出来的路径的公式也只是一个近似值,这样求得的面积就会存在误差,图1与图2的路径都是随机的,无法求得精确的路径公式,所以根据微积分也无法求得准确的面积。故针对上述技术中存在的缺点及局限性,本专利技术提出了一种提高准确性的基于拓扑不变性的圈地算法。
技术实现思路
为了解决上述现有技术中存在的问题,本专利技术提供一种提高准确性的基于拓扑不变性的圈地算法。本专利技术解决其技术问题所采用的技术方案是:一种基于拓扑不变性的圈地算法,包括以下步骤:步骤一、将工作区域按网格划分,所述网格由多个六边形按顺序拼接而成,得到所述工作区域拓扑不变的结构,并将每一个网格定义为一个map结构体;步骤二、对步骤一中的工作区域内一个闭合路径,以一个网格为单位,生成一个最小的包围盒;步骤三、对步骤二中的闭合路径作出如下定义,闭合路径所占区域为占领地,其余区域为空地,记占领地的状态为1,空地的状态为0,将状态为0的网格放入集合list中;步骤四、对步骤三中得到的集合list中的点进行循环遍历,若该点周围的点存在于集合list中,则从集合list中移除,添加到栈stack中,得到新的集合list,即为闭合路径的圈地区域的点;步骤五、对步骤四中得到的新的集合list中的点的状态设置为1,得到圈地区域的详细数据。进一步地,所述步骤一中的map结构体的属性包括拓扑关系对应的坐标(x,y)、状态以及实际坐标(worldX,worldY)。进一步地,所述步骤三中得到集合list的具体过程为,遍历最小包围盒内所有的map结构体,若为占领地,则记状态为1,若为空地,则记状态为0,并把这个map结构放入到集合list中。进一步地,所述步骤四中集合list中的点进行循环遍历具体过程为:S1、选取包围盒中左下角的点加入到栈Stack中,并记该点为(xmin,ymin),进入步骤S2中执行;S2、判断Stack是否为空,若为空,则进入步骤S4中执行,若不为空,则进入步骤S3中执行;S3、将Stack中第一个元素出栈,若该元素在list中,则将该元素从list中移除,并将该元素的上、下、左上、左下、右上、右下的点全部加入到Stack中,进入步骤S2中执行,若该元素不在list中,则进入步骤S4中执行;S4、终止。更进一步地,所述左下角的点为圈地领域外且不属于闭合路径所占区域的点。进一步地,所述步骤五中圈地区域的详细数据包括圈地的面积和坐标。进一步地,所述每一个网格的边长的大小决定了计算的精确度,边长的取值越小,最后的结果越精确。本专利技术的有益效果是:本专利技术通过将平面结构转化成为一个不变的拓扑结构,在直角坐标系中构建一个由正六边形平铺构成的一个拓扑结构,正六边形的边长足够小,一个正六边形就是领地和路径的一个单位,只需计算出路径所包围的正六边形元素和个数就可以正确的得到自己的领地和面积,利用圈地算法,可以精确的计算出所包围元素的详细数据,解决了在平面内经过一段时间自由运动回到领地后,所圈到领地的详细数据(包括面积和坐标等)计算不准确的问题。附图说明下面结合附图和实施例对本专利技术进一步说明。图1是本专利技术
技术介绍
中路径规则的示意图;图2是本专利技术
技术介绍
中路径不规则的示意图;图3是本专利技术一个实施例中将平面转化为拓扑结构的示意图;图4是图3中圈地路径示意图;图5是图4生成了最小包围盒的示意图;图6是本专利技术的算法流程图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。本专利技术所述的一种基于拓扑不变性的圈地算法,包括以下步骤:步骤一、将工作区域按网格划分,所述网格由多个六边形按顺序拼接而成,得到所述工作区域拓扑不变的结构,并将每一个网格定义为一个map结构体;步骤二、对步骤一中的工作区域内一个闭合路径,以一个网格为单位,生成一个最小的包围盒;步骤三、对步骤二中的闭合路径作出如下定义,闭合路径所占区域为占领地,其余区域为空地,记占领地的状态为1,空地的状态为0,将状态为0的网格放入集合list中;步骤四、对步骤三中得到的集合list中的点进行循环遍历,若该点周围的点存在于集合list中,则从集合list中移除,添加到栈stack中,得到新的集合list,即为闭合路径的圈地区域的点;步骤五、对步骤四中得到的新的集合list中的点的状态设置为1,得到圈地区域的详细数据。具体实施时,所述步骤一中的map结构体的属性包括拓扑关系对应的坐标(x,y)、状态以及实际坐标(worldX,worldY)。具体实施时,所述步骤三中得到集合list的具体过程为,遍历最小包围盒内所有的map结构体,若为占领地,则记状态为1,若为空地,则记状态为0,并把这个map结构放入到集合list中。具体实施时,所述步骤四中集合list中的点进行循环遍历具体过程为:S1、选取包围盒中左下角的点加入到栈Stack中,并记该点为(xmin,ymin),进入步骤S2中执行;S2、判断Stack是否为空,若为空,则进入步骤S4中执行,若不为空,则进入步骤S3中执行;S3、将Stack中第一个元素出栈,若该元素在list中,则将该元素从list中移除,并将该元素的上、下、左上、左下、右上、右下的点全部加入到Stack中,进入步骤S2中执行,若该元素不在list中,则进入步骤S4中执行;S4、终止。具体实施时,所述左下角的点为圈地领域外且不属于闭合路径所占区域的点。具体实施时,所述步骤五中圈地区域的详细数据包括圈地的面积和坐标。具体实施时,所述每一个网格的边长的大小决定了计算的精确度,边长的取值越小,最后的结果越精确。本专利技术的原理为:在圈地游戏中,从一个点(领地)随意出发随意运动,当回到出发点后,需要把运动路本文档来自技高网
...

【技术保护点】
1.一种基于拓扑不变性的圈地算法,其特征在于,包括以下步骤:步骤一、将工作区域按网格划分,所述网格由多个六边形按顺序拼接而成,得到所述工作区域拓扑不变的结构,并将每一个网格定义为一个map结构体;步骤二、对步骤一中的工作区域内一个闭合路径,以一个网格为单位,生成一个最小的包围盒;步骤三、对步骤二中的闭合路径作出如下定义,闭合路径所占区域为占领地,其余区域为空地,记占领地的状态为1,空地的状态为0,将状态为0的网格放入集合list中;步骤四、对步骤三中得到的集合list中的点进行循环遍历,若该点周围的点存在于集合list中,则从集合list中移除,添加到栈stack中,得到新的集合list,即为闭合路径的圈地区域的点;步骤五、对步骤四中得到的新的集合list中的点的状态设置为1,得到圈地区域的详细数据。

【技术特征摘要】
1.一种基于拓扑不变性的圈地算法,其特征在于,包括以下步骤:步骤一、将工作区域按网格划分,所述网格由多个六边形按顺序拼接而成,得到所述工作区域拓扑不变的结构,并将每一个网格定义为一个map结构体;步骤二、对步骤一中的工作区域内一个闭合路径,以一个网格为单位,生成一个最小的包围盒;步骤三、对步骤二中的闭合路径作出如下定义,闭合路径所占区域为占领地,其余区域为空地,记占领地的状态为1,空地的状态为0,将状态为0的网格放入集合list中;步骤四、对步骤三中得到的集合list中的点进行循环遍历,若该点周围的点存在于集合list中,则从集合list中移除,添加到栈stack中,得到新的集合list,即为闭合路径的圈地区域的点;步骤五、对步骤四中得到的新的集合list中的点的状态设置为1,得到圈地区域的详细数据。2.根据权利要求1所述的一种基于拓扑不变性的圈地算法,其特征在于:所述步骤一中的map结构体的属性包括拓扑关系对应的坐标(x,y)、状态以及实际坐标(worldX,worldY)。3.根据权利要求1所述的一种基于拓扑不变性的圈地算法,其特征在于:所述步骤三中得到集合list的具体过程为,遍历最小包围盒内所有的map结构...

【专利技术属性】
技术研发人员:贾聪姜福泉张志超
申请(专利权)人:武汉山骁科技有限公司
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1