Force Directed Layout - Wie verhindern, dass Knoten ins unendliche verschwinden?

Neue Frage »

Bierdeckel Auf diesen Beitrag antworten »
Force Directed Layout - Wie verhindern, dass Knoten ins unendliche verschwinden?
Grüß euch!

Ich arbeite zur Zeit an einem Projekt in dem ein Graph schön gelayoutet werden soll. Hierzu habe ich mich entschieden das mittels eines Force Directed Layout umgesetzt wird.

Das ganze ist auch schon recht schön umgesetzt und funktioniert toll. Jedoch:

Besteht der Graph aus 2 distinkten Teilgraphen (oder hat unverbundene Knoten) dann driften diese Teile unendlich weit auseinander. Am einfachsten zu lösen, wäre dieses Problem wenn sich die Elemente nur bis zu einem gewissen Abstand abstoßen. Das hat aber den Nachteil, dass ein einziges ungünstig platziertes Knotenelement für eine weitere Ausdehnung sorgen könnte. (Das ist unerwünscht weil ich jeden Knoten möglichst groß Zeichnen muss, und dann eine große Ausdehnung des Gesamtgraphen für die Darstellung schlecht wäre. Ziel ist ein möglichst gutes Ausnutzen des Platzes am Bildschirm, und nicht zwingend ein schöner Graph)

Ich muss also irgendwelche Zusatzkräfte einführen die den Graphen im Zaum halten.

Möglichkeit eins: Ich definiere eine Rückstellkraft in Richtung Bildschirmmitte.
Möglichkeit zwei: Ich gebe ein Rechteck vor, und mein Layout wird darin eingezwungen. Kräfte wirken so, dass die Knoten stärker von den Wänden gedrückt werden, wenn sie näher sind.

Die zweite Möglichkeit scheint mir am schönsten, ich möchte daher diese Umsetzen. Und genau hier stehe ich:

Wie modelliert man dies schnell und schön?

Ich hätte mir vorgestellt, dass die Kraft exponentiell in Richtung Displayrand ansteigt. Vorteil: Das Layout wird durch diese Kraft wirklich nur am Rand gestört.


d ...Distanzvektor (Abstand vom Rand)
a .. Koeffizientenvektor (soll das Seitenverhältnis für das Layout wiederspiegeln)
f(d) .. Kraftvektor für die Verschiebung des Knotens

Kann man das so machen?
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »