Визуализация графика (график повышения)

У меня есть программа на С++, использующая библиотеку графов повышения. Интересно, есть ли способ визуализировать граф (узлы и, возможно, ребра) после определенных значений позиции, содержащихся в узлах. Посмотрите примеры изображений ниже, чтобы понять, что я хочу визуализировать: http://img11.hostingpics.net/pics/647608graphViz.png

Спасибо.


person shn    schedule 28.10.2011    source источник


Ответы (1)


Вам повезло.

График Boost может сериализоваться в язык dot (язык, используемый GraphViz) и десериализоваться из него. Несколько примеров есть в (бесплатной) книге Boost Graph Library и на сайте.

См., например: http://www.boost.org/doc/libs/release/libs/graph/doc/write-graphviz.html

Если вы возьмете вывод примера на предыдущую веб-страницу и запустите

dot -Tpng dot > test.png

Вы получите примерно следующее изображение:

введите здесь описание изображения

Вот прямая ссылка на пример использования динамических свойств

person sehe    schedule 28.10.2011
comment
Это потрясающе, спасибо за ответ, я это сделаю. Но можно ли визуализировать граф, используя ребра и вершины типа setS (не vecS)? Потому что я вижу, что во всех примерах графвиза граф использует vecS (у которых есть индекс). - person shn; 28.10.2011
comment
Поскольку мой граф использует setS для вершины, я должен либо предоставить карту свойств vertex_index для моего графа, либо указать явный аргумент vertex_id для write_graphviz, иначе write_graphviz не будет работать. Можете ли вы привести очень простой пример того, как предоставить карту свойств vertex_index для моего графа или указать явный аргумент vertex_id для write_graphviz? Мой граф определяется как: typedef adjacency_list‹setS, setS, undirectedS, NodeData, EdgeData›Graph; Где NodeData и EdgeData являются структурами. - person shn; 29.10.2011