このセクションでは、ツリー・レイアウト (パッケージ ibm_ilog.graphlayout.tree のクラス TreeLayout) の使用例を示します。
自由、レベル、および放射の各レイアウト・モードのコア・アルゴリズムは 2 ステップのみで、高速です。
傾斜レイアウト・モードのバリエーションでは 2 番目のステップを複数回実行して、
アスペクト比 (描画領域の幅と高さの比) に最も適合するレイアウト結果を選出します。
そのため、傾斜レイアウト・モードは他のものより時間がかかります。
- ステップ 1: スパンニング・ツリーの計算
- 非接続グラフの場合、レイアウト・アルゴリズムは、接続コンポーネントごとにルート・ノード を選択します。 ルート・ノードから順にグラフをトラバースして、スパンニング・ツリー のリンクを選択します。 グラフがピュア・ツリーの場合、すべてのリンクが選択されます。 グラフに循環がある場合、一部のリンクは、スパンニング・ツリーの一部として含まれません。このようなリンクは、非ツリー・リンク と呼ばれます。 スパンニング・ツリーのリンクは、ツリー・リンク と呼ばれます。 非ツリー・リンクはアルゴリズムのステップ 2 で無視されます。図 中央揃えおよび右向きの方向選択が設定された、自由レイアウト・モードのツリー・レイアウト、下向きの方向選択、直交リンク・スタイル、および一部のリーフ・ノードでの傾斜整列が設定されたツリー・レイアウト、および アスペクト比が 1.5 の放射レイアウト・モードのツリー・レイアウト では、ルート は、親ノードを持たないノードです。 スパンニング・ツリーでは、ルート以外の各ノードは親ノードを持ちます。 同じ親を持つすべてのノードは、親に対して子ノード と呼ばれ、 お互いのノードに対して兄弟 と呼ばれます。 子ノードのないノードは、リーフ と呼ばれます。 ノードの各子ノードからサブツリー (ツリーのブランチとも呼ぶ) が開始されます。スパンニング・ツリー
- ステップ 2: ノードの位置およびリンク形状の計算
- レイアウト・アルゴリズムはレイアウト・モード、オフセット・オプション、および整列オプションに従って、ノードを配置します。 自由モードおよびレベル・モードでは、すべてのツリー・リンクが大体同じ方向にフローするように、ノードは水平または垂直に配置されます。 放射レイアウト・モードでは、すべてのツリー・リンクがルートから放射状にフローするように、ノードはルートのまわりに円または楕円を描くように配置されます。 最後に、リンク形状はリンク・スタイルおよび整列オプションに従って計算されます。
TL の例
以下のコード・サンプルでは、ibm_ilog.graphlayout.tree.TreeLayout クラスを使用します。
このコード・サンプルは、ツリー・レイアウトの実行方法を示します。
var treeLayout = new ibm_ilog.graphlayout.tree.TreeLayout(); graph.setNodeLayout(treeLayout); graph.performGraphLayout();
重要
ツリー・レイアウトのリンク形状に関する以降のセクションのすべての説明は、リンク・レイアウトが使用不可の場合にのみ有効です。