TL-Algorithmus

In diesem Abschnitt wird die Verwendung des Baumstrukturlayouts (Klasse TreeLayout aus dem Paket ibm_ilog.graphlayout.tree) beschrieben.
Der Basisalgorithmus für die Modi für freies, Ebenen- und Radiallayout besteht lediglich aus zwei Schritten und ist schnell. Die Varianten des Tip-over-Layoutmodus führen den zweiten Schritt mehrfach aus und wählen das Layoutergebnis aus, das dem Seitenverhältnis (dem Verhältnis zwischen Breite und Höhe des Zeichnungsbereichs) am besten entspricht. Deshalb sind die Tip-over-Layoutmodi langsamer.
Schritt 1: Berechnung des Spanning Tree
Wenn der Graph nicht verbunden ist, wählt der Layoutalgorithmus einen Stammknoten für jede verbundene Komponente aus. Ausgehend vom Stammknoten, traversiert er den Graphen, um die Links des Spanning Tree auszuwählen. Wenn der Graph eine reine Baumstruktur ist, werden alle Links ausgewählt. Wenn der Graph Zyklen hat, werden einige Links nicht in den Spanning Tree aufgenommen. Diese Links werden als baumstrukturunabängige Links (Nontree-Links) bezeichnet, während die Links des Spanning Tree Baumstrukturlinks genannt werden. Die baumstrukturunabhängigen Links werden in Schritt 2 des Algorithmus ignoriert.
In den Abbildungen Baumstrukturlayout im Modus für freies Layout mit zentrierter Ausrichtung und Arbeitsrichtung nach rechts, Baumstrukturlayout mit Arbeitsrichtung nach unten, orthogonalem Linkstil und Tip-over-Ausrichtung bei einigen Blattknoten und Baumstrukturlayout mit radialem Layoutmodus mit einem Seitenverhältnis von 1,5 ist der Stammknoten der Knoten, der keinen übergeordneten Knoten hat. Im Spanning Tree hat jeder Knoten mit Ausnahme des Stammknotens einen übergeordneten Knoten. Alle Knoten, die denselben übergeordneten Knoten haben, werden in Bezug auf übergeordneten Knoten als untergeordnete Knoten und in Bezug aufeinander als gleichgeordnete Knoten bezeichnet. Knoten ohne untergeordnete Knoten sind so genannte Blattknoten. Bei jedem untergeordneten Knoten eines Knotens beginnt eine untergeordnete Baumstruktur (auch Verzweigung genannt).
Beispiel für einen Spanning Tree
Spanning Tree
Schritt 2: Berechnung der Knotenpositionen und Linkformen
Der Layoutalgorithmus ordnet die Knoten entsprechend dem Layoutmodus und den Offset- und Ausrichtungsoptionen an. Im freien Modus und im Ebenenmodus werden die Knoten horizontal oder vertikal angeordnet, so dass alle Baumstrukturlinks ungefähr in dieselbe Richtung weisen. In den Radiallayoutmodi werden die Knoten in Kreisen oder Ellipsen um den Stammknoten herum angeordnet, so dass alle Baumstrukturlinks radial vom Stammknoten weg zeigen. Abschließend werden die Linkformen entsprechend dem Linkstil und den Ausrichtungsoptionen berechnet.

Beispiel für das Baumstrukturlayout

Im folgenden Codebeispiel wird die Klasse ibm_ilog.graphlayout.tree.TreeLayout verwendet. Dieses Codebeispiel veranschaulicht die Ausführung eines Baumstrukturlayouts:
var treeLayout = new ibm_ilog.graphlayout.tree.TreeLayout();

graph.setNodeLayout(treeLayout);
graph.performGraphLayout();
Wichtig
Alle Erläuterungen in den nachfolgenden Abschnitten, die sich auf die Form der Links im Baumstrukturlayout beziehen, sind nur gültig, wenn das Link-Layout inaktiviert ist.