Ist Ihnen eine Open-Source-Implementierung von zwangsgesteuertem Layout in C ++ bekannt, das für GUIs verwendet wird? Vorzugsweise BSD / MIT / Apache oder andere (nicht-GPL) Lizenz.
Die ausgezeichnete Boost.Graph-Bibliothek bietet eine große Auswahl an Algorithmen, darunter einige Layout-Algorithmen. Ich würde empfehlen, entweder das Kamada-Kawai Federlayout oder Fruchterman-Reingold-Kraft-orientiertes Layout .
Boost-Lizenz ist sehr freizügig, also mach dir deswegen keine Sorgen.
Das erste Google-Ergebnis ist VTK . Ein anderer bringt mich zu vtkGraphLayoutView .
Haben Sie sich neato von graphviz . Dieser Leitfaden geht sogar detailliert auf die Verwendung von graphviz als Bibliothek ein. Das Handbuch enthält den fdp-Layout-Algorithmus, der genau Ihren Vorstellungen entspricht. All of graphviz fällt unter die allgemeine öffentliche Lizenz .
Übersicht
Es gibt einige Installationsschritte, wenn Sie diese Anwendung wünschen, alle Informationen sind in diesem Wiki. Es ist eine Anwendung, die auf VTK basiert. Die spezifische Funktion OverView hat die Fähigkeit, einen Graph von Informationen (nicht unbedingt geometrisch) in 2 Dimensionen darzustellen.
Wie bereits angedeutet, hat VTK ein kraftgesteuertes Graphlayout. Der Vorteil der Verwendung von etwas wie OverView ist, dass Sie leicht ein benutzerdefiniertes Plug-in für OverView erstellen können, das Sie machen würden, um Ihre Daten zu lesen und sie mit der Force-Directed-Layout-Strategie anzuzeigen.
Wenn Sie nicht von OverView abhängig sein möchten, ist es sehr einfach, Ihren Plug-in-Code zu extrahieren und nur OverView zu referenzieren, da das gesamte Rendering außerhalb Ihres Plug-Ins erfolgt.
Tags und Links c++ user-interface force-layout force-based-algorithm