Graph Visualizition

Nico1999

Aktives Mitglied
Hi ich möchte mal alle Graph Algorithmen wie tiefen, breiten suche netzwerk flow usw mir in einem Graphen bildlich zum besseren verständis progammieren.
Java:
record Edge(from, to, cost){
    
}
class graphAlgorithmus{
    ArrayList<Edge> graph;
    
    graphAlgotithmus(ArrayList<Edge> graph){
        this.graph=graph
    }
}
das ist mal mein grundgerüst ich wollte nur fragen wie ich das mit der graphischen Ausgabe machen soll die Algorithmen möchte ich mir selber erarbeiten.
 

httpdigest

Top Contributor
Das "einfachste" wäre vermutlich, .dot Dateien für Graphviz zu generieren für jeden Zustand eines Graphen bzw. einer Traversierung durch den Graphen und dann jedes Bild mittels Graphviz layouten und als z.B. svg oder png rendern zu lassen.
 

looparda

Top Contributor
Ich habe gute Erfahrungen gemacht ein dot File zu generieren und es in https://dreampuf.github.io/GraphvizOnline/ zu pasten zur Darstellung. Einen einfachen Graphen kann man so erstellen, aber man kann auch Label und Farben hinzufügen und mit dot darstellen:
Java:
// based on https://github.com/google/guava/issues/3809#issuecomment-595464875
public class GraphDotWriter {

   public static <N extends MyModel> String write(final Graph<N> graph) {
      StringBuilder sb = new StringBuilder();
      sb.append("strict digraph G {\n");

      for(N n : graph.nodes()) {
         sb.append("  \"").append(n.getId()).append("\"\n");
      }

      for(EndpointPair<N> e : graph.edges()) {
         sb.append("  \"")
               .append(e.source().getId())
               .append("\" -> \"")
               .append(e.target().getId())
               .append("\" ").append("\n");
      }

      sb.append("}");
      return sb.toString();
   }

}
Ich habe aber auch schon dot files lokal zu png konvertiert mit Java. Zu sehr guten Utility-Klassen rund um Graphen und Dot kann man sich hier inspirieren lassen: https://github.com/ferstl/depgraph-...in/java/com/github/ferstl/depgraph/dependency
Außerdem ist das Framework JUNG sehr gut zur Darstellung von Graphen geeignet inkl. Interaktionen und Animationen.
 

Nico1999

Aktives Mitglied
wie heißt den das package(hab nämlich noch net so viel erfahrung) dass ich mir mal am besten ein video angucken kann zum verständnis
 

Maki

Neues Mitglied
Hallo, ich habe Schwierigkeiten zum erstellen Graphen und Implementieren von Knoten&Kanten.
mein Methode in Main klasse, schaut so aus, aber ich bekomme als ergebnis "null" zurück.
Könnte jemadan vllt Helfen?


package model;

public class Main
{
public static void main(String[] args)
{

GraphMartix martix = new GraphMartix();

Knoten a = new Knoten(0, "A");
Knoten b = new Knoten(0, "B");
Knoten c = new Knoten(0, "C");
Knoten d = new Knoten(0, "D");
Knoten h = new Knoten(0, "H");

martix.addKanten();
}

Klasse GraphMatrix

public void addKanten()
{

} habe ich nur so geschrieben.

Danke eure Hilfe!
 

KonradN

Super-Moderator
Mitarbeiter
Da dies ein neues Thema ist solltest du einen eigenen neuen Thread erstellen.
Dabei bitte:
  • Code in Code Tags posten (über den Knopf </> links oberhalb des Eingabebereiches)
  • Genau schreiben, wo Du welches Ergebnis bekommst.

Bei dem Code sehe ich nirgends eine Stelle, wo Du null bekommst.
 

Ähnliche Java Themen

Neue Themen


Oben