一种拓扑图末端树自动布局方法及装置的制造方法

文档序号:10660667阅读:457来源:国知局
一种拓扑图末端树自动布局方法及装置的制造方法
【专利摘要】本发明揭示了一种拓扑图末端树自动布局方法及装置,所述方法包括:获取拓扑图的拓扑图参数,分析出拓扑图中所包含的所有拓扑图末端树;选择其中一个拓扑图末端树,根据叶节点数量、叶节点形状图的外接圆半径最大值,在椭圆夹角区间一定的情况下,计算拓扑图末端树的椭圆夹角区间对应的椭圆弧长;根据各叶节点的加权值分割所述椭圆夹角区间对应的椭圆弧长;计算各弧长对应的叶节点与根节点夹角的角度;根据各弧长对应的角度,计算叶节点坐标;根据叶节点坐标生成可视界面。本发明具有使拓扑末端树沿着椭圆曲线进行自动布局,支持调整椭圆弧扇面,叶节点相互不重叠,布局对称美观等优点。
【专利说明】
一种拓扑图末端树自动布局方法及装置
技术领域
[0001] 本发明涉及计算机应用技术领域,尤其涉及一种拓扑图末端树自动布局方法及装 置。
【背景技术】
[0002] 拓扑图是一种不考虑物体的大小、形状等物理属性,而仅使用点或者线描述多个 物体实际位置与关系的抽象表示方法。拓扑图不关心事物的细节,也不在乎相互的比例关 系,而只是以图的形式表示一定范围内多个物体之间的相互关系。
[0003] 在各领域中,拓扑图常用于显示资源节点间的关系,如在社交网络中有社交网络 拓扑图,在消费领域中有消费关系拓扑图,在网络管理中有网络结构拓扑图。清晰美观的拓 扑图对用户掌握资源关系非常重要。
[0004] 在计算机应用领域中,计算机与网络设备要实现互联,就必须使用一定的组织结 构进行连接,这种组织结构就叫做拓扑结构,也叫拓扑图。如图1所示,利用现有技术生成的 拓扑图。如所述的拓扑图,本发明中将一个节点的子树的个数称为节点的度,度为〇的节点 被称为叶节点,也叫叶子节点,将仅与一个非叶节点相邻的非叶节点称为根节点。
[0005] 由上述叶节点及根节点构成的图,在本发明中称为拓扑图末端树,如图2中所示的 la,lb,lc,Id为拓扑图末端树。
[0006] 当叶节点比较多时,拓扑图结构复杂,拓扑末端树可视化效果差。一个好的布局方 法对于拓扑的可视化管理越来越重要。
[0007] 拓扑图布局通常采用人工拖动布局,但当叶节点数量增多时,人工拖动布局耗费 很大的人力,而且布局效果差。
[0008] 同样的,论文基于斥力-张力模型的网络拓扑图布局算法中公开了一种Force-directed 布局, 该方法虽然在一定程度上自 动分散各节点 ,使其尽量不重叠, 但无法做到叶 节点对称分布,更无法做到加权分布,使得各节点间长短不一,最终导致拓扑图不够美观。 更最重要的是,当新增节点后,所有节点的位置都会发生一定的变化,不利于对已有节点的 视觉跟踪。
[0009] 专利号为200510022224.3的中国专利文献中也公开了一种网络管理系统中网络 拓扑自动生成方法。所述方法中指出叶节点沿着基础圆的路径进行分布,虽然实现比较简 单,但是基础圆的半径依赖画图面板的边长,且固定为边长的1/4,只能对基础圆进行等分, 不能进行非等分的处理。同时,基础圆弧扇面的生成依赖于叶节点数量,无法进一步的调 整。

【发明内容】

[0010] 本发明的目的在于克服现有技术的缺陷,提供一种拓扑图末端自动布局方法及装 置,支持对拓扑图末端树进行自动布局,使其能够沿着椭圆曲线进行布局,支持调整椭圆弧 扇面,并且提供加权分割椭圆弧的方法,使得叶节互相不重叠,布局对称、美观。
[0011] 为实现上述目的,本发明提出如下技术方案:一种拓扑图末端树自动布局方法,所 述方法包括:
[0012] S10,获取拓扑图各个节点及路径关系,分析出拓扑图中的所有拓扑图末端树,并 存入拓扑图末端树集合中;
[0013] S20,从所述的拓扑图末端树集合中选择一个拓扑图末端树,计算选择的拓扑图末 端树的叶节点数量,以及叶节点形状图的外接圆半径最大值;
[0014] S30,根据所述的叶节点数量及叶节点形状图的外接圆半径最大值,计算椭圆曲线 总弧长的初始值,以及椭圆曲线长半轴的初始值;
[0015] S40,计算椭圆曲线的长半轴的精确值,根据所述的长半轴的精确值,计算短半轴 的精确值,以及计算椭圆上夹角区间所对应的椭圆弧长值;
[0016] S50,通过椭圆弧加权布局法和角度折算布局法,计算所述夹角区间对应的各叶节 点最终坐标;
[0017] S60,根据所述各叶节点最终坐标,生成该拓扑图末端树的可视界面;
[0018] S70,重复S20~S60,生成所有拓扑图末端树的可视界面。
[0019] 优选地,所述拓扑图末端树集合根据如下步骤获得:
[0020] S201,获取拓扑图中度为0的节点,得到叶节点集合V叶,获取与叶节点相邻的非叶 节点,得到非叶结点集合,从所述非叶结点集合中获取根节点,得到根节点集合%;
[0021] S202,从根节点集合V根中选择一个根节点a?,在路径关系与叶节点集合V叶中查找 出与根节点a?存在路径关系的所有叶节点,得到叶节点集合V叶,输出(aigy叶),即得到该 拓扑图末端树的数据;
[0022] S203,循环从根节点集合V根中选择根节点,输出新的拓扑图末端树的数据,直至根 节点集合%兩空,即得到该拓扑图中所有的拓扑图末端树。
[0023] 优选地,所述椭圆曲线总弧长的初始值以及椭圆曲线长半轴的初始值根据如下初 算函数计算,
[0024] init_arc_len = nodes_numXr Xh,其中h= {h>2,heR};
[0025] 以及
[0027]其中,ini t_arc_l en表示椭圆曲线总弧长的初始值,r表示叶节点形状图的外接圆 半径最大值,h表示常数,nodes_num表示叶节点数量,k表示椭圆短半轴与长半轴比,init_a 表示椭圆长半轴初始值。
[0028]优选地,所述的长半轴的精确值,短半轴的精确值,以及椭圆上夹角区间所对应的 椭圆弧长值的计算包括如下步骤:
[0029] S401,设定椭圆长半轴取值区间为[ao,ai],设定精确度为ξ,椭圆短长轴比为k,椭 圆长半轴为a,椭圆上夹角区间为α,其中,&1表示长半轴的初始值,ao任意选取。
[0030] S402,计算椭圆长半轴取值区间的中点a。,计算长半轴取值为a。时对应的弧长 lenc;
[0031 ] S403,判断| lenc-init_arc_len |是否小于精确度ξ;如果小于ξ,则输出ac作为椭圆 长半轴的精确值;如果不满足精确度要求且len。小于init_arC_len,则新取值区间为[a。, ai],重复步骤S402和步骤S403;如果不满足精确度要求且lenc大于init_arc_len,则新区间 为[ao,a。],重复步骤S402和步骤S403步骤;
[0032] S404,根据S403输出的椭圆长半轴的精确值a,以及所述的椭圆短长轴比为k,计算 椭圆短半轴的精确值b = a X k;
[0033] S405,根据所述的椭圆长半轴的精确值a,以及短半轴的精确值b,椭圆参数方程, 计算夹角区间对应的椭圆弧长值ar c_l en。
[0034] 优选地,所述夹角区间为[-π/2,π/2]。
[0035] 优选地,所述椭圆弧加权布局法包括以下步骤:
[0036] 所述椭圆弧加权布局法包括以下步骤:
[0037] S501,设定加权值集Ρ={ρι,ρ2,···,ρη-1},其中,η为叶节点数量;
[0038] S502,根据叶节点数量和加权值集将夹角区间对应的椭圆弧长arc_len进行分割;
[0039] S503,从起始叶节点开始,根据该叶节点leafi及相邻叶节点leaf i+i对应的弧长, 计算各弧长对应的叶节点与根节点夹角的角度;
[0040 ] S504,根据各弧长对应的角度及根节点坐标,计算各叶节点到根节点直线方程;
[0041 ] S505,计算各叶节点到根节点直线与椭圆夹角区间对应的椭圆弧交点坐标。
[0042] S506,输出夹角区间所有叶节点初始坐标。
[0043 ]优选地,所述各弧长对应的叶节点与根节点夹角的角度根据如下公式计算,
[0045] 其中,a为椭圆长半轴,Φ为起始节点离心角,μ为终止节点离心角,y为椭圆离心率, ω为椭圆离心角,ω e [0,2π],L为角度对应的弧长。
[0046] 优选地,所述角度折算布局法包括以下步骤:
[0047] S601,设定椭圆弧夹角α,长半轴值a、短半轴值b,计算角度折算因子m。
[0048] S602,根据角度折算因子m,计算新长半轴值new_a=mXa,新短半轴值为new_b=m Xb;
[0049] S603,根据新长半轴值new_a,新短半轴值new_b,新椭圆参数方程,计算夹角区间 对应的新的椭圆弧长n e w_ar c_ 1 en;
[0050 ] S604,根据新的椭圆弧长new_ar c_l en和叶节点数量,按照叶节点加权值集将新的 椭圆弧长new_arc_len进行分割;
[0051] S605,从起始叶节点开始,根据该叶节点leafi及相邻叶节点leaf i+i对应的弧长, 重新计算1 eaf i+i的坐标。
[0052] S606,直至输出所有叶节的最终坐标。
[0053]优选地,所述角度折算因子根据如下公式计算,
[0055]
表示椭圆长半轴,b表示椭圆短半轴,m表示角度 折算因子。
[0056] 本发明的一种拓扑图末端树自动布局装置,包括存储单元、判断单元、布局分析单 元和显示单元,其中,
[0057] 所述存储单元,用于存储拓扑图中各节点、路径关系、根节点,以及布局相关参数;
[0058] 所述判断单元,用于从存储单元中获取所述拓扑图中各节点,以及路径关系,输出 所有拓扑图末端树;
[0059] 所述布局分析单元,通过椭圆弧加权布局法和角度折算布局法计算所述拓扑图末 端树中各叶节点的最终坐标位置;
[0060] 所述显示单元,根据各叶节点最终坐标、根节点最终坐标,以及路径关系绘制出各 叶节点,以及各叶节点与根节点间的连线。
[0061] 本发明的有益效果是:
[0062] 1)本发明所述的拓扑图布局方法,使得拓扑图末端树上叶节点以根节点为中心按 照椭圆弧的路径进行自动分布,显示的叶节点更多;
[0063 ] 2)本发明所述的拓扑图布局方法,使得叶节点的分布更加合理、叶节点与根节点 连线的长度能够根据椭圆夹角自动调整,且叶节点不重叠,布局更加美观。
[0064] 3)本发明所述的拓扑末端树自动布局装置,用户通过预先设定椭圆上的夹角区 间、椭圆旋转角等多个参数,使得生成的拓扑图应用于计算机屏幕展示、投影仪展示,以及 应用于多点触控设备上。
【附图说明】
[0065] 图1是现有技术生成的拓扑图;
[0066] 图2是图1拓扑图中的拓扑图末端树示意图;
[0067] 图3是本发明实施例1提供的拓扑图末端树自动布局方法原理流程图;
[0068] 图4是本发明实施例1中的椭圆曲线上叶节点与根节点夹角示意图;
[0069 ]图5是本发明实施例1中选取椭圆上的夹角区间;
[0070] 图6是本发明实施例2提供的拓扑图末端树自动布局的装置示意图;
[0071] 图7是本发明实施例中的效果图;
[0072]图8是本发明的显示效果图1;
[0073]图9是本发明的显示效果图2。
【具体实施方式】
[0074] 下面将结合本发明的附图,对本发明实施例的技术方案进行清楚、完整的描述。
[0075] 本发明实施例的原理在于:首先,获取拓扑图的拓扑图参数,如各节点、路径关系, 分析出拓扑图中所包含的所有拓扑图末端树;其次,选择其中一个拓扑图末端树,计算叶节 点数量、叶节点形状图的外接圆半径最大值;本发明中的叶节点围绕根节点沿着椭圆曲线 进行自动布局,因此,引入椭圆曲线,计算椭圆曲线总弧长初始值,以及椭圆曲线长半轴初 始值,并计算长半轴精确值、短半轴精确值,在椭圆区间夹角一定的情况下,计算拓扑图末 端树的椭圆区间夹角对应的椭圆弧长;根据各叶节点的加权值分割所述椭圆区间夹角对应 的椭圆弧长;计算各弧长对应的叶节点与根节点夹角的角度;根据各弧长对应的角度,计算 叶节点坐标;最后,根据叶节点坐标生成可视界面。
[0076] 如图3所示,为本发明实施例1提供的拓扑图末端树自动布局方法原理流程图,具 体如下:
[0077] 步骤10,获取拓扑图各个节点及路径关系,通过逻辑判断分析出所述拓扑图中的 所有拓扑图末端树,存入拓扑图末端树集合中。所述拓扑图末端树集合根据如下方式获得:
[0078] 首先,获取拓扑图中度为0的节点,得到叶节点集合V叶,获取与叶节点相邻的非叶 节点,得到非叶节点集合,然后从非叶节点集合中获取根节点,得到根节点集合%;
[0079] 其次,从根节点集合V根中选择一个根节点,记为a?,在路径关系与V叶集合中查找出 与根节点a根存在路径关系的所有叶节点,得到叶节点集合V'叶,输出(a+gW叶),即得到该拓 扑图末端树的数据;
[0080] 最后,循环从根节点集合V根中选择根节点,输出新的拓扑图末端树的数据,直至根 节点结合%^空,即可得到该拓扑图中所有的拓扑图末端树。
[0081] 其中,所述拓扑图末端树数据的实例,包括根节点标识,根节点位置坐标为(X根, y根),各叶节点标识,叶节点数量为nodes_num〇
[0082] 步骤20,从所述的拓扑图末端树集合中选择一个拓扑图末端树,计算所选择的拓 扑图末端树的叶节点数量,以及叶节点形状图的外接圆半径最大值;
[0083]步骤30,根据所述的拓扑图末端树的叶节点数量,以及叶节点形状图的外接圆半 径最大值,通过初算函数计算椭圆曲线总弧长的初始值,以及椭圆曲线长半轴的初始值;
[0084] 其中,椭圆曲线总弧长初始值根据初算函数(1)获得:
[0085] init_arc_len = nodes_numXr Xh,其中h= {h>2,heR}; (1)
[0086] in i t_ar c_l en表示椭圆区间夹角所对应的椭圆总弧长,r表示的是叶节点形状图 的外接圆半径最大值,h表示常数,nodes_num表示叶节点数量。
[0087] 椭圆长半轴与短半轴初始值根据初算函数(2)获得:
[0089] 其中,init_a表示的是椭圆长半轴的初始值,k表示的是椭圆短半轴与长半轴比。
[0090] 本实施例中椭圆短半轴与长半轴之比k,叶节点形状图集外接圆半径r,可以在系 统中预设定,也可以用户人工指定。
[0091] 步骤40,根据所述的长半轴初始值,通过二分法函数,计算满足精确度要求的椭圆 曲线长半轴精确值,根据椭圆长半轴的精确值,计算短半轴的精确值,以及计算椭圆上夹角 区间对应的椭圆弧长值;
[0092]其中,满足精确度要求的椭圆曲线长半轴的精确值根据如下步骤计算:
[0093] 401,设定椭圆长半轴取值区间为[at^ai],其中&1表示长半轴的初始值,即, ai = ini t_a,ao可以任意选取,设定精确度为ξ,椭圆短长轴比为k,椭圆短半轴为b,椭圆上一夹 角区间为α,如图4所示,所述夹角区间α,椭圆短长半轴比k,可以在系统汇总预设定或用户 人工指定。
[0094] 402,求得椭圆长半轴取值区间的中点a。,计算当长半轴取值为a。对应的弧长len。;
[0095] 403,判断| lenc-init_arc_len |是否小于精确度ξ;如果小于ξ,则输出ac作为满足 精确度要求的椭圆长半轴值;如果不满足精确度要求且len。小于init_arc_len,则新取值 区间为[ac,ai],重复步骤402和步骤403;如果不满足精确度要求且lenc大于init_arc_len, 则新区间为[ao,a c],重复步骤402和步骤403步骤;
[0096] 404,根据403输出的椭圆长半轴的精确值a,以及所述的短长轴比k,获得椭圆短半 轴 b = a X k;
[0097] 405,根据所述的满足精确度的椭圆长半轴的精确值a,短半轴的精确值b,以及椭 圆参数方程,计算夹角区间对应的椭圆弧长值arc_len,其中,本实施例中,夹角区间优选[-n/2,n/2]〇
[0098] 步骤50,通过椭圆弧加权布局法,角度折算布局法,根据指定夹角区间获得对应的 各叶节点最终坐标;
[0099] 其中,所述椭圆弧加权布局法,包括以下步骤:
[0?00] 501,设定加权值集Ρ={ρι,ρ2,···,ρη-1},其中,η为叶节点数量;
[0101] 502,设定起始叶节点在π/2处,坐标为(X始,y始),则最后一个节点在-π/2处,坐标为 (X末,y末);
[0102] 503,根据叶节点数量,按照各叶节点加权值的比例将夹角区间[-JT/2,V2]对应的 椭圆弧长arc_len进行分割;
[0103] 504,从起始叶节点开始,依次依据该叶节点leafi及相邻叶节点leaf i+i对应的弧 长,依据该椭圆弧长用定积分方计算各弧长对应的叶节点与根节点夹角的角度;
[0104] 50 5,根据各弧长对应的角度及根节点坐标(X根,y根),计算各叶节点到根节点直线 方程;
[0105] 506,计算各叶节点到根节点直线与椭圆夹角区间[-31/2,31/2]对应的椭圆弧交点 坐标,即是各叶节点的坐标。
[0106] 上述步骤计算得到了椭圆夹角区间[_V2,V2],对应的各叶节点的初始坐标。
[0107] 其中,上述计算椭圆弧长的定积分公式如下:
[0108] 令a为椭圆长半轴,φ为起始节点离心角,μ为终止节点离心角,其中P~(P=?,y为 椭圆离心率,ω为椭圆离心角,ω e[0,2Ji],则弧长
[0110]优选地,在上述积分计算过程中可以采用Simpson法则进行数值积分。
[0111] 优选地,在上述积分计算过程中可以采用Euler法则进行数值积分。
[0112] 各叶节点的初始坐标根据如下方式计算:
[0113]如图4所示,叶节点leafi与根节点对应夹角的夹角为 [0114]以根节点为原点的直线方程为y = x*tan01;
[0116]将直线方程代入椭圆方程计算可得该节点的坐标为
[0118] 更进一步地,所述角度折算布局法包括以下步骤,
[0119] 601,设定夹角区间α,如图5所示,长半轴值a、短半轴值b,计算角度折算因子为m。
[0122] 602,根据角度折算因子m,计算新长半轴值new_a = mXa,新短半轴值为new_b=m Xb;
[0123] 603,根据新长半轴new_a,新短半轴new_b,新椭圆参数方程,计算夹角区间[_α/ 2,_α/2]对应的椭圆弧长new_arc_len。
[0124] 604,设定起始叶节点在α/2处,坐标为(new_x始,116¥_7始),则最末节点在-α/2处,坐 标为(n ew_x末,n ew_}^);
[0125] 605,根据新的椭圆弧长new_arc_len和叶节点数量,按照步骤501中加权值集将新 的椭圆弧长进行分割;
[0126] 606,从起始叶节点开始,依次依据该叶节点leafi及相邻叶节点leaf i+i对应的弧 长,重新计算1 eaf i+i的坐标。
[0127] 607,直至输出所有叶节点最终坐标。
[0128] 其中,所有叶节点的最终坐标计算方法同叶节点的初始坐标的计算方法相同。
[0129] 步骤60,根据所有叶节点最终坐标,生成该拓扑图末端树的可视界面;
[0130]步骤70,重复步骤20到步骤60,直到所有拓扑图末端树的可视界面都生成完毕。
[0131] 上述椭圆弧加权布局法和角度折算布局法中,夹角区间α,椭圆短长半轴比k,叶节 点形状图集外接圆半径r,可以在系统中预设定或用户人工指定。
[0132] 如图6所示,为本发明实施例2提供的一种拓扑图末端树自动布局的装置示意图, 该装置包括存储单元100、判断单元101、布局分析单元102和显示单元103,具体如下:
[0133] 存储单元100,用于存储拓扑图各节点、路径关系、根节点坐标,以及布局相关参 数,可以采用数据库、文件、缓存等技术手段完成拓扑图数据的存储。拓扑图数据的实例,包 括:各节点标识,各路径标识,各非叶节点坐标位置。
[0134] 判断单元101,用于从存储单元获取拓扑图各节点及路径关系,通过技术手段从存 储单元中获取各拓扑图节点及相互的路径关系。所述技术手段包括S匪P,数据库接口技术 等。判断单元通过逻辑分析,输出所有拓扑图末端树。
[0135] 拓扑图末端树数据的实例,包括:根节点标识,根节点位置坐标为(X根,y根),各叶 节点标识,叶节点数量为nodes_num〇
[0136] 布局分析单元102,通过椭圆弧加权布局法和角度折算布局法获得各叶节点的最 终坐标位置。
[0137] 显示单元103,根据各叶节点最终坐标、根节点最终坐标,以及路径关系采用技术 手段自动绘制出各叶节点及它们与根节点间的连线。所述技术手段包括HTML5、CSS、 Javascript、flex、QT、wxWidgets、MFC、Java swing或Windows Forms等。
[0138] 更进一步的,以图1所示的拓扑图对本发明所述的拓扑图末端树布局方法及装置 进一步的说明。
[0139] 根据步骤10,对如图1所示的拓扑图进行逻辑分析,得到所有的拓扑图末端树,存 入拓扑图末端树集合,如图2所示,所示的拓扑图末端树集合中共有4个拓扑图末端树,分别 是la,lb,lc和Id;
[0140] 根据步骤20,选取其中的拓扑图末端树la,其中叶节点数量为9,叶节点最大外接 圆半径为5px;
[0141] 根据步骤30计算椭圆曲线总弧长的初始值,以及椭圆曲线长半轴的初始值;预设 定h为4.5,k为0.8,ao = 0,ξ = 1 0-8,通过初算函数计算出椭圆曲线总弧长的初始值为 202.5ρχ,计算出椭圆曲线长半轴的初始值约为247.2ρχ;
[0142] 根据步骤40,计算出满足精确度要求的椭圆曲线长半轴精确值约为71.4ρχ,计算 出短半轴长度精确值约为57. lpx,计算出椭圆上[-31/2,31/2]区间对应的椭圆弧长值为 202.5px;
[0143] 根据步骤50所述的椭圆弧加权布局法,预设定加权值集为P= {1,1,1,1,1,1,1, 1},计算出各叶节点的初始坐标分别为(71.4,0),(64.7,24.1),(47.6,42.5)等;
[0144] 根据步骤50提供的角度折算布局法,预设定夹角区间为[0,5π/6],计算角度折算 因子m约为1.05,根据该折算因子重新计算出来的各叶节点的最终坐标分别为(71.4, 19·1),(59·3,37·1),(41·9,50·0)等;
[0145] 按照步骤60,根据步骤50获得的各叶节点的最终坐标,以(0,0)为坐标原点绘制出 各叶节点与坐标原点的连线,然后将图形平移到树Τ1的根节点坐标(200,300)处,并顺时针 旋转:π/2;
[0146] 重复步骤20到步骤60,生成拓扑图末端树la,lb,lc,Id的可视界面,最终显示如图 7所示。
[0147]如图8所示,在本实施例中叶节点用空心圆标识,节点或根节点用实心圆标识,实 际运用中可以使用任意形状的矢量图或位图标识。网络设备间的物理连接关系即网络拓 扑图节点间的连线,在本实施例中连线用实线标识,实际运用中可以采用实线或任意虚线 的矢量图或位图来标识。
[0148] 如图9所示,更进一步地,在网络拓扑末端树生成后,用户可以设定任意旋转角度, 对该网络拓扑末端树进行旋转显示。
[0149] 本实施例中所涉及的计算公式,角度均转换为弧度进行计算,长度单位采用像素 单位px。当然本实施例中所述的计算公式、角度、长度等还可以用其他相应的单位表示。
[0150] 通过本发明所述的拓扑图末端自动布局方法及装置,使得叶节点围绕根节点沿着 椭圆曲线进行布局,支持调整椭圆弧扇面,使得叶节点相互不重叠,且布局对称、美观。
[0151] 本发明的技术内容及技术特征已揭示如上,然而熟悉本领域的技术人员仍可能基 于本发明的教示及揭示而作种种不背离本发明精神的替换及修饰,因此,本发明保护范围 应不限于实施例所揭示的内容,而应包括各种不背离本发明的替换及修饰,并为本专利申 请权利要求所涵盖。
【主权项】
1. 一种拓扑图末端树自动布局方法,其特征在于,所述方法包括: S10,获取拓扑图各个节点及路径关系,分析出拓扑图中的所有拓扑图末端树,并存入 拓扑图末端树集合中; S20,从所述的拓扑图末端树集合中选择一个拓扑图末端树,计算选择的拓扑图末端树 的叶节点数量,以及叶节点形状图的外接圆半径最大值; S30,根据所述的叶节点数量及叶节点形状图的外接圆半径最大值,计算得到椭圆曲线 总弧长的初始值,以及椭圆曲线长半轴的初始值; S40,计算椭圆曲线的长半轴的精确值,短半轴的精确值,以及椭圆上夹角区间所对应 的椭圆弧长值; S50,通过椭圆弧加权布局法和角度折算布局法,计算所述夹角区间对应的各叶节点最 终坐标; S60,根据所述各叶节点最终坐标,生成该拓扑图末端树的可视界面; S70,重复S20~S60,生成所有拓扑图末端树的可视界面。2. 根据权利要求1所述的方法,其特征在于,所述拓扑图末端树集合根据如下步骤获 得: S201,获取拓扑图中度为O的节点,得到叶节点集合V叶,获取与叶节点相邻的非叶节点, 得到非叶结点集合,从所述非叶结点集合中获取根节点,得到根节点集合V根; 5202, 从根节点集合V根中选择一个根节点a根,在路径关系与叶节点集合V叶中查找出与 所述根节点a?存在路径关系的所有叶节点,得到叶节点集合疒叶,输出叶),即得到该 拓扑图末端树的数据; 5203, 循环从根节点集合V根中选择根节点,输出新的拓扑图末端树的数据,直至根节点 集合%兩空,即得到该拓扑图中所有的拓扑图末端树。3. 根据权利要求1所述的方法,其特征在于,所述椭圆曲线总弧长的初始值以及椭圆曲 线长半轴的初始值根据如下初算函数计算: init_arc_len = nodes_numXr Xh,其中h= {h>2,heR}以及其中,ini t_arc_len表示椭圆曲线总弧长的初始值,r表示叶节点形状图的外接圆半径 最大值,h表示常数,nodes_num表示叶节点数量,k表示椭圆短半轴与长半轴比,init_a表示 椭圆长半轴初始值。4. 根据权利要求1所述的方法,其特征在于,所述长半轴的精确值,短半轴的精确值,以 及椭圆上夹角区间所对应的椭圆弧长值的计算包括如下步骤: S401,设定椭圆长半轴取值区间为[ao,ai],设定精确度为ξ,椭圆短长轴比为k,椭圆长 半轴为a,椭圆上夹角区间为α,其中,&1表示长半轴的初始值,ao任意选取。 5402, 计算椭圆长半轴取值区间的中点a。,计算长半轴取值为a。时对应的弧长len。; 5403, 判断I lenc-init_arc_len I是否小于精确度ξ;如果小于ξ,则输出ac作为椭圆长半 轴的精确值;如果不满足精确度要求且len。小于init_arc_len,则新取值区间为[ac;,ai],重 复步骤S402和步骤S403;如果不满足精确度要求且Ien c大于init_arc_len,则新区间为[a〇, ac],重复步骤S402和步骤S403步骤; 5404, 根据S403输出的椭圆长半轴的精确值a,以及所述的椭圆短长轴比为k,计算椭圆 短半轴的精确值b = a Xk; 5405, 根据所述的椭圆长半轴的精确值a,以及短半轴的精确值b,椭圆参数方程,计算 夹角区间对应的椭圆弧长值ar c_l en。5. 根据权利要求4所述的方法,其特征在于,所述夹角区间为[-V2,V2]。6. 根据权利要求1所述的方法,其特征在于,所述椭圆弧加权布局法包括以下步骤: S501,设定加权值集P= {pi,P2,…,Ρη-1},其中,η为叶节点数量; S502,根据叶节点数量和加权值集将夹角区间对应的椭圆弧长arc_len进行分割; S503,从起始叶节点开始,根据该叶节点Ieafi及相邻叶节点leafi+i对应的弧长,计算各 弧长对应的叶节点与根节点夹角的角度; S504,根据各弧长对应的角度及根节点坐标,计算各叶节点到根节点直线方程; S50 5,计算各叶节点到根节点直线与椭圆夹角区间对应的椭圆弧交点坐标。 S506,输出夹角区间所有叶节点初始坐标。7. 根据权利要求6所述的方法,其特征在于,所述各弧长对应的叶节点与根节点夹角的 角度根据如下公式计算,其中,a为椭圆长半轴,讲为起始节点离心角,μ为终止节点离心角,y为椭圆离心率,ω为 椭圆离心角,ω e [〇,2π],L为角度对应的弧长。8. 根据权利要求1所述的方法,其特征在于,所述角度折算布局法包括以下步骤: S601,计算角度折算因子m。 S602,根据角度折算因子m,计算新长半轴值new_a=m X a,新短半轴值为new_b=m X b; S6 O 3,根据新长半轴值n e w_a,新短半轴值n e w_b,新椭圆参数方程,计算夹角区间对应 的新的椭圆弧长new_arc_len; S604,根据新的椭圆弧长new_ar c_l en和叶节点数量,按照叶节点加权值集将新的椭圆 弧长new_arc_len进行分割; S605,从起始叶节点开始,根据该叶节点Ieafi及相邻叶节点leafi+i对应的弧长,重新计 算leaf i+i的坐标。 S606,直至输出所有叶节的最终坐标。9. 根据权利要求8所述的方法,其特征在于,所述角度折算因子根据如下公式计算,&表示椭圆长半轴,b表示椭圆短半轴,m表示角度折 算因子。10. 拓扑图末端树自动布局装置,其特征在于,包括存储单元、判断单元、布局分析单元 和显示单元,其中, 所述存储单元,用于存储拓扑图中各节点、路径关系、根节点,以及布局相关参数; 所述判断单元,用于从存储单元中获取所述拓扑图中各节点,以及路径关系,输出所有 拓扑图末端树; 所述布局分析单元,通过椭圆弧加权布局法和角度折算布局法计算所述拓扑图末端树 中各叶节点的最终坐标位置; 所述显示单元,根据各叶节点最终坐标、根节点最终坐标,以及路径关系绘制出各叶节 点,以及各叶节点与根节点间的连线。
【文档编号】H04L12/751GK106027322SQ201610633662
【公开日】2016年10月12日
【申请日】2016年8月4日
【发明人】吴文卿
【申请人】吴文卿
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1