搞清楚平面布局类的各个参数

orthoLayout

此类的getBoundingBox()函数可以返回包围盒

 

separation cOverhang options margin 结果  
20 0.4 0 0 7月23日_连通分量   
1 0.4 0 0 7月23日_聚类_02 

可见separation控制线之间的距离

此值不能是0

20  10 0 0 7月23日_宽高_03  cOverhang似乎没什么影响,但是它的值也不能是0
20 0.4 0 100 7月23日_聚类_04  margin对结果没有什么影响

当结果有多个连通分量时,margin控制不同连通分量之间的距离
20 0.4 1 0 7月23日_宽高_05   
20 0.4 2 0 7月23日_聚类_06  发生了一些变化,但不知道有什么意义
20 0.4 4 0 7月23日_宽高_07  发生了一些变化,但不知道
有什么意义

 

 

一些参数的意义

pageRatio 放置不同的连通分量时,最终结果的要求宽高比,一般为1

margin 当结果有多个连通分量时,控制不同连通分量之间的距离

 

布局聚类图的代码

 

ClusterGraph   CG(G);

SList<node>     c1List, c2List, c3List;

for (int i = 0; i < nNodes/3; ++i)

c1List.pushBack(nodeArray[i]);

for (int i = nNodes/3; i < nNodes/3*2; ++i)

c2List.pushBack(nodeArray[i]);

for (int i = nNodes/3*2; i < nNodes; ++i)

c3List.pushBack(nodeArray[i]);

cluster c1 = CG.createCluster(c1List);

cluster c2 = CG.createCluster(c2List);

cluster c3 = CG.createCluster(c3List);

ClusterGraphAttributes  CGA(CG, 

ClusterGraphAttributes::nodeId|

ClusterGraphAttributes::nodeGraphics|

ClusterGraphAttributes::edgeGraphics);

CGA.setAllWidth(20);

CGA.setAllHeight(20);

CGA.clusterLineWidth(c1) = 5;

CGA.clusterLineWidth(c2) = 5;

CGA.clusterLineWidth(c3) = 5;

 

ClusterPlanarizationLayout cpl;

ClusterOrthoLayout* col = new ClusterOrthoLayout;

col->separation(10);

col->margin(30);

cpl.setPlanarLayouter(col);

cpl.call (G, CGA, CG,false);

结果如下:

7月23日_聚类_08