Я пытаюсь построить график, используя алгоритм 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());
Некоторые графики работают нормально, в то время как другие выводят, как это
Я думаю, что макет в порядке, но длина ребер должна быть увеличена, но я не знаю, как
Вы можете использовать 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());
Других решений пока нет …