JP4864181B2 - ノード表示装置 - Google Patents

ノード表示装置 Download PDF

Info

Publication number
JP4864181B2
JP4864181B2 JP21449199A JP21449199A JP4864181B2 JP 4864181 B2 JP4864181 B2 JP 4864181B2 JP 21449199 A JP21449199 A JP 21449199A JP 21449199 A JP21449199 A JP 21449199A JP 4864181 B2 JP4864181 B2 JP 4864181B2
Authority
JP
Japan
Prior art keywords
node
link
child
parent
layout
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP21449199A
Other languages
English (en)
Other versions
JP2000067253A (ja
Inventor
オー.ランピング ジョン
ビー.ラオ ラマナ
ジー.テネヴ ティチョミア
Original Assignee
エスエーピー・アメリカ・インコーポレーテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by エスエーピー・アメリカ・インコーポレーテッド filed Critical エスエーピー・アメリカ・インコーポレーテッド
Publication of JP2000067253A publication Critical patent/JP2000067253A/ja
Application granted granted Critical
Publication of JP4864181B2 publication Critical patent/JP4864181B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/00Two-dimensional [2D] image generation
    • G06T11/20Drawing from basic elements
    • G06T11/26Drawing of charts or graphs

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Image Generation (AREA)
  • User Interface Of Digital Computer (AREA)
  • Bridges Or Land Bridges (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、双曲空間のような負曲率を有する空間へのノード−リンク構造のレイアウトに関する。
【0002】
【従来の技術】
ジャーナル・オブ・ビジュアルランゲージズ・アンド・コンピューティング誌(Journal of Visual Languages and Computing)、1996年、第7巻、33頁−55頁の、ランピング(Lamping, J.)及びラオ(Rao, R.)の「双曲ブラウザ:大きな階層を視覚化するための焦点+コンテキスト技術(“The Hyperbolic Browser: A Focus+Context Technique for Visualizing Large Hierarchies”)」は、双曲平面に、親子間及び同胞間の距離がどこでもほぼ同じように階層をレイアウトするための技術を開示している。再帰的アルゴリズムが、局所的情報に基づいて各ノードをレイアウトし、ノードの子孫に双曲平面の楔を割付ける。そのアルゴリズムは全ての子を、楔内の弧に沿って、親ノードから等距離であり且つ互いから少なくとも最小距離で離間するように配置する。ノードのレイアウトは、その親のレイアウト及びその親から始まる2又は3世代のノード構造だけに依存する。従って、レイアウトは、最初にルートに最も近いノードをレイアウトし、次に、構造が更に走査されるにつれて更にノードを追加することによって、増分的に行うことができる。ランピングら(Lamping et al.)の米国特許第5,590,250号は、各ノードが、そのノードの位置及び半径、及びそのノードが子を有する場合は子のリストへのリンクを含むデータ構造を有し、双曲平面での位置を表わすために複素数が用いられる、類似のレイアウト技術を開示している。
【0003】
1995年のアメリカ計算機学会コンピュータグラフィックス分科会(ACM SIGGRAPH)のVRML'95シンポジウム(1995年12月13日−16日、カリフォルニア州サンディエゴにて)議事録の33頁−38頁の、ミュンツナー(Munzner, T.)及びバーチャード(Burchard, P.)の「3次元双曲空間におけるワールドワイドウェブ構造の視覚化(“Visualizing the Structure of the World Wide Web in 3D Hyperbolic Space”)」は、循環を有する有向グラフに用いることができる、双曲平面にグラフをレイアウトするための技術を開示している。2つのノードを結ぶエッジの双曲線の長さは、双曲線関数と2つのノードに入射するエッジ間の角度とを用いて入手される。循環を有する有向グラフは、バックリンクエッジのフィルイン(filling in)によって、空間がそれ自体を包んで閉鎖できる双曲マニホールド空間か、又は標準双曲空間に埋め込まれることが可能である。
【0004】
本発明は、双曲空間のような負曲率を有する空間へのノードリンク構造のレイアウトにおける問題を扱う。
【0005】
負曲率レイアウトのためのランピング及びラオによって述べられた技術及び他の従来の技術では、構造が表示後に変化する場合、その変更された構造の少なくとも大きな部分について新たなレイアウトが一般的になされなければならず、次に再表示されなければはならない。大きな構造にレイアウトを行うのは遅く、再表示と一緒に行うと、ユーザが変更された構造と効果的に対話するのを妨げることがある。これらの問題は、特に構造の変更に対して深刻であるのだが、静的構造又はその部分の頻繁なレイアウトを要求する操作が行われる際にも生じる。
【0006】
ランピング及びラオによって述べられた、静的構造のためのレイアウト技術は、構造の少なくとも大きな部分のレイアウトを命令する特徴を有する。静的構造のためのレイアウト技術は、ツリー内のより上位のレイアウト決定に左右される各ノードでの、及びその同胞ノードでの決定を行い、その結果、あるノードの1つの子の追加又は削除が、そのノードの全ての子孫及び任意の同胞についてのレイアウトの再実行を命令する。また、この静的構造のためのレイアウト技術は、双曲平面内のノードの位置だけを保存し、ノードの位置を変えるであろう構造のいかなる変更も、そのノードの同胞及び全ての子孫のレイアウトの繰返しを要求する。
【0007】
【発明が解決しようとする課題及び課題を解決するための手段】
本発明は、双曲空間又は双曲平面のような負曲率を有する空間へのノード−リンク構造の局所的なレイアウトの実行を可能にする技術の提供によって、大きな構造のレイアウトの結果生じる問題を軽減する。この技術は、要素について、近隣ノード−リンク関係に関する情報を示す近隣関係データを入手する。次に、この技術は近隣関係データを用いて、負曲率を有する空間でのその要素の親に対する相対位置を示す、レイアウトデータを入手する。
【0008】
例えば、要素及び親がノードである場合は、レイアウトデータは、親の位置と要素の位置との間の距離を示す位置変位データと、親への入リンクと親から子への出リンクとの間の角度差を示す角度変位データとを含むことができる。特にエレガントな実施例では、レイアウトデータは位置変位データ及び角度変位データだけを含む。
【0009】
近隣ノード−リンク関係は、親と、その親の子と孫との間の関係だけを含むことができる。
【0010】
この新たな技術は、1つの要素が削除又は挿入されたときに少数の近隣要素だけ再レイアウトされればよいので、動的ノード−リンク構造のレイアウトにおいて有益である。また、この技術は、要素の絶対位置ではなく、親に対する相対位置を入手し、データ構造に単一の変更又は小さい一定数の局所的変更を行うことによって要素及び全ての子孫の位置の変更を可能にする。
【0011】
また、この新たな技術は、ノード−リンク構造の一部をレイアウトすることが望ましい種々の状況で用いることができるので、有益である。従って、この新たな技術は動的ノード−リンク構造に適用可能なだけではなく、メモリ内で構造を全ては使用できないために断片的にレイアウトされて表示できるだけの静的構造にも適用可能である。この技術は、ノードが複数の入リンクを有する有向グラフの部分的表現であるツリーのレイアウトに特に有益である。そのようなツリーの共有ブランチは、発生ごとに一番上の要素の相対位置だけが異なるので、共有ブランチの全発生に対して1回完全にレイアウトされるだけでよい。
【0012】
また、この技術は、構造の一部だけを含む変更のアニメーションにも有益である。例えば、構造に挿入又は削除がなされた場合、挿入又は削除に近い要素の位置を変えるだけの遷移のアニメーション化が望ましいかもしれない。この技術は、挿入又は削除に近い要素の位置だけが変更される、各アニメーションステップについて1回の、一連のレイアウトの急速な実行を可能にする。その結果、アニメーションのパフォーマンスが向上し、より単純なアニメーションアルゴリズムを用いることができる。アルゴリズムは、挿入又は削除に近い各ノードについての角度及び半径のような、少数の変数だけを続けて変更できる。
【0013】
別の長所として、この新たな技術は、従来技術のように常に構造のルートノード又は基底のリーフで開始するのではなく、どの任意の要素で開始しても表示を生成できるレイアウトを提供する。
【0014】
更に別の長所として、要素の、親に対する相対位置を、常に適度な精度をもって表わすことができる。それとは対照的に、要素の、双曲平面内の絶対位置が用いられる場合は、大きな構造は使用可能な浮動小数点数を使い果たすことがある。
【0015】
本発明の態様は、負曲率を有する空間にノード−リンク構造をレイアウトする方法であって、構造内の要素について、近隣ノード−リンク関係に関する情報を示す近隣関係データを入手し、近隣関係データに基づいて、負曲率を有する空間での要素の親に対する相対位置を示すレイアウトデータを入手する、負曲率を有する空間にノード−リンク構造をレイアウトする方法である。
【0016】
【発明の実施の形態】
以下の概念的構想は、米国特許第5,590,250号及び第5,619,632号で述べられた概念的構想と共に読むと、本発明の広い範囲を理解する上で役に立ち、以下に定義される用語は、特許請求の範囲を含む本出願を通して示された意味を有する。
【0017】
“ノード−リンク構造”は、ノードとリンクとに区別できる項目を含み、各リンクが2つ以上のノードに関係している構造である。“グラフ”は、各リンクが2つのノードに関係しているノード−リンク構造である。“有向グラフ”は、各リンクが関係するノード間の方向を示し、一方のノードがリンクのソース又は“フロムノード”であり、他方のノードがリンクの宛先又は“ツーノード”であるグラフである。“非環式有向グラフ”は、リンクが、それらの示された方向に辿られたときに、任意のノードからそれ自体に戻るパスを提供しない有向グラフである。“ツリー”は、ツリー内の任意の非ルートノードについて、リンクが、その示された方向に辿られたときに、ルートノードで始まり非ルートノードへと導く1つのパスだけを提供するような、1つのルートノードだけを有する非環式有向グラフである。
【0018】
ノード−リンク構造では、“ノード−リンク関係”は、要素間のノード及びリンクのパスに基づいた要素間の関係である。
【0019】
ノード−リンク関係を、パスの長さがパス内の要素の数によって測定されるとき、要素間の最短パスの長さに基づいて区分することが有用である。有向グラフでは、例えば、あるノードの“最も近い”ノード−リンク関係は、その入及び出リンクとの関係であろうし、次に、そのノードの親及び子ノードである他のノードとの関係、その次に、そのノードの親及び子ノードの他の入及び出リンクとの関係、その次に、そのノードの親の親、同胞、孫、及び共親(co-parent)である他のノードとの関係、等であろう。ある要素の1組の“近隣”ノード−リンク関係は、要素間の全ての最短パスの長さが、比較的短い2、3、又は4のような最大長さより全て短いというような近さの適切な基準を満たす、1組の関係である。近隣ノード−リンク関係の有用なグループの例は、ある要素の親、親の子(その要素を含む)、及び親の孫の間の関係のグループである。
【0020】
データが、親の絶対位置から要素の絶対位置を得るために用いることができる1つ以上の変位を示す場合、そのデータは要素の“親に対する相対位置”を示す。例えば、親の位置から要素の位置までのベクトルを定義する1組の変位は、要素の親に対する相対位置を示す。変位のタイプの例としては、座標軸に沿って又は大きさ(絶対値)でのいずれかで位置間の距離を示す位置変位、及び親への入リンクと親からその要素への出リンクとの間のような角度差を示す角度変位が挙げられる。
【0021】
本明細書では、“ナビゲーション信号”という用語は、ユーザがノード−リンク構造のある部分に他の部分よりも高い興味を持っていることを示す信号を意味する。例えば“拡張信号”は、グラフのある要素の表現が拡張されているグラフ表現を表示する要求を示し、一方“収縮信号”は、グラフのある要素の表現が収縮されているグラフ表現を表示する要求を示す。他の例は、ノード−リンク構造の一部を特定の位置で表示する要求を含み、それはブックマーク等を選択することによって、又は指し示されたフィーチャを焦点の中心へと移動することを要求するポイント及びクリック動作によって可能である。
【0022】
図1は、どのように負曲率を有する空間にノード−リンク構造10内の要素をレイアウトできるかを示している。ボックス20への点線で示されるように、ノード−リンク構造10内の要素、例示的にノード22は、幾つかの近隣ノード−リンク関係を有する。ボックス20で示されるように、近隣ノード−リンク関係は、例えば、親ノード24からノード22へのリンク、親ノード24から同胞ノード26及び28へのリンク、及びノード22から子ノード30及び32へのリンクの結果生じる関係を含み得る。
【0023】
ノード−リンク構造10からの実線及びボックス20からの点線によって示されるように、ノード22の近隣ノード−リンク関係に関する情報を示す、近隣関係データ40が入手される。次に、近隣関係データ40に基づいて、ノード22についてのレイアウトデータ42を入手できる。ノード−リンク構造10に関する他の情報も、レイアウトデータ42を入手するために用いられ得るが、ノード22が近隣ノード−リンク関係が変更されたときにのみ再レイアウトされればよいことを確実にするために、そのような他の情報は、好ましくは、遠いノード−リンク関係に関する情報を含むべきではない。
【0024】
レイアウトデータ42は、ノード22と、負曲率を有する空間での少なくともノード22の親ノード24に対する相対位置を含むノード22の位置とに関する、種々の情報を示してよい。例えば、ボックス44で示されるように、レイアウトデータ42は、負曲空間での親ノード24からノード22への距離及び方向を示すベクトルを示すことができる。子の位置を親の位置に対して相対的に定義できるように、親から子への方向を親の親から親への方向に対して相対的に(又は、親がルートである場合は、初期方向に対して相対的に)定義できる。従って、ベクトルは、親からの位置変位及び親の親から親への方向の角度変位を示すことができる。
【0025】
図2では、処理ボックス100の処理は、ノード−リンク構造内の要素について、その要素の近隣ノード−リンク関係に関する情報を示す、近隣関係データを入手することによって開始する。処理ボックス100の周りの内側の点線で示されるように、近隣関係データは1組の要素のうちのそれぞれについて入手できる。
【0026】
次に、処理ボックス102の処理は、処理ボックス100で入手された近隣関係データに基づいて、負曲空間での要素の親に対する相対位置を示す、レイアウトデータを入手する。処理ボックス102の周りの内側の点線で示されるように、レイアウトデータも同様に、処理ボックス100で近隣関係データが入手された1組の要素のそれぞれについて入手できる。処理ボックス100及び102の周りの外側の点線で示されるように、要素のレイアウトデータ入手後、別の要素について又は別の組の要素について近隣関係データを入手できる。
【0027】
図3の装置150は、ユーザ入力回路154からユーザ信号を示すデータを受信すると共にディスプレイ156に画像を定義するデータを供給するために接続された、プロセッサ152を含む。プロセッサ152は、ノード−リンク構造の少なくとも一部を定義するノード−リンクデータ158にアクセスするためにも接続されている。プロセッサ152は、例えば、メモリ164、記憶媒体アクセス装置166、又はネットワーク168への接続から受信した命令を供給できる命令入力回路162を介して、命令を示す命令データ160を受信するためにも接続されている。
【0028】
命令データ160によって示される命令を実行する上で、プロセッサ152は要素について、その要素の近隣ノード−リンク関係に関する情報を示す、近隣関係データを入手する。プロセッサ152は、ノード−リンクデータ158にアクセスしてノード−リンク関係に関する情報を入手できる。次に、プロセッサ152は、近隣関係データに基づいて、負曲率を有する空間での要素の親に対する相対位置を示すレイアウトデータを入手する。
【0029】
上述のように、図3は、命令入力回路162が命令を示すデータを受信し得る3つの可能なソース、即ちメモリ164、記憶媒体アクセス装置166、及びネットワーク168を示している。
【0030】
メモリ164は、ランダムアクセスメモリ(RAM)又は読取り専用メモリ(ROM)を含む、装置150内の任意の従来のメモリか、又は任意の種類の周辺又は遠隔メモリ装置であってよい。より一般的には、メモリ164は1つ以上のタイプのメモリ構成要素の組合せであってよい。
【0031】
記憶媒体アクセス装置166は、例えば1組の1つ以上のテープ、ディスケット、又はフロッピーディスクのような磁気媒体、1組の1つ以上のCD−ROMのような光学媒体、又はデータを格納するための任意の他の適切な媒体であり得る記憶媒体170にアクセスするための、ドライブ又は他の適切な装置又は回路であってよい。記憶媒体170は、装置150の一部、サーバの一部、他の周辺又は遠隔メモリ装置、又はソフトウェア製品であってよい。これらの場合のそれぞれで、記憶媒体170は装置150内に用いることができる1つの製造品である。記憶媒体170の上にデータユニットを配置して、記憶媒体アクセス装置166がデータユニットにアクセスしてそれらを命令入力回路162を介してプロセッサ152にシーケンスで供給できるようにすることが可能である。データユニットは、シーケンスで供給されると、図示されるように命令を示す命令データ160を形成する。
【0032】
ネットワーク168は、装置180から受信した命令データ160を供給できる。装置180内のプロセッサ182は、ネットワーク168を渡ってネットワーク接続回路184及び命令入力回路162を介して、プロセッサ152との接続を確立できる。どちらのプロセッサが接続を開始してもよく、接続は任意の適切なプロトコルで確立されてよい。次に、プロセッサ182はメモリ186に格納されている命令データにアクセスして命令データをネットワーク168を渡ってプロセッサ152に転送できるので、プロセッサ152はネットワーク168から命令データ160を受信できる。次に、命令データ160は、プロセッサ152によってメモリ164又はどこかに格納され、実行されることが可能である。
【0033】
上述した全般的なフィーチャは、ノード−リンク表現を表示するための多くの方法で様々な装置上で実施されてよい。以下に述べる実施例は、マイクロソフトウインドウズ(Microsoft Windows)の32ビット版を走らせ、C++言語ソースコードからコンパイルされたコードを実行する、PCに基づくシステム上で実施されたものである。
【0034】
図4では、システム200は、画像を表示するためのディスプレイ204、及びユーザから信号を供給するためのマウス208及びキーボード206に接続された、PCプロセッサ202を含む。PCプロセッサ202は、メモリ210及びクライアント212にアクセスできるようにも接続されている。メモリ210は、例示されているように、プログラムメモリ214及びデータメモリ216を含むことができる。クライアント212は、メモリ210に格納されたルーチン及びデータの組合せか、又は示されるようにメモリ210から独立していてよい、有向グラフに関する情報のソースである。例えば、プロセッサ202はネットワークを介してクライアント212と通信してもよい。
【0035】
プログラムメモリ214に格納されているルーチンは、幾つかの機能にグループ化できる。グラファルーチン220は、クライアント212からの情報によって定義される有向グラフを表わすデータ構造を生成及び変更する。ウォーカルーチン222は、有向グラフデータ構造から情報を入手することによって、キーボード206及びマウス208からのナビゲーション信号及び他のユーザ信号に応答する。ペインタルーチン224は、ディスプレイ204に信号を提供して有向グラフデータ構造の表現を表示させる。数学ルーチン226は、レイアウト空間内の有向グラフの要素の位置を得るために呼出されることができる。
【0036】
次に、データメモリ216は、プログラムメモリ214内のルーチンの実行中にプロセッサ202によってアクセスされるデータ構造を収容する。有向グラフデータ構造230は、上述のように、グラファルーチン220によって生成及び変更され得ると共に、ウォーカルーチン222及びペインタルーチン224によってアクセスされ得る。
【0037】
有向グラフデータ構造230内にリンクされ得る又は含まれ得るノード位置データ232は、双曲平面のような負曲空間内、及び2次元ユニットディスク(単位円)のようなレンダリング空間内のノードの位置を含むことができる。ノード位置データ232はプログラムメモリ214内のルーチンによってアクセスされ得る。
【0038】
プログラムメモリ214内のルーチンは、種々の雑データ構造234にもアクセスできる。データ構造234は、例えば、標準ヒープとして実施される、1対のノードIDからリンクIDへのマッピングのための予備データ構造を含んでもよい。即ち、この予備データ構造は、一定の期待時間内のリンクIDの検索及び挿入を可能にする。
【0039】
図5は、どのように図4のシステムがグラフの表現を表示することによってイベントに応答できるかを示している。
【0040】
処理ボックス300では、クライアント212は、開始グラフを入手すると共に、例えばノード生成の呼出しを介して、要素の初期セットをメモリにロードすることによって開始する。拡張フラグは要素の初期セット内のツリーを定義する。クライアント212は、双曲平面にツリーをレイアウトし、ツリーを双曲平面からユニットディスクへと、ルートノードをディスクの中心においてマッピングし、マッピングされたツリーをペイントし、二重バッファをスワッピングすることによってペイントされたバージョンをディスプレイ204に表示することを、全て処理ボックス300で行うために、メモリ214内のルーチンに対する適切な呼出しも行う。
【0041】
処理ボックス302では、クライアント212はグラフに関係するイベントを受信する。イベントはナビゲーション信号、編集信号、又はユーザからの他のタイプの信号から生じ得る。或いは、イベントはシステム200の内部又は外部いずれかの他のソースから受信されてもよい。いずれにせよ、イベントはクライアント212内から、メモリ214内のルーチンの1つから、又はプロセッサ202によって実行される他の命令からの呼出しの形態をとり得る。一連の受信されたイベントは、処理ボックス302がキューからのイベントの取り出しを含み得るように、キューの中に保持され得る。
【0042】
処理ボックス302で受信されたイベントに応答して、クライアント212は、メモリ214内のルーチンに対して1つ以上の呼出しを行うことによって、適切な応答を開始する。判断ボックス304によって示されるように、応答はイベントのタイプによるので、イベントに基づいてブランチが選択される。
【0043】
イベントは、オリエンテーション転換イベント、ストレッチイベント、又はドラッグイベントのような、非アニメーションイベントであってもよい。オリエンテーションイベントは、ユーザがルートノードに対して新たなオリエンテーションを示したときに生じ得る。ストレッチイベントは、ユーザが表示されている表現に対して新たなストレッチファクタを示したときに生じ得る。ドラッグイベントは、例えば、ユーザが、マウスダウン(マウスボタンを押したまま)クリック等によって表現内の位置を選択し、適切なジェスチャ又は他の信号によってその位置の移動を要求したときに生じ得る。
【0044】
処理ボックス310では、クライアント212は、イベントへの応答に必要な任意の情報を入手することによって、非アニメーションイベントに対する応答を開始する。オリエンテーションイベントについては、処理ボックス310で入手された情報が新たなオリエンテーションを含むことができる。ストレッチイベントについては、処理ボックス310で入手された情報が新たなストレッチファクタを含むことができる。
【0045】
ドラッグイベントについては、処理ボックス310での情報の入手は幾分複雑さが増す。クライアント212は、選択位置から最も近いノードのノード識別子(ノードID)を入手してもよく、また、要求された動きに関する情報を入手してもよい。情報のこれらの項目は、本明細書に参照として援用する米国特許第5,590,250号のコラム71−72及び図14に関係して記載されている“最も近いノードを探索”という関数(機能)によって説明されているのとほぼ同じ方法で入手してもよい。
【0046】
クライアント212が処理ボックス310で必要な情報を入手したら、クライアント212はレイアウト、マッピング及びペイントのためのウォーカルーチン222及びペインタルーチン224に対する適切な呼出しで締めくくることができる。オリエンテーションイベントについては、ルートノードは新たなオリエンテーションでレイアウトされなくてはならない。ストレッチイベント又はドラッグイベントについてはレイアウトは必要ない。しかしながら、ストレッチイベントについては、ウォーカルーチン222に対する呼び出しが、マッピングに用いるための新たなストレッチファクタを含まなければならない。同様に、ドラッグイベントについては、ウォーカルーチン222に対する呼び出しが、マッピングに用いるための最も近いノードのノードID及び動きのパスに沿った次の位置を含まなければならない。
【0047】
処理ボックス312では、ウォーカルーチン222は、まず、双曲平面内に任意の必要なレイアウトを行ってもよく、また、ツリーの任意の保留中の編集をレイアウトしてもよい。次に、処理ボックス314では、ウォーカルーチン222は、開始ノードを開始位置において開始して、ツリーをユニットディスクにマッピングしてもよい。例えば、ドラッグイベントに応答して、開始ノードは処理ボックス310で識別された最も近いノードであってよく、開始位置は動きのパスに沿った次の位置であってよい。前にマッピングに用いられた開始ノード及び開始位置を、オリエンテーション又はストレッチイベントに応答して用いてもよい。
【0048】
ツリーがマッピングされたら、処理ボックス316で、マッピングされたツリーを表示バッファにペイントするためにペインタルーチン224を呼出すことができる。ペイント中、ペインタルーチン224はノード生成の結果ツリー内で生じる新たな編集をマーキングできる。各編集は、フラグを設定することによって又は他の適切なデータを格納することによってマーキングできる。ペイントが完了すると、ペイントされたようにツリーを表示するために表示バッファのスワッピングを行うことができ、グラフの表現が供給される。
【0049】
上述のように、これらのイベントは現在は非アニメーションイベントとして実施される。オリエンテーションイベントに応答して、表現は新たなオリエンテーションに、典型的には表示領域の焦点にあるノードの周りを、旋回する。同様に、ストレッチイベントに応答して、表現は半径方向に、典型的には焦点にあるノードの周りで、拡張又は収縮する。ドラッグイベントに応答して、表現は入力信号によって決定されたレートで移動する。しかしながら、クライアント212は、オリエンテーションイベント、ストレッチイベント、又はドラッグイベントに対して、要求された変更を同等のより小さなイベントのシーケンスに変換し、処理ボックス310で、1つの呼出しが個々のより小さなイベントに対する一連の呼出しを発することによって、アニメーション化された応答を供給してもよい。
【0050】
図5は、現在の実施では常にアニメーション化して扱われる2つの異なるタイプのイベントに対する応答も示している。第1のタイプはブックマーク又はクリックイベントであり、それに応答して、アニメーションシーケンス中に1つのノードの位置が移動され、他の要素がその1つのノードの動きに合わせて移動する。第2のタイプは挿入/削除イベントであり、それに応答して、ある要素が収縮され別の要素が拡張されるアニメーションシーケンス中に、1つのノードは安定したままであるが、他の要素は収縮及び拡張に合わせて移動する。
【0051】
ブックマーク又はクリックイベントは、ユーザがメニュー又は他のブックマークの集合の中の項目を選択したとき、又はマウスダウンアップ(マウスボタンを押して放す)クリックで表現内の位置を選択したときに生じ得る。このタイプのイベントに応答して、クライアント212はノードID及びユニットディスク内の宛先位置を入手する。ブックマークイベントの場合は、ノードID及び宛先位置は以前に格納されており、メモリから検索できる。クリックイベントの場合は、クライアント212は、本明細書に参照として援用する米国特許第5,590,250号のコラム71−72に関係して記載されている“最も近いノードを探索”という関数(機能)とほぼ同じ方法で、選択位置から最も近いノードのノードIDを入手してもよく、宛先はユニットディスクの中心のようなデフォルト位置であってよい。
【0052】
処理ボックス320では、クライアント212はウォーカルーチン222をノードID及び宛先位置で呼出してもよい。ウォーカルーチン222は、ノードが前の位置から宛先位置へと移動する表現のシーケンスを表示するためのアニメーションループを実行することによって応答できる。処理ボックス320では、ウォーカルーチン222は、個々がノードID及びユニットディスク内の位置を含むノード/位置の対のシーケンスをセットアップすることによって開始する。位置は、米国特許第5,619,632号の図12のボックス470、472、及び482に記載されているように、前の位置から宛先位置への総トランスレーション(移動路)を入手して、次に総トランスレーションのn番目のルートを入手して現在のトランスレーションと共に構成することを繰り返すことによって入手できる。ノード/位置の対の数は、アニメーション表示中に構造の要素を表わすフィーチャがオブジェクト不変性を維持しながら、前の位置から宛先位置への滑らかなアニメーションを確保するために、十分に大きくできる。n番目ルートの方法の代わりに、前の位置から宛先位置へと双曲平面内で適切に選択された弧に沿って適切な数の点を選択することによって、位置を入手してもよい。弧は、不自然に見え得る直線と、n番目ルートの方法でノードがとったであろう、滑らかに見えるには過度のアニメーションステップ数を必要とし得る弧との間を折衷するように選択されてもよい。点の数は、満足なアニメーションを確保するように選択されてもよい。
【0053】
処理ボックス320で位置を入手する上で、オリエンテーションは米国特許第5,590,250号の図15に関係して述べられているように保存できる。或いは、変形又は回転を、ユニットサークルの境界上の特定の点の位置が保存されるように選択できる。選択された点は、例えば、サークル上の、ルートの子がレイアウトされた方向から反対方向の点であってもよい。
【0054】
次に、ウォーカルーチン222は、判断ボックス322で示されるように、シーケンス中のノード/位置の各対についてアニメーションループを反復する。処理ボックス324では、ウォーカルーチン222は、処理ボックス312に関係して上述したように、まず双曲平面にツリーの任意の保留中の編集をレイアウトしてもよい。次に、処理ボックス326では、ウォーカルーチン222は、処理ボックス314に関係して上述したように、ツリーをユニットディスクに、次のノード/位置の対からのノード及び位置を開始ノード及び開始位置として開始して、マッピングしてもよい。
【0055】
ツリーがマッピングされたら、処理ボックス328でマッピングされたツリーを表示バッファにペイントするためにペインタルーチン224を呼出すことができる。ペイント中、ペインタルーチン224は、処理ボックス316に関連して上述されたように、ノード生成の結果ツリー内で生じる新たな編集をマーキングできる。ペイントが完了したら、ツリーをペイントされたように表示するために表示バッファのスワッピングを実行して、グラフの表現を提供することができる。
【0056】
処理ボックス328でペインタルーチン224によって新たな編集がマーキングされると、次の反復中、処理ボックス324で、新たな編集がレイアウトされる。その結果、表現のアニメーション化されたシーケンスは、米国特許第5,629,632号のように静的ノード−リンク構造を示すのではなく、動的ノード−リンク構造を示す。しかしながら、この編集は、基本的には、表現が前の位置から宛先位置へと遷移するときに表現の外周に沿って新たなノードを表わすフィーチャを追加するために働く。その結果、追加されたフィーチャは、他の要素を表わすフィーチャについてのオブジェクト不変性の知覚を妨害又は低下させない。
【0057】
挿入/削除イベントは、ユーザがノードの拡張又は収縮を要求したときに、又はグラフ又はツリーの何か他の変更を要求したときに生じ得る。挿入/削除イベントは、呼出しの形態でも受信されてもよく、従って、人の手による制御を並行させないグラフ又はツリーの自動変更のための機構を提供してもよい。
【0058】
このタイプのイベントに応答して、クライアント212は、処理ボックス330で、要求されたグラフ又はツリーの変更が許容可能か否かを決定するために、まずメモリ214内のルーチンに対する適切な呼出しを行うことができる。
【0059】
要求されたグラフ又はツリーの変更が許容可能な場合は、それに従って、クライアント212は、必要に応じてメモリ214内のルーチンを呼出して、グラフ又はツリーを変更できる。変更を行うプロセスでは、変更によって挿入、削除、又は変化させられ得る、本明細書では“影響された要素”と呼ぶ各要素が、フラグの設定又は他の適切なデータの格納等によってマーキングされる。あるノードが拡張信号又は収縮信号によって選択された場合は、その親に割当てられた領域が変化し得るので、その親も影響されたノードである。他の挿入/削除イベントのほとんどについては、挿入又は削除されたノードだけが影響される。クライアント212は、あるノードが、変更のアニメーション表示中もそのノードの前の位置に保持される、安定ノードとして選択できる。
【0060】
多くの場合、前にマッピングに用いられた開始ノードを安定ノードとして選択することができ、そのノードを前の開始位置に保持することができる。他の場合には、クライアント212にとって、異なる安定ノードの選択が望ましいことがある。例えば、拡張されているノードを、現在の位置に保持される安定ノードとして選択してもよく、従ってそのノードが新たな開始位置となる。従って、クライアント212が異なる安定ノードを選択しない限り、通常は前の開始ノード及び開始位置が保たれる。しかし、前の開始ノードが削除されている場合は、他のノードがクライアント212によって変更されるデフォルト安定ノードとして選択されなければならない。
【0061】
削除が行われているとき、削除中のノード及びマッピング中のツリー内に削除後も残る最も近い祖先のノードIDでウォーカルーチン222を呼出すことができる。この祖先は、削除中のノードから現在の挿入/削除イベントによって削除されていない祖先に到達するまで上向きに巡回する(walk)ことによって、見つけることができる。
【0062】
この呼出しに応答して、ウォーカルーチン222は、削除中のノードが前の開始ノードか否かをテストできる。そうである場合は、識別された祖先を、開始ノードとして、削除中のノードと置換するために選択することができる。祖先が表示されている位置に最近マッピングされたものであり、それが使用可能な位置である場合は、その位置を開始位置として選択できる。祖先が最近マッピングされたものではない、又は、表示されない位置又は現在他の要素がマッピングされているために使用不可能な位置にマッピングされたものである場合は、開始位置をユニットディスクの中心にすることができる。
【0063】
処理ボックス330でも、クライアント212は安定ノードのID及び位置でウォーカルーチン222を呼出してもよい。ウォーカルーチン222は、まず削除されたノードが前の位置で収縮され、次に挿入されたノードが新たな位置で拡張され、その間ずっと、安定ノードは前の位置に保持されるという、表現のシーケンスを表示するアニメーションループを実行することによって応答できる。安定ノードが、最近マッピングされたものではない、又は表示されない位置又は使用不可能な位置にマッピングされたものであるので前の位置に保持できない場合は、前の開始ノードが前の開始位置にある状態で、削除されたノードが収縮された後に、安定ノードをその位置に移動することができ、その結果、収縮と拡張との間の突然の動きが生じる。ウォーカルーチン222は、収縮及び拡張中、影響された各ノードに割当てられた領域が変化するレートを支配する、重みのシーケンスをセットアップすることによって開始する。重みは、アニメーション表示中のオブジェクト不変性を保つために、十分に小さい増分で区分されている。
【0064】
次に、ウォーカルーチン222は、判断ボックス332で示されるように、シーケンス中の各重みについてアニメーションループを反復する。処理ボックス334では、ウォーカルーチン222は、反復の重みを用いて、まず双曲平面に影響されたノード及びツリーの任意の保留中の編集をレイアウトしてもよい。次に、処理ボックス336では、ウォーカルーチン222は、処理ボックス314に関係して上述されたように、ツリーをユニットディスクに、安定ノード及び位置で開始して、マッピングしてもよい。
【0065】
ツリーがマッピングされたら、処理ボックス338で、マッピングされたツリーを表示バッファにペイントするために、ペインタルーチン224を呼出すことができる。ペイント中、ペインタルーチン224は、処理ボックス316及び328に関係して上述されたように、ノード生成の結果ツリー内で生じる新たな編集をマーキングできる。ペイントが完了したら、ツリーをペイントされたように表示するために表示バッファのスワッピングを実行して、グラフの表現を提供することができる。
【0066】
保留中の編集が存在してもしなくても、判断ボックス332で開始するアニメーションループの一連の反復は、削除及び/又は挿入による動的ノード−リンク構造の表現を生成する。更に、影響された要素は、削除及び挿入の前の位置から新たな位置へと移動する。この技術は、これらの動きの間のオブジェクト不変性を生み出すために、うまく実現された。
【0067】
処理ボックス316で表現が供給された後、又は判断ボックス322又は332でアニメーションシーケンスが完了した後、図5の“A”と表示された円によって示されるように、処理ボックス302で別のイベントを受信できる。
【0068】
図6は、図5の処理ボックス300でレイアウトが最初にどのように実行できるかを示している。図7は、処理ボックス312、324、及び334で、変更されたノード−リンク構造のレイアウトがどのように実行できるかを示している。
【0069】
処理ボックス350で示されるように、ウォーカルーチン222は、ルートノードIDを入手して有向グラフデータ構造232内のルートノードに関係するデータにアクセスするために用いることによって、最初のレイアウトを開始する。処理ボックス352では、ウォーカルーチン222は、角度幅で数学ルーチン226に対する呼出しを行うことによってルートノードをレイアウトする。この角度は、望ましい結果を生成する任意の適切な角度でよい。角度2π及びπ/2がうまく用いられ、2πを用いた場合は中心レイアウトスタイルに適しており、π/2を用いた場合は上、下、右、又は左レイアウトスタイルに適していた。望ましい結果を得るためにこの角度を修正するために、インタフェースが提供されてもよい。
【0070】
応答では、数学ルーチン226はルートノードを、ユニットサークルの原点、即ち座標(0,0)に、上向きのオリエンテーションで座標(0,1)に、及び角度幅の半分の角度でレイアウトする。次に、処理ボックス354で、ウォーカルーチン222はルートノードIDをキューの前にプッシュする。
【0071】
図6の残りでは、判断ボックス360で示されるように、ウォーカルーチン222は、有向グラフデータ構造232によって定義されるツリーの1組の要素を、キューが空になるまで、繰返し走査する。各反復は、キューの後からノードIDを入手し、それを有向グラフデータ構造232内の識別されたノードに関係するデータにアクセスするために用いることによって開始する。
【0072】
各反復で、判断ボックス370でのテストは、ノードがこの走査で既に巡回されたか否かを決定する。巡回されていない場合は、ウォーカルーチン222は処理ボックス372で巡回済ノードをマーキングし、複数の子のノードIDを入手し、複数の子のうちの非拡張リーフ、即ち拡張された入リンクを持たないリーフノードを識別し、以下に説明するように可視ツリー内に存在する子の数を入手し、同じく以下に説明するように、可視ツリー内の複数の子についての角度及び半径のアレイを入手するために、可視ツリー内に存在するノードの子の数で数学ルーチン226を呼出す。
【0073】
処理ボックス372での処理については、近隣関係データの1タイプである可視ツリー内の子の数は、2通りの方法のいずれかで計算できる。即ち、現在の走査がノード追加ステップのシーケンスの一部である場合は、は走査前の子の数と追加された子の数との合計に等しい。現在の走査がノード除去ステップのシーケンスの一部である場合は、は単に走査前の子の数に等しい。
【0074】
処理ボックス372では、角度及び半径のアレイは様々な方法で入手できる。1つの成功した実施例では、各半径は0.7の値に設定され、一方、各角度は ((*π)/18)とπとのより小さい方に設定される。従って、<18については、ノードの角度は可視ツリー内に存在するそのノードの子の数に左右される。
【0075】
次に、処理ボックス374で、ウォーカルーチン222は子をレイアウトするために数学ルーチン226を呼出す。
【0076】
処理ボックス374を実施する際、レイアウトの2つの一般原則が適用される。第1に、ノード間の離間及び角度は、ツリー内の近隣要素に関する情報、即ち近隣関係データだけに基づいて決定される。第2に、各ノードについて入手されたレイアウト情報は、あるノード及びその全ての子の位置がデータ構造内の小さな変化で移動できるような方法で、ノード対その親の相対位置を示す。
【0077】
従うことのできる一般戦略は、処理ボックス372からの子の半径及び角度で開始し、子が必要とする近似距離を入手し、近似距離を用いて親からの距離を入手し、親からの距離を用いて子についてのより正確な距離を入手し、次に、随意的により正確な距離を用いて更により正確な距離を入手する、等である。
【0078】
一般戦略に従って、子が処理ボックス372からの半径R及び角度Θを有する場合は、近似距離D1及びD2をそれぞれsinh(R)及びtan(Θ/4)として計算できる。Nがレイアウト実行中の子の数であり、合計がi=1からN-1まで実行される場合に、それぞれの近接した子の対が、それぞれのD1及びD2の合計のより大きい距離、即ちDT=Σ(max(D1(i)+D1(i+1),D2(i)+D2(i+1))+max(D1(1),D2(1))+max(D1(N),D2(N))によって分けられているとき、D1及びD2を用いて、全ての子についての総距離DTを得ることができる。その親が使用可能な角度ωを有する場合、親からの距離DPはasinh(DT/ω)として計算できる。次に、子を、親を中心とする半径DPの円の円周に沿って、子の分割に比例する子の間の角度で配置できる。
【0079】
次に、DPを用いて、子についてのより正確な距離を以下のように得ることができる。
D1'=sinh(DP)asin(sinh(R)/sinh(DP))、
D2'=2sinh(DP)atan(tan(Θ/4)/eDP)
次に、D1'及びD2'を用いて、上述の方法等のように、所望のレベルの正確さに到達するまで、親までのより正確な距離DP'を得ることができる。その時点で、それぞれの子のオリエンテーションを親のオリエンテーションからの角度のずれとして計算できる。
【0080】
上述の距離は双曲平面内の実際の計量で表わされていることに注目されたい。双曲平面内の距離Dは、ユニットサークル内の原点で開始してtanh(D/2)の距離を進むベクトルに対応する。
【0081】
処理ボックス372に関係して上述したように、一般戦略はこのようにして、ノード、その親、及び可視ツリー内の同胞の子に関する情報を含む同胞に関する近隣関係情報だけに基づくレイアウト情報を入手する。一般戦略は、子からその親までの距離と、子とその親とのオリエンテーションの違いを表わす角度とを示す、レイアウト情報を入手する。
【0082】
一般戦略は、全ての子について2つの反復ループを遂行するが、一般戦略に関係して上述した方法でより正確な距離を得る試みをせずに得られる最初の距離を用いるソフトウェアとして実施された。第1のループは、隣接する子の間の分離及び各子についての“スライスサイズ”を入手して一時的に保存し、分離の合計も入手する。次に、この情報を用いて親までの距離を得る。次に、第2ループは、各子の相対的なオリエンテーション及び領域を入手して保存する。
【0083】
このソフトウェアとしての実施例では、子が処理ボックス372からの半径R及び角度Θを有する場合は、一般戦略に関係して上述したように距離D1及びD2が計算される。各子についてのD1及びD2を前の子についてのD1及びD2に加え、S1及びS2を得る。分離の合計STは、最初と最後の子についてを除き、子のS1及びS2の最大値に増加され、最初と最後の子については、STはその子のD1及びD2の最大値に増加される。
【0084】
子のS1がその子のS2より大きい場合は、S1が子の分離として保存されると共にまずD1が子のスライスサイズとして保存され、2番目以降の子については、前の子のスライスサイズがその子の前のスライスサイズとその子のS1との最小値となるように調整される。逆に、子のS1がその子のS2より大きくない場合は、S2が子の分離として保存されると共にまずD2が子のスライスのサイズとして保存され、2番目以降の子については、前の子のスライスサイズがその子の前のスライスサイズとその子のS2との最小値となるように調整される。しかしながら、最後の子のスライスサイズは、その子の前のスライスサイズとその子のD1及びD2の最大値との最小値となるように調整され、第1の反復ループが完了する。
【0085】
次に、親の角度ωを用いて、ユニットディスク内の親からの距離DPをtanh(asinh(ST/2ω)/2)又は0.5の大きい方として計算することができる。DPは親ノードに関連するデータの一部として保存される。
【0086】
第2の反復ループは、各子について、Sが子についての保存された分離であるとき、角度(S/ST)2ωを計算することによって開始する。角度(S/ST)2ωは、-2ωで開始したランニングトータルに加えられる。ランニングトータルは子に関連する他のデータと共に保存される。
【0087】
次に、数学ルーチン226は、米国特許第5,590,250号のコラム67及び68の“内角(inside-angle)”関数に類似の関数を呼出すことによって、子についての新たな角度を計算できる。この、本明細書では“インサイドアングル(InsideAngle)”と呼ぶ関数は、楔の中へと移動された距離(“dist”)及び楔の半分の角度で開始する。インサイドアングルは作動可能角度として、開始角度と、εが0.0001のような非常に小さい値を有し得るときの(π−ε)との、小さい方をとり、逆タンジェントの計算における問題を回避する。インサイドアングルは、ユニットサークル上の座標(dist,0)にある点を原点へと移動する変形を入手する。次に、インサイドアングルは、ユニットサークルの円周と、原点から発する、水平位置との角度が作動可能角度である放射線との交点にある点の複合座標に、この変換を適用する。インサイドアングルは、結果の角度として、原点から変換された点を通る放射線の水平位置からの角度を戻す。
【0088】
子の角度を得るために、インサイドアングルは、距離DP及び第1反復からの子のスライスサイズを2ω/STで乗算することによって計算された角度で呼出される。インサイドアングルによって戻された角度はπ/2と比較され、子の角度はこの2つのうちの小さい方である。
【0089】
子の新たな角度を保存する前に、数学ルーチン226は子の前の角度を保存する。古い角度と新しい角度との差の絶対値が最小値を越える場合は、数学ルーチン226は、以下に述べるように、レイアウトが継続すべきであることを示すデータも保存する。
【0090】
最後に、第2反復ループは、米国特許第5,590,250号のコラム67及び68の“空間使用可能(room-available)”関数(機能)と類似の関数を呼出すことによって、子の領域又はサイドスペースを得る。本明細書では“ルームアベイラブル(RoomAvailable)”と呼ぶこの関数は、楔の中へと移動された距離D及び楔の半分の角度Φで開始する。ルームアベイラブルは、まず比(1-D2)/2Dを得ることによって、次に初期距離Sを得るために比をsinΦで割ることによって計算される、楔のエッジまでの距離を戻す。次に、ルームアベイラブルは距離((S2-1)1/2-S)を戻す。子の領域を得るために、ルームアベイラブルは上述のインサイドアングルの呼出しに用いられたのと同じ距離及び角度で呼出される。ルームアベイラブルによって戻された距離は子の領域の尺度として保存される。
【0091】
上述のソフトウェアとしての実施例は付加的なデータを保存できるにも関わらず、ソフトウェアとしての実施例は、本明細書に述べるように、レイアウト及びマッピングを実行できるためには、各ノードについて2項目のデータだけ格納される必要があるという発見に基づいている。一方の項目は、距離即ち双曲平面内のノードからその子ノードまでの位置変位を示す。他方の項目は、そのノードの親までの入リンク及びその親からそのノードへの出リンクの拡張の間の双曲平面内の角度変位である。これらの2項目のデータ、又はそれらにアクセスするために用いることができるハンドルは、有向グラフデータ構造内のリンクのデータ項目に含まれることができる。
【0092】
判断ボックス380のテストは、ノードの次の世代までレイアウトを継続するか否かを決定するために適切な基準を適用する。処理ボックス374に関係して上述されたように、基準は、任意の子ノードの角度が0.00001のような小さな角度の違い以上の変更をされているか否かであり得る。そうである場合は、レイアウトを継続すべきである。
【0093】
処理ボックス382では、ウォーカルーチン222は、拡張されている又はリーフではない各子ノードのIDを、キューの前にプッシュする。他の子ノードは、レイアウトされる子を持たないので、処理ボックス382でマーキング巡回されてよい。処理ボックス382が完了すると、又は判断ボックス380のテストが継続しないと決定すると、又は判断ボックス370のテストがノードがすでに巡回されたと決定すると、判断ボックス360に戻る前に処理ボックス384でキューの後のノードが取り出される。
【0094】
図7は、図5の処理ボックス312、324、及び334で、どのように変更されたノード−リンク構造のレイアウトが実行できるかを示している。それぞれの場合に、レイアウトは、処理ボックス400で示されるように、レイアウト及びマッピングへと導く呼出しに応答して開始する。しかしながら、判断ボックス402のブランチによって示されるように、レイアウトが実行される方法はノード−リンク構造になされた変更のタイプによる。
【0095】
変更が、オリエンテーションイベントに応答したルートノードのオリエンテーションの変更である場合は、処理ボックス404で、ウォーカルーチン222は数学ルーチン226を呼出し、マッピング及びペイントの前にルートノードを新たなオリエンテーションにレイアウトすることができる。ルートノードは、新たなオリエンテーション以外では、図6の処理ボックス352に関係して上述されたようにレイアウトできる。次に新たなオリエンテーションがマッピングに用いられ、表現のオリエンテーションを変える。
【0096】
変更が、ストレッチイベント、ドラッグイベント、ブックマークイベント、又は編集が保留中の場合のクリックイベントに対する応答で生じ得るように非アニメーション編集である場合は、ウォーカルーチン222は、処理ボックス410で、まず除去編集のリストをセットアップし、次に処理ボックス412で、マッピング及びペイント前に除去編集をレイアウトする。次に処理ボックス414で、ウォーカルーチン222は追加編集のリストをセットアップし、次に処理ボックス416で、マッピング及びペイント前に追加編集をレイアウトする。
【0097】
この実施では、編集のリストは、グラファルーチン220及びペインタルーチン224を含むメモリ214内の種々のルーチンによって維持される編集ソースリストに基づいてセットアップされる。現在の実施は、拡張されたリンクによって定義されるツリーにも関係する。本明細書で“コラプストリンクス(CollapsedLinks)”及び“エキスパンデッドリンクス(ExpandedLinks)”と呼ぶ1対の編集ソースリストは、それぞれ収縮要求及び拡張要求によって選択されたリンクについての編集を含み、従って、図5の処理ボックス330でセットアップできる。本明細書で“リムーブドリンクス(RemovedLinks)”及び“アディッドリンクス(AddedLinks)”と呼ぶ他の対は、それぞれ削除及び挿入されたリンクについての編集を含む。編集ソースリストのコピーは、異なる目的で複数存在していてもよい。
【0098】
処理ボックス410でセットアップされた除去編集のリストはリムーブドリンクスに基づいており、一方、処理ボックス414でセットアップされた追加編集のリストはアディッドリンクスに基づいている。処理ボックス410又は414でリストをセットアップする際に、ウォーカルーチン222は適切な編集ソースリスト内の各編集にアクセスし、その編集用いてセットアップ中のリストについての適切なエントリを入手する。それぞれの場合に、編集ソースリスト内の編集を用いて、編集のリンクの子ノードのノードID及び実行中の編集のタイプを示す編集識別子を入手する。
【0099】
その子ノードの親は、既にリスト上に存在するのではない限り、影響されたノードのリストの後に加えられる。親は、その子ノードの拡張された親ノードか、又は、その子ノードの親ノードが現在どれも拡張されていない場合は、その子ノードの最初の親ノードである。編集ソースリストからの編集が親を持たない子ノードに関係する場合は、その編集はそのルートに関係しなければならず、従ってその場合は、そのルートノードが影響されたノードのリストの後に置かれる。
【0100】
ソース編集リストからのリンクについての反復の最後に、次の反復に用いられる適切な編集ソースリスト内の次の編集にアクセスする前に、そのリンクの子ノードも子ノードリストに追加される。このように、影響されたノード及び子ノードのリストを完成するために全ての編集が処理されるまで、編集ソースリストの各編集について反復が行われる。
【0101】
次に、処理ボックス412又は416では、リストを用いて編集がレイアウトされ、影響されたノードのリスト内の各ノードについて図6の処理ボックス354から382のシーケンスに類似のシーケンスを辿り、ソフトウェアのノードをリストから、ルートノードよりもキューの前にプッシュし、処理ボックス372で、次のように幾つかの変更を行う。処理ボックス412及び416のレイアウトは、どの子が非拡張リーフであるかの識別に加えて、各子が子ノードリストに存在するか否かを決定する。そうである場合は、レイアウトはその子についての角度及び半径を重みで乗算する。処理ボックス412では、重みが0なので、処理ボックス374でその子はほぼその前の位置に角度及び半径が0でレイアウトされ、従って消滅する。処理ボックス416では、重みが1なので、処理ボックス374でその子は新たな位置に全角度及び全半径でレイアウトされる。
【0102】
処理ボックス410から416の操作もアニメーションシーケンス内で実施されてもよく、その場合は、除去編集はアニメーションシーケンスの最初の部分で処理されてもよく、追加編集はシーケンスの後続部分で処理されてもよい。一方、図5に関係して上述したように主にペイント中のノード生成から非アニメーション編集が生じる場合は、その編集は追加編集だけであってよく、アニメーションシーケンスの各ステップで全ての現在保留中の編集が処理されてもよい。
【0103】
要素を収縮又は拡張する要求のように挿入/削除イベントに応答して、変更がアニメーション化編集である場合は、ウォーカルーチン222は、処理ボックス420で、まずソース編集リストに基づいて除去及び追加される要素の数を入手する。除去される数は、コラプストリンクス及びリムーブドリンクス内の要素の数を加算することによって得ることができ、一方、追加される数は、エキスパンデッドリンクス及びアディッドリンクス内の要素の数を加算することによって得ることができる。次に、処理ボックス422で、ウォーカルーチン222は、除去ステップと追加ステップとの間に使用可能なアニメーションステップを割付け、幾分図7の処理ボックス410及び414のように、除去編集及び追加編集のリストもセットアップする。アニメーションステップの単純な割付けは、半分の除去ステップと半分の追加ステップであるが、除去される要素が無い場合は全てのステップが追加ステップとなり得、追加される要素が無い場合はその逆である。
【0104】
処理ボックス422での除去編集及び追加編集リストのセットアップにおいて、ウォーカルーチン222は、収縮又は拡張されたノードが存在しない限り、処理ボックス410及び414に関係して上述したように行うことができる。収縮又は拡張されたノードの場合は、ノード自体が、その親に加えて、影響されたノードリストの後にプッシュされ、次に、そのノード自体ではなくそのノードの子が、子ノードリストに加えられる。言い換えれば、収縮又は拡張は、1つのノードだけに影響する他の操作とは異なり、2世代のノードに影響すると考えることができる。ウォーカルーチン222は、影響されたノード及び子ノードの2対のリストをセットアップし、1対を除去編集に、もう1対を追加編集に用いる。
【0105】
次に、判断ボックス430で開始するループで、ノードを除去するアニメーションステップが実行され、処理ボックス432で、重みを入手し、重みを用いて除去編集をレイアウトし、アニメーションフレームをマッピング及びペイントする。同様に、次に判断ボックス440で開始するループでノードを追加するアニメーションステップが実行され、処理ボックス442で、重みを入手し、重みを用いて追加編集をレイアウトし、アニメーションフレームをマッピング及びペイントする。ノードを追加する前にノードを除去することによって、単一フレーム内で同一ノードが2箇所に出現する状況が防止される。ノードを除去した後に1つの最終ステップを重み0で実行し、ノードを追加した後にもう1つの最終ステップを重み1で実行することによって、この技術は最終重みがそれぞれ0又は1であることを確実にできる。
【0106】
処理ボックス432で、除去アニメーションステップ数から現在の除去アニメーションステップ番号を引き、次にその差を除去アニメーションステップ数で割ることによって、一連の除去アニメーションステップの間に重みが1から0になるように重みを入手できる。同様に、処理ボックス442で、現在の追加アニメーションステップ番号に1を加え、次にその合計を追加アニメーションステップ数で割ることによって、一連の追加アニメーションステップの間に重みが0から1になるように重みを入手できる。
【0107】
アニメーションステップの総数は、アニメーション速度と共に、アニメーション表示中のオブジェクト不変性の知覚への影響を助ける。上述の重みを得る方法の説明から理解できるように、アニメーションステップの総数は、除去又は追加された要素の領域が変化するレートを決定し、従って、他の要素が除去又は追加された要素の領域に関係して移動しなければならないレートを間接的に決定する。十分なアニメーション速度が維持されることを前提とすれば、除去ステップと追加ステップとの間に適切に割付けられたアニメーションステップ数が多い方が、オブジェクト不変性を生み出すのにより適している。
【0108】
図7の技術は、適切な速度の適切な数のアニメーションステップで実行されると、幾分閉じられたり広げられたりする扇のような、収縮及び拡張する1組のノードの知覚をうまく作り出した。ノードに割当てられた半径及び角度を調整することによって、削除されたノードがその親に引き込まれる又は無限へと絞り出される、又は挿入されたノードがその親から生え出る又は無限から引っぱり込まれるような、異なる知覚を得ることができる。1つの子のグループから1つの子だけ削除される場合には、その子が無限へと絞り出されるように見え、収縮のように1グループとして全ての子が削除される場合には、全ての子が親に引き込まれるように見えることが可能である。同様に、1つのグループに1つの子が追加される場合には、その子が無限から引っぱり込まれるように見え、拡張のように1グループとして全ての子が挿入される場合には、全ての子が親から生え出るように見えることが可能である。更に、孫が安定して見え、子だけが移動して見えるように調整されたレートで、子が親に引き込まれている間に孫を無限へと絞り出すことができる。
【0109】
上述の実施に類似の実施は、IBM互換PCのプロセッサ上でうまく実行されたが、実施は任意の適切なプロセッサを有する他の装置で実行されてもよい。
【0110】
上述の実施に類似の実施は、32ビットのウインドウズ(Windows)環境でC++言語を用いてうまく実行されたが、非オブジェクト指向環境を含む他のプログラム言語及び環境を用いてもよく、また、リスプ(Lisp)、ユニックス(Unix)環境、ANSI C、及びパスカル(Pascal)等のような他のプラットフォームを用いてもよい。
【0111】
上述の実施に類似の実施は、XML準拠フォーマット及びある実験的フォーマットで表示されるノード−リンクデータを用いてうまく実行されたが、本発明は、静的又は動的いずれかの、メモリ内又はネットワークを介してのように任意の適切な方法でアクセス可能な、任意の適切なタイプのノード−リンクデータを用いて実行されてもよい。
【0112】
上述の実施に類似の実施は、ナビゲーション信号に応答してグラフの1つの表現又はアニメーション化された一連の表現を準備及び表示する各反復を用いて実施されたが、本発明は他のタイプの信号又は呼出しによって呼出される他のタイプの反復を用いて実施されてもよい。
【0113】
上述の実施に類似の実施は、キーボード及びマウスから受信され、且つノード−リンク構造の表示された表現又はアニメーション化された一連の特定のタイプの表現に関係するナビゲーション信号を用いてうまく実行された。しかしながら、本発明は、ナビゲーション信号を用いて又は用いずに実施されてもよい。例えば、あるノードの子の異なるソーティングに応答して、又はある構造の要素への異なるフィルタの適用に応答して、要素を動き回らせてもよい。また、本発明は、任意の適切なタイプの拡張及び収縮信号、又は外部の照会、示されたノード又はリンクの下に拡張を要求するメニューエントリーのような項目の選択、又は現在の焦点の下に拡張を要求するメニューエントリーのような項目の選択から生じた信号を含む他のナビゲーション信号を用いて実施されてもよい。ナビゲーション信号は、代わりに、ビデオゲーム又はバーチャルリアリティ環境によって生成される空間のような現実には無い空間又はディスプレイ以外の表示空間に関係してもよく、また、ナビゲーション信号は、代わりに、他の種類の位置決め装置、及び英数字又は声、身振りのような言語的入力、又は他の様式のユーザ入力を受信するための他の種類の装置を含む、任意の適切なユーザ入力装置によって生成されてもよい。更に、本発明は他のタイプのノード−リンク構造の表現を用いて実施されてもよい。本発明はアニメーションなしで、又は任意の適切なアニメーション技術を用いて実施されてもよい。
【0114】
上述の実施では、親、子及び孫の間の関係に関する近隣関係データを入手するが、本発明は、レイアウト中の要素の、上位又は下位の追加の世代か又は横方向の追加の親戚かの、より遠い親戚を含む関係のような、異なる組の近隣ノード−リンク関係に関する近隣関係データを入手するように実施されてもよい。例えば、レイアウト中の要素の親の親が考えられる。
【0115】
上述の実施では、ノードについて、その親からの位置変位及び角度変位を示すレイアウトデータを入手する。しかしながら、本発明は、ノードではなく、又はノードに加えて、リンクについてのレイアウトデータを入手するように実施されてもよい。更に、本発明は、任意の他の適切な方法で相対位置を示すと共に付加的情報を示すレイアウトデータを入手するように実施されてもよい。
【0116】
上述の実施では、要素の親の孫の総数を入手し、次にその総数を用いて親の子の角度及び半径を入手し、次にその角度及び半径を用いて位置変位及び角度変位を入手する。この実施では上述のように特定の計算を行う。本発明は、任意の他の適切な方法で近隣関係データ及びレイアウトデータを入手するように実施されてもよい。例えば、親の各子が重みづけを有してもよく、子の相対的重みづけを用いて、各子が占めるスペースを決定又は子から親までの比例距離を決定してもよい。また、ノードの周りの使用可能領域に関する情報も、領域の重なりが最小のレイアウトを得ることによって、考慮されてもよい。反復計算を最小限にするために、レイアウトの結果をキャッシュに格納してもよい。
【0117】
上述の実施では、双曲平面にレイアウトされたノード−リンク構造は、次にユニットディスクにマッピングされ、次にペイントされるが、本発明に従ってレイアウトされたノード−リンク構造は、任意の他の適切な負曲空間にレイアウトされ、次に任意の他の適切な方法で、マッピングをして又はせずに処理されてもよく、又は、ノード−リンク構造を、3次元レンダリング空間及び表示空間を含む任意の他の適切なレンダリング空間にマッピングして任意の他の適切な表示空間に表示することを含む、任意の他の適切な方法でマッピング及び表示されてもよい。
【0118】
上述の実施では、あるノードについて入手した角度変位を前の角度変位と比較することによって、そのノードの子をレイアウトするか否かを決定するが、本発明は、レイアウトされた各ノードの全ての子孫をレイアウトすることによって、又はレイアウトする要素の決定に任意の他の適切な基準を適用することによって実施されてもよい。
【0119】
上述の実施はツリーの要素のレイアウトに適している。本発明は、一般的なグラフのような、他のタイプのノード−リンク構造の要素をレイアウトするのに用いられてもよい。
【0120】
上述の実施では、特定のタイプのメモリ管理を用いて、特定の方法でグラフ内のツリーを定義するためのリンクの拡張フラグを含むノード−リンクデータを用いるが、本発明は、任意の他の適切な方法で定義され、任意の適切な方法でメモリにロードされるノード−リンク構造を用いて実施されてもよい。
【0121】
上述の実施では、リンクが、1つのリストがそのフロムノードからの出リンクに対応し1つのリストがそのツーノードへの入リンクに対応する2つのリンクされたリスト内の項目として表わされる、有向グラフデータ構造を用いる。任意の他の適切なデータ構造を用いてもよい。
【0122】
上述の実施は、循環有向グラフを含む有向グラフを扱うことができるが、本発明は、他のタイプのリンクを有向グラフの適切な組合せに変換することによって、又は別様ではグラフの構造をツリーにマッピングするためのプロトコルを供給することによって、他のタイプのグラフ用に実施されてもよい。例えば、2つのノード間の無向リンクが、同じノードの間の1対の有向リンクに変換されてもよく、又は適切な基準に基づいて方向を割り当てられてもよい。一般的に、全ての無向リンクが1対の有向リンクへと変換されている表現は、結果的に有向リンクの各対が循環するので、視覚的に混乱させる傾向があるが、別の方法で循環を表示することによってこの混乱は克服されるかもしれない。
【0123】
上述の実施では、処理は多くの場合に変更されてもよい順位で行われる。例えば、図6では、幅優先巡回よりも深さ優先巡回が実行されてもよい。
【0124】
同じく、上述の実施では、幾つかのソフトウェアの部分が、グラファ、ウォーカ、ペインタ、及び数学ルーチン、並びにクライアントのように区別されるが、本発明は、ハードウェア及びソフトウェアの他の組合せ並びに任意の適切な方法で構成されたソフトウェアで実施されてもよい。
【0125】
本発明は、ノード−リンク構造の対話式ブラウザの提供に適用された。本発明は、ノード−リンク構造が視覚化のためにレイアウトされる様々なコンテキストに適用され得る。特に、本発明は、キャッシュに格納された1組のウェブページ又は他のウェブオブジェクトによって形成された構造のような、ウェブ関連構造の視覚化に適用され得る。
【0126】
より一般的には、本発明は、組織図、ファイルシステム階層、ハイパーテキスト階層、ワールドワイドウェブ接続性構造、パーツ分解、SGML構造、又は任意の他の大きなノード−リンク構造のためのブラウザの提供に適用され得る。このブラウザは、構造又は構造の内容の編集に用いられてもよい。
【0127】
本発明は、ソフトウェアとしての実施例に関係して述べられてきたが、本発明は専用ハードウェアを用いて実施されてもよい。
【図面の簡単な説明】
【図1】ノード−リンク構造内の要素についてどのように局所的な相対的レイアウトが実行できるかを示す模式的なフロー線図である。
【図2】図1に示されるような局所的な相対的レイアウトの実行における一般的な処理を示すフロー図である。
【図3】図1に示されるような局所的な相対的レイアウトを実行する装置の一般的な構成要素を示す模式的な線図である。
【図4】システムの模式的な線図である。
【図5】どのように図4のシステムが有向グラフの表現を表示することによってイベントに応答できるかを示すフロー図である。
【図6】図5でどのように最初のレイアウトを実行できるかを示すフロー図である。
【図7】図5でどのように変更されたノード−リンク構造のレイアウトを実行できるかを示すフロー図である。
【符号の説明】
10 ノード−リンク構造
22 ノード
24 親ノード
26−28 同胞ノード
30−32 子ノード
40 近隣関係データ
42 レイアウトデータ
212 クライアント
220 グラファルーチン
222 ウォーカルーチン
224 ぺインタルーチン
226 数学ルーチン
230 有向グラフデータ構造
232 ノード位置データ

Claims (1)

  1. ノード表示装置であって、
    ノード−リンク構造内の要素について、近隣ノード−リンク関係に関する情報を示す近隣関係データを入手するための第1入手手段と、
    前記第1入手手段により入手した前記近隣関係データに基づいて、負曲率を有する空間での親ノードと子ノードとの間の距離と、前記親ノードへの入リンクと前記親ノードから前記子ノードへの出リンクとの間の角度差とを表したベクトルを示すレイアウトデータを入手するための第2入手手段と、
    前記第2入手手段により入手した前記レイアウトデータに基づいて、前記親ノードから前記子ノードへの前記ベクトルを表示するための表示手段と
    を具備することを特徴とする装置。
JP21449199A 1998-07-29 1999-07-29 ノード表示装置 Expired - Lifetime JP4864181B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US124805 1998-07-29
US09/124,805 US8232995B2 (en) 1998-07-29 1998-07-29 Local relative layout of node-link structures in space with negative curvature

Publications (2)

Publication Number Publication Date
JP2000067253A JP2000067253A (ja) 2000-03-03
JP4864181B2 true JP4864181B2 (ja) 2012-02-01

Family

ID=22416864

Family Applications (1)

Application Number Title Priority Date Filing Date
JP21449199A Expired - Lifetime JP4864181B2 (ja) 1998-07-29 1999-07-29 ノード表示装置

Country Status (4)

Country Link
US (1) US8232995B2 (ja)
EP (1) EP0977155B1 (ja)
JP (1) JP4864181B2 (ja)
DE (1) DE69904539T2 (ja)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6377259B2 (en) 1998-07-29 2002-04-23 Inxight Software, Inc. Presenting node-link structures with modification
US6901555B2 (en) 2001-07-09 2005-05-31 Inxight Software, Inc. Tree visualization system and method based upon a compressed half-plane model of hyperbolic geometry
US7127469B2 (en) * 2002-06-13 2006-10-24 Mark Logic Corporation XML database mixed structural-textual classification system
WO2003107222A1 (en) 2002-06-13 2003-12-24 Cerisent Corporation Parent-child query indexing for xml databases
AU2003236543A1 (en) * 2002-06-13 2003-12-31 Mark Logic Corporation A subtree-structured xml database
US7337401B2 (en) * 2002-12-18 2008-02-26 Microsoft Corporation User interface element representation with simplified view
WO2005029393A1 (en) * 2003-08-21 2005-03-31 Microsoft Corporation Electronic ink processing
EP1656612B1 (en) * 2003-08-21 2011-10-26 Microsoft Corporation Electronic ink processing
US7631001B2 (en) * 2003-08-21 2009-12-08 Microsoft Corporation Electronic ink processing
CN100559364C (zh) * 2003-08-21 2009-11-11 微软公司 用于将第一数据结构与第二数据结构相协调的方法
US7533338B2 (en) * 2003-08-21 2009-05-12 Microsoft Corporation Electronic ink processing
US7616333B2 (en) * 2003-08-21 2009-11-10 Microsoft Corporation Electronic ink processing and application programming interfaces
US7958132B2 (en) * 2004-02-10 2011-06-07 Microsoft Corporation Voting based scheme for electronic document node reuse
US8214754B2 (en) 2005-04-15 2012-07-03 Microsoft Corporation Registration of applications and complimentary features for interactive user interfaces
US7477263B2 (en) * 2006-03-10 2009-01-13 International Business Machines Corporation Relayout of all or part of a graph in association with a change in state of a graph element
US8120610B1 (en) * 2006-03-15 2012-02-21 Adobe Systems Incorporated Methods and apparatus for using aliases to display logic
US20080016093A1 (en) * 2006-07-11 2008-01-17 Clement Lambert Dickey Apparatus, system, and method for subtraction of taxonomic elements
US7949946B2 (en) * 2007-10-17 2011-05-24 Microsoft Corporation Layout and line routing composition
CN101676955B (zh) * 2008-09-19 2013-05-08 国际商业机器公司 动画展现动态图序列之间的转变的方法和装置
CN101877138B (zh) * 2009-04-30 2014-01-15 国际商业机器公司 动态图的动画规划方法和装置
KR20110003947A (ko) * 2009-07-07 2011-01-13 삼성전자주식회사 데이터 처리 장치 및 방법
TWI470576B (zh) * 2010-02-01 2015-01-21 Ibm 動態圖片的動畫規劃方法與裝置
US9075873B2 (en) * 2011-03-11 2015-07-07 Microsoft Technology Licensing, Llc Generation of context-informative co-citation graphs
US8825710B2 (en) * 2011-05-26 2014-09-02 Planet Technologies Cloud computing method for dynamically scaling a process across physical machine boundaries
US8832582B2 (en) * 2012-03-15 2014-09-09 Microsoft Corporation Interactive control of the curvature of links
US10412117B2 (en) 2014-08-05 2019-09-10 Dflabs S.P.A. Method and system for automated cybersecurity incident and artifact visualization and correlation for security operation centers and computer emergency response teams
CN112887112A (zh) * 2019-11-29 2021-06-01 中兴通讯股份有限公司 站点坐标规划方法、装置、设备和存储介质
US12346299B1 (en) * 2024-05-28 2025-07-01 Workday, Inc. Changing nodes for conjoined tree data structure
US12493600B1 (en) 2024-05-28 2025-12-09 Workday, Inc. Rearranging nodes for conjoined tree data structure

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2646256A1 (fr) * 1989-04-24 1990-10-26 Digital Equipment Int Procede pour realiser des dessins a l'aide d'un ordinateur
DE69033865T2 (de) * 1989-12-29 2002-04-11 Inxight Software Inc Display hierarchischer dreidimensionaler Strukturen
US5333254A (en) * 1991-10-02 1994-07-26 Xerox Corporation Methods of centering nodes in a hierarchical display
CA2097232C (en) * 1993-05-28 1999-01-19 Phillip J. Beaudet Displaying partial graphs by expanding and collapsing nodes
JPH0876951A (ja) 1994-09-07 1996-03-22 Toshiba Corp ハイパーメディアのマップ表示システム及びマップ表示方法
US5590250A (en) 1994-09-14 1996-12-31 Xerox Corporation Layout of node-link structures in space with negative curvature
US5619632A (en) * 1994-09-14 1997-04-08 Xerox Corporation Displaying node-link structure with region of greater spacings and peripheral branches
JP2993434B2 (ja) 1996-07-16 1999-12-20 日本電気株式会社 分散ハイパーメディアシステム
US5798769A (en) 1996-08-15 1998-08-25 Xerox Corporation Method and apparatus for maintaining links between graphic objects in a free-form graphics display system

Also Published As

Publication number Publication date
EP0977155A3 (en) 2000-10-25
US8232995B2 (en) 2012-07-31
JP2000067253A (ja) 2000-03-03
EP0977155B1 (en) 2002-12-18
DE69904539T2 (de) 2003-05-15
DE69904539D1 (de) 2003-01-30
US20020085002A1 (en) 2002-07-04
EP0977155A2 (en) 2000-02-02

Similar Documents

Publication Publication Date Title
JP4864181B2 (ja) ノード表示装置
US6377259B2 (en) Presenting node-link structures with modification
US6300957B1 (en) Mapping a node-link structure to a rendering space beginning from any node
US6654761B2 (en) Controlling which part of data defining a node-link structure is in memory
JP3630791B2 (ja) ノードリンク構造レイアウト方法及びマシン動作方法
JP3737169B2 (ja) ノードリンク構造のディスプレイ方法
US6108698A (en) Node-link data defining a graph and a tree within the graph
Huang et al. On-line animated visualization of huge graphs using a modified spring algorithm
El‐Sana et al. External memory view‐dependent simplification
KR970011223B1 (ko) 그래픽 객체를 선택하는 컴퓨터 구현 방법
EP0435601B1 (en) Display of hierarchical three-dimensional structures
JPH05266212A (ja) データプロセッサによってオブジェクトの作成を実行する方法及びグラフィックスディスプレイ装置
JP2017532667A (ja) レイアウトエンジン
JP3346130B2 (ja) グラフ図形配置法およびその装置
JP3249902B2 (ja) 画像データ検索装置
de Berg et al. A segment-tree based kinetic BSP
JP2644735B2 (ja) 図面情報管理方法
Nakamura et al. Interactive Graphics and Spatial Data Management for GIS using the Hierarchical Data Structure
Löffler An interactive optimization framework for point feature label placement
van Oosterom Geographic Information Systems
CN117234610A (zh) 一种文档对象模型组件的渲染方法、装置、设备及介质
JP2638362B2 (ja) 図形管理装置
Bing et al. A DYNAMIC MULTI-RESOLUTION MODEL AND IT’S APPLICATION TO TERRAIN RENDERING
Comba et al. A segment-tree based kinetic BSP
Pavlo et al. A recursive, parallelizable, radial layout algorithm for interactive graph visualization and animation

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060707

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090623

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090924

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20090924

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101104

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110621

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110916

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111011

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111109

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141118

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4864181

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term