图形化编程软件的连线自动避障优化方法与流程

文档序号:11250615阅读:875来源:国知局

本发明一般涉及软件前端连线领域,具体涉及图形化编程软件的连线自动避障优化方法。



背景技术:

近年来,随着软件前端界面越来越复杂,用户可操作编程控件越来越多,为避免前端界面的展示过于凌乱,在前端界面的展示中,避障显得尤为重要。连线避障是避障中的重要部分。连线避障在生产生活各个方面有着广泛应用,无论是在网页中或者是在客户端,只要涉及连线,基本都会涉及。并且,现在客户对连线的操作实时性要求越来越高,每次响应都要求在毫秒级别。因此在画布巨大的前端界面中,缩图操作显得尤为重要。若没有缩图操作,解空间过于庞大,很难满足实时性的要求。然而解空间中存在大量基于连线的等价点,因此采用缩图操作对画布进行预处理是很好的选择。



技术实现要素:

本发明针对软件前端的连线避障问题,提供了图形化编程软件的连线自动避障优化方法。本发明的目的在于满足用户高实时性要求的情况下,快速规划软件前端连线的最优解,具体技术方案如下。

图形化编程软件的连线自动避障优化方法,包括以下步骤:

(a)用户通过前端界面选择连线起点与终点,起点、终点及编程控件的顶点组成点集p,p中的横坐标值组成集合p_x,纵坐标值组成集合p_y;

(b)对画布进行缩图操作。将连续的一段不属于px的横坐标值视为等价的横坐标,同理,将连续的一段不属于py的纵坐标值视为等价的纵坐标。在缩图后的画布中,等价的坐标值被视为同一个坐标,极大地缩小搜索空间。此操作建立了原画布与缩图后画布中坐标值的映射关系;

(c)对经过缩图后的画布进行四向射线搜索,并记录每一个点的搜索来源,以备还原路径;

(d)根据搜索来源还原搜索路径,得到搜索结果,即连线;

(e)将步骤(d)中得到的搜索结果映射到原画布中;

(f)将步骤(e)中得到的连线进行调整:对每一个线段进行沿着其垂直方向进行平移调整,以调整到线段与编程控件间的距离。

进一步地,上述图形化编程软件的连线自动避障优化方法,步骤(b)包括以下步骤:

(b‐1)分析所有编程控件以及起点、终点,提取出所有的横坐标值x,和所有的纵坐标值y;

(b‐2)分别按大小对x和y进行排序,得到从小到大排序的x和y;

(b‐3)对于每一个x、y,都对应一个x’、y’,x’、y’分别表示x、y在缩图后的画布中对应的坐标值,并做好x、y与x’、y’的映射关系;

(b‐4)如果在x中,xi+1-xi>1,那么需要在xi+1与xi之间插入一个xi+1,y同样需要这样处理;

(b‐5)对于每一个x(y),都对应一个x’(y’),并做好映射关系;

进一步地,上述图形化编程软件的连线自动避障优化方法,步骤(c)中,通过步骤(b)可以得到新的画布范围、起点与终点在新画布上的映射关系以及每个矩形各个顶点在新画布上的映射关系。通过这个范围和映射关系可以得到新画布。步骤(c)将在缩图后的画布中进行搜索:

(c‐1)初始化一个空队列q;

(c‐2)将起点放入q中,并标记为已访问的点;

(c‐3)每次将q中队头元素p出队,沿着这个元素p的x正方向、x负方向、y正方向、y负方向进行搜索。将搜索到的点从队尾插入队列,每次搜索到一个点p’,都需要将p’标记为已访问的点,并将p’的搜索来源记录为p。每个方向的搜索一旦遇到障碍物或者已访问的点将停止这个方向的搜索。

进一步地,上述图形化编程软件的连线自动避障优化方法,步骤(d)中:通过以上的方法,最终将会搜索到连线终点。此时搜索结束。根据每个点的搜索来源构造出连线路径。这条路径就是缩图后的最佳路径。

进一步地,上述图形化编程软件的连线自动避障优化方法步骤(d)中搜索的结果利用有序点集的形式进行保存,从起点到终点,依次将各拐点(含起点、终点)保存到点集中。

进一步地,上述图形化编程软件的连线自动避障优化方法,步骤(e)中,根据步骤(b)中得到的映射关系,将搜索结果还原到原画布中。即将步骤(d)中有序点集中各点根据映射关系还原至原画布中的点。

进一步地,上述图形化编程软件的连线自动避障优化方法,步骤(f)中不包含起点终点的每一条线段进行操作。利用二分的方法寻找线段两侧最靠近这条线段的编程控件。预处理先将所有矩形的边分为两组,一组平行于x坐标轴,记为组一;另一组平行于y坐标轴,记为组二。分别对两组边进行排序,组一按照边的y坐标值从小到大排序,组二按照边的x坐标值从小到大排序。对于一条线段,这条线段需要寻找两侧最靠近这条线段的编程控件,则可以转化为寻找两侧最靠近这条线段的编程控件的边。所以可以用二分的方法在已排好序的边中快速寻找。

与现有技术相比,本发明具有如下优点和技术效果:

现在的可视化编程软件,控件间数量多,控件间的相互连接关系多。因此,控件间的连线容易与控件发生重叠,使用户操作变得困难。同时,在画布像素点很多的情况下,搜索空间很大,搜索时间很长,影响客户的实时操作和体验。本发明的目的在于对图形化编程的连线避障进行自动优化,避免出现重叠等布局混乱的情况。优化方法也能满足实时性的要求,提高编程体验。

附图说明

图1为实施方式中图形化编程软件的连线自动避障优化方法的流程图。

具体实施方式

以下结合附图对本发明的实施方式作进一步说明,但本发明的实施不限于此。

如图1,图形化编程软件的连线自动避障优化方法,主要流程包括以下步骤:

(a)用户通过前端界面选择连线起点与终点,起点、终点及编程控件的顶点组成点集p,p中的横坐标值组成集合p_x,纵坐标值组成集合p_y;

(b)对画布进行缩图操作。将连续的一段不属于px的横坐标值视为等价的横坐标,同理,将连续的一段不属于py的纵坐标值视为等价的纵坐标。在缩图后的画布中,等价的坐标值被视为同一个坐标,极大地缩小搜索空间。此操作建立了原画布与缩图后画布中坐标值的映射关系;

(c)对经过缩图后的画布进行四向射线搜索,并记录每一个点的搜索来源,以备还原路径;

(d)根据搜索来源还原搜索路径,得到搜索结果,即连线;

(e)将步骤(d)中得到的搜索结果映射到原画布中;

(f)将步骤(e)中得到的连线进行调整:对每一个线段进行沿着其垂直方向进行平移调整,以调整到线段与编程控件间的距离。

步骤(a)允许用户通过鼠标点击编程控件中的连线按钮,并通过移动鼠标到一个模块的连线终点按钮完成连线操作。

步骤(b)包括以下步骤:

(b‐1)分析所有编程控件以及起点、终点,提取出所有的横坐标值x,和所有的纵坐标值y;

(b‐2)分别按大小对x和y进行排序,得到从小到大排序的x和y;

(b‐3)对于每一个x、y,都对应一个x’、y’,x’、y’分别表示x、y在缩图后的画布中对应的坐标值,并做好x、y与x’、y’的映射关系;

(b‐4)如果在x中,xi+1-xi>1,那么需要在xi+1与xi之间插入一个xi+1,y同样需要这样处理;

(b‐5)对于每一个x(y),都对应一个x’(y’),并做好映射关系;

步骤(c)中,通过步骤(b)可以得到新的画布范围、起点与终点在新画布上的映射关系以及每个矩形各个顶点在新画布上的映射关系。通过这个范围和映射关系可以得到新画布。步骤(c)将在缩图后的画布中进行搜索:

(c‐1)初始化一个空队列q;

(c‐2)将起点放入q中,并标记为已访问的点;

(c‐3)每次将q中队头元素p出队,沿着这个元素p的x正方向、x负方向、y正方向、y负方向进行搜索。将搜索到的点从队尾插入队列,每次搜索到一个点p’,都需要将p’标记为已访问的点,并将p’的搜索来源记录为p。每个方向的搜索一旦遇到障碍物或者已访问的点将停止这个方向的搜索。

步骤(d)中:通过以上的方法,最终将会搜索到连线终点。此时搜索结束。根据每个点的搜索来源构造出连线路径。这条路径就是缩图后的最佳路径。

步骤(e)中,根据步骤(b)中得到的映射关系,将搜索结果还原到原画布中。即将步骤(d)中有序点集中各点根据映射关系还原至原画布中的点。

步骤(f)中不包含起点终点的每一条线段进行操作。利用二分的方法寻找线段两侧最靠近这条线段的编程控件。预处理先将所有矩形的边分为两组,一组平行于x坐标轴,记为组一;另一组平行于y坐标轴,记为组二。分别对两组边进行排序,组一按照边的y坐标值从小到大排序,组二按照边的x坐标值从小到大排序。对于一条线段,这条线段需要寻找两侧最靠近这条线段的编程控件,则可以转化为寻找两侧最靠近这条线段的编程控件的边。所以可以用二分的方法在已排好序的边中快速寻找。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1