提升Kamada-Kawai弹簧布局顶点碰撞

时间:2016-06-29 13:47:45

标签: c++ boost boost-graph graph-layout

我尝试使用boost Kamada-Kawai-spring-layout算法来布局图形。问题是顶点在某些图形中相互碰撞。我添加了重量为1.0的所有边缘

add_edge(a,b,1.0,g);

然后我将图形布局如下:

minstd_rand gen;
topology_type topo(gen,0,0,widht,height);
random_graph_layout(g,position,topo);
bool kamada=kamada_kawai_spring_layout(g,position,get(edge_weight,g),topo,side_length(width),kamada_kawai_done());

有些图表工作正常,而其他图表产生这样的输出 enter image description here

我认为布局很好但是边缘的长度需要增加,但我不知道如何

1 个答案:

答案 0 :(得分:1)

你可以使用boost :: edge_length(e)代替boost :: side_length(s)来控制图上的边长

bool kamada=kamada_kawai_spring_layout(g,position,get(edge_weight,g),topo,boost::edge_length(length),kamada_kawai_done());