フィーチャー
- オーバーラップが生じないように、ノードのサイズを考慮します。
- オプションとして、リンクを形状変更して、直交形式 (水平と垂直の線分が交互) にします。
- 各種レイアウト・モデル (自由、レベル、 放射 と交互放射、 バルーン、および 自動傾斜) を提供します。
- 自由レイアウト・モードでは、リンクが同じ方向に均一にフローするように、ルートから再帰的に各ノードの子ノードを配置します。
- レベル・レイアウト・モードでは、ノードをレベルに分割して、レベルを水平または垂直に配置します。
- 放射レイアウト・モードでは、ノードをレベルに分割して、ルートのまわりの円または楕円を描くようにレベルを配置します。
- バルーン・レイアウト・モードでは、各サブツリーがバルーンを形成するように、子ノードは親ノードのまわりに円を描くように配置されます。
- 傾斜モードでは、自由レイアウト・モードとよく似た方法でノードを配置しますが、 レイアウトをアスペクト比により適合するように、子ノードを自動的に傾斜させようとします。
- いくつかの整列オプションおよびオフセット・オプションを提供します。
- 直接の隣接ノードにする必要があるノードを指定できます。
- インクリメンタル・ノードおよび非インクリメンタル・ノードを提供します。 インクリメンタル・モードはノードの以前の位置を考慮に入れ、ツリー内のノードの相対順序を変更せずにノードを配置して、 グラフのインクリメンタルな変更でレイアウトが安定するようにします。
- 効率的でスケーラブルなアルゴリズムです。ノード数が多くても優れたレイアウトを迅速に作成します。
制限
- 直交設定がリンク・スタイル (リンク・スタイル (TL) を参照) として指定されていない場合、 ノードのサイズ、整列パラメーター、およびオフセット・パラメーターによっては、一部のリンクがノードにオーバーラップすることがまれにあります。
- レイアウト・アルゴリズムはまず、グラフのスパンニング・ツリーを判別します。 グラフがピュア・ツリーでない場合は、一部のリンクはスパンニング・ツリーの一部として含まれません。そのようなリンクは無視されます。 そのため、最終レイアウトで、それらは他のリンクと交差したり、ノードにオーバーラップしたりすることがあります。
- インクリメンタル・モードの安定度のために、アルゴリズムは各ノードの子ノードの相対順序を保持しようとします。 ヒューリスティックを使用して、ノードの以前の位置から相対順序を計算します。 子ノードが以前の位置にオーバーラップしているか、水平および垂直に整列されていない場合、ヒューリスティックがうまくいかないことがあります。
- 子ノードの相対順序の保持にもかかわらず、インクリメンタル放射レイアウトでは、レイアウトが完全には安定しないことがまれにあります。 環状レベル内のノードの相対環状順序が保持されていても、後続のレイアウトがルートを中心としてノードを回転する場合があります。
- 子ノードの相対順序の保持にもかかわらず、インクリメンタル・バルーン・レイアウトでは、レイアウトが完全には安定しないことがまれにあります。 ノードの相対環状順序が保持されていても、後続のレイアウトが親を中心として子ノードを回転する場合があります。
- 傾斜レイアウト・モードはさまざまなヒューリスティックに従って、各種傾斜整列オプションを使用して複数の試行レイアウトを行います。 この試行レイアウトから、アルゴリズムはアスペクト比に最も適合するレイアウトを選出します。 これはアスペクト比に最適なレイアウトではない可能性がありますが、試行レイアウトのなかでは最適なレイアウトです。 絶対的に最適なレイアウトを計算するのは、一般的に NP 完全問題であるため現実的ではありません。