2013-04-09 3 views
5

Ich weiß, dass es mehrere Versionen von Graphviz als eine Bibliothek gibt. Aber ich bin ein wenig verwirrt darüber, welche als aktuell + empfohlen gilt. Ich möchte einige Graphen aus einer Linux-GUI-Anwendung erzeugen und anzeigen.Welche graphviz-Bibliotheks-API wird für ein C++ - Projekt empfohlen, das einige Diagramme generieren muss?

Laut http://www.graphviz.org/doc/libgraph/Agraph.pdf auf Seite 22 wurde Libgraph durch Cgraph ersetzt. Aber das Dokument heißt Agraph, was ich seltsam finde.

Auf Seite 23 heißt es auch, dass Lgraph ein C++ - Nachfolger von Cgraph ist, und da ich C++ verwende, würde ich gerne mehr wissen, aber ich kann Lgraph nirgends finden.

Vielleicht verwandt, ich sehe, es gibt eine Boost-Bibliothek namens BGL, die das Importieren und Exportieren von Graphviz-Dateien unterstützt. Auf der Suche nach Meinungen darüber, ob es vorzuziehen ist, BGL über Graphviz direkt oder Lgraph zu verwenden.

Es sieht aus wie auf Ubuntu wenn ich sudo apt-get install libgraphviz-dev bekomme ich Cgraph. In diesem Fall lautet diese Frage entweder zu bestätigen, dass Cgraph die empfohlene Bibliothek ist, und zu fragen, ob entweder Lgraph oder BGL in Frage kommen.

+0

Die CAPI von Cgraph (http://www.graphviz.org/doc/libguide/libguide.pdf) sieht nicht schlecht aus, es ist ziemlich klassisch objektorientiert, außer in C. –

+0

Vague Frage geschrieben. "Generiere einige Graphen" - was bedeutet das? Graphviz erstellt Diagramme, so dass sie klar angezeigt werden können. BGL ist ein Framework zum Verarbeiten von Graphen, um Fragen wie den kürzesten Weg zu beantworten. Aber Sie möchten Grafiken generieren ... von was? – ravenspoint

+0

@ravenspoint: Ich habe interne Daten, die ich als .gv-Datei zum Beispiel ausgeben kann. Ich kann manuell eine Menge .gv-Dateien erstellen und dann system() -Aufrufe ausführen, um dot zu fragen, diese in Graphen umzuwandeln. Aber ich wollte stattdessen alles mit einer Graphviz-API machen, anstatt Graphviz extern aufrufen zu müssen. –

Antwort

2

BGL bietet keine interaktiven Schnittstellen zu Graphviz; Wenn Sie das brauchen, müssen Sie eine der nativen Bibliotheken von Graphviz wie cgraph verwenden. BGL kann Dateien im Graphviz-Format lesen und ausgeben, aber das scheint nicht das zu sein, wonach Sie suchen; Es hat auch einige eigene Layout-Algorithmen, aber sie sind nicht so ausgefeilt wie die in Graphviz.

+0

Hat die Klausel "aber sie sind nicht so ausgefeilt wie die in Graphviz" immer noch für Boost 1.59 (http://www.boost.org/doc/libs/1_59_0/libs/graph/doc/topology.html)? – AlwaysLearning

Verwandte Themen