(57)【特許請求の範囲】
【請求項１】
階層型データに基づいて、所定の階層における当該階層型データの構成要素を表す図形領域に当該構成要素の下位階層の構成要素を表す図形を配置する要素配置手段であって、
配置しようとする図形データを図形の面積に基づいてソートするソート手段と、
前記ソート手段によるソート順にしたがって、前記図形データに基づく図形を、前記領域の中央から周辺へ順次配置する要素配置手段と、
前記要素配置手段による階層ごとの図形の配置を前記階層型データの下位階層から上位階層へ再帰的に実行させることにより前記階層型データのグラフィックス・イメージを生成する配置制御手段と
を備えることを特徴とするグラフィックス・イメージ生成装置。
【請求項２】
前記ソート手段は、面積に基づいてソートした前記図形データの順番を、当該図形データ間に付与された関連性に基づいて修正し、
前記要素配置手段は、関連する前記図形データどうしを近隣に位置させるように配置することを特徴とする請求項１に記載のグラフィックス・イメージ生成装置。
【請求項３】
前記要素配置手段は、前記領域に、既に配置されている図形の中心点を頂点とする三角メッシュを生成し、当該三角メッシュの三角形要素の大きさに基づいて次に配置しようとする図形の配置位置を決定することを特徴とする請求項１に記載のグラフィックス・イメージ生成装置。
【請求項４】
前記階層型データにおける所定の階層を構成する前記構成要素に対し、当該構成要素間の関連性に基づいて当該構成要素をつなぐアークを生成するアーク生成手段をさらに備えることを特徴とする請求項１に記載のグラフィックス・イメージ生成装置。
【請求項５】
前記図形領域内の位置を特定するテンプレートを保持するテンプレート保持手段をさらに備え、
前記要素配置手段は、前記テンプレート保持手段に保持されている前記テンプレートに基づいて、図形の配置位置を決定し、当該図形を、配置することを特徴とする請求項１に記載のグラフィックス・イメージ生成装置。
【請求項６】
前記テンプレートは、既に生成されたグラフィックス・イメージに基づいて作成されることを特徴とする請求項５に記載のグラフィックス・イメージ生成装置。
【請求項７】
前記テンプレートは、所定の入力手段を用いて入力された構成要素の位置関係に関する情報に基づいて作成されることを特徴とする請求項５に記載のグラフィックス・イメージ生成装置。
【請求項８】
前記テンプレートは、データの持つ意味を位置関係で表す所定の座標軸に基づいて作成されることを特徴とする請求項５に記載のグラフィックス・イメージ生成装置。
【請求項９】
コンピュータを制御して、グラフィックス・イメージを生成するグラフィックス・イメージ生成方法であって、
階層型データに基づいて、所定の階層における当該階層型データの構成要素を表す図形領域に当該構成要素の下位階層の構成要素を表す図形を配置するステップであって、
図形データを格納した記憶装置から配置しようとする図形データを読み出して図形の面積に基づいてソートし、ソート結果記憶手段に格納するステップと、
前記ソート結果記憶手段から前記図形データのソート順を読み出し、当該ソート順にしたがって前記図形データに基づく図形を、前記領域の中央から周辺へ順次配置するステップと、
前記配置するステップによる階層ごとの図形の配置を前記階層型データの下位階層から上位階層へ再帰的に実行させることにより得られた前記階層型データのグラフィックス・イメージをイメージデータ記憶手段に格納するステップと
を含むことを特徴とするグラフィックス・イメージ生成方法。
【請求項１０】
前記図形を配置するステップは、
前記領域に三角メッシュを生成するステップを含み、前記三角メッシュの三角形要素の大きさに基づいて図形の配置位置を決定するステップと、
決定された前記配置位置に配置対象である図形を配置して、配置の可否の判断条件を満足するかどうかを判定するステップとを含み、
前記判断条件を満足しない場合は前記２つのステップを再帰的に実行することを特徴とする請求項９に記載のグラフィックス・イメージ生成方法。
【請求項１１】
前記図形の配置位置を決定するステップは、前記三角メッシュの前記三角形要素を大きい順に選択し、前記配置対象である図形の配置位置とすることを特徴とする請求項１０に記載のグラフィックス・イメージ生成方法。
【請求項１２】
前記図形の配置位置を決定するステップは、前記三角メッシュの前記三角形要素のうち、前記領域の頂点と一致する頂点の数が少ない三角形要素から順に、前記配置対象である図形の配置位置として選択することを特徴とする請求項１１に記載のグラフィックス・イメージ生成方法。
【請求項１３】
前記図形を配置するステップは、前記図形が新たに配置された後に、新たに配置された当該図形における所定の点を新たな頂点として新たな三角形要素を生成することにより、前記三角メッシュを更新し、当該更新された三角メッシュに基づいて次の図形の配置位置を決定することを特徴とする請求項１０に記載のグラフィックス・イメージ生成方法。
【請求項１４】
コンピュータを制御して、グラフィックス・イメージを生成するためのプログラムであって、該プログラムがコンピュータに、
階層型データに基づいて、所定の階層における当該階層型データの構成要素を表す図形領域に当該構成要素の下位階層の構成要素を表す図形を配置する機能であって、
図形データを格納した記憶装置から配置しようとする図形データを読み出して図形の面積に基づいてソートし、ソート結果記憶手段に格納する機能と、
前記ソート結果記憶手段から前記図形データのソート順を読み出し、当該ソート順にしたがって前記図形データに基づく図形を、前記領域の中央から周辺へ順次配置する機能と、
前記配置する機能による階層ごとの図形の配置を前記階層型データの下位階層から上位階層へ再帰的に実行させることにより得られた前記階層型データのグラフィックス・イメージをイメージデータ記憶手段に格納する機能と
を実行させるプログラム。。
【発明の詳細な説明】
技術分野
本発明は、階層型データのグラフィックス・イメージを生成するグラフィックス表示技術に関する。
背景技術
コンピュータを用いて、複数の要素からなる集合を、当該要素間の関係を反映させて視覚化する種々の技術が提案されている。この種の技術に、複数のデータ要素が階層を持って整理されたデータ（以下、階層型データと称す）をグラフィックス表示する技術がある。
従来、この種の階層型データをリアルタイムにグラフィックス表示する技術は、ツリー構造で階層構造を表現するものが一般的であった。例えば、米マイクロソフト社のオペレーティングシステムであるウィンドウズ（Ｗｉｎｄｏｗｓ）上で動作するファイル操作システムのエクスプローラ（Ｅｘｐｌｏｒｅｒ）は、１列にデータ要素を並べ、当該データ要素間にアークを張った単純なツリー構造を用いてファイルシステムの階層構造を表示している。
しかし、これは１列にデータ要素を並べるだけの単純な方法であるで、データ要素数が数千、数万という大規模な階層型データをグラフィックス表示する場合には、１画面に多くの情報を載せることが困難である。
エクスプローラよりも大規模データに向いた階層型データの表示手法として、Ｔｒｅｅｍａｐ法や、Ｈｙｐｅｒｂｏｌｉｃ  Ｔｒｅｅ法がある。
Ｔｒｅｅｍａｐ法は、階層型データが表示される画面空間を縦方向・横方向に交互に切り分け、切り分けられた領域を個々のデータ要素に対応づけることにより、データの階層構造を表現する方法である。このＴｒｅｅｍａｐ法については、例えば下記の文献１に詳細に記述されている。
文献１：Ｓｈｎｅｉｄｅｒｍａｎ  Ｂ．，Ｔｒｅｅ  ｖｉｓｕａｌｉｚａｔｉｏｎ  ｗｉｔｈ  ｔｒｅｅｍａｐｓ：ａ  ２−ｄ  ｓｐａｃｅ−ｆｉｌｌｉｎｇ  ａｐｐｒｏａｃｈ，ＡＣＭ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ｇｒａｐｈｉｃｓ，ｖｏｌ．１１，１（Ｊａｎ．１９９２），９２−９９．または  ｈｔｔｐ：／／ｗｗｗ．ｃｓ．ｕｍｄ．ｅｄｕ／ｈｃｉｌ／ｔｒｅｅｍａｐｓ／
また、Ｈｙｐｅｒｂｏｌｉｃ  Ｔｒｅｅ法は、双曲空間にツリー構造を配置する方法である。下記の文献２には、このＨｙｐｅｒｂｏｌｉｃ  Ｔｒｅｅ法を応用して、階層構造とデータ要素間のリンク構造の両方を表現する手法が開示されている。
文献２：Ｈａｏ  Ｍ．Ｃ．，Ｈｓｕ  Ｍ．，Ｄａｙａｌ  Ｕ．，ａｎｄ  Ｋｒｕｇ  Ａ．，Ｗｅｂ−ｂａｓｅｄ  Ｖｉｓｕａｌｉｚａｔｉｏｎ  ｏｆ  Ｌａｒｇｅ  Ｈｉｅｒａｒｃｈｉｃａｌ  Ｇｒａｐｈｓ  Ｕｓｉｎｇ  Ｉｎｖｉｓｉｂｌｅ  Ｌｉｎｋｓ  ｉｎ  ａ  Ｈｙｐｅｒｂｏｌｉｃ  Ｓｐａｃｅ，ＨＰ  Ｌａｂｏｒａｔｏｒｉｅｓ  Ｐａｌｏ，Ａｌｔｏ，ＨＰＬ−２０００−２．
図３６は、文献２に開示された技術を用いた階層型データの表示例を示す図である。
図３６を参照すると、最も上位の階層から下位階層へ向けて放射状にアークが伸ばされ、最終的に最も外側の周縁に最下位の階層に位置する個々のデータ要素が配置されている。
ところで、階層型データの階層構造を視覚化する手法として、階層に対応させた領域（例えば長方形領域）を入れ子状に組み合わせてグラフィックス表示を行う方法が考えられる。すなわち、階層構造をなすデータ要素の分類ごとに領域を設定して、その中に該当するデータ要素を配置する。
この場合、所定の領域内に配置されるデータ要素が全て同一の形状及び大きさのセルで表現されるならば、単に領域内に当該セルを並べることによってデータ要素を配置できる。しかし、データ要素の意味や内容をセルの形や大きさに反映させる場合、領域内に当該セルをいかに効率よく配置するかが問題となる。
この問題は、領域及びセルを長方形で表現するとすれば、「最小限の長方形領域に、任意の大きさの長方形で構成される集合を配置する」という問題に帰着される。この問題は、Ｐａｃｋｉｎｇ、Ｎｅｓｔｉｎｇ、Ｍａｒｋｉｎｇなどと呼ばれ、ＶＬＳＩ（Ｖｅｒｙ  Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）の基盤配置、衣類の型紙の配置、機械部品の板金上への配置などの分野で応用されている。これらの分野におけるこの問題を解く手法は既に種々のものが存在する。
以上のように、階層型データをグラフィックス表示する手法として、従来はツリー構造で階層構造を表現する手法が用いられていた。
しかしながら、データ要素を１列に並べ、当該データ要素間にアークを張った単純なツリー構造では、大規模な階層型データにおけるデータ要素の全てを１画面に表示することが困難であった。
また、文献１に開示されたＴｒｅｅｍａｐ法は、上記の単純なツリー構造と比較すれば大規模な階層型データに向いた階層型データのグラフィックス表示手法であるが、数千、数万といった数のデータ要素を表示しようとすると、データ要素に対応づけられる最小単位の領域が細くなりすぎて視認性が低下してしまう。
同様に、比較的大規模な階層型データのグラフィックス表示に向くとされるＨｙｐｅｒｂｏｌｉｃ  Ｔｒｅｅ法を用いた文献４に開示された手法であっても、放射状のツリー構造の周縁に最下層の個々のデータ要素が配置されるため、やはり数千、数万といった数のデータ要素を表示することは困難である。
さらに、これらのツリー構造を用いた階層型データのグラフィックス表示技術は、いずれもツリー構造によってデータ要素の分類にかかる階層構造を表現している。そのため、階層構造は認識しやすいが、個々のデータ要素間に何らかの関係（リンク構造）がある場合、アークを張るなどの手段でこのリンク構造を表示することが困難であった。
また、階層型データの階層構造を視覚化する手法として、入れ子状の領域にてグラフィックス表示を行う方法を用いる場合、上述したように、最小限の領域に任意の大きさのセルで構成される集合を配置するという問題を解く必要がある。この問題を解く手法は既に種々のものが存在するが、その多くは配置領域を最小化するための最適化手法である。すなわち、「計算時間の多少に関わらず（長い計算時間をかけてでも）配置領域を最小化する」技術と言える。
しかし、階層型データのグラフィックス表示技術の一部としてこの問題を解こうとする場合、計算時間を短縮し（例えば、数秒程度の対話的な操作が可能な時間）、かつ最適ではないとしてもある程度適切な配置結果を得ることが必要となる。
そこで、本発明は、大規模な階層型データのグラフィックス・イメージを容易に生成する手法を提供することを目的とする。
また、本発明は、所定の領域に任意の大きさの要素を効率的に配置する処理を高速に行う手法を提供することを目的とする。
発明の開示
上記の目的を達成する本発明は、次のように構成されたことを特徴とするグラフィックス・イメージ生成装置を提供することができる。すなわち、このグラフィックス・イメージ生成装置は、階層型データに基づいて、所定の階層におけるこの階層型データの構成要素を表す図形領域にこの構成要素の下位階層の構成要素を表す図形を配置する要素配置手段と、この要素配置手段による階層ごとの図形の配置をこの階層型データの下位階層から上位階層へ再帰的に実行させることによりこの階層型データのグラフィックス・イメージを生成する配置制御手段とを備えることを特徴とする。
ここで、この要素配置手段は、相互に関連する構成要素が近隣に位置するように図形の配置を行う。
また、この要素配置手段は、所定の構成要素の配置を行う場合に、この構成要素を表す図形とこの構成要素内に配置された下位階層の構成要素を表す図形を合わせて１つの図形として扱う。
さらに、このグラフィックス・イメージ生成装置は、処理対象である階層型データにおける所定の階層を構成する構成要素に対し、この構成要素間の関連性に基づいてこの構成要素をつなぐアークを生成するアーク生成手段をさらに備える構成とすることができる。
さらにまた、このグラフィックス・イメージ生成装置は、図形領域内の位置を特定するテンプレートを保持するテンプレート保持手段をさらに備える構成とすることができる。この場合、要素配置手段は、このテンプレート保持手段に保持されているテンプレートに基づいて、図形の配置位置を決定し、この図形を配置する。そして、より好ましくは、このテンプレートは、既に生成されたグラフィックス・イメージに基づいて作成される。あるいは、所定の入力手段を用いて入力された構成要素の位置関係に関する情報に基づいて作成される。あるいは、データの持つ意味を位置関係で表す所定の座標軸に基づいて作成される。
また、本発明は、所定の領域内に図形を配置したグラフィックス・イメージを生成するグラフィックス・イメージ生成装置において、配置しようとする図形データを図形の面積に基づいてソートするソート手段と、このソート手段によるソート順にしたがって、この図形データに基づく図形を、この領域の中央から周辺へ順次配置する要素配置手段とを備えることを特徴とする。
さらに詳しくは、このソート手段は、面積に基づいてソートした図形データの順番を、この図形データ間に付与された関連性に基づいて修正し、この要素配置手段は、関連する図形データどうしを近隣に位置させるように配置する。
また、この要素配置手段は、この領域に、既に配置されている図形の中心点を頂点とする三角メッシュを生成し、この三角メッシュの三角形要素の大きさに基づいて次に配置しようとする図形の配置位置を決定する。
また、本発明は、階層型データを入力し、この階層型データの階層構造を２次元図形の入れ子構造で表現したグラフィックス・イメージのイメージデータを生成するグラフィックス・イメージ生成手段と、このグラフィックス・イメージ生成手段により生成された階層型データのグラフィックス・イメージのイメージデータを格納する記憶手段と、この記憶手段からこのイメージデータを読み出して表示する表示手段とを備えることを特徴とする。
さらに、本発明の他のグラフィックス・イメージ生成装置は、既に生成されたグラフィックス・イメージに基づいて作成された図形の配置位置に関する情報を保持する位置情報保持手段と、この位置情報保持手段に保持されている図形の配置位置に関する情報に基づいて、配置しようとする図形どうしが重ならないように、この領域にこの図形を配置する要素配置手段とを備えることを特徴とする。また、この位置情報保持手段は、既に生成されたグラフィックス・イメージに基づいて作成された図形の配置位置に関する情報に代えて、所定のデザイン情報に基づいて作成された図形の配置位置に関する情報を保持するようにしても良いし、データの持つ意味を位置関係で表す所定の座標軸に基づいて作成された図形の配置位置に関する情報を保持するようにしても良い。
さらにまた、本発明は、コンピュータを制御して所定の領域内に図形を配置したグラフィックス・イメージを生成するグラフィックス・イメージ生成方法において、図形データを格納した記憶装置から配置しようとする図形データを読み出して、図形の面積に基づいてソートし、ソート結果記憶手段に格納するステップと、この領域に三角メッシュを生成するステップと、このソート結果記憶手段から図形データのソート順を読み出し、このソート順にしたがって処理対象である図形データに基づく図形を順次配置対象とし、先に生成された三角メッシュの三角形要素に基づいてこの図形の配置位置を決定し、この配置位置にこの配置対象の図形を配置するステップと、この領域にこの図形を配置して得られるグラフィックス・イメージをイメージデータ記憶手段（例えばビデオメモリ）に格納するステップとを含むことを特徴とする。
ここで、この図形を配置するステップは、三角メッシュにおける三角形要素の大きさに基づいて図形の配置位置を決定するステップと、決定された配置位置に配置対象である図形を配置して、配置の可否の判断条件を満足するかどうかを判定するステップとを含む。そして、この判断条件を満足しない場合はこの２つのステップを再帰的に実行する。
この判断条件としては、他の図形と干渉していないか、配置すべき領域をはみ出していないか、といった条件を設定することができる。このように、実際に配置対象である図形を配置位置に配置して、不都合がないかどうかを調べるため、配置する図形の形状は任意とすることができる。ただし、図形として長方形を用いれば、座標を用いてこれらの判断条件を容易に判定することができる。
また、詳しくは、この図形の配置位置を決定するステップは、三角メッシュにおける三角形要素を大きい順に選択し、配置対象である図形の配置位置とする。
あるいは、この図形の配置位置を決定するステップは、三角メッシュにおける三角形要素のうち、図形を配置する領域の頂点と一致する頂点の数が少ない三角形要素から順に、配置対象である図形の配置位置として選択する。
さらにまた、この図形を配置するステップは、図形が新たに配置された後に、新たに配置された図形における所定の点を新たな頂点として新たな三角形要素を生成することにより、三角メッシュを更新し、更新された三角メッシュに基づいて次の図形の配置位置を決定する。
また、本発明の他のグラフィックス・イメージ生成方法は、図形データを格納した記憶装置から配置しようとする図形データを読み出して、予め指定された図形の配置位置に基づく所定の規則に基づいてソートし、ソート結果記憶手段に格納するステップと、この領域に三角メッシュを生成するステップと、ソート結果記憶手段から図形データのソート順を読み出し、このソート順にしたがって図形データに基づく図形を順次配置対象とし、予め指定された図形の配置位置及び三角メッシュの三角形要素に基づいて図形の配置位置を決定し、この配置位置に配置対象の図形を配置するステップと、この領域にこれらの図形を配置して得られるグラフィックス・イメージをイメージデータ記憶手段に格納するステップとを含むことを特徴とする。
さらにまた、本発明は、コンピュータを制御して、グラフィックス・イメージを生成するプログラムとして実現することができる。
すなわち、このプログラムは、階層型データを入力し、この階層型データの階層構造に基づいて、データ記憶手段にこの階層型データの構成要素をスタックする処理と、このデータ記憶手段にスタックされた構成要素を順次読み出して、この構成要素を表す図形領域にこの構成要素の下位階層の構成要素を表す図形を配置する処理を、この階層型データの下位階層から上位階層へ再帰的に実行する処理と、図形の配置を再帰的に実行することにより得られたこの階層型データのグラフィックス・イメージをイメージデータ記憶手段に格納する処理とをこのコンピュータに実行させることを特徴とする。
ここで、このプログラムにおける、図形領域に下位階層の構成要素を表す図形を配置する処理は、配置しようとする図形をその面積に基づいてソートし、ソート結果をソート結果記憶手段に格納する処理と、このソート結果記憶手段から読み出したソート結果にしたがって、この図形を順次配置する処理とを含む。
また、このプログラムにおける、図形領域に下位階層の構成要素を表す図形を配置する処理は、この構成要素間に付与された関連性を反映させて配置しようとする図形をソートし、ソート結果をソート結果記憶手段に格納する処理と、このソート結果記憶手段から読み出したソート結果にしたがって、関連する構成要素を表す図形どうしを近隣に位置させるように図形を配置する処理とを含む。
さらに、このプログラムは、図形の配置を再帰的に実行することにより得られた階層型データのグラフィックス・イメージのうち、所定の階層を構成する構成要素を表す図形に対し、この構成要素間の関連性に基づいてこの構成要素どうしをつなぐアークを生成する処理をこのコンピュータに実行させる構成とすることができる。
さらにまた、このプログラムにおける前記図形領域に下位階層の構成要素を表す図形を配置する処理では、図形領域内の位置を特定するテンプレートに基づいて、図形の配置位置を決定し、図形を配置する
発明を実施するための最良の形態
以下、添付図面に示す第１乃至第３の実施の形態に基づいて、この発明を詳細に説明する。
まず本発明の概要を説明する。本発明は、コンピュータシステムを用いて、階層型データのグラフィックス・イメージを生成する。本発明では、階層型データの表現手法として、階層を表す領域を入れ子状に組み合わせることにより２次元的に表現する手法を用いる。
入れ子構造のグラフィックス・イメージを生成する手順は、次のようにする。まず、最下位の階層に位置するデータ要素をグラフィックス・イメージが生成される空間（ディスプレイ装置に表示される空間、以下、ディスプレイ空間と称す）上に配置し、次に、このデータ要素の集合を内包する領域を形成して１つ上の階層を表現する。また、このようにして得られた領域の集合を適切にディスプレイ空間上に配置し直し、この領域の集合を内包するさらに大きな領域を形成してさらに１つ上の階層を表現する。かかる処理を再帰的に繰り返し、階層型データの最上位の階層まで表現する。
すなわち本発明では、階層型データを下位階層から上位階層に向かって順に配置していくことにより、階層型データのグラフィックス・イメージを生成する。
第１の実施の形態は、上述した階層型データのグラフィックス・イメージを生成するシステムである。第２の実施の形態は、このグラフィックス・イメージを生成する技術を用い、所定の階層における構成要素の間の関連性をアークによるリンク構造で表現することにより、階層構造を持ったグラフデータをグラフィックス表示するシステムである。第３の実施の形態は、テンプレートを用いることにより、グラフィックス・イメージにおける各構成要素の配置をある程度意図的に制御するシステムである。
以下、各実施の形態を詳細に説明する。
〔第１の実施の形態〕
図１は、第１の実施の形態によるグラフデータのグラフィックス表示を行うグラフィックス・イメージ生成装置としてのコンピュータシステムの構成を示す図である。
図１を参照すると、コンピュータシステム１０は、グラフィックス表示処理をプログラム制御により実行する処理装置（ＣＰＵ）１１と、処理装置１１を制御するプログラムを格納した主メモリ１２と、処理装置１１により生成された階層型データのグラフィックス・イメージを表示するためのビデオメモリ１３及びディスプレイ装置１４と、処理対象である階層型データを格納した記憶装置１５とを備える。
処理装置１１は、主メモリ１２に格納されたプログラムに制御されて、記憶装置１５から処理対象となる階層型データを読み出し、そのグラフィックス・イメージ（イメージデータ）を生成してビデオメモリ１３に格納する。そして、ビデオメモリ１３に格納されたグラフィックス・イメージがディスプレイ装置１４にて表示される。主メモリ１２は、処理装置１１によるグラフィックス・イメージの生成処理の過程で、後述するセルやクラスタを一時的に格納するスタックとしても用いられる。
なお、図１には、本実施の形態を実現するための構成のみを図示してある。実際には、図示の構成の他に、各種の命令やデータを入力するためのキーボードやマウスなどの入力装置、音声出力機構や各種の周辺機器、ネットワークに対するインタフェースなどが設けられていることは言うまでもない。また、階層型データは、上記のように記憶装置１５から読み出すほか、ネットワークなどを介して外部から入力しても良い。
図２は、第１の実施の形態による階層型データのグラフィックス・イメージを生成するグラフィックス・イメージ生成装置の構成を説明する図である。
上述したように、第１の実施の形態では、階層を表す領域を入れ子状に組み合わせる手法によって、階層型データのグラフィックス・イメージを生成する。このグラフィックス・イメージにおいて、階層型データにおける個々のデータ要素をセルと称し、同じ大きさの正方形で表現する。また、当該データ要素に対する分類などを示す上位階層の構成要素をクラスタと称し、セル及び下位階層のクラスタを内包する長方形で表現する。すなわち、このグラフィックス・イメージは、単一のもしくは多重に配置された長方形のクラスタと、クラスタ内に配置された正方形セルとで構成される。ただし、このグラフィックス・イメージを生成する段階では、このセル及びクラスタは単なる正方形及び長方形の図形データであるため同様に扱うことができる。したがって、以下の説明において、このセルとクラスタとを特に区別する必要がない場合は、構成要素と総称して説明する。
また、以下の説明では、本実施の形態において種々の大きさを取り得る長方形のクラスタを配置する場合を主として説明するが、上述のように、セルとクラスタとは区別なく扱われるのであり、セルが同じ大きさに限定されない場合は同様の説明が成り立つことは言うまでもない。
図２を参照すると、本実施の形態によるグラフィックス・イメージ生成装置は、処理対象である階層型データにおける各階層の構成要素に関して配置順を決定するソート部２１と、ソート部２１にて決定された順番にしたがって階層型データの構成要素を配置する要素配置部２２と、ソート部２１及び要素配置部２２による階層型データの構成要素の配置を当該階層型データの下位階層から順に再帰的に実行させる配置制御部２３とを備える。
図２に示した各構成要素は、図１の主メモリ１２に保持されているコンピュータプログラムにより制御された処理装置１１にて実現される仮想的なソフトウェアブロックである。処理装置１１を制御する当該コンピュータプログラムは、ＣＤ−ＲＯＭやフロッピーディスクなどの記憶媒体に格納して配布したり、ネットワークを介して伝送したりすることにより提供される。そして、当該コンピュータプログラムは、主メモリ１２にロードされて処理装置１１を制御し、図１に示したコンピュータシステム１０において図２に示した各構成要素の機能を実現する。
図２に示した構成において、ソート部２１は、所定のクラスタを示す長方形内に当該クラスタの下位階層のクラスタまたはセルを配置する場合に、当該クラスタまたはセルの配置順を決定（ソート）する。
配置順は、原則として面積の大きなものから順に配置するように決定される。本実施の形態では、データ要素に対応する各セルは同じ大きさの正方形であるので、配置順は任意に決定することができるが、データ要素の内容をセルの大きさに反映させる表現手法を取る場合は、同様にセルの大きさに応じて配置順が決定される。クラスタまたはセルの配置順を示すソート結果は、主メモリ１２や処理装置１１内のレジスタに一時的に格納される。
また、データ要素の集合を視覚化する場合、関連性の高いデータどうしを近くに配置したいという要求が非常に多い。そこで、ソート部２１は、面積の大きい順にしたがうクラスタの配置順を、所定の条件に基づいて修正することができることとする。関連性の高いデータどうしを近くに配置する具体的な処理は、要素配置部２２の処理にも関係するので、後述する。
要素配置部２２は、階層型データのクラスタまたはセルを、ソート部２１によりソートされた順番にしたがって、ディスプレイ空間に配置する。配置の仕方は次の方針による。
（１）ディスプレイ空間の中心から順に、既に配置されている長方形に隣り合うように配置する。
（２）既に配置されている長方形の隙間に配置できる場合は、その隙間に配置する。
本実施の形態では、（２）の方針において必要となる、長方形を配置できるような隙間を高速に探す処理を実現するために、長方形の中心点を結ぶ三角メッシュを用いた処理を実行する。この三角メッシュは、Ｄｅｌａｕｎａｙ条件を満たすものとする。
また、本実施の形態では、階層型データの構成要素を下位階層から上位階層へ順次配置していくため、要素配置部２２が所定の階層のクラスタを配置する場合、当該クラスタの下位階層のクラスタまたはセルが既に配置されている。そこで、要素配置部２２は、所定のクラスタを配置する際に、当該クラスタを表す長方形とその内部に既に配置されている下位階層のクラスタまたはセルを表す長方形または正方形との相対的な位置関係を保存し、すなわちこれらの図形を合わせて１つの図形として扱い、配置を行う。
配置制御部２３は、ソート部２１及び要素配置部２２により階層型データの階層ごとに行われるクラスタまたはセルの配置処理を、下位階層から上位階層へと再帰的に繰り返して実行させることにより、階層型データ全体のグラフィックス・イメージを生成する。生成されたグラフィックス・イメージは、図１に示すビデオメモリ１３に格納され、ディスプレイ装置１４に表示される。
次に、上記構成に基づく階層型データのグラフィックス・イメージの生成処理について説明する。
まず、三角メッシュを用いた長方形（クラスタ）の配置位置の探索について詳細に説明する。
本実施の形態では、既に幾つかの長方形が配置されている場合に、配置された長方形が疎である領域を検出し、その領域に次の長方形を置く、という処理を反復することで、小さな配置面積に長方形群を配置する。そこで、長方形が疎である領域を抽出するために、長方形を配置する領域（以下、配置領域と称す）に、既に配置された長方形の中心点を結ぶ三角メッシュを生成する。この三角メッシュにおいて大きな三角形要素が生成された領域では、長方形が疎である可能性が高いので、その領域に新しい長方形を配置することを試みる。三角形要素の大きさを判定する基準としては、三角形要素の外接円の半径、内接円の半径、３辺の長さの最大値などを用いることができる。以下では、外接円の半径を基準として三角形要素の大きさを判定する場合を例として説明する。
ところで、この配置領域は、配置される長方形（クラスタ）の上位階層のクラスタを表現する長方形となる領域（この意味での配置領域を図形領域と称す）である。したがって、初期的には、ディスプレイ空間の適当な位置に４個のダミー頂点を置いて長方形の領域を配置領域として設定し、三角メッシュを生成する。この時点では、まだ長方形が置かれていないので、長方形の配置領域を２つの三角形に分けるような三角メッシュが生成される。そして、長方形が配置されるごとに、当該長方形の中心を新たな頂点として追加しながら三角メッシュを細かくしていく。
また、初期状態では、既に配置されている長方形は存在しないので、最初に配置する長方形は配置領域における任意の位置に置くことができる。ただし、この場合上述した（１）の方針にしたがって、長方形はダミー頂点で示された配置領域の中心に置かれることとなる。
図３は、既に配置された長方形の中心点を連結する三角メッシュにおける所定の三角形要素の外接円を示す図である。
Ｄｅｌａｕｎａｙ条件を満たす三角メッシュにおいて、図３において破線で示した外接円の内部に他の三角形要素の頂点は存在しない。したがって、外接円の大きい三角形要素の周辺では、三角形要素の頂点の密度が小さいと推測できる。所定の領域において、三角形要素の頂点の密度が小さいことは、長方形の個数が少ないことを意味する。
図４は、三角メッシュの三角形要素を隣接するダミー頂点の数で分類した様子を示す図である。
ここで、三角形要素にダミー頂点が隣接するとは、当該三角形要素の頂点がダミー頂点と一致していることを意味する。したがって、三角形要素に隣接するダミー頂点の数は０から３個の間である。これによれば、ダミー頂点は三角メッシュの最も外側に存在するので、隣接するダミー頂点の数の多い三角形要素は三角メッシュが生成された領域の外側に存在し、隣接するダミー頂点の数が少ない三角形要素ほど当該領域の内側に存在していることがわかる。したがって、できるだけ隣接するダミー頂点の数が少ない三角形要素の位置に長方形を配置することで、小さいスペースに長方形をまとめて配置することができ、配置領域の拡大を抑えることができる。
図５は、長方形を配置する対象として選択された三角形要素に長方形を置く手法を説明する図である。
図５に示す例は、破線で示した２個の長方形がすでに配置されており、かつ隣接するダミー頂点の数が１個であるような三角形要素を長方形の配置位置とした場合の処理を示す。この場合、選択された三角形要素の中心点と当該三角形要素のダミー頂点以外の頂点とを結ぶ線分（図５（Ａ）の線分５０１または線分５０２）上に、新たに配置する長方形の中心点を置き、かつ当該新たに配置する長方形が既に配置されている長方形に隣接するように、配置する。すなわち図５（Ｂ）に実線で示した２つの長方形のいずれかの位置に配置することとなる。
図６は、長方形を配置するためにダミー頂点を移動して配置領域を拡大する処理を説明する図である。
ダミー頂点にて形成された配置領域内で長方形を置くべき三角形要素が見つからず、配置領域の外側にはみ出してしまう場合、すなわち、両端がダミー頂点である辺を跨ぐ位置に長方形を置くこととなる場合（図６（Ａ）参照）は、ダミー頂点を画面空間の中心から遠ざかる方向に再配置して、長方形が三角メッシュの内側になるように配置領域を拡大する（図６（Ｂ）参照）。ただし、配置領域は、上位階層のクラスタを表す長方形となるため、当該上位階層におけるクラスタの配置も考慮すれば、当該配置領域の面積が小さいほど、階層型データの構成要素をディスプレイ空間に効率的に配置できることとなる。したがって、この配置領域を拡大する処理はできるだけ行わなくて済むように、長方形の配置手順を工夫することが必要である。
次に、上記図３乃至図６を参照して説明した長方形の配置位置の探索手法を用いたクラスタの配置処理について説明する。
図７及び図８は、ソート部２１及び要素配置部２２により所定の階層のクラスタを配置する処理を説明するフローチャートである。また、図９は、三角メッシュを用いて長方形を配置していく様子を示す図、図１０は、新たな長方形の配置に伴う三角メッシュの更新処理を説明する図である。
図７を参照すると、まず、要素配置部２２が、ディスプレイ空間上に４個のダミー頂点（ダミーノード）を適当に配置して配置領域を設定し、これらのダミー頂点を連結する三角メッシュを生成する（ステップ７０１）。図９（Ａ）は、この初期的な配置領域及び三角メッシュを示す。最初に配置領域を設定する時点では、未だクラスタを表す長方形が配置されていないため、配置領域の大きさや形は任意に設定できる。この際、例えば、配置するクラスタの数や階層型データにおける何番目の階層に対する配置処理かといった情報に基づいて設定するようにしても良い。
また、ソート部２１が、配置しようとする階層のクラスタの長方形を、面積の大きい順にソートして配置順を決定する（ステップ７０２）。なお、このステップ７０１及びステップ７０２の処理は、いずれを先に行っても良いし、並列に行っても構わない。
次に、ステップ７０２で決定された配置順の最初の長方形（最大の長方形）をステップ７０１で設定された配置領域の中央に配置する（ステップ７０３）。配置位置は、例えば、４個のダミー頂点及び配置する長方形の中心点の座標に基づいて容易に算出することができる。図９（Ｂ）は、図９（Ａ）の配置領域の中央に長方形９０１が配置された様子を示す。
次に、ステップ７０２で決定された配置順にしたがって、配置領域内に長方形を順次配置していく。まず、ソート部２１によりソートされた長方形が全て配置されたかどうかを確認し、未配置の長方形があれば、そのうちで面積が最大のものを配置対象として選択する（ステップ７０４、７０５）。ソートされた長方形のうちで最大のものはステップ７０３で既に配置されているので、２番目以降の長方形が選択されることとなる。そして、上述した三角メッシュによる長方形の配置位置の探索手法に基づいて、選択された長方形を配置する（ステップ７０６）。図９（Ｃ）〜（Ｅ）には、長方形９０１の周囲に長方形９０２、９０３、９０４が順次配置されていく様子が示されている。この長方形の配置処理の詳細については後述する。
配置領域内に長方形を配置した後、要素配置部２２は、新たに配置した長方形の中心点を求め、この点を周囲の三角形要素の各頂点と連結し、新たな三角形要素を生成する（ステップ７０７）。そして、当該三角メッシュの更新に伴い、必要に応じて、局所的に三角メッシュの辺の組み替えを行う（ステップ７０８）。図９（Ｂ）〜（Ｅ）には、長方形が１つ配置されるたびに、当該新たな長方形に基づいて三角形要素が生成され、三角メッシュが更新される様子が示されている。このように、Ｄｅｌａｕｎａｙ三角メッシュにおいて、頂点を１個追加するたびに三角メッシュを更新するアルゴリズムは、インクリメンタルＤｅｌａｕｎａｙ三角メッシュ法として知られており、例えば、次の文献に詳細に記載されている。
文献３：Ｓｌｏａｎ  Ｓ．Ｗ．，Ａ  Ｆａｓｔ  Ａｌｇｏｒｉｔｈｍ  ｆｏｒ  Ｃｏｎｓｔｒｕｃｔｉｎｇ  Ｄｅｌａｕｎａｙ  Ｔｒｉａｎｇｕｌａｔｉｏｎ  ｉｎ  ｔｈｅ  Ｐｌａｎｅ，Ａｄｖａｎｃｅｓ  ｉｎ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｓｏｆｔｗａｒｅ，９，３４−５５，１９８７．
図１０には、既に配置されている長方形９０１に近接して新たに長方形９０４が配置されたことによる三角メッシュの更新の様子が示されている。
まず、図１０（Ａ）に示すように長方形９０４が配置されたことにより、図１０（Ｂ）に示すように、長方形９０４の中心点が新たな頂点となって新たな三角形要素が生成される。そして、上述したインクリメンタルＤｅｌａｕｎａｙ三角メッシュ法に基づき、辺１００１、１００２、１００３、１００４で囲まれた２つの三角形要素を分ける辺、および辺１００５、１００２、１００６、１００７で囲まれた２つの三角形要素を分ける辺が、図１０（Ｃ）に示すように組み替えられる。
この後、要素配置部２２は、ステップ７０４に戻り、ソート部２１によってソートされたソート順の次の長方形（次に大きい長方形）を配置対象として選択し（ステップ７０５）、同様の処理を繰り返す。
以上の処理の繰り返しにより、配置領域内に、面積の大きい順に長方形が配置されていく。
次に、図８を参照して、ステップ７０６における要素配置部２２が長方形を配置する処理について詳細に説明する。
まず、ステップ７０１で生成された三角メッシュを構成する三角形要素を、隣接するダミー頂点の数（Ｖ）で分類する（ステップ８０１）。上述したように、各三角形要素において隣接するダミー頂点の数は０〜３個であり、これによって三角形要素が４種類に分類される。
次に、隣接するダミー頂点の数が０個の三角形要素を対象として、大きい順に三角形要素をソートする（ステップ８０２、８０３）。ここで、三角形要素の大きさは、上述したように、例えば三角形要素における外接円の半径の長さを比較して判断することができる。なお、ソート結果は、例えば図１に示した主メモリ１２や処理装置１１のレジスタに一時的に格納される。
隣接するダミー頂点の数が０個である三角形要素が存在する場合は、ステップ８０３でソートされた順に、以下の一連の処理を実行する（ステップ８０４）。
まず、未処理の三角形要素の中で最大の三角形要素（大きさでソートされた配置順の最も早い三角形要素）を長方形の配置位置の候補として選択する（ステップ８０５）。そして、当該三角形要素の中心点とダミー頂点以外の頂点とを結ぶ線分（Ｓ）を求める（ステップ８０６）。隣接するダミー頂点の数が０個である三角形要素の場合、この線分は３本検出される。
次に、求めた線分（Ｓ）のうちで、三角形要素の置かれていない任意の線分を選択して、当該線分上に処理中の（配置しようとする）長方形の中心が位置し、かつ既に配置されている長方形に処理中の長方形が隣接するような位置を、当該処理中の長方形の配置位置とする（ステップ８０７）。この配置位置は、ディスプレイ空間における各長方形の座標値等に基づいて容易に求めることができる。
次に、ステップ８０７にて求められた配置位置に処理中の長方形をおいた場合に、当該処理中の長方形が当該三角形要素からはみ出すかどうかを調べる（ステップ８０８）。はみ出す場合、未検証の線分（Ｓ）が存在するならば、当該線分を選択してステップ８０７に戻り、長方形の配置位置を決定する（ステップ８０９、８０７）。
また、長方形が三角形要素からはみ出さない場合、次に、当該処理中の長方形が既に配置されている近隣の長方形と干渉しないか（重ならないか）どうかを調べる（ステップ８１０）。干渉しないならば、当該位置に長方形を配置して処理を終了する（ステップ８１１）。
一方、処理中の長方形が近隣の長方形と干渉する場合、未検証の線分（Ｓ）が存在するならば、当該線分を選択してステップ８０７に戻り、長方形の配置位置を決定する（ステップ８０９、８０７）。
ステップ８０９で未検証の線分（Ｓ）が存在しない、すなわち、ステップ８０６で求めた全ての線分（Ｓ）に関して求められた長方形の配置位置において、処理中の長方形を配置した場合に、ステップ８０８またはステップ８１０の判断条件を満足しない場合、すなわち、当該長方形が当該三角形要素からはみ出すか、または近隣の長方形と干渉する場合、ステップ８０４に戻り、次の大きさの三角形要素を長方形の配置位置の候補として選択する（ステップ８０４、８０５）。そして、ステップ８０６以降の処理を繰り返す。
ステップ８０４の判断において、ステップ８０３でソートされた全ての三角形要素を検証したと判断された場合（この場合、それでもまだ処理中の長方形を配置する位置が決定されていない）、または、隣接するダミー頂点の数の条件が適合する三角形要素が存在しない場合は、次に、要素配置部２２は、隣接するダミー頂点の数で分類された三角形要素のうちで、当該隣接するダミー頂点の数が１つ多いもの（この時点では１（＝０＋１）個）を抽出する（ステップ８１２、８１３）。そして、再度、当該三角形要素を大きさに基づいてソートし（ステップ８０３）、ステップ８０４以降の処理を繰り返す。
さらに、以上の処理を繰り返して、隣接するダミー頂点の数を３個としても処理中の長方形を配置する位置が決定されない場合、要素配置部２２は、ステップ８０６、８０７に相当する処理で求められ、かつ配置領域からはみ出すような位置、すなわち両端がダミー頂点である辺を跨ぐ位置に長方形を配置する（ステップ８１３、８１４）。そして、図６に示したように、ダミー頂点の位置を修正し、配置領域を拡大して、長方形を配置領域内に納める（ステップ８１５）。
以上のようにして、ソート部２１及び要素配置部２２により、所定のクラスタに対応する配置領域に、その下位階層のクラスタである長方形が配置される。図７を参照して説明したように、長方形の配置順は、原則として面積の大きい順である（ステップ７０２参照）。しかしながら、上述したように、関連性の高いデータどうしを近くに配置するために、配置順を修正し、さらに、関連性が高く既に配置されている長方形の中心点に近い三角形要素を優先的に選んで長方形を配置することができる。
具体的には、まずソート部２１において長方形の配置順を決定する際、大きさに基づくソート結果のうち、ｎ番目の長方形が、「関連性が高く、かつ順番がｎ番以降である長方形」をｋ個持つときには、そのｋ個の長方形の順番を強制的に、（ｎ＋１）、（ｎ＋２）、…、（ｎ＋ｋ）番目に入れ替える。
次に、要素配置部２２において、ソート部２１により順番を入れ替えられた（ｎ＋１）…（ｎ＋ｋ）番目の長方形を配置する際に、既に配置されている関連する長方形からの位相的な距離を用いて、当該長方形の近隣に新たに長方形を配置する。例えば、長方形Ａの近隣に関連する長方形Ｂを配置する場合を考える。この場合、長方形Ａの配置された三角形要素の頂点に隣接する三角形要素を距離０、この三角形要素に隣接する三角形要素を距離１、以後同様に、距離２、距離３、・・・というように再帰的に三角形要素の位相的な距離を算出する。そして、図８のステップ８０１において隣接するダミー頂点の個数で三角形要素を分類する代わりに、長方形Ａからの位相的な距離で三角形要素を分類し、位相的な距離の小さい三角形要素から順に長方形Ｂの配置位置を探索する。これにより、長方形Ａからできるだけ近い位置に長方形Ｂを配置することができる。
以上の操作により、関連性を持ったクラスタどうしを近くに配置することが可能となる。どのクラスタとどのクラスタとが関連性を持っているかは、予め階層型データにおいて付加情報を付加するなどの手段により識別することができる。
しかしながら、本手法は、配置すべき長方形（クラスタ）の数に対して、関連性を持ったクラスタの数が少ない場合に有効な手法である。具体的な例を挙げれば、配置すべき長方形の数に対して、他のクラスタと関連性を有するクラスタが半数以下であり、かつ１個のクラスタが関連性を持つ他のクラスタの数は高々２、３個であるようなデータにおいて有効であると考えられる。
配置すべき長方形（クラスタ）の数に対して、関連性を持ったクラスタの数が多い場合、それぞれの関連性を十全に表現した配置を得ることは困難であり、また配置処理に要する時間も増大する。そのような場合にクラスタ間の関連性を視覚化するには、本手法によるのではなく、後述するグラフデータの手法を用いてクラスタ間をアークで接続する手法を用いることが好ましい。
次に、ソート部２１及び要素配置部２２による長方形の配置処理を再帰的に実行することにより階層型データのグラフィックス・イメージを生成する方法を説明する。
図１１は、配置制御部２３の制御により、階層型データのグラフィックス・イメージを生成する処理を説明するフローチャートである。
図１１を参照すると、配置制御部２３は、まず、階層型データの最上位階層のクラスタから、幅優先探索で最下位階層のクラスタまで順次探索していき、探索された順にクラスタをスタックに登録する（ステップ１１０１）。このスタックは、例えば図１の主メモリ１２に設定され、上記探索の結果をここに格納することができる。
次に、配置制御部２３は、スタックに登録された順序とは逆にクラスタを１個選択し、処理対象の図形領域とする（ステップ１１０２、１１０３）。そして、ソート部２１及び要素配置部２２による当該図形領域への長方形（ステップ１１０３で選択されたクラスタの下位階層のクラスタ）群の配置処理を実行させる（ステップ１１０４）。これは、図７、図８を参照して上述した処理である。
上述したように、本処理は階層型データの下位階層から上位階層へ再帰的に実行されるため、所定の階層における長方形（クラスタ）を配置する場合、当該長方形内に、その下位階層の長方形がすでに配置されている。したがって、ステップ１１０４の処理が終了した後、配置された長方形のさらに下位階層の長方形群の位置を再算出しておく（ステップ１１０５）。
以上の処理の後、配置制御部２３は、ステップ１１０２に戻ってスタックに登録された次のクラスタを選択し（ステップ１１０３）、同様の処理を繰り返す。そして、ステップ１１０２において、スタックに登録された全てのクラスタの配置が決まったと判断されたならば、処理を終了し、生成された階層型データのグラフィックス・イメージを出力する。
図１２は、配置制御部２３の制御により、階層型データの構成要素が階層ごとに配置され、グラフィクス・イメージが生成される様子を示す図である。
図１２を参照すると、この階層型データは、最下位の階層のデータ要素を含めると４つの階層を持つ。図１２（Ａ）においては、データ要素に対応する正方形セルが長方形１２０１、１２０２の内部に配置されている。図１２（Ｂ）においては、この長方形１２０１、１２０２と同階層のクラスタの長方形が、さらに上位の長方形１２１１の内部に配置されている。さらに図１２（Ｃ）においては、この長方形１２１１と同階層のクラスタの長方形が、最上位階層の長方形１２２１の内部に配置されている。
ここで、本実施の形態における処理時間について考察する。
本実施の形態のソート部２１及び要素配置部２２によって１クラスタを構成するｎ個の長方形を配置する処理時間は、Ｏ（ｎ）よりも大きくなる。なお、Ｏ（ｎ）はｎの定数倍以内の時間（この場合、ｎも定数なので、定数時間内）で計算できることを意味する。したがって、ｎの増加に伴って計算時間が急増する傾向にある。ただし、ｎが５００〜１０００程度であれば実用上は問題ないと考えられる。
また、ｎが数千、数万となるようなデータにおいても、以下の処理によって処理時間を抑えることができる。
１．ｎ個のデータ要素を、数個〜数十個の仮想クラスタに分配する。
２．仮想クラスタごとにデータ要素を配置し、次に仮想クラスタ群を配置する。
３．中のデータ要素の位置を保存したまま仮想クラスタを削除する。
また、頂点を１個追加するたびに三角メッシュを更新するインクリメンタルなＤｅｌａｕｎａｙ三角メッシュ法は、一般に、処理時間がｗｏｒｓｔ  ｃａｓｅでＯ（ｎ２）であるとされる。しかしながら、本実施の形態で用いられるインクリメンタルＤｅｌａｕｎａｙ三角メッシュ法では、この処理時間が短縮されると考えられる。
通常のインクリメンタルＤｅｌａｕｎａｙ三角メッシュ法は、
１．ノードを１点追加する。
２．そのノードを内部に包括する三角形要素を検出する。
３．検出した三角形要素の３頂点とノードを結ぶ３辺を生成し、三角形要素を３分割する。
４．周辺の三角形要素との辺の組み替えにより、局所的に三角形要素を生成しなおす。
という処理をノードの個数だけ反復することによって三角メッシュを生成する。このとき、２の処理がｗｏｒｓｔ  ｃａｓｅでＯ（ｎ２）となる。しかし、本実施の形態で適用されるインクリメンタルＤｅｌａｕｎａｙ三角メッシュ法では、予め特定の三角形要素を選択し、その内部にノードである長方形を追加するので、２の検出処理が不要である。すなわち、本実施の形態における三角メッシュの処理時間は３及び４の処理時間によって決まり、これらはＯ（ｎ２）より小さい。したがって、本実施の形態における三角メッシュ生成の処理時間はＯ（ｎ２）より小さくなる。
次に、本実施の形態による階層型データのグラフィックス・イメージを生成する本実施の形態を適用して、実際の階層型データをグラフィックス表示した例を示す。
図１３は、インターネットのｗｗｗ．ｔｒｌ．ｉｂｍ．ｃｏｍ以下のウェブページを、そのＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒｓ）に基づいて階層型データとし、本実施の形態によりグラフィックス表示した状態を示す図である。図１３において、正方形セルが個々のデータ要素を示し、各正方形セルを囲む長方形がクラスタを示している。同図を参照すると、当該ウェブページの階層構造が視覚的に把握しやすく表示されている。
〔第２の実施の形態〕
上記の例では、長方形領域の入れ子構造によって階層型データにおける階層構造をグラフィックス表示する手法について説明したが、さらに、生成されたグラフィックス・イメージにおいて、所定の階層における構成要素の間の関連性をアークによるリンク構造で表現することが可能である。言い換えれば、階層型データのうちのグラフデータ（階層構造を持ったグラフデータ）をグラフィックス表示するための前処理として、本実施の形態による手法を用いることが可能である。
第２の実施の形態は、上述した手法を利用して階層構造を持ったグラフデータをグラフィックス表示する。
図１４は、第２の実施の形態による階層構造を持ったグラフデータのグラフィックス・イメージを生成するグラフィックス・イメージ生成装置の構成を説明する図である。
図１４に示すグラフィックス・イメージ生成装置は、処理対象であるグラフデータにおける各階層の構成要素に関して配置順を決定するソート部２１と、ソート部２１にて決定された順番にしたがってグラフデータの構成要素を配置する要素配置部２２と、ソート部２１及び要素配置部２２によるグラフデータの構成要素の配置を当該グラフデータの下位階層から順に再帰的に実行させる配置制御部２３と、配置制御部２３による制御によって生成されたグラフィックス・イメージにおける構成要素間に当該構成要素どうしをつなぐアークを生成するアーク生成部２４とを備える。
図１４に示すグラフィックス・イメージ生成装置は、図２に示した階層型データのグラフィックス・イメージを生成する装置と同様に、図１に示すようなコンピュータシステム１０にて実現される。すなわち、図１４の各構成要素は、図１の主メモリ１２に保持されているコンピュータプログラムにより制御された処理装置１１にて実現される仮想的なソフトウェアブロックである。当該コンピュータプログラムは、ＣＤ−ＲＯＭやフロッピーディスクなどの記憶媒体に格納して配布したり、ネットワークを介して伝送したりすることにより提供される。そして、当該コンピュータプログラムは、主メモリ１２にロードされて処理装置１１を制御し、図１に示したコンピュータシステム１０において図１４に示した各構成要素の機能を実現する。
図１４に示した構成要素のうち、ソート部２１、要素配置部２２及び配置制御部２３は、図２に示したソート部２１、要素配置部２２及び配置制御部２３と同様である。したがって、同一の符号を付して説明を省略する。
アーク生成部２４は、ソート部２１、要素配置部２２及び配置制御部２３により生成されたグラフィックス・イメージのうち、ユーザにより指定された長方形の内部の構成要素に対し、当該構成要素間の関連性に基づいてアークを生成する。構成要素間の関連性は、例えば元のグラフデータに付加情報として付加しておくことができる。構成要素間にアークを生成する手法は、この種のグラフデータに対するグラフィックス表示技術で用いられる既存の手法を用いることが可能である。
また、アーク生成部２４は、アークを生成する際に、構成要素や他のアークと重ならないように、構成要素を適宜移動させることができる。この場合、必要に応じて、当該構成要素が配置されている長方形を拡大することも可能である。階層構造を持ったグラフデータでは、通常、当該長方形もさらに上位の長方形に対する構成要素となっている。したがって、当該長方形が拡大されると、当該長方形を含む構成要素間の配置が変化することとなる。そこで、このような場合は、当該長方形の周囲の構成要素を、当該長方形から遠ざかるように適宜移動させることが必要となる。
図１５は、アーク生成部２４にて階層構造を持ったグラフデータにおける所定のクラスタの構成要素間にアークを生成する動作を説明するフローチャートである。また、図１６は、ソート部２１、要素配置部２２及び配置制御部２３により生成されたグラフデータに対してアークが生成される様子を示す図である。
図１５に示すように、アーク生成部２４は、まず、図１に示したビデオメモリ１３からソート部２１、要素配置部２２及び配置制御部２３により生成されたグラフデータ全体のグラフィックス・イメージを入力する（ステップ１５０１）。このとき、当該グラフィックス・イメージは、図１に示したディスプレイ装置１４に表示され、ＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）によってアークの生成を行うクラスタの指定を受け付けられる状態になっている。図１６（Ａ）は、この状態におけるディスプレイ装置１４の表示例を示す。同図を参照すると、このグラフデータは、５つの階層を持っていることが解る。
次に、ユーザがマウス等の入力デバイスを用いて所望の１つのクラスタを指定し、アーク生成部２４がこの入力を受け付ける（ステップ１５０２）。
アーク生成部２４は、この指定に基づいて、当該クラスタの直下の階層における長方形を再配置し、かかる長方形（クラスタ）の関連性に基づいてアークを生成する（ステップ１５０３）。
また、長方形の再配置によって指定されたクラスタを表す長方形が大きくなった場合、当該クラスタと同階層の他のクラスタとの間で干渉が発生しないように、当該他のクラスタを移動させる（ステップ１５０４）。
最後に、アーク生成部２４は、以上の処理によってアークが生成されたグラフィックス・イメージをビデオメモリ１３に格納する。そして、当該グラフィックス・イメージがディスプレイ装置１４に表示される。
図１６（Ｂ）は、図１６（Ａ）の状態から、ユーザにより最上位の階層のクラスタ１６０１（最も外側で全てのクラスタを内包する長方形）が指定された場合のアーク生成部２４による処理結果を示す。図示のように、第２階層の長方形間にアークが生成されると共に、各長方形の配置位置も変更されている。
図１６（Ｃ）は、図１６（Ｂ）の状態から、ユーザにより第２階層のクラスタ１６０２が指定された場合のアーク生成部２４による処理結果を示す。図示のように、クラスタ１６０２を表す長方形の内部（第３階層）の長方形間にアークが生成されると共に、当該長方形の配置位置も変更されている。また、第３階層の長方形の配置位置を変更した結果、クラスタ１６０２を表す長方形が拡大されたため、第２階層における他の長方形の配置位置も変更されている。
図１６（Ｄ）は、図１６（Ｃ）の状態から、ユーザにより第４階層のクラスタ１６０３が指定された場合のアーク生成部２４による処理結果を示す。図示のように、クラスタ１６０３を表す長方形の内部（第５階層）の正方形セル間にアークが生成されると共に、当該正方形セルの配置位置も変更されている。これに伴って、当該正方形セルを内包する第４階層のクラスタ１６０４を表す長方形が拡大し、さらに、この長方形を内包する第３階層のクラスタ１６０２を表す長方形も拡大している。（階層構造を持ったグラフデータを含む）
図１７は、図１３に示したウェブページにおける幾つかのプロジェクトに関するページを表すクラスタにおいて、当該ページ間のリンク構造を示すアークを生成した状態を示す図である。同図を参照すると、図１３にて示された階層構造は保持されたまま、一部のページにおいてリンク構造が明示されている。
〔第３の実施の形態〕
第１、第２の実施の形態は、階層型データの階層構造を表すグラフィックス・イメージを生成するために、データ要素（構成要素）を示す長方形（クラスタまたはセル）を大きいものから順に、配置できる場所に配置している。これは、データ要素どうしができるだけ重ならないように配置すること、かつ画面空間を有効利用するために隙間をつくらないように配置することを方針としており、結果として画面空間上に、できるだけ粗密差のないようにデータ要素を配置する。しかし、このような配置方法を採ると、データ全体の意味や傾向を読み取るために画面上のデータ要素の位置に意味を持たせて配置したい、あるいは類似する意味を持つデータには類似する配置結果が得られるように配置したい、といった要求がある場合に、適切なグラフィックス・イメージを生成することができない。すなわち、構造的に非常に類似しているにもかかわらず非常に異なる配置結果を得てしまうケースが非常に頻繁にある。図３５は、このようなケースにおけるグラフィックス・イメージの生成例を示す図である。図示のように、約８００個のデータ要素をもつ階層型データ（図３５（Ａ））からわずか７個を削除しただけという、非常に類似したデータ（図３５（Ｂ））においても、非常に異なる配置結果を得ることがあり得る。
第３の実施の形態は、配置するクラスタまたはセルに対して画面空間におけるこの辺りに配置したいという参照位置（予め概略的に指定された配置位置）を記述したテンプレートを導入し、このテンプレートに基づいてクラスタまたはセルを表す長方形を配置する。したがって、任意の規則にしたがってテンプレートを作成し、長方形の配置位置を指定することにより、データ要素の位置に意味を持たせたり、類似する意味を持つデータに対して類似する配置結果を得たりすることが可能となる。
図１８は、第３の実施の形態で導入されるテンプレートの概念を示す図である。
図１８（Ａ）は、９個の構成要素を持つ１階層に対するテンプレートの例を示す。構成要素の位置情報であるテンプレートは、大きさが配置領域の大きさに一致しており、所定の座標（例えばｘ−ｙ座標）が設定されている。そして、この座標値により、配置領域内における構成要素を配置すべき位置を特定することができる。テンプレート作成時点では９個の構成要素を表す長方形の大きさは知らなくてもよい。また、テンプレート上で配置に粗密差が生じていても差し支えない。図１８（Ｂ）は、テンプレートに基づいて各構成要素に対応し所定の大きさを持つ９個の長方形を配置した結果を示す。各長方形は、テンプレートに記述された位置関係をできるだけ保持し、かつ互いに重なることなく、占有面積の拡大を抑えながら配置されていることが分かる。
図１９は、第３の実施の形態による階層データのグラフィックス・イメージを生成するグラフィックス・イメージ生成装置の構成を説明する図である。
図１９に示すグラフィックス・イメージ生成装置は、処理対象であるグラフデータにおける各階層の構成要素に関して配置順を決定するソート部３１と、ソート部３１にて決定された順番にしたがってグラフデータの構成要素を配置する要素配置部３２と、ソート部３１及び要素配置部３２によるグラフデータの構成要素の配置を当該グラフデータの下位階層から順に再帰的に実行させる配置制御部３３と、要素配置部３２による構成要素（長方形）の配置において参照されるテンプレートを保持するテンプレート保持部３４とを備える。
図１９に示すグラフィックス・イメージ生成装置は、図２に示した階層型データのグラフィックス・イメージ生成装置と同様に、図１に示すようなコンピュータシステム１０にて実現される。すなわち、図１９のソート部３１、要素配置部３２及び配置制御部３３は、図１の主メモリ１２に保持されているコンピュータプログラムにより制御された処理装置１１にて実現される仮想的なソフトウェアブロックである。当該コンピュータプログラムは、ＣＤ−ＲＯＭやフロッピーディスクなどの記憶媒体に格納して配布したり、ネットワークを介して伝送したりすることにより提供される。そして、当該コンピュータプログラムは、主メモリ１２にロードされて処理装置１１を制御し、図１に示したコンピュータシステム１０において図１９に示した各構成要素の機能を実現する。また、テンプレート保持部３４は、主メモリ１２や記憶装置１５にて実現される。
第３の実施の形態は、階層を表す領域を入れ子状に組み合わせる手法によって、階層型データのグラフィックス・イメージを生成する点において第１の実施の形態と同様である。本実施の形態にて生成されるグラフィックス・イメージを構成するセル及びクラスタについても、第１の実施の形態と同様に定義される。
図１９に示した構成において、ソート部３１は、所定のクラスタを示す長方形内に当該クラスタの下位階層のクラスタまたはセルを配置する場合に、当該クラスタまたはセルの配置順を決定（ソート）する。
配置順は、テンプレートに基づいて決定される。まず、構成要素を配置する配置領域（テンプレートと同じ大きさ）の４頂点の座標値を、（−１，−１）、（１，−１）、（１，１）、（−１，１）として正規化する。この状態を図２０に示す。そして、所定の基準にしたがって、当該テンプレートの座標値にて配置位置が指定されている構成要素の配置順を決定する。配置順を決める基準は、テンプレートにて特定される各構成要素の配置位置の意味等に応じて適宜設定することができるが、例えば、ｘ座標値の小さい順、正規化された座標値における原点に近い順などとすることができる。
なお、テンプレートの座標値にて配置位置が指定されていない構成要素については、例えば第１の実施の形態と同様に長方形の面積の大きいものから順に配置するようにすることができる。クラスタまたはセルの配置順を示すソート結果は、主メモリ１２や処理装置１１内のレジスタに一時的に格納される。
要素配置部３２は、階層型データのクラスタまたはセルを、主メモリ１２等から読み出されたソート部２１によるソート順にしたがって、ディスプレイ空間に配置する。要素配置部３２は、これらの構成要素を表す長方形の配置位置を次の判断基準に基づいて判断する。
［基準１］すでに配置されている長方形群とまったく重ならない位置。
［基準２］テンプレートに記述された参照位置との距離Ｄができるだけ小さい位置。
［基準３］当該長方形の配置による占有領域の拡大量Ｓができるだけ小さい位置。
このうち、［基準１］を必ず満たし、かつ［基準２］［基準３］をできるだけ満たす位置を探索する。本実施の形態では、ａＤ＋ｂＳの値が最小である位置（ａ、ｂはユーザにより定義される定数）を、［基準２］［基準３］を最も満足する位置であるとみなす。ａ、ｂを適宜に設定することにより、［基準２］と［基準３］のどちらを重視するかを制御することができる。
また、要素配置部３２は、長方形を配置できるような隙間を高速に探す処理を実現するために、第１の実施の形態の要素配置部２２と同様に、Ｄｅｌａｕｎａｙ条件を満たす三角形による長方形の中心点を結ぶ三角メッシュを用いた処理を実行する。すなわち、Ｄｅｌａｕｎａｙ三角メッシュを参照して長方形の候補位置を有限個に絞込み、その中で最も良好な位置に長方形を配置する。
また、要素配置部３２は、第１の実施の形態の要素配置部２２と同様に、所定の階層のクラスタを配置する際に、当該クラスタを表す長方形とその内部に既に配置されている下位階層のクラスタまたはセルを表す長方形または正方形との相対的な位置関係を保存し、すなわちこれらの図形を合わせて１つの図形として扱い、配置を行う。
以上のようにして、第３の実施の形態では、第１の実施の形態において用いた手法に、テンプレートに記述された参照位置に近い位置という条件を加えて長方形の配置を行うこととなる。
配置制御部３３は、ソート部３１及び要素配置部３２により階層型データの階層ごとに行われる長方形の配置処理を、下位階層から上位階層へと再帰的に繰り返して実行させることにより、階層型データ全体のグラフィックス・イメージを生成する。生成されたグラフィックス・イメージは、図１に示したビデオメモリ１３に格納され、ディスプレイ装置１４に表示される。
テンプレート保持部３４は、要素配置部３２による構成要素の配置に際して参照されるテンプレートを保持している。本実施の形態では、上述したように任意の規則にしたがってテンプレートを作成することにより、データ要素の位置に意味を持たせたり、類似する意味を持つデータに対して類似する配置結果を得たりすることが可能となる。このテンプレートの種類及び作成方法の詳細については後述する。
次に、上記構成に基づく階層型データのグラフィックス・イメージの生成処理について説明する。
本実施の形態では、まず配置領域の４頂点ｖ１、ｖ２、ｖ３、ｖ４の座標値を、（−１，−１）、（１，−１）、（１，１）、（−１，１）とする。これに対角線を１本引くことで、２個の三角メッシュ要素から構成される三角メッシュを生成する。これを本発明における三角メッシュの初期状態とする。以後、Ｄｅｌａｕｎａｙ条件を満たしながら三角メッシュを細かくしていく手法は、第１の実施の形態で説明した手法（図３、図４参照）と同様である。
次に、三角メッシュの内部領域に構成要素を表す長方形（以下、単に長方形と記す）を１個ずつ順番に配置する。上述したように、本実施の形態では、長方形の配置位置を指定するテンプレートの座標値に基づいて長方形の配置順が決められる。図２１に示すように、長方形ｒ１、ｒ２がすでに配置されているとすると、この長方形ｒ１、ｒ２に対して隙間をあけずに、かつテンプレート座標値に近い位置に次の長方形を配置する。
本実施の形態では、テンプレート上の正規化された座標値にできるだけ近い三角メッシュ要素から順に抽出し、その三角メッシュ要素の内部に複数個の候補位置を設定する。そして、この候補位置に対して長方形の配置を試みる。これを抽出されたいくつかの三角メッシュ要素について反復して、［基準１］を満たしかつａＤ＋ｂＳ値が最小である候補位置を特定し、その位置を長方形の配置場所に決定する。
図２２は、長方形の配置位置を決定するための三角メッシュ要素の抽出方法を説明する図である。
図２２に示すように、まず新しく配置する長方形のテンプレート上の座標値を内部に包括する三角メッシュ要素を特定する（図２２（Ａ）参照）。この三角メッシュ要素を出発点にして、隣接関係の幅優先探索によって三角メッシュ要素を抽出する（図２２（Ｂ）参照）。そして、この抽出順にしたがって長方形の候補位置を算出する。三角メッシュ要素をテンプレート座標値から近い順に処理している関係上、ａＤ値は処理が進むにつれて大きくなる傾向にある。そこで本実施の形態では、ａＤ値がすでに記録されているａＤ＋ｂＳ値の最小値を超えた時点で、反復処理を終了する。
図２３は、抽出された１個の三角メッシュ要素に長方形を配置する候補位置を求める方法を説明する図である。
図２３に示すように、長方形の配置候補位置を算出するために、まず三角メッシュ要素の頂点とその対辺を結ぶ線分を、一定のサンプリング間隔をおいて生成する。その線分上で、すでに配置された長方形と接する位置を、新しい長方形の中心点の候補位置とし、ここに長方形の配置を試みる。ある三角メッシュ要素の内部における候補位置がｍ個あるときに、本開示書では候補位置をｃ１〜ｃｍと記述する。このとき、次のいずれかの処理を行う。
・長方形ｒｉの中心点ｖｉ＋４を候補位置ｃｊに配置したとき、長方形ｒｉがすでに配置された他の長方形と重なるようであれば、候補位置ｃｊには長方形を配置しない。
・候補位置ｃｊにおけるａＤ＋ｂＳの値を算出する。Ｓの値には、長方形領域の面積や、４辺の長さの総計などを用いる。算出したａＤ＋ｂＳの値が、長方形ｒｉに対して算出されたすべての値の中で最小であれば、その値を（ａＤ＋ｂＳ）ｍｉｎとして記録する。それと同時に、候補位置ｃｊを位置ｃｍｉｎとして記録する。
以上の処理を、三角メッシュ要素ごとに反復する。そして、反復を終了した時点で記録された位置ｃｍｉｎに、長方形の中心点ｖｉ＋４を配置する。
次に、長方形を配置するために配置領域を拡大する処理を説明する。
本実施の形態では、次の２つのケースにおいて、配置領域の４頂点ｖ１、ｖ２、ｖ３、ｖ４のいずれかを移動して、配置領域を拡大する。
１）上記の処理により決定した位置ｃｍｉｎに配置した長方形ｒｉが、４頂点ｖ１、ｖ２、ｖ３、ｖ４によって構成される配置領域をはみ出しているとき。
２）位置ｃｍｉｎがまったく記録されないとき。言い換えれば［基準１］を満たす候補位置がまったく見つからなかったとき。このときは領域を拡大した後に、候補位置の算出処理からやり直す。
図２４は、上の２つのケースにおける配置領域の拡大方法を概略的に示す図である。
配置領域を拡大した場合は、テンプレート上における三角メッシュの頂点座標値を再度正規化する。
以上のようにして、テンプレートに基づく長方形配置によるグラフィックス・イメージの生成が行われるが、実際にグラフィックス・イメージを生成する場面では、配置しようとする長方形において、テンプレートに座標値が与えられている長方形と与えられていない長方形が混在する場合があり得る。例えば、
・生成されるグラフィックス・イメージに対するデザイン意図をテンプレートに反映させたとき、による位置指定のあるデータ要素と、位置指定のないデータ要素が混在していることがある。
・時系列データにおいて、直前の時点の配置結果をテンプレートとしたとき、新しく追加されたデータ要素の座標値はテンプレートには記述されていない。
以上のような状況で、テンプレートに座標値が記述されていないケースが考えられる。
この場合、
１．まず、テンプレートに座標値が記述されている長方形群を集めて、本実施の形態の手法によって配置を決定する。
２．続いて、テンプレートに座標値が記述されていない長方形群を集めて、第１の実施の形態に示したアルゴリズムによって、面積の大きい順に長方形の配置を決定する。
という手順によって、すべての長方形群の配置を決定する。
図２５乃至図２７を参照して、本実施の形態により長方形を配置する処理の流れについて説明する。図２５は１個の階層を構成する長方形群の配置方法を説明するフローチャート、図２６は長方形の配置位置の決定方法を説明するフローチャートである。また図２７は、配置制御部３３の制御により、階層型データのグラフィックス・イメージを生成する処理を説明するフローチャートである。
図２５を参照すると、まず、ソート部３１が、処理対象である階層データのうち、長方形の配置処理を行おうとする階層のデータを主メモリ１２から読み込み、テンプレートに座標値が記述されている長方形を集めて、座標値を正規化する。そして、ｘ座標値の小さい順や正規化された座標値における原点に近い順といった、データ要素（構成要素）の配置位置に基づく所定の基準にしたがって長方形をソートする（ステップ２５０１）。ソート結果は、主メモリ１２や処理装置１１のレジスタに一時的に格納され、要素配置部３２により使用される。
次に、要素配置部３２が、長方形（構成要素）の配置のために参照されるテンプレートをテンプレート保持部３４から読み込んで、テンプレートに対応する配置領域の４頂点を用いて、三角メッシュを初期状態にする（ステップ２５０２）。そして、配置対象であるそれぞれの長方形ｒｉに対して、次の一連の処理を適用して配置を決定する（ステップ２５０３）。
まず、ソート部３１によるソート順に応じて未配置の長方形を１個抽出し（ステップ２５０４）、図２６を参照して後述する手順に従って、長方形の配置位置を決定する（ステップ２５０５）。そして、必要に応じて長方形領域の拡大を行い（ステップ２５０６）、さらに三角メッシュの更新を行った後、次の長方形の配置処理に進む（ステップ２５０７）。
処理対象である階層における全ての長方形が配置されたならば、処理を終了する（ステップ２５０３）。生成された当該階層のグラフィクス・イメージは、主メモリ１２や処理装置１１のレジスタに一時的に格納され、次の階層のグラフィックス・イメージを生成する際に用いられる。
次に、図２６を参照して、ステップ２５０５で行われる長方形の配置位置の決定処理を説明する。
図２５のステップ２５０４で抽出された長方形を配置するため、まず、テンプレートに記述された長方形ｒｉの座標値Ｗｉを内部に包括する三角メッシュ要素ｔ０を特定し、特定された三角メッシュ要素ｔ０をＦＩＦＯキューに登録する（ステップ２６０１）。そして、ＦＩＦＯが空になるまで、次の一連の処理を繰り返す（ステップ２６０２）。
まず、ＦＩＦＯキューから三角メッシュ要素ｔを取り出す。この三角メッシュ要素ｔに隣接する三角メッシュ要素のうちで、まだＦＩＦＯキューに未登録のものがあれば、それをＦＩＦＯキューに登録する（ステップ２６０３）。
次に、三角メッシュ要素ｔの内部に、候補位置ｃ１〜ｃｍを算出し、候補位置に長方形ｒｉの中心点ｖｉ＋４を試験的に配置して、以下の判定を行う（ステップ２６０４）。
（ａ）候補位置ごとにａＤ＋ｂＳの値を求め（ステップ２６０５）、ａＤ＞（ａＤ＋ｂＳ）ｍｉｎかどうかを判断する（ステップ２６０６）。ａＤ＞（ａＤ＋ｂＳ）ｍｉｎであれば、（ａＤ＋ｂＳ）ｍｉｎを記録して反復処理を終了し、対応する位置ｃｍｉｎに長方形ｒｉの中心点ｖｉ＋４を配置することに決定して処理を終了する（ステップ２６１０）。
（ｂ）ａＤ＞（ａＤ＋ｂＳ）ｍｉｎでない場合、すなわち、すでに配置されている長方形と重なる場合、次にａＤ＋ｂＳの値が最小かどうかを判断する（ステップ２６０７）。この値が最小であれば、その値を（ａＤ＋ｂＳ）ｍｉｎとして記録すると同時に、その候補位置を位置ｃｍｉｎとして記録する（ステップ２６０８）。
全ての候補位置について判定を終了したならば、次の三角メッシュ要素を選択して処理を繰り返す（ステップ２６０９、２６０２、２６０３）。なお、ステップ２６０６の判断で、ａＤ＞（ａＤ＋ｂＳ）ｍｉｎでない場合に、その場所には長方形を配置できないと判断し、ステップ２６０７の判断を行わずにステップ２６０９に進むこととしても良い。
以上の処理を繰り返し、ＦＩＦＯが空になったならば、（ａＤ＋ｂＳ）ｍｉｎを記録した位置ｃｍｉｎに長方形ｒｉの中心点ｖｉ＋４を配置することに決定して処理を終了する（ステップ２６１０）。
なお、他にテンプレートに座標値が記述されていない長方形が存在する場合は、その長方形を集めて、第１の実施の形態に開示したアルゴリズム（図７、８参照）で配置を決定する。
次に、図２７を参照して、配置制御部３３の制御による各階層の長方形を配置する処理を説明する。
まず、処理対象である階層データを主メモリ１２から読み込み、最上位階層から出発して、幅優先探索で下位階層を探索し、探索順にスタックに登録する（ステップ２７０１）。そして、階層ごとにスタックに登録された階層データを、スタック登録とは逆順に１個ずつ選択し（ステップ２７０３）、図２５、２６に示した手順で、選択された階層を構成する長方形群を配置する（ステップ２７０４）。
上述したように、本処理は階層型データの下位階層から上位階層へ再帰的に実行されるため、所定の階層における長方形（クラスタ）を配置する場合、当該長方形内に、その下位階層の長方形がすでに配置されている。したがって、ステップ２７０４の処理が終了した後、配置された長方形のさらに下位階層の長方形群の位置を再算出しておく（ステップ２７０５）。
ステップ２７０３〜２７０５の処理を各階層に対して実行し、全ての階層で長方形の配置が決まったならば、配置結果であるグラフィックス・イメージをビデオメモリ１３に格納し、ディスプレイ装置１４にて出力する（ステップ２７０２、２７０６）。
次に、本実施の形態においてクラスタまたはセルの配置処理で用いられるテンプレートの作成方法について説明する。
本実施の形態の対象となるグラフィックス・イメージの生成において、時系列に沿って変化するデータに対してシームレスな視覚化結果を得たい場合がある。これに対して、グラフィックス・イメージを時間的な階層データの変化に応じて更新した場合に、更新前後における対応する構成要素の配置が大きく変わってしまうと、目的とするシームレスな視覚化結果を得ることができない。そこで、本実施の形態により、更新直前のグラフィックス・イメージをテンプレートとして新しいグラフィックス・イメージを生成する。図２８は、かかるテンプレートを用いたグラフィックス・イメージの更新の様子を示す図である。図２８を参照すると、更新前のグラフィックス・イメージ（図２８（Ａ））から作成されたテンプレート（図２８（Ｂ））に基づいて更新後のグラフィックス・イメージ（図２８（Ｃ））を作成することにより、更新前後で対応する構成要素については、ほぼ同じ位置に配置されることがわかる。これにより、更新前後でシームレスな視覚化結果を得ることができる。このようなシステムでは、プログラム制御された処理装置１１の機能として、生成したグラフィックス・イメージにおける各階層での各構成要素の位置を読み取り、各配置領域における正規化座標に対応付けてテンプレートを作成するテンプレート作成手段を備えることとなる。作成されたテンプレートは、テンプレート保持部３４に保存され、グラフィックス・イメージの更新時に使用される。
また、グラフィックス・イメージを所望するユーザ（以下、単にユーザ）が予め「これを画面の左上に」「これを画面の右下に」というようなデータ要素の位置関係に対するデザイン意図を持っており、これをできるだけ反映するような視覚化結果を得たい場合がある。この場合、本実施の形態により、ユーザによるデザイン意図に基づいて作成されたテンプレートを用いて、グラフィックス・イメージを生成する。図２９は、かかるテンプレートを用いたグラフィックス・イメージの生成の様子を示す図である。図２９を参照すると、ユーザによるデザイン（図２９（Ａ））に基づいてテンプレート（図２９（Ｂ））を作成し、このテンプレートを用いてグラフィックス・イメージ（図２９（Ｃ））を生成することにより、ユーザのデザイン意図（構成要素Ａ、Ｂ、Ｃ、Ｄの概略位置）が反映されたグラフィックス・イメージが生成されることがわかる。このようなシステムでは、ユーザがデザインを手動記述するためのグラフィカルなユーザインターフェイスをディスプレイ装置１４に表示し、キーボードやマウス等の入力デバイスからの入力を受け付けて、テンプレートを作成するテンプレート作成手段を、プログラム制御された処理装置１１の機能として備えることとなる。作成されたテンプレートは、テンプレート保持部３４に保存される。
さらに、ディスプレイ空間に対し、例えばアルファベット順に左から並べたり、新しい順に上から並べたりすることにより、データの意味を参照して、視覚化結果を得たい場合がある。この場合、データの意味を反映させ得る座標軸を定義し、本実施の形態により、かかる座標軸を用いたテンプレートとしてグラフィックス・イメージを生成する。図３０は、かかるテンプレートを用いたグラフィックス・イメージの生成の様子を示す図である。図３０を参照すると、英語のアルファベット順に上から下へ向かい（Ａｌｐｈａｂｅｔｉｃａｌ）、数字が大きくなるに伴って左から右へ向かう（Ｎｕｍｅｒｉｃａｌ）座標軸（図３０（Ａ））に基づいてテンプレート（図３０（Ｂ））を作成し、このテンプレートを用いてグラフィックス・イメージ（図３０（Ｃ））を生成することにより、配置位置においてデータの意味を反映させたグラフィックス・イメージが生成されることがわかる。このようなシステムでは、プログラム制御された処理装置１１の機能として、所定の座標軸をテンプレートに変換するテンプレート作成手段を備えることとなる。作成されたテンプレートは、テンプレート保持部３４に保存される。
図３１は、所定の階層型データを本実施の形態によりグラフィックス表示した状態を示す図である。図３１（Ｂ）は、図３１（Ａ）の階層データをわずかに変更し、テンプレートを用いずに（第１の実施の形態の手法で）再度グラフィックス表示した状態を示す図、図３１（Ｃ）は、同様の条件で、図３１（Ａ）のグラフィックス・イメージをテンプレートとして再度グラフィックス表示した状態を示す図である。
図３１（Ａ）と図３１（Ｂ）とを比較すると、データ構成は非常に類似しているにも関わらず、視覚的な印象が非常に異なる。一方、図３１（Ｃ）は、図３１（Ａ）をテンプレートとしているので、視覚的にも極めて類似したグラフィックス・イメージとなっている。
図３２は、所定のウェブページを、そのＵＲＬに基づいて階層型データとし、本実施の形態によりグラフィックス表示した状態を示す図である。図３３は、図３２の階層データをわずかに変更し、テンプレートを用いずに（第１の実施の形態の手法で）再度グラフィックス表示した状態を示す図、図３４は、同様の条件で、図３２のグラフィックス・イメージをテンプレートとして再度グラフィックス表示した状態を示す図である。
図３２と図３３とを比較すると、例えば実線で囲んだ範囲のクラスタの配置や破線で囲んだクラスタの位置が大きく異なっている。これに対し、図３４は、同じデータがほぼ同じ位置に配置されていることがわかる。
本実施の形態では、階層型データを入れ子構造で表現すると共に、テンプレートを用いることにより各階層における構成要素（クラスタまたはセル）の配置を制御してグラフィックス・イメージを生成する手法について説明したが、第２の実施の形態で説明したように、所定の構成要素間をアークで接続することにより、階層構造を持ったグラフデータのグラフィックス表示にも本実施の形態を適用できることは言うまでもない。
なお、上述した各実施の形態では、生成されたグラフィックス・イメージをビデオメモリ１３に格納した後、ディスプレイ装置１４にて表示することとしているが、ビデオメモリ１３に格納されたグラフィックス・イメージのデータをＣＡＤ（Ｃｏｍｐｕｔｅｒ  Ａｉｄｅｄ  Ｄｅｓｉｇｎ）システムなどで利用することもできる。
また、配置されるセルやクラスタに付加される情報に基づいて、当該セルを表す正方形やクラスタを表す長方形を色分けすることにより、各クラスタの持つ性格や特性を視覚化することが可能となる。
さらに、上述した実施の形態では、長方形の領域内に種々の大きさの長方形を配置する場合について説明したが、配置すべき構成要素の形状は長方形に限定するものではない。本実施の形態で提供される手法は、三角メッシュを用いて図形の配置位置の候補を選択し、選択された位置に実際に図形を配置して既に配置されている他の図形との干渉がないかどうかを確認した上で配置位置を決定している。したがって、長方形以外の図形を用いても、同様の過程を経ることにより、データの階層構造を入れ子構造で表現したグラフィックス・イメージを生成することが可能である。ただし、長方形を用いる場合に比べて、干渉の有無の計算や、三角メッシュを更新する際の配置された図形の中心点（あるいは、新たな三角形要素の頂点となりうる特定可能な点）を求める計算が複雑になるため、処理に要する時間が増加する。しかし、このようにすれば、各クラスタやセルが持つ性格や特性を、上述した色分けに加えて、当該セルやクラスタの形状によって表現することが可能となる。
また、本実施の形態のグラフィックス・イメージ生成装置に対し、図１４においてアーク生成部２４を追加したように、すでに生成されたグラフィックス・イメージに対してセルやクラスタを追加したり削除したりする手段を付加することもできる。この場合、構成要素の追加、削除を行う手段は、ユーザによる構成要素を追加する操作や所望の構成要素を削除する操作を受け付け、該当位置に正方形や長方形を追加し、または指定された正方形や長方形を削除する。削除する長方形に下位階層の構成要素が存在するときは、これも一緒に削除することもできるし、当該下位階層の構成要素を残して指定された長方形だけを削除することもできる（この場合、階層構造における当該階層のみが喪失することとなる）。そして、この正方形や長方形の削除によって同階層における正方形や長方形の位置関係が変化したならば、適当な規則（例えば正方形または長方形間に一定の引力と斥力とを作用させるような力学モデルなど）を適用して当該正方形や長方形の位置関係を調整する。
また、上記の実施の形態は、階層型データのグラフィックス・イメージを生成するものであるが、２階層の階層型データ（最下位階層のデータ要素（セル）と全てのデータ要素を内包する１つのクラスタからなるデータ）のグラフィックス・イメージを生成する場合、所定の領域内に所定の図形を効率的に配置する処理と等価となる。したがって、そのような要求のある技術分野（例えば、ＶＬＳＩの基盤配置、衣類の型紙の配置、機械部品の板金上への配置などの分野）での応用も考えられる。この場合、通常は、決まった領域内に図形を最適に（無駄な隙間が最小となるように）配置する。したがって、この種の分野で要求されるのは、一般には、いかに無駄なく図形を配置するかという最適化の手法であり、処理に要する時間の短縮は重視されない。しかしながら、試行的な処理などで、配置結果が必ずしも最適でなくても良いから短時間で配置を行いたいといった受容があれば、本実施の形態による階層型データのグラフィックス・イメージの生成手法を適用することができる。
産業上の利用可能性
以上説明したように、本発明によれば、大規模な階層型データのグラフィックス・イメージを容易に生成することができる。
また、本発明によれば、所定の領域に任意の大きさの要素を効率的に配置する処理を高速に行うことができる。
【図面の簡単な説明】
第１図は、本発明の第１の実施の形態によるグラフィックス・イメージ生成装置としてのコンピュータシステムの構成を示す図、第２図は、本発明の第１の実施の形態によるグラフィックス・イメージ生成装置の構成を説明する図、第３図は、三角メッシュにおける三角形要素の外接円を示す図、第４図は、三角メッシュの三角形要素を隣接するダミー頂点の数で分類した様子を示す図、第５図は、長方形を配置する対象として選択された三角形要素に長方形を置く手法を説明する図、第６図は、長方形を配置するためにダミー頂点を移動して配置領域を拡大する処理を説明する図、第７図は、本実施の形態により、所定の階層のクラスタを配置する処理の全体を説明するフローチャート、第８図は、本実施の形態により、三角メッシュを用いて長方形を配置する手順を説明するフローチャート、第９図は、本実施の形態により三角メッシュを用いて長方形を配置していく様子を示す図、第１０図は、本実施の形態による新たな長方形の配置に伴う三角メッシュの更新処理を説明する図、第１１図は、本実施の形態により、階層型データのグラフィックス・イメージを生成する処理を説明するフローチャート、第１２図は、本実施の形態により、階層型データの構成要素が階層ごとに配置され、グラフィクス・イメージが生成される様子を示す図、第１３図は、ウェブページを、そのＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒｓ）に基づいて階層型データとし、本実施の形態によりグラフィックス表示した状態を示す図、第１４図は、本発明の第２の実施の形態による階層構造を持ったグラフデータのグラフィックス・イメージを生成するグラフィックス・イメージ生成装置の構成を説明する図、第１５図は、アーク生成部により構成要素間にアークを生成する動作を説明するフローチャート、第１６図は、ソート部、要素配置部及び配置制御部により生成されたグラフデータに対してアークが生成される様子を示す図、第１７図は、図１３に示したウェブページにおける幾つかのプロジェクトに関するページを表すクラスタにおいて、当該ページ間のリンク構造を示すアークを生成した状態を示す図、第１８図は、本発明の第３の実施の形態で導入されるテンプレートの概念を示す図、第１９図は、本実施の第３の実施の形態による階層データのグラフィックス・イメージを生成するグラフィックス・イメージ生成装置の構成を説明する図、第２０図は、テンプレートに基づき配置領域の４頂点の座標値を正規化した状態を示す図、第２１図は、本実施の形態における構成要素の配置の方法を説明する図、第２２図は、長方形の配置位置を決定するための三角メッシュ要素の抽出方法を説明する図、第２３図は、抽出された１個の三角メッシュ要素に長方形を配置する候補位置を求める方法を説明する図、第２４図は、本実施の形態における配置領域の拡大方法を概略的に示す図、第２５図は、１個の階層を構成する長方形群の配置方法を説明するフローチャート、第２６図は、長方形の配置位置の決定方法を説明するフローチャート、第２７図は、配置制御部の制御により、階層型データのグラフィックス・イメージを生成する処理を説明するフローチャート、第２８図は、時系列に沿って変化する階層型デー��に対するテンプレートを用いたグラフィックス・イメージの更新の様子を示す図、第２９図は、ユーザのデザイン意図を反映させたテンプレートを用いたグラフィックス・イメージの生成の様子を示す図、第３０図は、所定の座標軸に基づくテンプレートを用いたグラフィックス・イメージの生成の様子を示す図、第３１図は、所定の階層型データを本実施の形態によりグラフィックス表示した状態を示す図、第３２図は、所定のウェブページを、そのＵＲＬに基づいて階層型データとし、本実施の形態によりグラフィックス表示した状態を示す図、第３３図は、図３２の階層データをわずかに変更し、テンプレートを用いずに再度グラフィックス表示した状態を示す図、第３４図は、同様の条件で、図３２のグラフィックス・イメージをテンプレートとして再度グラフィックス表示した状態を示す図、第３５図は、わずかに異なる２種類の階層型データに対してテンプレートを用いずに生成されたグラフィックス・イメージの例を示す図、第３６図は、従来の技術による階層型データの表示例を示す図である。
【図１】
0004028844.tif 000002
【図２】
0004028844.tif 000003
【図３】
0004028844.tif 000004
【図４】
0004028844.tif 000005
【図５】
0004028844.tif 000006
【図６】
0004028844.tif 000007
【図７】
0004028844.tif 000008
【図８】
0004028844.tif 000009
【図９】
0004028844.tif 000010
【図１０】
0004028844.tif 000011
【図１１】
0004028844.tif 000012
【図１２】
0004028844.tif 000013
【図１３】
0004028844.tif 000014
【図１４】
0004028844.tif 000015
【図１５】
0004028844.tif 000016
【図１６】
0004028844.tif 000017
【図１７】
0004028844.tif 000018
【図１８】
0004028844.tif 000019
【図１９】
0004028844.tif 000020
【図２０】
0004028844.tif 000021
【図２１】
0004028844.tif 000022
【図２２】
0004028844.tif 000023
【図２３】
0004028844.tif 000024
【図２４】
0004028844.tif 000025
【図２５】
0004028844.tif 000026
【図２６】
0004028844.tif 000027
【図２７】
0004028844.tif 000028
【図２８】
0004028844.tif 000029
【図２９】
0004028844.tif 000030
【図３０】
0004028844.tif 000031
【図３１】
0004028844.tif 000032
【図３２】
0004028844.tif 000033
【図３３】
0004028844.tif 000034
【図３４】
0004028844.tif 000035
【図３５】
0004028844.tif 000036
【図３６】
0004028844.tif 000037