CN101582793B - 网络拓扑图形化显示方法及装置 - Google Patents
网络拓扑图形化显示方法及装置 Download PDFInfo
- Publication number
- CN101582793B CN101582793B CN2009100119240A CN200910011924A CN101582793B CN 101582793 B CN101582793 B CN 101582793B CN 2009100119240 A CN2009100119240 A CN 2009100119240A CN 200910011924 A CN200910011924 A CN 200910011924A CN 101582793 B CN101582793 B CN 101582793B
- Authority
- CN
- China
- Prior art keywords
- node
- layout
- core
- child node
- angle
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种网络拓扑图形化显示方法及装置。方法包括:确定网络拓扑图的显示中心;布局核心节点,确定每个核心节点的扇区角度;对于未布局子节点,设定每一所述未布局子节点平分所述已布局父节点的扇区角;并且执行:(1)对于子节点P存在高级子节点或存在的初级子节点数大于1,则判断相邻同级未布局子节点Q;(2)若子节点Q不存在高级子节点,且初级子节点数为0,则将该子节点Q的占有角度加给子节点P;若所述子节点R不存在高级子节点,且初级子节点数为1,则将子节点R的占有角度的一半加给子节点P;(3)将每个未布局子节点布局在其拥有的扇区的中心线上。利用本发明,可以较好的解决网络可视化中的节点重叠问题。
Description
技术领域
本发明涉及网络可视化技术领域,特别涉及一种网络拓扑图形化显示方法及装置。
背景技术
网络可视化(Network Visualization)是指由点一线图显示网络拓扑结构的直观形态,用来表达和分析网络。随着各种网络的不断发展,特别是Internet的发展,大型网络越来越多,如何将其拓扑结构在有限的二维平面上通过点-线图进行直观显示,成为一个重要课题。
在网络可视化技术中,点-线图的点指一个给定大小的用于表示实际网络的节点的图标。由于大型网络中的节点众多,而实际的二维平面是有限的,比如通常的显示器分辨率为1024*768,同时显示人眼可识别的节点的图标必然要有一定的大小,因此,在网络可视化技术中将这些众多节点分布到一个有限的二维平面上时,就会容易导致很多节点重叠在一起,产生节点重叠问题。节点重叠导致人眼难以区别,进而导致节点识别错误。
现有技术中,公开号为CN1399443A的中国专利申请中提出了网络可视化的技术方案,包括:
S101:以根节点为圆心,将根节点的子节点在一固定半径的圆周上进行排列;
S102:将圆周构成的圆分为若干扇区,每个所述根结点的子节点位于一个扇区中,且位于扇区角的角平分线上,每个扇区角的大小用加权平均计算,权值为以相应子节点为根的子树的叶子节点数;
S103:依据S102的方式逐级为次级子节点定位,实现环形分布图示。
该现有技术的一个例子可以如图2所示,其中共有12个叶子节点,其根节点有3个子树,叶子节点数分别为2、4、6个。首先,以根节点所在位置为坐标原点,将根节点的扇区角定为360°,以150°作为根节点的位置角,然后,计算根节点的三个子节点所占据的扇区角,分别为360°*2/12、360°*4/12、360°*6/12即60°、120°、180°。进一步逐个计算它们的位置角,分别为150°-360°/2+60°/2、0°+(60°+120°)/2、90°+(120°+180°)/2即0°、90°、240°。有了三个节点的位置角,再设定一个连接父子节点的线段的长度值R,带入计算坐标值的公式,即可得到该三个节点的位置。下面再以上述第二个节点,即图2中的P(x0,y0)为例,继续演算其子节点的计算步骤,它有两个子节点,分别对应的叶子节点数为3、1,计算其所占据的扇区角,分别为120°*3/4、120°*1/4即90°、30°,继续计算它们的位置角,分别为:
α1=α0-β0/2+β1/2、α2=α1+(β1+β2)/2,代入数值计算得到
α1=90°-120°/2+90°/2、α2=75°+(90°+30°)/2=135。
将上述位置角可计算出节点C的坐标(x,y)以及其兄弟节点的坐标值,其中x1=x0+R*cos(α1);
y1=y0+R*sin(α1)。
以此类推,可以计算出图中所有节点的坐标值,同时将所有子节点与相应的父节点以线段相连接,便完成完整的拓扑图。
在对现有技术的研究和实践过程中,发明人发现现有技术中存在以下问题:
由于其“扇区角的大小用加权平均计算,权值为以相应子节点为根的子树的叶子节点数,再依此类推,为次级子节点定位,实现环形分布图示”,可知,扇区角的大小是相对固定的。然而,网络中的大量节点存在一定角度分布时,由于每个后续子节点分配的角度越来越小,同时仍然采用固定半径,则会存在后续子节点角度分配不足和半径有限而导致的节点重叠问题,即现有技术的这种方式仍没有较好的解决网络可视化中的节点重叠问题。
发明内容
本发明实施例的目的是提供一种网络拓扑图形化显示方法及装置,以实现较好的解决网络可视化中的节点重叠问题。
为解决上述技术问题,本发明实施例提供一种网络拓扑图形化显示方法及装置是这样实现的:
一种网络拓扑图形化显示方法,包括:
在有限二维平面内确定网络拓扑图的显示中心;
将核心节点布局在拓扑图的最内环上,该最内环的圆心为网络拓扑图的所述显示中心,根据每个核心节点的加权值确定其所占有的扇区角度,并将每个核心节点布局在其扇区的中心线上;
对于已布局父节点的未布局子节点的布局,设定每一所述未布局子节点平分所述已布局父节点的扇区角;并且,执行下述步骤(1)、(2)、(3):
(1)、对于未布局子节点P存在高级子节点或存在的初级子节点数大于1,则向该未布局子节点P的两侧判断同级未布局子节点Q;(2)、若所述同级未布局子节点Q不存在高级子节点,且初级子节点数为0,则将该子节点Q的占有角度加给上述未布局子节点P,继续判断同级未布局子节点;
若所述同级未布局子节点R不存在高级子节点,且初级子节点数为1,则将该子节点R的占有角度的一半加给上述未布局子节点P,继续判断同级未布局子节点;
(3)、将每个未布局子节点布局在其拥有的扇区的中心线上;
其中,所述高级节点为和其它节点有两条或以上直接链路相连接的节点,所述初级节点为和其它节点只有一条直接链路相连接的节点。
一种网络拓扑图形化显示装置,包括:
中心确定单元,用于在有限二维平面内确定网络拓扑图的显示中心;
核心节点布局单元,用于将核心节点布局在拓扑图的最内环上,该最内环的圆心为网络拓扑图的所述显示中心,根据每个核心节点的加权值确定其所占有的扇区角度,并将每个核心节点布局在其扇区的中心线上;
子节点布局单元,对于已布局父节点的未布局子节点的布局,设定每一所述未布局子节点平分所述已布局父节点的扇区角;并且,执行下述步骤(1)、(2)、(3):
(1)、对于未布局子节点P存在高级子节点或存在的初级子节点数大于1,则向该未布局子节点P的两侧判断同级未布局子节点Q;
(2)、若所述同级未布局子节点Q不存在高级子节点,且初级子节点数为0,则将该子节点Q的占有角度加给上述未布局子节点P,继续判断同级未布局子节点;
若所述同级未布局子节点R不存在高级子节点,且初级子节点数为1,则将该子节点R的占有角度的一半加给上述未布局子节点P,继续判断同级未布局子节点;
(3)、将每个未布局子节点布局在其拥有的扇区的中心线上;
其中,所述高级节点为和其它节点有两条或以上直接链路相连接的节点,所述初级节点为和其它节点只有一条直接链路相连接的节点。
由以上本发明实施例提供的技术方案可见,在有限二维平面内确定网络拓扑图的显示中心;将核心节点布局在拓扑图的最内环上,该最内环的圆心为网络拓扑图的所述显示中心,根据每个核心节点的加权值确定其所占有的扇区角度,并将每个核心节点布局在其扇区的中心线上;对于已布局父节点的未布局子节点的布局,设定每一所述未布局子节点平分所述已布局父节点的扇区角;并且,执行(1)、对于未布局子节点P存在高级子节点或存在的初级子节点数大于1,则向该未布局子节点P的两侧顺序判断相邻同级未布局子节点Q;(2)、若所述相邻同级未布局子节点Q不存在高级子节点,且初级子节点数为0,则将该子节点Q的占有角度加给上述未布局子节点P,继续判断相邻同级未布局子节点;若所述相邻同级未布局子节点R不存在高级子节点,且初级子节点数为1,则将该子节点R的占有角度的一半加给上述未布局子节点P,停止判断相邻同级未布局子节点;(3)、将每个节点布局在其拥有的扇区的中心线上,这样,可以较好的解决网络可视化中的节点重叠问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中网络可视化的技术方案;
图2为现有技术网络可视化实现的示意图;
图3为本发明实施例实施过程中网络拓扑在有限二维平面上的图形显示;
图4为本发明实施例实现网络拓扑图形化显示方法流程图;
图5为本发明实施例中对于有连接关系的同一级节点进行同向移动的示意图;
图6为本发明网络拓扑图形化显示装置一实施例的框图;
图7为本发明网络拓扑图形化显示装置另一实施例的框图;
图8为本发明网络拓扑图形化显示装置另一实施例的框图;
图9为本发明网络拓扑图形化显示装置另一实施例的框图;
图10为本发明网络拓扑图形化显示装置另一实施例的框图。
具体实施方式
本发明实施例提供一种网络拓扑图形化显示方法及装置。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
图3示出了本发明实施例实施过程中网络拓扑在有限二维平面上的图形显示。
需要说明的是,任何一个拓扑图的显示,都是通过节点坐标的确定来实现的。本发明实施例将节点分为两类:
第一类是和其它节点有两条或以上直接链路相连接的节点,称为高级节点,如图3中的节点A1、A5、A6等为高级节点。相对于父节点,该高级节点称为高级子节点。
第二类是和其它节点只有一条直接链路相连接的节点,称为初级节点,如图3中的节点A2、A4,A51等为初级节点。相对于父节点,该初级节点称为初级子节点。
实现网络拓扑图形化显示,需要确定网络拓扑中每个节点坐标(包括角度、半径)。本发明实施例实现网络拓扑图形化显示方法,包括如图4所示的流程,其确定每个节点坐标的过程包括:
S401:在有限二维平面内确定网络拓扑图的显示中心。
本步骤中,在给定的有限二维平面内确定网络拓扑图的显示中心,该中心可以人为给定。
例如,可以设定图3中的O点设为网络拓扑图的显示中心。
S402:将核心节点布局在拓扑图的最内环上,该最内环的圆心为网络拓扑图的所述显示中心,根据每个核心节点的加权值确定其所占有的扇区角度,并将每个核心节点布局在其扇区的中心线上。
核心节点可以采用人为设定方式确定,如可以人为设定如图3中的A、B、C为核心节点。核心节点还可以采用以下方式确定:首先找到rank值最大的两个高级节点N1,N2,确定为核心节点,加入核心节点集合,然后将和这两个节点N1,N2都有直接连接关系的节点也加入核心节点集合,最后得到的核心节点集合内的所有节点就为核心节点。若只有一个高级节点N3,则其自己为核心节点。这里的rank=coreLinks.size()+leafLinks.size()/4+1,rank为每个高级节点的加权值,coreLinks.size()为该核心节点的直接相连的高级子节点数,leafLinks.size()为该核心节点的直接相连的初级子节点数;此处的rank和下文的rank一样,此处说的是高级节点的rank,而上下文说的是核心节点的rank,核心节点也是高级节点,是高级节点中找到的。
如图3中,该最内环的圆心为网络拓扑图中心O。
根据每个核心节点的加权值确定其所占有的扇区角度,具体的,每个核心节点的扇区角度的可以确定如下:
首先通过公式:rank=coreLinks.size()+leafLinks.size()/4+1算出每个核心节点的加权值;rank为核心节点的加权值,coreLinks.size()为该核心节点的直接相连的高级子节点数,leafLinks.size()为该核心节点的直接相连的初级子节点数。
再通过公式:F_angle=rank×2×PI/sum确定每个核心节点的扇区角度。F_angle为节点的扇区角度,PI为数学中的圆周率,sum为所有核心节点的加权值的和。
每个核心节点的扇区角度确定后,该核心节点占有的扇区也随之确定,进而,可以将核心节点布局在其占有扇区的中心线上。如图3中的核心节点A布局在O1、O2为边的扇区A的中心线上(类似的,B节点布局在O1、O3为边的扇区B的中心线上,C节点布局在O3、O2为边的扇区C的中心线上)。
对核心节点布局时,核心节点相对于圆心的半径(即所述最内环的半径)由核心节点的下一级相邻子节点决定的。具体的,可以通过如下公式确定:R=(sum×max(dh,dw)/(2×PI)+kernelNode.size()×max(dh,dw)/2×PI)/2
R为核心节点半径,sum为上文所述的为所有核心节点的加权值的和,(dh,dw)为节点显示图标的大小,其中dh为图标的高度,dw为图标的宽度,kernelNode.size()为核心节点的数量,PI为数学中的圆周率。
由S402,可以确定核心节点的半径和角度,从而完成了对核心节点在有限二维平面上的布局。接下来,依次对核心节点的相邻子节点、这些子节点的子节点、及后续子节点在有限二维平面上进行布局。
S403:对于已布局父节点的未布局子节点的布局,设定每一所述未布局子节点平分所述已布局父节点的扇区角;并且,执行下述步骤(1)、(2)、(3):
(1)、对于未布局子节点P存在高级子节点或存在的初级子节点数大于1,则向该未布局子节点P的两侧顺序判断相邻同级未布局子节点Q;
(2)、若所述相邻同级未布局子节点Q不存在高级子节点,且初级子节点数为0,则将该子节点Q的占有角度加给上述未布局子节点P,继续判断相邻同级未布局子节点;
若所述相邻同级未布局子节点R不存在高级子节点,且初级子节点数为1,则将该子节点R的占有角度的一半加给上述未布局子节点P,停止判断相邻同级未布局子节点;
(3)、将每个未布局子节点布局在其拥有的扇区的中心线上。
首先,对于已布局父节点的未布局子节点的布局,设定每一所述未布局子节点平分所述已布局父节点的扇区角。
接着,对于满足coer_Size!=0或leaf_Sizs>1的未布局子节点(即存在高级子节点或初级子节点数大于1,设为P),如果同一级别的其它某一节点满足coer_Size=0且leaf_Sizs=0(即不存在高级子节点和初级子节点,设为Q),则将该子节点Q的占有角度加给上述未布局子节点P,继续判断相邻同级未布局子节点;
或者,对于满足coer_Size!=0或leaf_Sizs>1的未布局子节点(即存在高级子节点或初级子节点数大于1,设为P),如果同一级别的其它某一节点满足coer_Size=0且leaf_Sizs=1(即不存在高级子节点且初级子节点不大于1、设为R),则将该子节点R的占有角度的一半加给上述未布局子节点P,停止判断相邻同级未布局子节点。
最后,将每个未布局子节点布局在其拥有的扇区的中心线上。如图3中,确定于A1,A2,A3,A4,A5,A6,A7,A8节点的角度。其中A3节点的子节点的初级子节点为A31,A32,A33,A34,A35,A36,A37,A38,即共有8个初级子节点,因而初级子节点数大于1,可见满足前面(1)的条件,为P节点。于是,在对A1~A8节点的角度先设定为每个节点平分父节点A的扇区角度后,例如对于A2和A4这样的同一级子节点,由于A2和A4的子节点满足前面的条件(2)(即coer_Size=0且leaf_Sizs=0,为Q节点),则将A2和A4点的扇区角度加到A3点的扇区角度中。每个节点都有自己的扇区角度,既扇区角度的起始角度和终止角度,也就是扇区两个边界各自相对于圆心的角度,将A2的角度加到A3中,就是A3的扇区角度把A2的扩展进来,A3的扇区的边界为A2的扇区边界位置,同理A4的扇区角度也是像A2一样加入A3中,从而A3的扇区角度加大。类似的,由于A1和A5节点满足前面的条件(2)(coer_Size=0且leaf_Sizs=1),则将A1和A5节点的扇区角度的一半加到A3点的扇区角度中。对于其它节点,也依此方式处理。
可见,相对于现有技术中的图1示例,由于合理利用了相邻节点的扇区角度,子节点的布局可以位于合理的角度范围内,从而最大限度地解决了节点重叠问题。而且,在拓扑布局显示中,由于每个节点都有自己的角度,他们都在自己的父节点的最合理角度范围内,保证了他们与父节点的连线不会与其它节点与父节点的连线交叉,从而可以减少大量交叉线,拓扑图布局十分对称,美观。
此外,为了使前述布局显示的范围最小,即全图平均半径最小,以实现在有限的二位平面上合理显示,本发明实施例还给出一取半径的方法,具体如下:
当每个节点布局的角度被确定后,对所有节点按父节点半径MR增加标配半径S后得到的半径R,再根据每个节点图标的大小(dh,dw),判断是否满足公式max(dw,dh)×N>(S+MR)×F_Angle。
上面公式中,(dw,dh)为图标大小,N为父节点的未布局节点的个数,S为标配半径,MR为父节点的半径,F_Angle为父节点的扇区角度大小。上面公式的右边为弧长公式,即以(S+MR)为半径、F_Angle角度对应的弧长。则该公式表示,所有未布局节点的图标最大值之和是否大于半径为(S+MR)、角度为F_Angle所对应的弧长。
若不满足上述公式,说明标配半径S可以布局以使节点不重叠,则半径R=S+MR。
若满足上面公式,则调整半径R=max(dw,dh)×N/F_Angle。
这样可以得到合理布局节点的最短半径R。
此外,本发明实施例中,对于有连接关系的同一级节点,为了避免其连线跨越其它连线,可以采用同侧移动技术。具体的,对于每对有连线的节点,若其父节点不同,则将每对节点对称移动到其所在扇形的同一侧,以使同一级的有连接的节点与其它连接不交叉或最少交叉,且平均长度最短。这样,可以避免由于存在过多连线交叉带来的视觉上难以识别的问题。
如图5中,A节点和B节点相连接,并且A节点和B节点的父节点不同,这时可以采用同向移动方法,将A节点与A’节点交换位置,B节点与B’节点交换位置,使得A节点和B节点移到同侧,使得A’与B’的连线与其它没有交叉。类似的,C与D之间存在连线,则将C和D移动到同侧,具体的,通过将C与C’交换位置,将D与D’交换位置,减少与交叉线。
上述方法实施例由于将有连接关系的点移动到同一侧,进一步使这些节点间交叉线减少,且其连接半径将进一步缩小,从而使全图平均半径进一步最短,可以避免由于存在过多连线交叉带来的视觉上难以识别的问题,且这种方式使拓扑图显示更为美观。
以下介绍本发明一种网络拓扑图形化显示装置实施例,图6示出了该装置实施例的框图,如图6中所示,该装置实施例包括:
中心确定单元61,用于在有限二维平面内确定网络拓扑图的显示中心;
核心节点布局单元62,用于将核心节点布局在拓扑图的最内环上,该最内环的圆心为网络拓扑图的所述显示中心,根据每个核心节点的加权值确定其所占有的扇区角度,并将每个核心节点布局在其扇区的中心线上;
子节点布局单元63,对于已布局父节点的未布局子节点的布局,设定每一所述未布局子节点平分所述已布局父节点的扇区角;并且,执行下述步骤(1)、(2)、(3):
(1)、对于未布局子节点P存在高级子节点或存在的初级子节点数大于1,则向该未布局子节点P的两侧顺序判断相邻同级未布局子节点Q;
(2)、若所述相邻同级未布局子节点Q不存在高级子节点,且初级子节点数为0,则将该子节点Q的占有角度加给上述未布局子节点P,继续判断相邻同级未布局子节点;
若所述相邻同级未布局子节点R不存在高级子节点,且初级子节点数为1,则将该子节点R的占有角度的一半加给上述未布局子节点P,停止判断相邻同级未布局子节点;
(3)、将每个未布局子节点布局在其拥有的扇区的中心线上。
优选地,所述装置中,每个核心节点的扇区角度的确定如下,
首先通过公式:rank=coreLinks.size()+leafLinks.size()/4+1算出每个核心节点的加权值;rank为核心节点的加权值,coreLinks.size()为该核心节点的直接相连的高级子节点数,leafLinks.size()为该核心节点的直接相连的初级子节点数。
再通过公式:F_angle=rank×2×PI/sum确定每个核心节点的扇区角度。F_angle为节点的扇区角度,PI为数学中的圆周率,sum为所有核心节点的加权值的和。
优选地,所述装置还可以如图7所示,还包括:
核心节点半径设定单元64,用于将核心节点相对于圆心的半径设定为R=(sum×max(dh,dw)/(2×PI)+kernelNode.size()×max(dh,dw)/2×PI)/2
R为核心节点半径,sum为上述为所有核心节点的加权值的和,(dh,dw)为节点显示图标的大小,kernelNode.size()为核心节点的数量,PI为圆周率。
优选地,所述装置还可以如图8所示,还包括:
子节点半径设定单元65,用于对所有节点按父节点半径MR增加标配半径S后得到的半径R,再根据每个节点图标的大小(dh,dw),判断是否满足公式max(dw,dh)×N>(S+MR)×F_Angle;
若不满足上述公式,则设定半径R=S+MR;
若满足上面公式,则设定半径R=max(dw,dh)×N/F_Angle;
其中,(dw,dh)为图标大小,N为父节点的未布局节点的个数,S为标配半径,MR为父节点的半径,F_Angle为父节点的扇区角度大小。
优选地,所述装置中还可以如图9所示,还包括:
移动单元66,对于每对有连线的节点,若其父节点不同,则将每对节点对称移动到其所在扇形的同一侧。
优选地,所述装置中还可以如图10所示,还包括核心节点确定单元67,用于通过如下方式确定核心节点:首先找到rank值最大的两个高级节点N1,N2,确定为核心节点,加入核心节点集合,然后将和这两个节点N1,N2都有直接连接关系的节点也加入核心节点集合,最后得到的核心节点集合内的所有节点就为核心节点。
需要指出的是,上述核心节点半径设定单元64、子节点半径设定单元65、移动单元66、核心节点确定单元67可以集成于同一装置中。
利用上述本发明装置实施例实现网络拓扑图形化显示的方法与前述方法实施例类似,在此不再赘述。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本发明可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
Claims (10)
1.一种网络拓扑图形化显示方法,其特征在于,包括:
在有限二维平面内确定网络拓扑图的显示中心;
将核心节点布局在拓扑图的最内环上,该最内环的圆心为网络拓扑图的所述显示中心,根据每个核心节点的加权值确定其所占有的扇区角度,并将每个核心节点布局在其扇区的中心线上;
对于已布局父节点的未布局子节点的布局,设定每一所述未布局子节点平分所述已布局父节点的扇区角;并且,执行下述步骤(1)、(2)、(3):
(1)、对于未布局子节点P存在高级子节点或存在的初级子节点数大于1,则向该未布局子节点P的两侧判断同级未布局子节点Q;(2)、若所述同级未布局子节点Q不存在高级子节点,且初级子节点数为0,则将该子节点Q的占有角度加给上述未布局子节点P,继续判断同级未布局子节点;
若所述同级未布局子节点R不存在高级子节点,且初级子节点数为1,则将该子节点R的占有角度的一半加给上述未布局子节点P,继续判断同级未布局子节点;
(3)、将每个未布局子节点布局在其拥有的扇区的中心线上;
其中,所述高级节点为和其它节点有两条或以上直接链路相连接的节点,所述初级节点为和其它节点只有一条直接链路相连接的节点。
2.如权利要求1所述的方法,其特征在于,所述核心节点通过以下方式确定:
首先找到rank值最大的两个高级节点N1,N2,确定为核心节点,加入核心节点集合,然后将和这两个节点N1,N2都有直接连接关系的节点也加入核心节点集合,最后得到的核心节点集合内的所有节点为核心节点;其中所述rank值为高级节点的加权值。
3.如权利要求1所述的方法,其特征在于,所述根据每个核心节点的加权值确定其所占有的扇区角度,包括:
首先通过公式:rank=coreLinks.size()+leafLinks.size()/4+1算出每个核心节点的加权值;rank为核心节点的加权值,coreLinks.size()为该核心节点的直接相连的高级子节点数,leafLinks.size()为该核心节点的直接相连的初级子节点数;
再通过公式:F_angle=rank×2×PI/sum确定每个核心节点的扇区角度;F_angle为节点的扇区角度,PI为数学中的圆周率,sum为所有核心节点的加权值的和。
4.如权利要求1所述的方法,其特征在于,将核心节点相对于圆心的半径设定为R=(sum×max(dh,dw)/(2×PI)+kernelNode.size()×max(dh,dw)/2×PI)/2
R为核心节点半径,sum为上述为所有核心节点的加权值的和,(dh,dw)为节点显示图标的大小,其中dh为图标的高度,dw为图标的宽度,kernelNode.size()为核心节点的数量,PI为圆周率。
5.如权利要求1所述的方法,其特征在于,还包括对所述子节点的半径采用如下方式设置:
对所有未布局的子节点按父节点半径MR增加标配半径S后得到的半径R,再根据每个节点图标的大小(dh,dw),判断是否满足公式max(dw,dh)×N>(S+MR)×F_Angle;
若不满足上述公式,则设定半径R=S+MR;
若满足上面公式,则设定半径R=max(dw,dh)×N/F_Angle;
其中,(dw,dh)为图标大小,dh为图标的高度,dw为图标的宽度,N为父节点的未布局子节点的个数,S为标配半径,MR为父节点的半径,F_Angle为父节点的扇区角度大小。
6.如权利要求1所述的方法,其特征在于,还包括:
对于每对有连线的节点,若其父节点不同,则将每对节点对称移动到其所在扇形的同一侧,具体为:采用同向移动方法,将有连接关系的点移动到每对节点所在扇形的同一侧。
7.一种网络拓扑图形化显示装置,其特征在于,包括:
中心确定单元,用于在有限二维平面内确定网络拓扑图的显示中心;
核心节点布局单元,用于将核心节点布局在拓扑图的最内环上,该最内环的圆心为网络拓扑图的所述显示中心,根据每个核心节点的加权值确定其所占有的扇区角度,并将每个核心节点布局在其扇区的中心线上;
子节点布局单元,对于已布局父节点的未布局子节点的布局,设定每一所述未布局子节点平分所述已布局父节点的扇区角;并且,执行下述步骤(1)、(2)、(3):
(1)、对于未布局子节点P存在高级子节点或存在的初级子节点数大于1,则向该未布局子节点P的两侧判断同级未布局子节点Q;
(2)、若所述同级未布局子节点Q不存在高级子节点,且初级子节点数为0,则将该子节点Q的占有角度加给上述未布局子节点P,继续判断同级未布局子节点;
若所述同级未布局子节点R不存在高级子节点,且初级子节点数为1,则将该子节点R的占有角度的一半加给上述未布局子节点P,继续判断同级未布局子节点;
(3)、将每个未布局子节点布局在其拥有的扇区的中心线上;
其中,所述高级节点为和其它节点有两条或以上直接链路相连接的节点,所述初级节点为和其它节点只有一条直接链路相连接的节点。
8.如权利要求7所述的装置,其特征在于,还包括核心节点确定单元,用于通过如下方式确定核心节点:首先找到rank值最大的两个高级节点N1,N2,确定为核心节点,加入核心节点集合,然后将和这两个节点N1,N2都有直接连接关系的节点也加入核心节点集合,最后得到的核心节点集合内的所有节点就为核心节点;其中所述rank值为高级节点的加权值。
9.如权利要求7所述的装置,其特征在于,还包括:
子节点半径设定单元,用于对所有未布局的子节点按父节点半径MR增加标配半径S后得到的半径R,再根据每个节点图标的大小(dh,dw),判断是否满足公式max(dw,dh)×N>(S+MR)×F_Angle;
若不满足上述公式,则设定半径R=S+MR;
若满足上面公式,则设定半径R=max(dw,dh)×N/F_Angle;
其中,(dw,dh)为图标大小,dh为图标的高度,dw为图标的宽度,N为父节点的未布局子节点的个数,S为标配半径,MR为父节点的半径,F_Angle为父节点的扇区角度大小。
10.如权利要求7所述的装置,其特征在于,还包括:
移动单元,对于每对有连线的节点,若其父节点不同,则将每对节点对称移动到其所在扇形的同一侧,具体为:采用同向移动方法,将有连接关系的点移动到每对节点所在扇形的同一侧。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100119240A CN101582793B (zh) | 2009-06-05 | 2009-06-05 | 网络拓扑图形化显示方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100119240A CN101582793B (zh) | 2009-06-05 | 2009-06-05 | 网络拓扑图形化显示方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101582793A CN101582793A (zh) | 2009-11-18 |
CN101582793B true CN101582793B (zh) | 2011-03-30 |
Family
ID=41364768
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009100119240A Active CN101582793B (zh) | 2009-06-05 | 2009-06-05 | 网络拓扑图形化显示方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101582793B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101882179B (zh) * | 2010-06-18 | 2013-08-21 | 中兴通讯股份有限公司 | 一种绘制拓扑图的方法及装置 |
CN102496881B (zh) * | 2011-12-09 | 2015-02-04 | 北京科东电力控制系统有限责任公司 | 一种面向配电网运行负载状态监控的可视化实现方法 |
CN102571433B (zh) | 2012-01-11 | 2014-07-30 | 华为技术有限公司 | 呈现网络路径的方法和装置 |
CN105046652B (zh) * | 2015-04-30 | 2017-11-21 | 哈尔滨工程大学 | 一种基于库仑力模型的图形节点遮挡消除方法 |
CN106599347A (zh) * | 2016-10-28 | 2017-04-26 | 华东师范大学 | 基于视觉感知的图布局评估方法 |
CN106685716B (zh) * | 2016-12-29 | 2019-04-26 | 平安科技(深圳)有限公司 | 网络拓扑自适应的数据可视化方法及装置 |
CN108696380B (zh) * | 2017-04-11 | 2021-05-25 | 深圳市江机实业有限公司 | 宽带载波路由节点拓扑图的节点角色自动显示方法 |
CN107749803B (zh) * | 2017-10-16 | 2021-08-31 | 浙江宇视科技有限公司 | 一种网络拓扑布局方法及装置 |
CN109086315B (zh) * | 2018-06-27 | 2021-07-20 | 创新先进技术有限公司 | 一种er图的布局方法和装置 |
CN109408674B (zh) * | 2018-09-14 | 2020-04-07 | 深圳大学 | 基于仙人掌树的数据可视化方法、装置、设备及存储介质 |
CN109639583A (zh) * | 2018-12-19 | 2019-04-16 | 迈普通信技术股份有限公司 | 拓扑图绘制方法、装置及电子设备 |
CN111581464A (zh) * | 2020-04-10 | 2020-08-25 | 北京明略软件系统有限公司 | 一种数据信息的展示方法和装置 |
CN113704943B (zh) * | 2021-09-10 | 2024-04-05 | 京东科技信息技术有限公司 | 节点拓扑图布局方法及装置、计算机存储介质、电子设备 |
CN115001981B (zh) * | 2022-05-30 | 2024-05-31 | 上海达梦数据库有限公司 | 主备集群拓扑图的布局方法、装置、设备、介质及产品 |
-
2009
- 2009-06-05 CN CN2009100119240A patent/CN101582793B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN101582793A (zh) | 2009-11-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101582793B (zh) | 网络拓扑图形化显示方法及装置 | |
CN102495712B (zh) | 一种基于多个显示终端的地图拼接显示方法 | |
CN103177034B (zh) | 一种路网中平行线的生成方法及装置 | |
CN101702655A (zh) | 网络拓扑图的布局方法和系统 | |
JPH0830799A (ja) | グラフ自動レイアウト方法 | |
CN113114491B (zh) | 一种网络拓扑的构建方法、装置和设备 | |
CN106533966A (zh) | 一种网络服务的资源编排方法及装置 | |
CN109684739B (zh) | 一种基于bim模型的钢筋参数生成方法、装置及设备 | |
CN109462508A (zh) | 节点部署方法、装置和存储介质 | |
JP6201440B2 (ja) | 配置算出方法、及びプログラム | |
CN104160668A (zh) | 无线对接自动配置和优化系统 | |
CN107302849A (zh) | 一种光路径的分配方法及装置 | |
CN103647661A (zh) | 一种拓扑视图生成方法及装置 | |
Adams et al. | Modeling the spread of fault in majority-based network systems: Dynamic monopolies in triangular grids | |
CN115630698B (zh) | 基于力引导图的知识图谱可视化方法、装置及电子设备 | |
CN102622461A (zh) | 一种根据三维可行路径生成三维管道的方法 | |
CN112558937A (zh) | 页面管理方法、装置、电子设备、介质及产品 | |
CN108427795A (zh) | 一种基于bim的构件图形展示方法及装置 | |
CN107134007A (zh) | 交通基础设施的三维快速建模方法 | |
CN104636188B (zh) | 一种仿真方法及系统 | |
CN109493423A (zh) | 三维地球模型表面两点的中点位置的计算方法和装置 | |
CN109976605A (zh) | 班牌内容显示方法、装置及存储介质 | |
CN113704943B (zh) | 节点拓扑图布局方法及装置、计算机存储介质、电子设备 | |
CN108022309A (zh) | 三维模型智能拼接方法 | |
CN115063560A (zh) | 一种运动状态下三维目标实时追踪方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |