一种多边形标牌自动排列算法

文档序号:9709327阅读:440来源:国知局
一种多边形标牌自动排列算法
【技术领域】
[0001]本发明涉及一种多边形标牌自动排列算法。
【背景技术】
[0002]船舶交通管理系统中,目标标牌能够提示目标的关键信息,如提示目标的型号、国籍、航行信息等关键信息,是实时信息展示中必不可少的元素。然而,当目标较密集的集中在一块较小范围内时,与目标关联的标牌则会相互覆盖,严重影响标牌的阅读,信息展示效果急剧下降。
[0003]此时,系统用户往往通过人工拖动标牌的方式,将标牌一一拖开至能够辨认的位置;而当每次开启系统、出现新目标甚至目标发生移动时,都需要重复该过程,费时费力,严重降低了用户的工作效率。

【发明内容】

[0004]发明目的:本发明的目的是提供一种不需要人工干预的多边形标牌自动排列算法。
[0005]技术方案:为达到此目的,本发明采用以下技术方案:
[0006]本发明所述的多边形标牌自动排列算法,包括以下的步骤:
[0007]S1:从需要添加到海图中的标牌队列里取出一个新加入标牌,添加到海图中;
[0008]S2:判断所述新加入标牌是否与海图中已有的标牌重叠:如果不重叠,则进入步骤S5 ;如果重叠,则建立重叠标牌队列,将各个标牌按照重叠面积由大至小加入重叠标牌队列,然后取出位于队头的标牌,找出其各个安置位中与所述新加入标牌重叠面积最大的安置位,将所述新加入标牌放入该安置位中;
[0009]S3:继续判断所述新加入标牌是否与其他标牌重叠:如果不重叠,则进入步骤S5;如果重叠,则将所述新加入标牌放入其他安置位中;
[0010]S4:当所述新加入标牌放入其他安置位中后,继续判断所述新加入标牌是否与其他标牌重叠:如果不重叠,则进入步骤S5;如果重叠,且重叠标牌队列为空,则将已加入到海图中的标牌按照加入顺序的由新到旧加入重叠标牌队列,然后取出位于队头的标牌,找出其各个安置位中与所述新加入标牌重叠面积最大的安置位,将所述新加入标牌放入该安置位中,接着返回步骤S3;如果重叠,且重叠标牌队列不为空,则取出位于队头的标牌,找出其各个安置位中与所述新加入标牌重叠面积最大的安置位,将所述新加入标牌放入该安置位中,接着返回步骤S3;
[0011 ] S5:计算所述新加入标牌的安置位并保存;
[0012]S6:判断所有标牌是否都已加入到海图中:如果是,则进入步骤S7;否则,返回步骤S1;
[0013]S7:结束。
[0014]进一步,所述步骤S3中的其他安置位按照以下方法进行选择:
[0015]判断所述步骤S3中的该安置位对面的安置位是否可用:如果可用,则将所述新加入标牌放入对面的安置位中;如果不可用,则按顺时针方向选择可用的安置位,并将所述新加入标牌放入到所选安置位中。
[0016]进一步,所述新加入标牌的形状为四边形或者六边形。
[0017]有益效果:与现有技术相比,本发明具有以下的有益效果:
[0018](1)本发明完全利用计算机进行标牌位置的排布,不需要任何人工干预,节省了用户的时间和精力,提高了标牌排列的效率,方便操作;
[0019](2)本发明是一种局部算法,不需要依赖系统的全局参数,如屏幕分辨率、地图比例尺等;
[0020](3)本发明使用“安置位”这种数据结构保存可能的排列方式,减小计算量。
【附图说明】
[0021]图1是本发明的流程图;
[0022]图2是本发明的六边形标牌及其安置位的示意图;
[0023]图3是本发明的四边形标牌及其安置位的示意图;
[0024]图4是本发明的实施例的算法运行过程示意图。
【具体实施方式】
[0025]下面结合附图,对本发明的技术方案做进一步的阐述。
[0026]本发明的多边形标牌自动排列算法,如图1所示,包括以下的步骤:
[0027]S1:从需要添加到海图中的标牌队列里取出一个新加入标牌添加到海图中,新加入标牌的形状为四边形或者六边形;
[0028]S2:判断所述新加入标牌是否与海图中已有的标牌重叠:如果不重叠,则进入步骤S5 ;如果重叠,则建立重叠标牌队列,将各个标牌按照重叠面积由大至小加入重叠标牌队列,然后取出位于队头的标牌,找出其各个安置位中与所述新加入标牌重叠面积最大的安置位,将所述新加入标牌放入该安置位中;
[0029]S3:继续判断所述新加入标牌是否与其他标牌重叠:如果不重叠,则进入步骤S5;如果重叠,则将所述新加入标牌放入其他安置位中;
[0030]S4:当所述新加入标牌放入其他安置位中后,继续判断所述新加入标牌是否与其他标牌重叠:如果不重叠,则进入步骤S5;如果重叠,且重叠标牌队列为空,则将已加入到海图中的标牌按照加入顺序的由新到旧加入重叠标牌队列,然后取出位于队头的标牌,找出其各个安置位中与所述新加入标牌重叠面积最大的安置位,将所述新加入标牌放入该安置位中,接着返回步骤S3;如果重叠,且重叠标牌队列不为空,则取出位于队头的标牌,找出其各个安置位中与所述新加入标牌重叠面积最大的安置位,将所述新加入标牌放入该安置位中,接着返回步骤S3;
[0031 ] S5:计算所述新加入标牌的安置位并保存;
[0032]S6:判断所有标牌是否都已加入到海图中:如果是,则进入步骤S7;否则,返回步骤S1;
[0033]S7:结束。
[0034]其中,安置位是位于标牌周围、与标牌相邻且不重合、形状与标牌一样的区域。六边形标牌具有6个安置位,如图2所示。四边形标牌具有8个安置位,如图3所示。
[0035]步骤S3中的其他安置位按照以下方法进行选择:
[0036]判断所述步骤S3中的该安置位对面的安置位是否可用:如果可用,则将所述新加入标牌放入对面的安置位中;如果不可用,则按顺时针方向选择可用的安置位,并将所述新加入标牌放入到所选安置位中。
[0037]下面以一个具体实施例为例,介绍一下本发明的算法:
[0038]当前海图中已有三个标牌,即标牌01、标牌02和标牌03。现在,需要加入一个新的标牌,如图4(a)所示,新加入标牌的初始位置与标牌01、标牌02均有重叠,因此,将标牌01与标牌02加入重叠标牌队列。并且,根据重叠面积可看出标牌02与新加入标牌的重叠面积最大,因此,将标牌02作为重叠标牌队列的队头,之后是标牌01。由图4(b)可知,标牌02有6个安置位,且安置位1与新加入标牌的重叠面积最大,因此,将新加入标牌放入安置位1中。由图4(c)可知,此时的新加入标牌与标牌01、标牌03均有重叠,因此,安置位1为不可用安置位,需要对新加入标牌的位置进行重新调整。如图4(d)所示,将新加入标牌放入安置位1对面的安置位4中。由图4(e)可知,此时的新加入标牌与其他三个标牌均不重叠,结束运算。
【主权项】
1.一种多边形标牌自动排列算法,其特征在于:包括以下的步骤: S1:从需要添加到海图中的标牌队列里取出一个新加入标牌,添加到海图中; S2:判断所述新加入标牌是否与海图中已有的标牌重叠:如果不重叠,则进入步骤S5;如果重叠,则建立重叠标牌队列,将各个标牌按照重叠面积由大至小加入重叠标牌队列,然后取出位于队头的标牌,找出其各个安置位中与所述新加入标牌重叠面积最大的安置位,将所述新加入标牌放入该安置位中; S3:继续判断所述新加入标牌是否与其他标牌重叠:如果不重叠,则进入步骤S5;如果重叠,则将所述新加入标牌放入其他安置位中; S4:当所述新加入标牌放入其他安置位中后,继续判断所述新加入标牌是否与其他标牌重叠:如果不重叠,则进入步骤S5;如果重叠,且重叠标牌队列为空,则将已加入到海图中的标牌按照加入顺序的由新到旧加入重叠标牌队列,然后取出位于队头的标牌,找出其各个安置位中与所述新加入标牌重叠面积最大的安置位,将所述新加入标牌放入该安置位中,接着返回步骤S3;如果重叠,且重叠标牌队列不为空,则取出位于队头的标牌,找出其各个安置位中与所述新加入标牌重叠面积最大的安置位,将所述新加入标牌放入该安置位中,接着返回步骤S3; S5:计算所述新加入标牌的安置位并保存; S6:判断所有标牌是否都已加入到海图中:如果是,则进入步骤S7;否则,返回步骤S1; S7:结束。2.根据权利要求1所述的多边形标牌自动排列算法,其特征在于:所述步骤S3中的其他安置位按照以下方法进行选择: 判断所述步骤S3中的该安置位对面的安置位是否可用:如果可用,则将所述新加入标牌放入对面的安置位中;如果不可用,则按顺时针方向选择可用的安置位,并将所述新加入标牌放入到所选安置位中。3.根据权利要求1所述的多边形标牌自动排列算法,其特征在于:所述新加入标牌的形状为四边形或者六边形。
【专利摘要】本发明公开了一种多边形标牌的自动排列算法,通过对新加入标牌与已有标牌位置关系的计算和判断,将新加入标牌自动排布在已有标牌的周围。如此标牌间将不会相互覆盖,解决了标牌重叠影响信息展示的问题。本发明完全利用计算机进行标牌位置的排布,不需要任何人工干预,节省了用户的时间和精力,提高了标牌排列的效率,方便操作;本发明是一种局部算法,不需要依赖系统的全局参数,如屏幕分辨率、地图比例尺等;本发明使用“安置位”这种数据结构保存可能的排列方式,减小计算量。
【IPC分类】G08G3/00
【公开号】CN105469643
【申请号】CN201510831122
【发明人】王盛朋, 韩晓宁, 隋远, 郭华, 李作君, 丁康, 薛雯
【申请人】中国电子科技集团公司第二十八研究所
【公开日】2016年4月6日
【申请日】2015年11月25日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1