グラフ・レイアウト

メモ
グラフ・レイアウトの機能は、完全な JViews Diagrammer ライセンスを購入された場合のみ利用可能です。
ダイアグラムを手書きで作成しても、読むのに十分な明瞭さが得られる場合があります。通常、ノードおよびリンクを配置し、ダイアグラムが乱雑になってくると手動でノードの位置を変えます。
多くの場合、ダイアグラムは手動で処理するには複雑すぎるせいか、人間が関わることがありません。ダイアグラムは、幾何学情報を含まないアプリケーション・データで動的に作成されます。そのような場合は、ノード配置およびリンクの配置に自動レイアウト・アルゴリズムが必要です。
グラフ・レイアウト・パッケージは、JViews Diagrammer で提供されているレイアウト・アルゴリズムのセットで、ノードおよびラベルの配置、そしてリンクの配置を自動で行います。レイアウト・アルゴリズムの目的は、ノードが重ならない、リンクがノードあるいはリンクと交差しない、そしてラベルが他のオブジェクトと重ならないソリューションを示すことです。理想的なソリューションが存在するとは限りませんが、できるだけ最適なアルゴリズムを選択するようにします。次の図を参照してください。
diaint_route6.gif
グラフ・レイアウトの適用 (適用前と後)
グラフを最も効果的に表示させる方法はその種類によって異なりますし、場合によっては業界標準にも左右されます。JViews Diagrammer では、異なる状況に適用できるように多くのパラメーターを備えたさまざまなアルゴリズムを提供しています。例えば、階層型レイアウトは主にフローおよびプロセスを表示するのに使用されます。環状レイアウトおよびバス・レイアウトは、LAN ネットワークに、放射型ツリーは、意味ネットワークや Web サイト・マップに、ツリー・レイアウトは組織図、意思決定ツリーやディレクトリーに利用できます。
JViews Diagrammer では、複数のグラフ・レイアウトを単一のダイアグラムに適用することもできます。サブグラフで、その親グラフとは異なるレイアウトが必要となる場合があります。または、1 つのレイアウトをノードの 1 サブセットのみに適用させることもできます。制約を設定することもできます。例えば、特定のプロパティーのノードを他の上に置くことができます。
リンクの経路について、JViews Diagrammer は、リンクの長さを制限する戦略や、 特に複数のリンクが単一のノードに到達する場合にリンクをバンドルしたりノードにうまく接続したりするアルゴリズムを提供します。
ラベル・レイアウト (ラベリング) アルゴリズムでは、ラベルが互いに重ならないようにベース位置から少しずらして配置したり、必要に応じて回転させます (重なると読みにくくなるため)。このアルゴリズムは、ノードおよびリンクのラベル、および Rogue Wave® JViews Maps 内のラベルに使用されます。