Mehrere Links zwischen demselben Knotenpaar

Manchmal hat ein Graph mehrere Links zwischen demselben Knotenpaar. Wenn diese Links gerade sind und denselben Verbindungspunkt an den Knoten verwenden, überschneiden sie sich und können nicht unterschieden werden. Zur Vermeidung solcher Überschneidungen haben die angegebenen Layouts einen so genannten Multilinkmodus, der nur angewendet wird, wenn STRAIGHT_LINE_STYLE als Linkstil definiert ist. Dieser Modus hat keine Auswirkung, wenn NO_RESHAPE_STYLE als Linkstil definiert ist.
Beispiel für die Steuerung mehrerer Links
Verwenden Sie die folgende Methode, um den Multilinkmodus zu aktivieren:
layout.setMultiLinkMode(mode);
Die gültigen Werte für den Modus sind im Beispiel für das kräftegesteuerte Layout (Force-directed) beschrieben:
Wenn der Multilinkmodus nicht auf NO_BUNDLE eingestellt ist, kann das Offset (der Versatz) zwischen den versetzten Links bzw. zwischen Kurven der Links angegeben werden:
Verwenden Sie die folgenden Methoden:
layout.setMultiLinkOffset(offset);
layout.setMultiLinkMaxSpread(maxSpread);
Das Multilink-Offset ist das Offset zwischen zwei benachbarten Links (oder deren Kurven). Der Wert von maxSpread beschränkt dieses Offset, damit nicht viel Platz belegt wird, wenn sehr viele Mehrfachlinks vorhanden sind. Wenn das Multilink-Offset 10 ist und maxSpread den Wert 60 hat, ist das effektive Offset 10, wenn Sie weniger als sechs Mehrfachlinks haben. Wenn Sie mehrere Mehrfachlinks haben, verringert sich das effektive Offset. Wenn Sie beispielsweise 15 Mehrfachlinks haben, ist das effektive Offset 4 anstatt 10, um sicherzustellen, dass die Links um maximal 60 Einheiten voneinander versetzt werden. Wenn der Multilinkmodus auf NARROW_STRAIGHT_LINE_BUNDLE eingestellt ist, wird das effektive Offset noch weiter durch die Größe des Zeichenrahmens beider Endknoten eines Linkpakets begrenzt.
Beispiele für die Verwendung von Modus und Offset Grafisches Ergebnis
NO_BUNDLE
Ergebnis des Offsets
im Modus NO_BUNDLE zwischen einem Linkpaar
STRAIGHT_LINE_BUNDLE, wenn der Wert von maxSpread zu hoch gewählt ist.
Ergebnis des
Offsets in STRAIGHT_LINE_BUNDLE mit einem zu hohen Wert für "max spread" (maximale Verteilung).
NARROW_STRAIGHT_LINE_BUNDLE: Dasselbe Ergebnis kann mit STRAIGHT_LINE_BUNDLE erzielt werden, indem der Wert von maxSpread verringert wird.
Ergebnis des Offsets
in NARROW_STRAIGHT_LINE_BUNDLE or STRAIGHT_LINE_BUNDLE
mit einem verringerten Wert für 'max spread'.
CONNECTED_ONE_BEND_BUNDLE
Ergebnis des Offsets
in CONNECTED_ONE_BEND_BUNDLE
FREE_ONE_BEND_BUNDLE, wenn die Links anfänglich mit der Knotenmitte verbunden sind.
Dasselbe Ergebnis kann mit CONNECTED_ONE_BEND_BUNDLE in Kombination mit Definition von connectLinksToNodeCenters und dem Wert "true" erzielt werden. Sehen Sie sich beispielsweise die Beschreibung von ibm_ilog.graphlayout.forcedirected.ForceDirectedLayout.setConnectLinksToNodeCenters an.
Ergebnis des Offsets
in FREE_ONE_BEND_BUNDLE, wobei die Links anfänglich mit der Knotenmitte verbunden sind, oder
CONNECTED_ONE_BEND_BUNDLE mit der setConnectLinksToNodeCenters-Einstellung 'true'.