Graphen zeichnen lassen



  • nicht dass ich wüsste



  • danke für die antworten!





  • Hi, kann mir jemand den Unterschied zwischen der BoostLib und dem Graphviz erklären?
    Und was mich auchnoch interessieren würde, wenn ich Graphviz in einem C++ Programm nutze, was bekomme ich dann als Ergebnis von der Lib? Nur ein Bild? Ich würde nämlich gerne einen Graph erstellen, in meinem Programm anzeigen und dann sollte man auch Knoten und Kanten anklicken können (Um Beschrifftungen oder ähnliches zu ändern).

    Vielleicht kann mir ja jemand weiterhelfen.

    Thx



  • Es heißt korrekt Boost Libs (plural!), da Boost "nur" eine Ansammlung von Libs ist. boost::graph ist eine dieser Libs, aus Boost. Alle Boost Libs sind kostenlos und du mußt nicht mal in deiner Applikation angeben, das du sie benutzt. Also eine Art BSD-Lizenz. Ich glaub die einzige Einschränkung ist, das man eine Lib nicht einfach als seine eigene "verkaufen" kann. Also, Boost einfach benutzten und gut ist.

    graphviz ist ein ganz anderes Projekt und das halt Graphen zeicnet und als PNG ausgibt. z.B. UML-Diagramme oder so.

    Nur ein Bild? Ich würde nämlich gerne einen Graph erstellen, in meinem Programm anzeigen und dann sollte man auch Knoten und Kanten anklicken können

    http://www.graphviz.org/cgi-bin/man?dotty

    dotty scheint schon ein fertiger Viewer und Editor zu sein. Mußt nur die EXE mit den genannten Paramtern starten. dotty ist wohl auch auf MS Windows portiert.

    Schau mal auf http://www.graphviz.org/ unter Viewers nach.



  • so ich bins mal wieder.

    Kennt sich eigentlich hier jemand gut aus mit Graphviz und VC++?

    Es müßte doch möglich sein, mit einer Library von Graphviz einen Graphen zu berechnen und dann den Graph in einer Bitmap oder so ausgeben. Diese Bitmap kann man dann im MFC anzeigen und vielleicht sogar die Knoten, bzw. Kanten "klickbar" machen. Geht das?

    In der Libguide.pdf steht :To use the Graphviz layout software, the graph must be created using the libgraph library.
    Ich habe aber keine libgraph.lib 😕

    Auf http://www.codeproject.com habe ich Beispiele für Graphviz gefunden, aber leider keines in VC++ wo die Lib benutzt 😞

    Wäre super wenn mir da jemand helfen könnte...

    Danke



  • Das Bitmap als solches ist nicht klickbar, aber wenn du es in HTML einbindest, kannst du es zu einer Image-Map erweitern (ich hab' Doxygen verwendet, damit ging's prima :)).



  • Eine Art Imagemap sollte man ja auch im MFC hinbekommen. Man muß ja nur die Klickkoordinaten abfragen. Das geht soweit ich weiß.

    Aber ich habe bis jetzt leider noch keinerleit Beispiel im Inet gefunden wo jemand eine Lib aus "graphviz" benutzt um einen Graphen zu erstellen. Ich habe die befürchtung, daß es wohl nicht so einfach ist. Hat denn hier niemand Erfahrung damit? Sonst muß ich mich wohl durch das Englische Handbuch quälen, aber beim Überfliegen hab ich nichts gefunden 😞

    Gehört Doxygen auch zu Graphviz? Ich programmiere eine Diplomarbeit und da das Programm dann wohl verwendet wird, sollte es auch Opensource sein, und man sollte möglichst garnichts zusätzliches installieren müssen. ⚠

    Naja vielleicht findet sich ja dochnoch jemand oder ich finds in den vielen HAndbüchern selbst noch raus... *hoff*



  • DarkSchwabe schrieb:

    Gehört Doxygen auch zu Graphviz?

    Nicht wirklich - Doxygen verarbeitet Javadoc-Kommentare /**...*/ in eine Dokumentation (HTML, HLP, RTF, LaTeX,...), der kann dafür auch Graphviz verwenden, um Ableitungsstrukturen etc. darzustellen.

    Und wenn man einem Graphen-Element das Attribut URL="..." verpasst, bekommt man eine ImageMap in der HTML-Ausgabe.



  • Okay, habe mich jetzt für die unsaubere Methode entscheiden und rufe einfach (bis jetzt noch) mit einer "Shell" das dot.exe Programm auf und lasse mir meinen Graphen zeichnen. Dann Lade ich das JPG mit GDI+ ein und letzt endlich habe ich von der dot.exe auchnoch die Koordinaten der Knoten. Allerdings in Inch und von Links UNTEN gerechnet.
    Durch die Funktion GetDeviceCaps kann man die DPI des Displays abrufen und dann einfach mit den Inch multiplizieren. Dann hat man auch die Pixel.

    Thx allerseids.


Anmelden zum Antworten