发明名称 一种基于坐标跳跃的图形排列组合的方法
摘要 本发明公开了一种基于坐标跳跃的图形排列组合的方法,通过坐标跳跃检测对全部矩形进行判断是否满足被排列的资格,通过穿插、以及递归回溯的操作对全部矩形进行比较,对空白的区域进行预编辑排列,如果不能存放则会尝试自动编辑区域内已存放矩形的格局,从而进行自动化的对全部矩形进行最小化原则的排列组合,合理的利用有限的展示空间,避免大面积空白区域的出现。本发明采用合理的填充方式,将需要展示的图表最小化的布置在指定区域内,从而减小了冗余,使展现内容更加直观合理,使用方便。
申请公布号 CN103903290A 申请公布日期 2014.07.02
申请号 CN201410141687.0 申请日期 2014.04.10
申请人 国家电网公司;江苏省电力公司;江苏电力信息技术有限公司 发明人 胡扬波;陈晓东;林勇
分类号 G06T11/20(2006.01)I;G06F9/44(2006.01)I 主分类号 G06T11/20(2006.01)I
代理机构 南京汇盛专利商标事务所(普通合伙) 32238 代理人 陈扬
主权项 一种基于坐标跳跃的图形排列组合的方法,其特征在于该方法包括以下步骤:1)准备背景画布、全部矩形属性初始化一个固定大小的背景画布,将每个矩形的起点Y轴坐标都赋值为0,起点X轴坐标表示矩形所展现内容的开始时间,为固定值;再准备好每个要画的矩形属性,将此矩形左上角起始点的X轴坐标、Y轴坐标、矩形的宽度、矩形的高度、展示界面中鼠标停留在该矩形上显示的业务信息封装起来,然后将每个矩形以高度值大小降序排列,逐个加入到一个矩形对象的列表中;2)尝试绘制矩形,在画布内找出满足条件的起点坐标在步骤1)的矩形对象列表中取出一个矩形,得到其起始点的X轴坐标、Y轴坐标,再找到该矩形的上边缘线与前一个的矩形的下边缘线相交线的右起始点的Y轴坐标,由于比较相交线的时候,X轴坐标固定,所以只要求出新的起点Y轴坐标;然后判断矩形的新X、Y轴坐标,宽与高,是否超出初始画布的边界,并且判断该矩形内所有坐标点是否全部没有被占用;如果上述条件全部满足,则将该矩形对象起始点的X、Y轴坐标值添加到该矩形对象的属性“满足点”的集合中;如果不满足,则寻找下一个满足条件的起点坐标,X轴值固定,Y轴值加1循环,然后判断矩形的新X、Y轴坐标,宽与高,是否超出初始画布的边界,并且判断该矩形内所有坐标点是否全部没有被占用,直到在画布内找到符合条件的起点Y轴坐标;3)坐标跳跃检测,检查全部可用的坐标点,放入坐标点的集合在背景画布内进行坐标点跳跃检测,由于矩形起始点坐标已经加入到坐标点的集合中,所以只要将其他可用的坐标点都加入此集合中,以供步骤4)的矩形逐级回溯检测使用;初始化当前矩形的Y轴坐标加上该矩形高度值作为新的Y轴坐标,然后判断以原X轴,新Y轴,矩形宽度,高度为1的小矩形是否超出初始画布的边界,并且判断该小矩形内所有坐标点是否全部没有被占用,如果满足条件,则将原Y轴坐标加1作为矩形新的Y轴起始点坐标,矩形的新Y轴结束点坐标变成原Y轴坐标加1再加上矩形的高度,然后将起始点,原X轴,原Y轴坐标加1加入到该矩形对象的属性“满足点”的集合中,如果不满足,则起始点Y轴坐标更改为原矩形的结束点的Y轴坐标,再寻找下一个满足条件的坐标点,X轴值固定,Y轴值加1循环,然后判断矩形的新X、Y轴坐标,宽与高,是否超出初始画布的边界,并且判断该矩形内所有坐标点是否全部没有被占用,然后重复上述操作,将其他满足条件的坐标点全部添加到“满足点”的集合中;4)逐级回溯检测绘制矩形,进行排列组合判断该矩形对象的属性“满足点”的集合中是否有值:一、如果有,则将矩形的起始点设为矩形对象中的所有点的集合中的第一个点;然后开始绘制矩形,在画布区域中将这个矩形的范围内的所有点的都设为已绘制,并根据填充的情况来修改矩形起点到宽度之间的所有点的起点Y轴坐标;如果是填充且起点Y轴坐标只是矩形高度的情况,则起点Y轴坐标修改成矩形的Y轴坐标加上矩形的高度,否则,不填充且起点Y轴坐标是矩形的Y轴坐标加上矩形的高度时,则新的起点Y轴坐标修改成矩形的Y轴坐标;二、如果没有,则使用逐级回溯,探测是否有目标,先将它前一个矩形的已绘制改成未绘制,然后测试前一个矩形的绘制是否放至成功:首先判断它的全部目标点的数量是否为空,如果只有一个点,即最后一个坐标点既是使用中的坐标点,将该矩形去掉,然后清除所有目标值的坐标点,然后返回,接着与再前一个矩形作比较,逐级回溯探测是否有目标;反之,在该矩形的属性“满足点”的集合中去掉此坐标点,再将下一个坐标点设置为该矩形的起点坐标,然后将这个矩形全部坐标点以填充的形式展现出来;三、按照上述方法将剩下的矩形进行尝试绘制,重复进行步骤2),步骤3),步骤4)的操作,最后得到全部矩形排列组合后的集合;5)界面展现将上述排列组合得到的矩形集合,以X轴坐标、Y轴坐标、宽度、高度为基础,展现在界面中。
地址 100031 北京市西城区西长安街86号