32 Stimmen

Welche Optionen gibt es für das Layout gerichteter oder ungerichteter Graphen in .NET?

Unter Grafik Ich meine damit etwas, das diesen Bildern ähnelt:

Die ideale Lösung wäre:

  • nur verwalteten Code verwenden
  • Ausgabe in ein Bitmap-Bild ermöglichen
  • Ausgabe an WPF-Elemente erlauben
  • eine Art interaktive Oberfläche für die Darstellung des Graphen, die das Zoomen, Schwenken und die Neuanordnung von Knoten unterstützt

Ich bin auch daran interessiert, von Projekten zu hören, die möglicherweise als Ausgangspunkt für diese Art von Arbeit dienen könnten. Wenn es eine gewisse Entwicklung erfordert, um das zu erreichen, was ich will, dann bin ich bereit, es in Angriff zu nehmen. Der komplexeste Teil dieses Ziels scheint darin zu bestehen, das Diagrammlayout in einem vernünftigen Zeitrahmen zu erstellen.

0 Stimmen

Als Notiz an mich selbst gibt es hier eine nett aussehende Clojure-Bibliothek lisperati.com/vijual

0voto

Ed James Punkte 10129

Als ich im letzten Sommer einige Arbeiten mit Diagrammen durchführte, fand ich, dass die beste Option, die nicht übermäßig teuer war, darin bestand, sie manuell in SVG zu erstellen, d. h. eine SVG-Datei aus einer Reihe von Zeichenketten zu schreiben und diese mit Inkscape in ein Bild zu rendern.

Dies ist keine schnelle und einfache Lösung, aber sie ermöglicht eine nahezu unbegrenzte Anpassung, so dass es nützlich sein kann, wenn Sie die Diagramme organisieren oder eine räumliche Organisation auf der Grundlage von Verbindungen usw. vornehmen müssen.

0voto

freddy smith Punkte 3207

Ich habe auf GLEE/MSAGL gespielt und das eigentliche Layout an sich ist gut genug für das, was ich brauche, aber ich möchte in der Lage sein, mehr Kontrolle über das, was tatsächlich innerhalb der Knoten ist, anstatt nur einen einzigen Wert wie jetzt zu haben.

Ich möchte zum Beispiel "Details" haben, die ausgeblendet werden, bis ich auf einen Expander im Knoten klicke, oder den Knoten doppelt anklicke oder mit der Maus darüber fahre.

Angenommen, GLEE kann dies nicht tun, gibt es jetzt irgendwelche reinen .NET-Lösungen, die dies tun könnten?

0voto

Mike Post Punkte 6278

Northwoods bietet eine reine .NET-Lösung in ihrem GoLayout Produkt. Sie bieten Baum, Kraft gerichtet, und geschichteten Digraphen (die nicht ganz ein Sujiyama-Effekt ist, aber nicht zu weit weg für viele, wenn nicht die meisten Datensätze). Mit 1790 $/Sitzplatz ist es teuer. Es gibt auch einige Einschränkungen: Vor allem sind die Implementierungen für "menschlich lesbare" Graphen ausgelegt. Ich habe ihm Datensätze mit über 5.000 Knoten gegeben und hatte keine Probleme, aber ich kann auch Datensätze mit weniger als 500 Knoten erzeugen, bei denen es zu einem Stapelüberlauf kommt (Rekursion zu tief). Abhängig von Ihrer Domäne, kann es eine gute Lösung sein (oder auch nicht). Wenn Sie ein allgemeines Layout-Paket benötigen, das jeden Datensatz verarbeiten kann, würde ich GraphViz gegenüber Northwoods vorschlagen.

Ich habe noch keine ihrer WPF-Fähigkeiten zu verwenden, aber ich weiß, dass sie sie haben. Ich habe mit ihren Sachen in WinForms Land für eine Weile gewesen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X