In einem System habe ich eine Liste von Knoten, die wie in einem normalen Diagramm verbunden sind. Wir kennen das gesamte System und alle ihre Verbindungen und haben auch einen Startpunkt. Alle meine Kanten haben eine Richtung.Zeichnen Sie ein Diagramm aus einer Liste von verbundenen Knoten
Jetzt möchte ich alle diese Knoten und Kanten automatisch zeichnen. Das Problem ist nicht die eigentliche Zeichnung, sondern die Berechnung der Koordinaten (x, y). Also im Grunde möchte ich diesen ganzen Graphen so zeichnen, dass er gut aussieht.
Meine Datenstruktur wäre so etwas wie:
class node:
string text
List<edge> connections
Es muss für dieses Problem einige bekannte Algorithmen sein? Ich konnte keine finden, aber möglicherweise verwende ich die falschen Schlüsselwörter.
Meine Gedanken:
Eine Möglichkeit, unsere startnode bei (0,0) zu positionieren wäre, und dann eine Konstante hat, die „Entfernung“ ist. Dann würde es für jeden Nachbarn die Entfernung zu der y-Position hinzufügen, und für jeden Knoten, der ein Nachbar ist, setze x = Abstand * n.
Aber das wird wirklich eine Menge Probleme geben - das ist definitiv nicht der Weg zu gehen.