Spezielle Parameter von FL

Die folgenden Parameter sind speziell für die Klasse ForceDirectedLayout bestimmt.

Linkstil (FL)

Wenn der Layoutalgorithmus die Knoten verschiebt, folgen Links des Typs "gerade Linie" (siehe straight-line) automatisch den neuen Positionen ihrer Endknoten. Wenn der Graph andere Linktypen enthält, ist die Form des Links möglicherweise nicht korrekt, weil die Zwischenpunkte des Links nicht verschoben werden. In diesem Fall können Sie den Layoutalgorithmus anweisen, automatisch alle Zwischenpunkte der Links (sofern vorhanden) zu entfernen.
Gehen Sie wie folgt vor, um den Algorithmus anzuweisen, automatisch alle Zwischenpunkte der Links (sofern vorhanden) zu entfernen:
Beispiel für die Festlegung des Linkstils
forceDirectedLayout.setLinkStyle(
  ibm_ilog.graphlayout.forcedirected.ForceDirectedLayout.STRAIGHT_LINE_STYLE);  
Die gültigen Werte für den Stil sind folgende:
  • ibm_ilog.graphlayout.forcedirected.ForceDirectedLayout.NO_RESHAPE_STYLE
    Keiner der Links wird umgeformt.
    ibm_ilog.graphlayout.forcedirected.ForceDirectedLayout.STRAIGHT_LINE_STYLE
    Alle Zwischenpunkte der Links (sofern vorhanden) werden entfernt. Dieser Wert ist der Standardwert.

Links mit der Knotenmitte verbinden (FL)

Dieses Merkmal ist allen Unterklassen des Basislinkstillayouts (Basic Link Style Layout) gemein. Weitere Einzelheiten finden Sie unter Links mit der Knotenmitte verbinden.

Merkmale "Mehrfachlink" und "Self-Link" (FL)

Diese Merkmale sind allen Unterklassen des Basislinkstillayouts (Basic Link Style Layout) gemein. Weitere Einzelheiten finden Sie unter Merkmale "Multilink" und "Self-Link".

Anzahl der Iterationen (FL)

Die iterative Berechnung des Layoutalgorithmus wird gestoppt, wenn die zulässige Zeit überschritten wird (siehe Zulässige Zeit) oder wenn die Anzahl der Iterationen die zulässige Iterationsanzahl überschreitet.
Gehen Sie wie folgt vor, um die Anzahl der Iterationen festzulegen:
Beispiel für die Festlegung der zulässigen Iterationsanzahl
forceDirectedLayout.setAllowedNumberOfIterations(100);  

Bevorzugte Länge (FL)

Das Hauptziel dieses Layoutalgorithmus ist der Erhalt eines Layouts, in dem alle Links dieselbe Länge haben, die so genannte “bevorzugte Länge”.
Gehen Sie wie folgt vor, um die bevorzugte Länge festzulegen:
Global
  • Beispiel für die globale Festlegung der bevorzugten Länge
    forceDirectedLayout.setPreferredLinksLength(200);
    
    Der Standardwert ist 60,0.
Individuell
Es ist auch möglich, eine Länge für einzelne Links anzugeben.
  • Beispiel für die individuelle Festlegung der bevorzugten Länge
    forceDirectedLayout.setPreferredLength(link, 100);  
    
    Verwenden Sie die folgende Methode, um den aktuellen Wert abzurufen:
    var length = forceDirectedLayout.getPreferredLength(link);  
    
Wenn keine spezielle Länge für einen Link angegeben wird, werden die globalen Einstellungen verwendet.

Knotengrößen berücksichtigen (FL)

Der Layoutalgorithmus berücksichtigt standardmäßig die Größe (Breite und Höhe) der Knoten. Aus Effizienzgründen können die Knoten näherungsweise mit Punkten berechnet werden, die in der Mitte des Zeichenrahmens der Knoten platziert werden. Für große Knoten kann der Parameter für die bevorzugte Länge so erhöht werden, dass sich die Knoten nicht überschneiden.
Um die Unterstützung für Graphen mit heterogenen Knotengrößen zu verbessern, stellt der Algorithmus einen speziellen Modus bereit, in dem die Größe der einzelnen Knoten nicht berücksichtigt wird.
Gehen Sie zum Festlegen dieses Modus wie folgt vor:
Beispiel für die Nichtberücksichtigung der Knotengröße
forceDirectedLayout.setRespectNodeSizes(false);     
Der Standardwert ist true.

Anpassung an Layoutbereich erzwingen (FL)

Es ist schwierig, eine angemessene Größe für den Layoutbereich dieses Layoutalgorithmus auszuwählen. Wenn der angegebene Layoutbereich zu klein für einen bestimmten Graphen ist, ist das erstellte Layout nicht das beste. Aus diesem Grund verwendet der Layoutalgorithmus "Force-directed" standardmäßig den Parameter für den Layoutbereich nicht.
Er kann so viel Platz wie erforderlich verwenden, um den Graphen anzulegen.
Gehen Sie wie folgt vor, um anzugeben, ob der Layoutalgorithmus den Layoutbereich verwenden muss:
Beispiel für die Verwendung des Parameters für den Layoutbereich
forceDirectedLayout.setForceFitToLayoutRegion(true);  
Der Standardwert des Parameters ist false.

Layoutmodus

Für die verschiedenen Anforderungen stellt der Algorithmus drei optionale Layoutmodi bereit:
Inkrementeller Modus
Der Algorithmus beginnt bei der aktuellen Position und versucht iterativ, das optimale Layout zu erreichen. In manchen Fällen vermeidet dieser Modus eine größere Reorganisation des Graphen, so dass sich der Benutzer den Graphen besser merken kann. Dies ist jedoch nicht garantiert und richtet sich danach, wie weit die Anfangsposition der Knoten von der Position entfernt ist, die die Kriterien des Algorithmus erfüllt.
Nicht inkrementeller Modus
Der Algorithmus kann den Graphen frei reorganisieren, ohne zu versuchen, sich eng an die Anfangspositionen zu halten. Häufig ist der nicht inkrementelle Modus schneller als der inkrementelle, obwohl dies manchmal zu Lasten der Qualität geht.
Fast-Multilevel-Modus
Der Algorithmus verwendet einen Dekompositionsstrategie für Graphen mit mehreren Ebenen, die zu einer signifikanten Geschwindigkeitssteigerung führt. Dieser Modus ist gewöhnlich der schnellste für mittlere und große Graphen.
Der Standardwert ist ibm_ilog.graphlayout.forcedirected.ForceDirectedLayout.INCREMENTAL_MODE.
Gehen Sie zum Festlegen des Layoutmodus wie folgt vor:
Beispiel für die Festlegung des Layoutmodus
forceDirectedLayout.setLayoutMode(
  ibm_ilog.graphlayout.forcedirected.ForceDirectedLayout.FAST_MULTILEVEL_MODE);