[发明专利]一种GMF图形编辑器创建有向图的自动布局方法有效

专利信息
申请号: 201310443605.3 申请日: 2013-09-26
公开(公告)号: CN103500250B 公开(公告)日: 2017-04-12
发明(设计)人: 李红;杨国青;陈坤;郭徐;雷健;吴朝晖 申请(专利权)人: 浙江大学
主分类号: G06F17/50 分类号: G06F17/50
代理公司: 杭州宇信知识产权代理事务所(普通合伙)33231 代理人: 张宇娟
地址: 310027 浙*** 国省代码: 浙江;33
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 gmf 图形 编辑器 创建 自动 布局 方法
【说明书】:

技术领域

发明涉及图形布局技术,具体涉及一种GMF图形编辑器创建有向图的自动布局方法。

背景技术

图形建模框架(Graphical Modeling Framework,简称GMF)是Eclipse平台中用于图形化编辑器开发的框架。开发者利用GMF提供的组件及其运行时环境,进行必要的图形元素建模和相关配置,便可生成图形化编辑器工程源代码。因为图形编辑器代码编写实现了高度自动化,使得图形编辑器的设计与实现变得简单而迅速。

图形布局指按照要求设置图元的大小、位置、图元之间连线的路径等信息。GMF图形编辑器图元具有嵌套组合的特点:大图元由小图元组成,小图元又由小一级的图元组成。大图元的布局策略需要处理其内部子图元的布局排放,而内部子图元又能拥有自己的布局策略。一个好的布局算法既能保证图形排版的美观,又能增强图形编辑器的易用性。

目前GMF框架中,已经由Randy Hudson等人提供了一种有向图布局算法的实现。但该算法执行过程中有一个限制条件,该有向图必须是有连接关系的图,否则每个结点计算出的水平位置相同,所有结点从上往下排成一列。而且,对于图元之间连线多,图元层次复杂等情况,该算法在布局时会导致图元布局重叠、图元之间连线穿过图元等现象的发生。

发明内容

为解决上述问题,得到图元连线简洁、图元间无重叠的图形布局,本发明提出了一种GMF图形编辑器创建有向图的自动布局方法,其具体技术方案如下:

一种GMF图形编辑器创建有向图的自动布局方法,包括如下步骤:

S10:解析GMF图形编辑器建立的有向图数据,获取图元信息,将每个组件图元拥有的有向连线起点的个数作为该图元的出度,将其拥有的有向连线的终点的个数作为该图元的入度;

S20:使用拓扑排序的方法对所有的组件图元进行分层处理;

S30:设置连接图元的位置:将同一个组件图元中,所有是有向连线起点的连接点均放置在组件图元的右侧,是有向连线终点的连接点放置在组件图元的左侧,两个连接点之间等间距放置;然后在此前提下,将与同一个组件图元相连的连接图元相邻放置;

S40:设置每个组件图元的位置:将同一层次的组件图元设置在同一个水平位置上,以图元间所有连线的曼哈顿距离最短为目标,进行目标规划,以此设置每个层次中图元的垂直位置;

S50:设置每个组件图元的大小:将每个组件图元的宽度设置为固定的值,然后根据该组件图元左右两侧拥有的连接图元的个数来设置组件图元的长度;

S60:使用Mikami-Tabuchi布线算法布置图元之间的连线的路径,当连线出现重叠时,使用近邻连线避让策略消除重叠。

进一步的,步骤S20中对组件图元进行拓扑排序的具体包括:

S201:完成对不构成连线环路、且不孤立的图元的层次设置;将无直接前驱的图元层次数设置为固定值,其他图元的层次数为其所有直接前驱中层次数最大的加上1;

S202:对构成连接环路的图元,将环路中层次数最低的任意一个图元的层次数设置为当前的层次数加1,然后将这些图元重新加入到排序中;如果仍然存在连接环路,则重复执行该步骤;

S203:对于孤立的图元,将孤立的图元的层次数依次设置为1,2,3…n,n为正整数;当某个孤立图元的层次数达到n时,如果仍有孤立的图元,则对剩余的图元重新从1开始编号,直至结束。

进一步的,步骤S40包括:

S401::将每个组件图元长度、宽度设置为固定相同的值,令同一个层次中的图元在本层次中根据垂直的距离均匀分布,并令其水平位置相同;

S402:使用每个图元的重心代表该图元的位置,计算所有存在连接的图元之间的曼哈顿距离,其中:如果两个连接图元之间有多条连接,则在计算两者距离时,每条连接的距离计算一次;最终得到当前布局情况下,各个图元之间的距离的总和;

S403:调整每个层次中的组件图元的垂直方向的位置,保证每个组件图元水平方向不变,垂直方向均匀分布,重新按照步骤S402计算距离值;最终将距离值最小的图形布局设置为最终布局。

进一步的,步骤S50还包括:

如果连接图元具有大小,则将连接图元大小固定,然后每个连接图元相距等同的距离,分别计算组件图元左右两边的长度,取两者中长度较大的那个作为组件图元的最终长度;

如果连接图元没有大小时,则将连接图元之间的距离设置为相同的值,分别计算组件图元左右两边的长度,取两者中长度较大的那个作为组件图元的最终长度。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江大学,未经浙江大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201310443605.3/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top