説明

GUIプログラム、データ処理装置及びオブジェクトの操作方法

【課題】大量のオブジェクトを有限の表示領域内に表示し、利用者が所望するオブジェクトを容易に選択する。
【解決手段】仮想平面50にオブジェクトを配置する処理と、仮想平面50に投影面(仮想投影体60)を配置する処理と、仮想平面50上のオブジェクトの位置に応じた投影面上のオブジェクトの位置を演算する処理と、投影面上の位置をディスプレイ装置の表示領域101、102上の位置に変換する処理と、表示領域101、102にオブジェクトを表示する処理と、ポインティングデバイスからの指令に基づいて表示領域101、102上のオブジェクトを操作する処理とを含む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、キーボードやポインティングデバイス等の入力デバイスを用いて、ディスプレイ上でコンピュータのオブジェクトを操作するグラフィカルユーザインターフェースの改良に関する。
【背景技術】
【0002】
コンピュータのソフトウェアリソースやハードウェアリソースを操作するため、従来からグラフィカルユーザインターフェース(Graphical User Interface、以下、GUIとする)が採用されている。コンピュータからアクセス可能なオブジェクトを操作するためのGUIとしては、例えば、オブジェクトを格納するディレクトリやフォルダに対して、マウスカーソル等のポインティングデバイスで選択動作を行い、所望のオブジェクトを選択するGUIが広く知られている。
【0003】
コンピュータの処理能力の向上と記憶容量の増大により、コンピュータに格納されるオブジェクトの数やネットワークを介してアクセス可能なオブジェクトの数も増大しており、上述のGUIでは、大量のオブジェクト中から所望のオブジェクトを迅速に選択することが難しい場合がある。このようなGUIによるオブジェクトの操作を改善するものとして、次のような提案がなされている。
【0004】
ユーザが操作するポインティングデバイスの動く方向にある隣接オブジェクトを抽出し、その座標位置へ即座にポインティングカーソルを動かす装置が知られている(特許文献1)。また、ディスプレイ上のマウスカーソルの移動速度から移動先のオブジェクトを予測し、予測したオブジェクトにマウスカーソルを移動する制御システムが知られている(特許文献2)。この他、ディスプレイ上のマウスカーソルの移動方向から利用者が意図する移動先の矩形領域を判断してマウスカーソルを移動する制御システム(特許文献3)や、マウスカーソルの動作方向の延長線上にあるオブジェクトを検出し、ディストネーションオブジェクトの候補を選出する装置(特許文献4)等が知られている。
【0005】
また、大量の情報の中から現在必要とする情報を抽出し、ディスプレイ上で見やすく表示を行う技術としては、カーナビゲーションなどに適用される鳥瞰図式の地図表示装置が知られている(特許文献5)。これは曲率が可変の曲面の一部を利用して、自車の進行方向となる遠方の地図情報と、自車位置近傍の地図情報を同時に表示するものである。
【特許文献1】特開平06−289996号
【特許文献2】特開平10−222307号
【特許文献3】特開平05−046311号
【特許文献4】特開平09−330177号
【特許文献5】特開2001−307119号
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかしながら、上記特許文献1〜4の従来例では、ディスプレイにオブジェクトを表示し、表示されたオブジェクトに対してマウスカーソルで操作を行う構成となっているため、選択可能なオブジェクトの数がディスプレイの表示領域の広さに制限されるという問題がある。つまり、これらの従来例においては、ディスプレイ上に表示されたオブジェクトについてのみ操作を行うことができるが、コンピュータに格納されたオブジェクトまたはコンピュータからアクセス可能なオブジェクトの数は、ディスプレイ上の有限の表示領域で表示可能なオブジェクトの数よりも大きい場合が多い。したがって、有限の表示領域にコンピュータの利用者が必要とするオブジェクトが表示されていない場合には、このオブジェクトを容易に探し出すことができない、という問題がある。
【0007】
さらに、発案を整理するKJ法のように、大量のオブジェクトを分類し、取捨選択する作業を上記従来例のGUIで行うと、必要なオブジェクトと不要なオブジェクトが等しくディスプレイの表示領域を占有するため、効率よくオブジェクトの選択を行うことはできない、という問題がある。
【0008】
また、上記特許文献5の従来例では、座標(緯度、経度、高度)と距離という情報を備えた地図情報の表示には適しているものの、距離や座標といった位置情報を備えていないコンピュータ上のオブジェクトに適用することはできない、という問題がある。
【0009】
そこで本発明は、上記問題点に鑑みてなされたもので、大量のオブジェクトを有限の表示領域内に表示し、利用者が所望するオブジェクトを容易に選択することが可能なGUIを提供することを目的とする。
【課題を解決するための手段】
【0010】
本発明は、予め設定した仮想空間に前記オブジェクトを配置する処理と、前記仮想空間に予め設定した投影面を配置する処理と、仮想空間上のオブジェクトの位置に応じた投影面上のオブジェクトの位置を演算する処理と、前記投影面上の位置を前記ディスプレイ装置の表示領域上の位置に変換する処理と、前記表示領域にオブジェクトを表示する処理と、ポインティングデバイスからの指令に基づいて前記表示領域上のオブジェクトを操作する処理とを含む。
【0011】
また、前記ディスプレイ装置の表示領域上の位置に変換する処理は、仮想空間に面した平面である第1の投影面に投影されたオブジェクトをディスプレイ装置の表示領域に設定した第1の表示領域の位置に変換する処理と、前記第2の投影面に投影されたオブジェクトの位置をディスプレイ装置の表示領域に設定した第2の表示領域の位置に変換する処理と、を含む。
【発明の効果】
【0012】
したがって、本発明は、仮想空間にオブジェクトを配置して、投影面を介してオブジェクトを表示することで、有限の表示領域に多数のオブジェクトを表示して全体の概観を行うことができる。
【0013】
また、投影面には第1の表示領域に対応する投影用の平面を設けることで、オブジェクトの表示、入出力、移動、アイコン化などのオブジェクトに対する詳細な操作を行うことができ、第2の投影面に対応する第2の表示領域ではオブジェクトの存在のみを表示することで、多数のオブジェクトを表示して全体の概観と、オブジェクトの詳細を把握でき、利用者が所望するオブジェクトを容易に選択することができる。
【発明を実施するための最良の形態】
【0014】
以下、本発明の実施形態を添付図面に基づいて説明する。
【0015】
図1は、本発明の第1の実施形態を示し、本発明を適用するコンピュータ1の構成を示す。
【0016】
コンピュータ1は、演算処理を行うCPU10を有し、このCPU10はフロントサイドバス17を介してブリッジチップ(またはメモリコントローラあるいはチップセット)11に接続される。
【0017】
ブリッジチップ11には、メモリバス18を介してメモリ(主記憶)12が接続され、また、バス19を介してI/Oインターフェース14がブリッジチップ11に接続される。I/Oインターフェース19には、I/Oデバイスが接続される。このI/Oデバイスとしては、例えば、コンピュータ1に格納されたディスク装置15や、ネットワーク40に接続するためのネットワークインターフェース16、利用者からの指令やデータをコンピュータ1へ入力するためのキーボード30や、ポインティングデバイスとしてのマウス31等で構成される。なお、ポインティングデバイスとしては、上記マウス31の他、タッチパッドやタブレットなどを用いても良い。
【0018】
また、ブリッジチップ11には画像情報を出力するためのグラフィックインターフェース13が接続され、このグラフィックインターフェース13にはディスプレイ装置20が接続される。
【0019】
CPU10は、メモリ12にロードしたOS上で本発明のオブジェクト分類GUI(Graphical User Interface)を実行する。オブジェクト分類GUI(またはオブジェクト分類インターフェース)は、マウス31の移動量や移動速度及び方向に応じてディスプレイ装置20上でポインタ(マウスカーソル)や表示領域や表示位置の移動を行うものである。
【0020】
図2は、ディスプレイ装置20の表示領域20Aに表示したオブジェクト分類GUIの概観を示す。オブジェクト分類GUIは、図中白色の矩形領域で示す操作領域101と、黒色の枠状の領域で示す概観領域102の2種類の領域から構成される。オブジェクト分類GUIは、概観領域102の内側に操作領域101を配置し、操作領域101でオブジェクトの詳細(あるいは実体)を表示し、概観領域102でオブジェクトの存在を表示するものである。なお、図2は、オブジェクト分類GUIのアプリケーションウインドウ41を示し、このアプリケーションウインドウ41が、ディスプレイ装置20の表示領域20A(図1参照)上の任意の位置かつ任意のサイズで表示されるものである。
【0021】
ここで、オブジェクトは、コンピュータ1からアクセス可能なアイコン、テキストデータ、イメージデータ、HTMLデータ、フォルダ内容、アプリケーション固有の入出力フォームなどを示す。オブジェクトはコンピュータ1のディスク装置15に格納されたり、ネットワーク40上のコンピュータリソースに格納することができる。
【0022】
そして、オブジェクト分類GUI内では、後述するように、オブジェクトを配置するための空間として、平面で構成された仮想平面を備え、オブジェクト分類GUIは、この仮想平面上にオブジェクトを配置して管理する。
【0023】
これに対してディスプレイ装置20の画面全体(表示領域全体)やアプリケーションウィンドウの表示部分など、オブジェクトが表示される平面を表示領域(図1の20A)と呼ぶ。なお、本実施形態において、仮想平面は、コンピュータ1の内部で保持されうる十分に大きな値を持つという意味で、無限の広がりをもつものとする。つまり、仮想平面の大きさはコンピュータ1で設定可能な領域であり、例えば、コンピュータ1のハードウェアリソースやOSが扱うことのできる領域(ここでは、2次元平面)の最大値とすることができる。
【0024】
操作領域101は、オブジェクトの詳細な表示を行い、オブジェクトに対する入出力や、オブジェクトの移動、オブジェクトのアイコン化など、オブジェクトに対する操作を行う領域であり、キーボード30やマウス31(ポインティングデバイス)から構成されるコンピュータインターフェースに準ずる機能を備えている。つまり、操作領域101では、仮想平面上のオブジェクトの具体的な内容を視認可能に表示して、入出力などの操作を可能にするものである。
【0025】
本実施形態ではマウス31の移動に応じてディスプレイ装置20の表示領域20A上を移動するマウスカーソル32で、操作領域101や概観領域102で操作を行うものとする。また、オブジェクト分類GUIは、マウス31のボタン操作を受け付けて、後述するように各種処理を行う。
【0026】
なお、ポインティングデバイスとしては、マウス31の他にタブレットペン、スタイラスペン、タッチパッドなどを採用することができ、オブジェクト分類GUIは、ポインティングデバイスから位置情報とボタン操作に関する情報の入力を受け付ける。
【0027】
概観領域102は、オブジェクトが配置される仮想平面から操作領域を除いた部分を概観する領域である。概観領域102ではオブジェクトが配置された位置に存在を示す図形(例えば、点)のみが示される。つまり、コンピュータ1の利用者は、概観領域102の点からオブジェクトの存在は理解できるが、そのオブジェクトの内容について概観領域102上では視認することはできない。
【0028】
図2において、103はオブジェクトの一例として本実施形態で使用するカードオブジェクトを示す。操作領域101ではオブジェクト自体が表示される。これに対し、概観領域102ではオブジェクトは白い小さな点、ポイント104で表示される。また、図中下方の中央部には、オブジェクト分類GUIのパラメータ調整や、ラベルの入力・編集、終了などの操作を行うためのメニュー項目を開くためのメニューボタン105が配置される。
【0029】
<オブジェクト分類GUIの概要>
オブジェクト分類GUIの概要について、図3を参照しながら説明する。図3は、オブジェクト分類GUIのウインドウと、空間の関係を示す説明図である。
【0030】
オブジェクト分類GUIは、オブジェクトを配置する空間としての仮想平面(仮想空間)50と、側面を曲面とした直方体状に形成されて、仮想平面50上のオブジェクトを投影する仮想投影体60を備える。
【0031】
仮想平面50は、上述のようにコンピュータ1及びOSが扱うことが可能な空間(ここでは2次元空間)である。
【0032】
仮想投影体60は、仮想平面50と対向する位置に、矩形の平面を仮想平面50と平行に配置し、4つの側面は所定の曲率rの曲面で構成する。これら方向の平面と4つの側面外周は、仮想平面50上のオブジェクトを投影する投影面とする。
【0033】
この投影面は2つの領域に分かれ、仮想平面50と平行な矩形の平面とした仮想投影体60の底面を詳細投影面62とし、曲面で構成された仮想投影体60の側面は概観投影面61とする。つまり、仮想投影体60は、図4で示すように、直方体の側面を曲面で形成し、底面となる平面を詳細投影面62とし、4つの側面を概観投影面61としたものである。
【0034】
そして、図3で示すように、曲面で構成された概観投影面61を平面に展開し、詳細投影面62と結合したものを、表示面63とする。つまり仮想投影体60の側面に投影された仮想平面50上のオブジェクトは、図中曲線ACで表される概観投影面61を直線A’Cに展開することで、概観投影面61は詳細投影面62と同一の平面(表示面63)上に表示される。表示面63に投影されたオブジェクトは、アプリケーションウインドウ4内の操作領域101と概観領域102に表示される。例えば、図示のように、概観投影面61(図中直線A’CまたはB’E)に投影されたオブジェクトを概観領域102に表示し、詳細投影面62に投影されたオブジェクトを操作領域101に表示する。
【0035】
なお、後述するように、表示面63は仮想平面50から任意の高さに設定され、また、仮想投影体60は仮想平面50上を移動することができる。
【0036】
表示面63は、アプリケーションウインドウ41で表示される座標に対応する。そして、操作領域101の中心Oは、表示面63の中心に対応し、これらの中心Oを視点中心と呼ぶ。なお、視点中心Oと投影面(概観投影面61と詳細投影面62)を併せて投影系という。
【0037】
詳細投影面62は視点中心Oを基準にした角C−O−Eで設定され、図中線分C−Eを通る平面である。なお、図中C、Eは詳細投影面62の周縁の一点である。そして、詳細投影面62は視点中心Oから見て、角C−O−Eの範囲の仮想平面50に存在するオブジェクトを投影する。すなわち、詳細投影面62を通して線分O−C、O−Eの延長線上に位置する仮想平面50上の図中線分G−Iの範囲に配置されたオブジェクトが表示面63のうち詳細投影面62に投影される。
【0038】
例えば、図5のように、視点中心Oから仮想平面50上の点Pを見た場合、仮想平面50上の点Pは詳細投影面62の点Qに投影される。この点Qは表示面63に変換されて、アプリケーションウインドウ41の操作領域101に表示される。なお、詳細投影面62上の座標は、図4で示した長辺側(P−P断面)と短辺側(Q−Q断面)に沿ってそれぞれ求めた直交座標とする。
【0039】
概観投影面61は視点中心Oを基準にした角A−O−C(角B−O−E)で設定され、図中線分A−C(B−E)を通る曲面である。なお、図3のA、Bは概観投影面61の周縁の一点である。そして、概観投影面61は視点中心Oから見て、角A−O−C(または角B−O−E)の範囲の仮想平面50に存在するオブジェクトを表示面63に投影する。つまり、詳細投影面62に投影されない仮想平面50上の全てのオブジェクトを投影することができる。また、オブジェクトの投影位置が表示面63(図中点AまたはB)に近づくにつれて、視点中心Oから限りなく遠い位置に存在するオブジェクトを投影することができる。
【0040】
例えば、図6のように、視点中心Oから仮想平面50上の点Rを見た場合、仮想平面50上の点Rは概観投影面61の点Sに投影される。この点Sは図3で示したように直線EB’上の表示面63に投影され、概観領域102に表示される。なお、概観投影面61上の座標は、図3で示したように表示面63へ展開してから、図4で示した長辺側(P−P断面)と短辺側(Q−Q断面)に沿ってそれぞれ求めた直交座標とする。
【0041】
次に、概観投影面61を介して表示面63に投影されたオブジェクトは、アプリケーションウインドウ41の概観領域102に表示され、例えば図2で示したように、点104として表示される。つまり、概観領域102には、オブジェクトの存在のみが表示される。
【0042】
一方、詳細投影面62を介して表示面63に投影されたオブジェクトは、アプリケーションウインドウ41の操作領域101に表示され、例えば図2で示したカードオブジェクト103のように、入力操作などが可能な大きさで表示される。
【0043】
つまり、概観領域102ではオブジェクトの位置情報の位相が表示され、操作領域101上の任意の2点を2組取り上げた場合、視点中心Oからこれら2点間の距離の比は表示面63上と、操作領域101上とで一致する。これに対して、概観領域102では1つの基準点(例えば、視点中心O)と任意の2点を取り上げた場合、基準点とこれら2点の距離の大小関係は表示面63上と一致する。
【0044】
以上のように、本発明のオブジェクト分類GUIでは、操作領域101にオブジェクトの詳細を表示して、オブジェクトに対する操作を行うことができ、概観領域102では操作領域101以外の全てのオブジェクトの位置関係を点などの抽象的な図形で表示し、後述するように、操作領域101(つまり仮想投影体60の表示面63)を移動させることで、多数のオブジェクトにアクセすることができる。
【0045】
なお、表示面63とアプリケーションウインドウ41は、同一の領域ではないので、表示部205は、表示面63に配置されたオブジェクトの位置座標を、ディスプレイ装置20の横方向と縦方向の2つの座標軸について独立して変換する。
【0046】
<オブジェクト分類GUIの詳細>
次に、オブジェクト分類GUIの構成について、図7のブロック図を参照しながら説明する。オブジェクト分類GUIは、次の機能ブロックにより構成される。
【0047】
動作検出部201はマウス31などのポインティングデバイスから位置情報とボタン操作に関する情報の入力を受ける。そして、動作検出部201はマウス31の位置情報を動作解析部202へ送付してバッファ304に格納する。なお、位置情報としては図8のように、Xm軸及びYm軸の座標(Xm−i、Ym−i)を一組の位置情報307として、所定量の位置情報を格納する。ただし、iは自然数。なお、バッファ304の内容は、所定のタイミング(後述のドラッグ操作完了時など)でクリアされる。
【0048】
動作解析部202は入力された位置情報307からマウス31の移動速度と移動方向の計算を行い、算出した速度と速度の閾値を比較して閾値を超過したか否かの判定を行う。この判定の結果、移動速度が閾値を超えた場合には、マウス31の実際の移動量よりもマウスカーソル32の移動量を増大するフリップ処理を行う。このフリップ処理を行うため、動作解析部202は、図9で示すように、速度閾値301と、追加移動係数302及び追加移動定数303を保持している。そして、フリップ処理では、後述するように、マウス31の実際の移動量に追加移動係数302を乗じたものに、追加移動定数303を加えて追加移動位置を求め、マウス31の移動方向に応じた移動量の計算を行う。
【0049】
座標変換部203は、上述した投影系に関するパラメータを保持し、仮想平面50に配置されたオブジェクトの表示位置を計算する。また、オブジェクトの座標変換のため、ニュートン法などの数値計算による方程式の求解手法を持つ。
【0050】
座標変換部203は、図10で示すように、図3に示したアプリケーションウインドウ41と仮想投影体60に関する情報を、図3に示したX軸とY軸についてそれぞれ備える。なお、X軸とY軸は、アプリケーションウインドウ41と表示面63及び仮想平面50では、それぞれ異なる座標系である。
【0051】
本実施形態では、操作領域101として矩形領域を使用し、座標軸ごとの座標変換を行うため、ディスプレイ横方向をX軸、ディスプレイ縦方向をY軸として、X軸、Y軸に関するパラメータが保持される。また、視点中心Oを原点として使用するため、全体サイズの1/2の値を記録している。
【0052】
図10において、スクリーンサイズ401、407は、表示に使用する領域であるアプリケーションウインドウ41のX軸及びY軸の寸法の1/2を示し、操作領域サイズ402、408は、アプリケーションウインドウ41内の操作領域101のX軸及びY軸の寸法の1/2を示し、操作領域余白サイズ403、409は、アプリケーションウインドウ41内の概観領域102のサイズの1/2の値から操作領域101のサイズを引いた値がX軸とY軸毎に記録される。
【0053】
そして半径404、410は、図3に示した仮想投影体60の側面を構成する概観投影面61の曲率を示す。操作領域角度405、411は、図3に示した角C−O−DのX軸とY軸の値であり、視点配置面間距離406は、仮想平面50から表示面63までの高さを示している。視点X座標412と視点Y座標413は、視点中心Oの仮想平面50の座標を示す。
【0054】
次に、図7のオブジェクト管理部204は、オブジェクトの位置情報や識別子などの情報の記録と、仮想平面50での配置位置の記録を行う。例えば、図11で示すオブジェクト管理データ504のように、全てのオブジェクトについて、オブジェクト識別子501に対応する仮想平面50上の配置位置X軸座標502と配置位置Y座標503を格納し、管理する。
【0055】
表示部205は、ディスプレイ装置20への表示信号を生成し、表示領域20Aに操作領域101と概観領域102を備えたアプリケーションウインドウ41を表示する。
【0056】
<仮想平面と表示面の座標変換>
次に、座標変換部203で行われる座標変換について、以下に説明する。
【0057】
図12に座標変換時の空間に関するパラメータを示す。図12において、仮想投影体60の概観投影面61の半径rを、
r = OB ………(1)
とし、図10の半径404、410に格納する。
【0058】
操作領域角度θは、図12において、
θ = ∠EOD ………(2)
とし、図10の操作領域角度405、411にθを記録する。
【0059】
次に、視点配置面間距離hは、図12において、
h = OH ………(3)
とし、図10の視点配置間距離406に記憶する。
【0060】
操作領域サイズa(図10の402、408)と操作余白領域サイズb(図10の403、409)の間には、
a = r sinθ、b = r ( π / 2 − θ ) ………(4)
という関係が成り立つ。後述するように、操作領域101の移動、ズームインなど投影系への操作が行われた場合、座標変換のために、この関係式(4)からr、θを数値計算手法によって計算する。
【0061】
詳細投影面62の座標変換は、図13で示すように、
x = HP、 x' = z = DQ ………(5)
と置くと、
x / z = HI / a、 HI = htanθ ………(6)
という関係が成り立つ。従って、仮想平面50上の点Pは詳細投影面62の点Qに、次の式で変換される。
【0062】
x' = z = a x / HI = a x / ( h tanθ )
= r x cosθ / h ………(7)
また、座標の逆変換(詳細投影面62から仮想平面50)は次の式で与えられる。
【0063】
x = h x' / ( r cosθ) ………(8)
次に、概観領域102の座標変換の計算方法を示す。図14において、
x = HR、 x' = a + z = DE + ES ………(9)
と置くと、仮想平面50上の点Rは投影面上の点Sに、次の式で変換される。
【0064】
x' = a + r φ = a + r [ ( θ + φ ) − θ ]
= a + r [ arctan( x / h ) − θ ] ………(10)
また、概観領域102における概観投影面61から仮想平面50への逆変換は次の式で与えられる。
【0065】
x = h tan{ ( x' − a ) / r + θ} ………(11)
また、投影面の点が操作領域101に含まれる条件は、
x' ≦ a ………(12)
であり、仮想平面50上の点が操作領域101に投影される条件は、
x = h a / ( r cosθ) ………(13)
で与えられる。
【0066】
以上の関係式から仮想平面50と表示面63の間で、投影面を介して座標変換が行われる。なお、上記ではX軸方向について述べたが、Y軸方向についても同様に演算すればよい。
【0067】
<処理の詳細>
次に、オブジェクト分類GUIの処理の一例について、以下のフローチャートを参照しながら詳述する。
【0068】
<オブジェクト作成処理>
図15は、オブジェクトを作成する際の処理の一例を示すフローチャートで、所定の周期(例えば、数十msec毎)で実行されるものである。
【0069】
まず、S1では、動作検出部201がマウス31のボタンがクリック(ポインティングデバイスの選択動作)されたかを検出し、クリックされた場合にはS2へ進み、クリックされていない場合には処理を終了する。
【0070】
S2では、マウスカーソル32の位置(ディスプレイ装置20の表示領域20Aの座標)を検出し、検出位置がオブジェクト上か操作領域101上か概観領域102上かを判別する。この判別結果が操作領域101上で、かつ、オブジェクトが存在しない座標であれば、S3以降のオブジェクト作成処理に進む。つまり、オブジェクトの作成は、マウスカーソル32の位置が操作領域101にあるときに実行される。
【0071】
S3では、クリック検出位置が操作領域上である場合、オブジェクト管理部204へクリックされたマウスカーソル32の位置(X−Y座標)を転送する。
【0072】
次に、S4では、オブジェクト管理部204では新しいオブジェクトを生成し、S5では、このオブジェクトの識別子501をオブジェクト管理データ504に記録する。
【0073】
S6では、オブジェクト管理部204がマウスカーソル32の位置情報を座標変換部203に送付する。
【0074】
S7では、座標変換部203において、マウスカーソル32の位置情報(座標)を上記座標変換に基づいて表示面63上の座標に変換する。さらに、上記(8)式により、表示面63上の座標を仮想平面50の座標に変換する。
【0075】
S8では、オブジェクト管理部204が新たなオブジェクトの仮想平面50上の座標を、オブジェクト管理データ504に記録する。
【0076】
S9では、新たに作成したオブジェクトの識別子と、表示領域20A上の座標(マウスカーソル32の位置)を表示部205へ出力し、表示部205は送られた新たなオブジェクトをディスプレイ装置20の表示領域20A内で、アプリケーションウインドウ41内に設定された操作領域101のマウスカーソル32の位置に表示する。
【0077】
<オブジェクト移動(ドラッグ操作及びフリップ操作)処理>
次に、図16はドラッグ操作(マウス31のボタンを押しながら移動させる操作)でオブジェクトの移動を行う場合の処理を示し、所定の周期で実行されるものである。
【0078】
なお、この処理では通常のドラッグ操作に加えて、マウス31の移動速度が所定の閾値を超えると、実際のマウス31の移動量よりもオブジェクトの移動量を大きく設定して、少ないマウス操作量でオブジェクトを遠くへ移動させるフリップ操作を含むものである。
【0079】
S11では、動作検出部201がマウス31のボタンが押下され、オブジェクトのドラッグが開始されたことを検出する。ドラッグ操作が検出された場合にはS12へ進み、そうでない場合にはそのまま処理を終了する。
【0080】
S12では、ドラッグ操作の位置(マウスカーソル32の位置情報)とドラッグ中のオブジェクトの識別子を動作解析部202に送付する。
【0081】
S13では、オブジェクトがドラッグされている間は、動作検出部201がマウスカーソル32の位置情報を動作解析部202へ送付する。なお、動作解析部202は、マウスカーソル32の位置情報を、所定のサンプリング周期で図8に示したバッファ304に格納する。
【0082】
S14では、ドラッグ操作が終了したか否かを判定し、ドラッグ操作が継続していればS15の処理へ進み、現在のマウスカーソル32の位置情報を表示部205へ出力して、移動中のオブジェクトを操作領域101に表示させる。ドラッグ操作が終了した場合(ボタンの解放)には、動作検出部201が動作解析部202へドラッグ操作の終了を通知してS16へ進む。
【0083】
S16では、動作解析部202が、後述するフリップ処理で、マウスカーソル32の移動状況から、フリップ操作が行われたか否かを判定し、オブジェクトの移動後のアプリケーションウインドウ41内の位置情報を計算し、オブジェクト識別子とともにオブジェクト管理部204へ送付する。
【0084】
S17では、オブジェクト管理部204は、ドラッグ操作またはフリップ操作後のオブジェクトのアプリケーションウインドウ41内の位置情報を、座標変換部203に送付する。
【0085】
S18では、座標変換部203が、上述のようにアプリケーションウインドウ41内のオブジェクトの座標を表示面63上の座標に変換し、さらに、上記(8)式により、表示面63上の座標から仮想平面50上の位置情報を計算し、オブジェクト管理部204へ送付する。
【0086】
S19では、オブジェクト管理部204は、該当するオブジェクト識別子501が示す仮想平面50上の位置情報を配置位置502、503に記録する。
【0087】
S20では、オブジェクト管理部204は、オブジェクトの識別子504とアプリケーションウインドウ41内のオブジェクトの位置情報を表示部205に送付する。
【0088】
S21で表示部205は移動後のアプリケーションウインドウ41内の位置にオブジェクトを表示する。
【0089】
次に、上記図16のS17で行われるフリップ操作処理について、図17、図18を参照しながら説明する。
【0090】
図17は、フリップ操作処理のサブルーチンを示し、図18はドラッグ操作期間におけるマウスカーソル32の速度と時間の関係を示すグラフである。
【0091】
まず、S50ではバッファ304からマウスカーソル32の位置情報を読み込み、各座標(Xm−i、Ym−i)からマウスカーソル32の移動速度Vmを算出する。この結果、マウス31のサンプリング周期と速度の関係が図18のように表すことができる。
【0092】
次にS52では、図9の速度閾値301(Vth)と速度Vmとを比較して、速度Vmが閾値Vthを超えたかを判定する。なお、この比較は、例えば、上記S51で得られた速度Vmを先頭から順次比較する。
【0093】
速度Vmが閾値Vth(図18のF)を超えた場合には、S53以降へ進んでフリップ操作の処理を実行し、そうでない場合にはドラッグ操作であると判定し、サブルーチンを終了する。
【0094】
S53では、マウスカーソル32の移動開始点(Xm−1、Ym−1)と終点(Xm−n、Ym−n)から実際の移動距離を算出する。
【0095】
次に、S54では、ドラッグ操作終了時刻t2に一番近く、かつ、速度Vmが速度閾値Vthを越えた時刻t1を求める。そして、時刻t1からt2の期間で、速度閾値Vthを超えていた領域を積分する。
【0096】
例えば、図18の例では、図中Aの時点と、図中Cの時点で速度Vmが速度閾値Vthを超えている。この場合、速度Vmが速度閾値Vthを超えた時刻の中でドラッグ操作終了時刻に一番近い時刻は図中Cの時刻t1となる。そして、速度閾値Vthを超えている領域は、図中CDEFで囲まれる図形であり、この領域を積分して面積S1とする。
【0097】
そして、S55では、速度閾値Vthを超えていた領域の面積S1に、上記図9の追加移動係数302と追加移動定数303によって線形変換した値を、追加移動値として算出する。
【0098】
S56では、マウスカーソル32の移動方向を算出する。この移動方向の算出は、例えば、マウスカーソル32の終点(Xm−n、Ym−n)と直前の座標(Xm−(n−1)、Ym−(n−1))からX軸、Y軸の変化量から移動方向を求める。
【0099】
S57では、実際の移動距離に上記S55で求めた追加移動値を加えたものを、オブジェクトの最終移動距離とする。
【0100】
S58では、マウスカーソル32の移動開始点(Xm−1、Ym−1)に、S56で求めた移動方向とS57の最終移動距離を加えたものをオブジェクトの位置情報として算出する。
【0101】
上記フリップ操作処理により、ドラッグ操作の速度が閾値Vthを超えると、追加移動係数302と追加移動定数303によって実際のマウスカーソル32の移動量に追加移動値が上乗せされ、オブジェクトはマウスカーソル32から離れて遠くへ飛ぶような動作となる。これをフリップ操作という。
【0102】
次に、ドラッグ操作とフリップ操作の差異について、図面を参照しながら説明する。図19、図20はドラッグ操作の一例を示し、図19において、マウスカーソル32を左下の始点から右上の終点32A間まで移動する。この間、マウスカーソル32の移動速度Vmは閾値Vthを超えないため、オブジェクト103はマウスカーソルの数点32Aまで移動する(103A)。
【0103】
図21、図22はフリップ操作の一例を示し、マウスカーソル32を左下の始点から右上の終点32Bまで移動し、且つ、マウスカーソル32の移動速度Vmが閾値Vth超えた場合である。
【0104】
マウスカーソル32の移動速度Vmが、閾値Vthを超えたことから、追加移動値が演算され、マウスカーソル32の実際の移動距離に追加移動値を加えたものがオブジェクトの移動量となる。
【0105】
図21、図22において、マウスカーソル32は左下の始点から右上中央部の32Bまで、閾値Vthを超える速い速度で移動する。オブジェクト103は、図中32Bまではマウスカーソル32とともに移動するが、その後、単独で移動を継続して図中103Bの概観領域102まで移動する。すなわち、マウスカーソル32の終点32B以降はオブジェクト103が飛んでいくことになる。
【0106】
このフリップ操作においては、マウスカーソル32の移動速度Vmが速度閾値Vthを超えていた期間の積分値に基づく追加移動値が実際のマウスカーソル32の移動量に加算されるので、操作者はマウスカーソル32の移動速度Vmを調整することでオブジェクト103の追加移動値を調整できるので、容易にフリップ操作を行うことができる。
【0107】
<投影系のパラメータ変更処理>
<視点中心の移動>
投影系のパラメータは、視点中心Oの位置の変更やズームイン/ズームアウトなどを行うことができ、これらの操作は概観領域102上をマウス31でクリックすることによる移動、または、メニューからの直接入力で変更される。
【0108】
以下では、概観領域102がクリックされた場合は次の手順に従い、視点の位置412、413が変更される。
【0109】
図23は、投影系のパラメータ変更のうち、視点中心Oの移動を行う処理の一例を示すフローチャートである。
【0110】
S30では、動作検出部201がマウス31のボタンがクリックされたか否かを判定し、クリックされた場合にはS31に進んで、マウスカーソル32の検出位置が概観領域102上かを判別する。概観領域102上であればS32へ進んで、座標変換部203へクリックされた投影面(概観投影面61)上の位置情報を送付する。
【0111】
S33で、座標変換部は上記(8)式により、仮想平面50上の位置情報を計算しその値を視点X座標412と視点Y座標413に記録する。
【0112】
S34では、半径404、410と操作領域101の角度405、411を、上記(4)式に基づき再計算する。
【0113】
S35では、座標変換部203がパラメータの変更をオブジェクト管理部204に送付する。
【0114】
S36では、オブジェクト管理部204は全てのオブジェクトについて、配置位置(仮想平面50上の座標)を取得し、各々のオブジェクトの表示される領域種別を、上記(13)式により判別する。つまり、各オブジェクト103が操作領域101に表示されるか否かを求める。
【0115】
そして、S37は各オブジェクト103が表示される領域を判定し、操作領域101に表示される場合にはS38へ進み、概観領域102に表示される場合にはS39へ進む。
【0116】
S38では、操作領域101に表示するオブジェクトについて、上記(7)式により表示面63上の位置情報を演算し、オブジェクト管理部204に送る。
【0117】
S39では、概観領域102に表示するオブジェクトについて、上記(10)式により投影面(表示面63)上の位置情報を演算し、オブジェクト管理部204に送る。
【0118】
そして、S40では、オブジェクト管理部204は受け取った投影面上の位置情報とオブジェクト識別子を表示部205に送付する。
【0119】
S41では、表示部205が各オブジェクトの表示を実行する。
【0120】
なお、上記S36〜S41の処理は全オブジェクトについて、それぞれ行われるものとする。
【0121】
上記概観領域102のクリックによって行われる視点中心Oの移動について、図24、図25を参照しながら説明する。
【0122】
図24は、視点の移動前の状態を示し、視点中心Oはオブジェクト103が多数存在する位置にある。このとき、マウスカーソル32を概観領域102の右上に移動し、オブジェクト103aの近傍でクリックする。
【0123】
このクリック操作により、上記図23の処理が行われ、視点中心Oの座標がクリックした位置に置き換わり、表示面63上のオブジェクトの座標が再計算される。
【0124】
この結果、新たな視点中心O’はマウスカーソル32が指し示していた仮想平面50上の座標に移動し、操作領域101及び概観領域102のオブジェクト103の位置が更新される。移動前に概観領域102にあったオブジェクト103aは、移動後の図25において操作領域101の左下に位置し、元の視点中心Oは概観領域102の左下となる。
【0125】
換言すれば、図26で示すように、仮想平面50のオブジェクト103を投影する仮想投影体60が仮想平面50上を移動することになり、この移動により、詳細投影面62に投影される領域が変化する。なお、図24、図25においては、説明のため視点中心O、O’を表示したが、実際には視点中心Oは表示されない。
【0126】
<ズームイン/ズームアウト>
図23のフローチャートでは、視点中心Oの移動について述べたが、視点中心Oの座標の変化に代わって、視点配置面間距離hを変化させて、オブジェクト103の表示面63上の座標を再計算すれば、ズームイン/ズームアウトを行うことができる。
【0127】
図27は、ズームインの一例を示し、投影系(仮想投影体60)を仮想平面50に近付けることにより、操作領域に対応する仮想平面50を小さくし、操作領域101に表示する図形の倍率を上げることができる。この操作をズームイン操作とよぶ。逆に投影系を仮想平面50から遠ざける操作をズームアウト操作とよぶ。
【0128】
図27では破線で示す仮想投影体60をΔhだけ仮想平面50に近づけ、実線で示す仮想投影体60へ移動することにより、操作領域101の投影面に投影される仮想平面50上の範囲は、図中線分JLから線分GIに縮小される。
【0129】
このズームイン操作により、非常に小さな仮想平面50上の領域を操作領域とすることができ、オブジェクト103のより詳細について表示を行うことができる。このズームイン、ズームアウト操作に際して、図4における視点配置面間距離406の値が変更される。
【0130】
本発明では、図28に示すように、操作領域101の詳細投影面62の大きさを変更することができ、この操作によってもズームイン/ズームアウトを実現できる。
【0131】
操作領域101の実線で示す詳細投影面62は、破線で示す線分CE(詳細投影面62’)から縮小されたものであり、対応する仮想平面50の領域の大きさも変化する。ここで、操作領域101の詳細投影面62の大きさをゼロにすることにより、図4の仮想投影体60は概観領域102のみとなり、概観領域102だけの表示を得ることができる。
【0132】
上記操作領域101の詳細投影面62の大きさの変更に際し、図10における操作領域サイズ402、あるいは、408が変更される。
【0133】
<概観領域の変更>
図29には概観領域102の大きさの変更操作を示す。図29では概観領域102の概観投影面61を示す弧ACを、弧JCに縮小し、同様に弧BEを弧KEに縮小している。この操作により、弧AJと弧BKに投影されるオブジェクトの表示が行われなくなる。つまり、仮想平面50上の無限遠近傍の領域がなくなり、有限の領域のみとなる。
【0134】
ここで、概観領域102の概観投影面61の大きさをゼロにすることにより、図4の詳細投影面62に対応した操作領域101のみの表示を得ることができる。
【0135】
概観領域102の大きさの変更に際し、図10におけるスクリーンサイズ401、あるいは、407が変更され、その結果を受けて、操作領域余白サイズ403、あるいは、409が変更される。
【0136】
<オブジェクト操作の例>
次に、図2に示したカード型のオブジェクト103を用いたアプリケーションウインドウ41内の操作の一例について説明する。
【0137】
この例では、オブジェクト103について概念検索を行い、検索結果の分類タスクに関する操作事例を説明する。
【0138】
図30は、検索に使用するカード型のオブジェクト103である。オブジェクト103の中央部には、図中白色の入出力領域1030が設けられ、この入出力領域1030は検索文の入力と検索結果のテキストを表示する領域である。
【0139】
入出力領域1030の左右には、上述のドラッグ操作、フリップ操作を行うための操作バー1032が設けられる。
【0140】
オブジェクト103の左上には、実行ボタン1803が設けられ、このボタン1031をマウスカーソル32で押すことで、所定の機能を実行する。本実施形態ではボタン1031の押下により、入出力領域1030に記載された内容に基づいた概念検索を実行する。
【0141】
図31は検索の初期状態であり、操作領域101にオブジェクト103が表示されていない状態で、操作領域101の任意の位置をクリックする。このクリック操作により図32のように入出力領域1030に何も記されていない空白のカード型オブジェクト103が、操作領域101の中央に表示される。
【0142】
図33は空白のカード型のオブジェクト103に検索文を入力した状態である。本実施形態では検索文として「無限領域を概観し、弾き飛ばすようにして、オブジェクトを移動する。」と入力している。入力後、実行ボタン1031を押すと、概念検索が実行され、図34に示すように、検索結果として多数のカードオブジェクト103が、操作領域101と概観領域102に表示される。
【0143】
本実施形態では、関連する特許を検索し、結果を「公開番号、タイトル、分類コード、出願人」で示している場合である。図34においてユーザが上述のドラッグ操作やフリップ操作によりカードオブジェクト103を移動し、検索結果を概観領域102に分類する。検索結果を4つのカテゴリーに分類し、上下左右の概観領域102にオブジェクト103を分けた最終状態を図35に示す。
【0144】
以上のように、多数のオブジェクト103を仕分ける際に、操作領域101で詳細を確認し、概観領域102の位置に仕分けのカテゴリーを対応付けることで、多数のオブジェクト103を移動して、分類することができる。
【0145】
この際、上述のフリップ操作を行うことにより、少ないマウス31の移動量で、オブジェクト103を遠くへ移動させることができるので、多数のオブジェクトを容易且つ迅速に操作することができる。
【0146】
さらに、操作領域101と概観領域102を使い分けることで、詳細な情報を操作領域101で確認し、仕分けのカテゴリーに応じた概観領域102上の位置へオブジェクト103を移動させておくことにより、所望のオブジェクトを迅速に取得することが可能となる。例えば、上記図35のように上下左右の概観領域102にオブジェクト103を仕分けした状態で、オブジェクト103の詳細を確認するには、オブジェクト103が存在する概観領域102をクリックすれば、操作領域101をマウスカーソル32の位置へ移動させて、オブジェクト103の内容を即座に確認でき、所望のオブジェクト103を素速く見つけることができるのである。
【0147】
さらに、操作領域101を移動した後に、メニューボタン105を押して上述のパラメータ変更を行うことにより、上述したズームイン/ズームアウトを行うことができる。このズームイン/ズームアウトにより、詳細な情報を表示する仮想平面50上の範囲を変更することで、所望のオブジェクト103の探索を迅速に行うことができる。
【0148】
また、図35の状態で、メニューボタン105を押下し、ラベル文字列を入力することにより、操作領域101のカード全体にラベル110を付与することができる。図36は図35で示したカード型オブジェクト103の分類結果に対してラベル110を付与した状態を示す。
【0149】
なお、上記実施形態において、オブジェクト103としてカード型オブジェクトを用いたが、図示はしないが上述のようにアイコン、テキストデータ、イメージデータ、HTMLデータ、フォルダ内容、アプリケーション固有の入出力フォームなどで構成することができる。
【0150】
以上のように本発明のオブジェクト分類GUIによれば、無限遠を視界に含む投影面を仮想投影体60に設け、仮想投影体60の投影面を矩形平面に変形し、概観領域102に表示されるオブジェクトを点あるいは面積の小さな図形で表示することで、多数のオブジェクト全体の概観を行うことができる。
【0151】
また、投影面には操作領域101として使用する投影用の平面(詳細投影面62)を設けることで、オブジェクトの表示、入出力、移動、アイコン化などのオブジェクトに対する詳細な操作を行うことができる。
【0152】
コンピュータ1の利用者は、大量のオブジェクトを有限の表示領域内に表示し、多数のオブジェクトの概観と詳細な表示によって、所望するオブジェクトを容易に選択することができる。
【0153】
さらに、マウス31を高速に移動させるドラッグ操作を検出し、ドラッグ操作の速度が閾値を超える場合には、オブジェクトの移動量を実際のマウスカーソル32の移動量より大きくして強制的に移動させることにより、操作領域101から概観領域102へのオブジェクトの効率的な移動や分類を行うことが出来る。
【0154】
なお、上記実施形態では、ポインティングデバイスとして、マウス31を用いた例を示したが、ポインティングデバイスとしてはスタイラスペンやタブレット、トラックパッド、トラックボールなどを用いることができる。
【0155】
また、ドラッグ操作またはフリップ操作をスタイラスペンやタブレットで行う場合、ポインター(カーソル32)をオブジェクトに合わせ、ペン先をスクリーンやタブレットに押し当て、押し当てたままポインターを移動し、ペン先を離すという一連の操作である。
【0156】
また、上記実施形態ではオブジェクト分類GUIをアプリケーションとして実行する例を示したが、OSのGUIとして実行しても良い。
【0157】
また、上記実施形態では概観領域102のオブジェクトを点で表示したが、これに限定されることはなく、オブジェクトの存在を示す図形や文字で構成することができる。
【0158】
また、上記実施形態では操作領域101を矩形とし、概観領域102を枠状にしたが、これに限定されることはなく、任意の形状とすることができる。
【0159】
また、上記実施形態では、仮想投影体60を直方体としたが、これに限定されるものではなく、例えば、仮想投影体60を立方体としてもよく、この場合、形状の異なる詳細投影面62と操作領域101の間で座標変換を行い、同様に概観投影面61と概観領域102の間で座標変速を行えばよい。
【0160】
<変形例1>
図37は、第1の変形例を示し、表示面を投影面の背後に設けたものであり、その他の構成は前記実施形態と同様である。
【0161】
前記実施形態では、概観投影面61を平面に展開して詳細投影面62と結合したものを投影面62としたが、変形例1では、仮想投影体60から所定の距離をおいて配置した平面を表示面63Aとし、概観投影面61及び詳細投影面62に投影されたオブジェクト103を表示面63Aに投影する。そして、表示面63Aがディスプレイ装置20の表示領域20A(またはアプリケーションウインドウ41)に相当する。
【0162】
投影面上の弧AC、線分CE、弧EBを直線状に引き伸ばしたものを、表示面63A上の線分JK、線分KM、線分MNとして投影する。この処理により、概観領域102は矩形状に変形することができる。
【0163】
<変形例2>
図38は、第2の変形例を示し、前記実施形態の図3、図4に示した仮想投影体60を四角錐の先端を平面にし、台形状の断面としたもので、その他の構成は前記実施形態と同様である。
【0164】
仮想投影体60’は四角錐状に構成され、概観投影面61は所定の角度で傾斜した平面で構成され、図中直線AC、EB間で仮想平面50上のオブジェクト103を投影する。仮想平面50と対向する詳細投影面62は前記実施形態と同様である。本変形例では、概観投影面61が平面で構成されるので、投影面から表示面63へ展開する際の演算を簡易にすることができ、演算処理の高速化を図ることができる。
【0165】
<変形例3>
図39は、第3の変形例を示し、前記実施形態の図3、図4に示した仮想投影体60の側面を自由曲線としたもので、その他の構成は前記実施形態と同様である。
【0166】
仮想投影体60’は直方体の側面を自由曲面とし、線分AC、EB間が自由曲線で構成される。この自由曲線AC、EB間で仮想平面50上のオブジェクト103を投影し、概観領域102に表示する。仮想平面50と対向する詳細投影面62は前記実施形態と同様である。
【0167】
この場合、前記実施形態と同様に、自由曲線AC、EB間を直線に展開することにより、仮想投影体60の自由曲面に投影されたオブジェクト103を、概観領域102に表示することができる。
【0168】
<変形例4>
図40は、第4の変形例を示し、前記実施形態の図3、図4に示した詳細投影面62を視点中心Oからオフセットさせたものであり、その他の構成は前記実施形態と同様である。
【0169】
前記実施形態においては視点中心Oの鉛直線上に詳細投影面62の中心を配置したが、本変形例4では、視点中心Oの鉛直線が通らない位置に詳細投影面62’配置した一例を示す。なお、概観投影面61は前記実施形態と同様に曲面で構成される。
【0170】
操作領域101に対応する詳細投影面62’の大きさを決定するため、仮想平面50において操作領域101に対応する線分GIをとり、仮想平面50の中心H(視点中心Oの鉛直上の点)から所定距離だけ離れている点Iと視点Oを結ぶ線分が仮想投影体60の断面である半円AFBと交わる点Eを求める。そして、線分GIのうち、仮想平面50の中心Hに近い点Gと視点Oを結ぶ線分GOと、上記点Eから仮想平面50に平行に引いた直線との交点Dを求める。こうして求めた点DEを結ぶ直線を通る平面を詳細投影面62’とする。この場合、投影面は弧AFC、線分DE、弧EBで構成される。
【0171】
本発明では操作領域101の中心は、必ずしも詳細投影面62’の中心部に位置する必要はない。
【0172】
<変形例5>
図41は、第5の変形例を示し、前記第4変形例にさらに詳細投影面を加え、2つの操作領域101Aと101Bをアプリケーションウインドウ41内に表示させるようにしたものである。
【0173】
詳細投影面62aは前記変形例4の詳細投影面62’と同一であり、この詳細投影面62aに投影されたオブジェクト103が、アプリケーションウインドウ41内の操作領域101Aに表示される。
【0174】
視点中心Oの鉛直下の点Hを挟んで詳細投影面62aの反対側の仮想投影体60’に、変形例4と同様にして詳細投影面62bを設ける。そして、詳細投影面62bに投影されたオブジェクト103をアプリケーションウインドウ41内の操作領域101Bに表示する。
【0175】
したがって、仮想平面50上の線分GIで示される領域は、投影面(表示面)上の線分DEに投影され、矩形の操作領域101Aを構成する。仮想平面50上の線分G’I’で示される領域は、投影面上の線分D’E’に投影され、操作領域101Bを構成する。いずれの操作領域内部にも存在しないオブジェクトは概観領域102の投影面に投影される。
【0176】
<変形例6>
図42は、第6の変形例を示し、前記第1実施形態の仮想平面50を3次元の仮想空間500とした場合の投影系の概略を示す。
【0177】
図42において、3次元の仮想空間500の概観を行う投影系600と表示面630を示す。3次元の仮想空間500の概観を行う場合は、投影系600を仮想空間500の内部に配置する。この投影系600は、図中線分BCで示す平面投影を行う部分620(詳細投影面)と弧BACで示す曲面投影を行う部分610、611(概観投影面)に区分される。直線OBとOCの延長線上の領域内に存在する点Rは平面620への投影となり、表示面630の中央を構成する平面631に投影される。そして、平面631に投影されたオブジェクトは操作領域101に表示される。
【0178】
一方、直線OBとOCの延長線上の領域の外側に存在する点P、Q、Sは曲面610、611への投影が行われる。曲面610に投影されたオブジェクトは、表示面630の線分ABで示される平面632に投影され、曲面611に投影されたオブジェクトは、表示面630の線分CAで示される平面633に投影され、これら平面632、633がアプリケーションウインドウ41内の概観領域102に表示される。
【0179】
曲面610、611への投影により、仮想空間500の全体の概観を行う。この方法で投影系600を構成した場合、アプリケーションウインドウ41内の操作領域101が狭くなる傾向がある。このため、投影系600から表示面630を構成する際に、表示面630における平面投影に対応する部分631は、曲面投影に対応する部分632、633に対して、大きなサイズを割り当てればよい。
【0180】
なお、請求項19において、前記仮想空間に予め設定した投影面を配置する手順は、
前記投影面に、前記オブジェクトの詳細を投影する第1の投影面を設定する手順と、
前記オブジェクトの存在する位置を投影する第2の投影面を設定する手順と、
を含み、
前記投影面上のオブジェクトの位置を演算する手順は、
前記第1の投影面に投影されたオブジェクトの位置を演算する手順と、
前記第2の投影面に投影されたオブジェクトの位置を演算する手順と、
を含む第3のオブジェクトの操作方法。
【0181】
上記第3のオブジェクトの操作方法において、
前記表示領域にオブジェクトを表示する手順は、
前記ディスプレイ装置の表示領域に、前記第1の投影面に投影されたオブジェクトを表示する第1の表示領域と、前記第2の投影面に投影されたオブジェクトの存在を表示する第2の表示領域と、を設定する手順を含み、
前記ディスプレイ装置の表示領域上の位置に変換する手順は、
前記第1の投影面に投影されたオブジェクトを前記第1の表示領域の位置に変換する手順と、
前記第2の投影面に投影されたオブジェクトの位置を前記第2の表示領域の位置に変換する手順と、
を含む第4のオブジェクトの操作方法。
【0182】
また、上記第4のオブジェクトの操作方法において、
前記表示領域にオブジェクトを表示する手順は、
前記オブジェクトの詳細を前記第1の表示領域に表示する手順と、
前記オブジェクトの存在を示す情報を前記第2の表示領域に表示する手順と、
を含む第5のオブジェクトの操作方法。
【0183】
上記第3のオブジェクトの操作方法において、
前記投影面に前記オブジェクトの詳細を投影する第1の投影面を設定する手順は、前記仮想空間に面して平面を設定し、当該平面を第1の投影面とすることを特徴とする第6のオブジェクトの操作方法。
【0184】
上記第4のオブジェクトの操作方法において、
前記表示領域にオブジェクトを表示する手順は、
前記オブジェクトの存在を示す情報を前記第2の表示領域に表示する手順と、
前記オブジェクトの詳細を前記第2の表示領域の内側に配置した前記第1の表示領域に表示する手順と、
を含む第7のオブジェクトの操作方法。
【0185】
上記第4のオブジェクトの操作方法において、
前記表示領域にオブジェクトを表示する手順は、
前記第2の投影面に投影されたオブジェクトの存在を表示する第2の表示領域を方形の領域として前記ディスプレイ装置の表示領域に設定する手順と、
前記第2の表示領域の内周で、前記第1の投影面に投影されたオブジェクトを表示する方形の領域として第1の表示領域を設定する手順と、
を含む第8のオブジェクトの操作方法。
【0186】
上記第8のオブジェクトの操作方法において、
前記ポインティングデバイスからの指令に基づいて前記表示領域上のオブジェクトを操作する手順は、
前記第2の表示領域上でポインティングデバイスの選択動作を検出する手順と、
前記ポインティングデバイスの選択動作があったときには、選択動作を行った表示領域上の位置を仮想空間上の位置に変換する手順と、
前記変換した仮想空間上の位置に前記第1の表示領域を移動させる手順と、
を含む第9のオブジェクトの操作方法。
【産業上の利用可能性】
【0187】
以上のように、本発明に係るオブジェクト分類GUIでは、大量のオブジェクトを容易且つ迅速に選択、分類するマンマシーンインターフェースに利用できる。
【図面の簡単な説明】
【0188】
【図1】本発明の一実施形態を示し、コンピュータのブロック図。
【図2】本発明のオブジェクト分類GUIの表示の様子を示す説明図。
【図3】ディスプレイ装置の表示領域とオブジェクトを配置する仮想平面の関係を説明する説明図。
【図4】投影面を構成する仮想投影体60を示し、(A)は平面図、(B)はP−P断面図、(C)はQ−Q断面図。
【図5】操作領域に対応する詳細投影面の説明図。
【図6】概観領域に対応する概観投影面の説明図。
【図7】オブジェクト分類GUIのソフトウェア構成を示す機能ブロック図。
【図8】動作検出部のマウスの位置情報を格納するバッファの説明図。
【図9】動作解析部がフリップ操作処理に用いる各値の説明図。
【図10】座標変換部が保持する値の説明図。
【図11】オブジェクト管理部が保持するオブジェクトの位置情報の説明図。
【図12】投影面を構成する仮想投影体と仮想平面の関係を示す説明図。
【図13】詳細投影面へ仮想平面のオブジェクトを投影するときの説明図。
【図14】概観投影面へ仮想平面のオブジェクトを投影するときの説明図。
【図15】オブジェクトの作成処理の一例を示すフローチャート。
【図16】オブジェクトの移動処理の一例を示すフローチャート。
【図17】オブジェクトの移動処理で行われるフリップ操作処理の一例を示すフローチャート。
【図18】フリップ操作処理の一例を示し、マウスカーソルの移動速度と時間の関係を示すグラフ。
【図19】操作領域上でのドラッグ操作を示す説明図。
【図20】操作領域上でのドラッグ操作が完了した状態を示す説明図。
【図21】操作領域上でのフリップ操作を示す説明図。
【図22】フリップ操作完了した状態を示す説明図。
【図23】パラメータ変更処理の一例を示すフローチャート。
【図24】操作領域の移動処理を示し、移動前のアプリケーションウインドウの様子を示す説明図。
【図25】操作領域の移動処理が完了した状態のアプリケーションウインドウの様子を示す説明図。
【図26】操作領域の移動処理を示し、仮想投影体と仮想平面の関係を示す説明図。
【図27】ズームイン処理を示し、仮想投影体と仮想平面の関係を示す説明図。
【図28】同じくズームイン処理を示し、詳細投影面の領域変更による仮想投影体と仮想平面の関係を示す説明図。
【図29】概観投影面の縮小を示し、仮想投影体と仮想平面の関係を示す説明図。
【図30】カード型オブジェクトの正面図。
【図31】カード型オブジェクトで概念検索を行うアプリケーションウインドウの初期画面を示す説明図。
【図32】カード型オブジェクトを作成した状態のアプリケーションウインドウの説明図。
【図33】検索文字列をカード型オブジェクトへ入力した状態のアプリケーションウインドウの説明図。
【図34】検索結果を表示した状態のアプリケーションウインドウの説明図。
【図35】分類が終了した状態を示すアプリケーションウインドウの説明図。
【図36】分類が終了した状態で、ラベルを設定した状態のアプリケーションウインドウの説明図。
【図37】第1変形例を示し、仮想平面と仮想投影体及び表示面の関係を示す説明図。
【図38】第2変形例を示し、仮想平面と仮想投影体及び表示面の関係を示す説明図。
【図39】第3変形例を示し、仮想平面と仮想投影体及び表示面の関係を示す説明図。
【図40】第4変形例を示し、仮想平面と仮想投影体及び表示面の関係を示す説明図。
【図41】第5変形例を示し、仮想平面と仮想投影体及び表示面の関係を示す説明図。
【図42】第6変形例を示し、仮想平面と仮想投影体及び表示面の関係を示す説明図。
【符号の説明】
【0189】
1 コンピュータ
20 ディスプレイ装置
31 マウス
41 アプリケーションウインドウ
50 仮想平面
60 仮想投影体
61 概観投影面
62 詳細投影面
101 操作領域
102 概観領域
103 オブジェクト

【特許請求の範囲】
【請求項1】
ディスプレイ装置の表示領域に表示したオブジェクトを、ポインティングデバイスにより前記オブジェクトを操作するGUIプログラムであって、
予め設定した仮想空間に前記オブジェクトを配置する処理と、
前記仮想空間に予め設定した投影面を配置する処理と、
仮想空間上のオブジェクトの位置に応じた投影面上のオブジェクトの位置を演算する処理と、
前記投影面上の位置を前記ディスプレイ装置の表示領域上の位置に変換する処理と、
前記表示領域にオブジェクトを表示する処理と、
前記ポインティングデバイスからの指令に基づいて前記表示領域上のオブジェクトを操作する処理と、
をコンピュータに機能させることを特徴とするGUIプログラム。
【請求項2】
前記仮想空間に予め設定した投影面を配置する処理は、
前記投影面に、前記オブジェクトの詳細を投影する第1の投影面を設定する処理と、
前記オブジェクトの存在する位置を投影する第2の投影面を設定する処理と、
を含み、
前記投影面上のオブジェクトの位置を演算する処理は、
前記第1の投影面に投影されたオブジェクトの位置を演算する処理と、
前記第2の投影面に投影されたオブジェクトの位置を演算する処理と、
を含むことを特徴とする請求項1に記載のGUIプログラム。
【請求項3】
前記表示領域にオブジェクトを表示する処理は、
前記ディスプレイ装置の表示領域に、前記第1の投影面に投影されたオブジェクトを表示する第1の表示領域と、前記第2の投影面に投影されたオブジェクトの存在を表示する第2の表示領域と、を設定する処理を含み、
前記ディスプレイ装置の表示領域上の位置に変換する処理は、
前記第1の投影面に投影されたオブジェクトを前記第1の表示領域の位置に変換する処理と、
前記第2の投影面に投影されたオブジェクトの位置を前記第2の表示領域の位置に変換する処理と、
を含むことを特徴とする請求項2に記載のGUIプログラム。
【請求項4】
前記表示領域にオブジェクトを表示する処理は、
前記オブジェクトの詳細を前記第1の表示領域に表示する処理と、
前記オブジェクトの存在を示す情報を前記第2の表示領域に表示する処理と、
を含むことを特徴とする請求項3に記載のGUIプログラム。
【請求項5】
前記投影面に前記オブジェクトの詳細を投影する第1の投影面を設定する処理は、前記仮想空間に面して平面を設定し、当該平面を第1の投影面とすることを特徴とする請求項2に記載のGUIプログラム。
【請求項6】
前記表示領域にオブジェクトを表示する処理は、
前記オブジェクトの存在を示す情報を前記第2の表示領域に表示する処理と、
前記オブジェクトの詳細を前記第2の表示領域の内側に配置した前記第1の表示領域に表示する処理と、
を含むことを特徴とする請求項3に記載のGUIプログラム。
【請求項7】
前記表示領域にオブジェクトを表示する処理は、
前記第2の投影面に投影されたオブジェクトの存在を表示する第2の表示領域を方形の領域として前記ディスプレイ装置の表示領域に設定する処理と、
前記第2の表示領域の内周で、前記第1の投影面に投影されたオブジェクトを表示する方形の領域として第1の表示領域を設定する処理と、
を含むことを特徴とする請求項3に記載のGUIプログラム。
【請求項8】
前記ポインティングデバイスからの指令に基づいて前記表示領域上のオブジェクトを操作する処理は、
前記第2の表示領域上でポインティングデバイスの選択動作を検出する処理と、
前記ポインティングデバイスの選択動作があったときには、選択動作を行った表示領域上の位置を仮想空間上の位置に変換する処理と、
前記変換した仮想空間上の位置に前記第1の表示領域を移動させる処理と、
を含むことを特徴とする請求項7に記載のGUIプログラム。
【請求項9】
前記ポインティングデバイスからの指令に基づいて前記表示領域上のオブジェクトを操作する処理は、
前記ポインティングデバイスのドラッグ操作を検出する処理と、
前記ポインティングデバイスのドラッグ操作があったときには、ポインティングデバイスの移動速度を検出する処理と、
前記移動速度が予め設定した閾値を超えた場合には、ポインティングデバイスの移動量よりも大きな移動量を設定して前記オブジェクトを移動する処理と、
を含むことを特徴とする請求項1に記載のGUIプログラム。
【請求項10】
表示領域上にオブジェクトを表示するディスプレイ装置と、
前記オブジェクトに対する操作を指令するポインティングデバイスと、
前記ポインティングデバイスからの指令に基づいて、表示領域上のオブジェクトに対する操作を実行する制御部と、
を備えたデータ処理装置であって、
前記制御部は、
予め設定した仮想空間に前記オブジェクトを配置するオブジェクト管理部と、
前記仮想空間に予め設定した投影面を配置して、仮想空間上のオブジェクトの位置に応じた投影面上のオブジェクトの位置を演算し、前記投影面上の位置を前記ディスプレイ装置の表示領域上の位置に変換する座標変換部と、
前記表示領域にオブジェクトを表示する表示部と、
前記ポインティングデバイスからの指令に基づいて前記表示領域上のオブジェクトを操作する操作部と、
を備えたことを特徴とするデータ処理装置。
【請求項11】
前記座標変換部は、
前記投影面に、前記オブジェクトの詳細を投影する第1の投影面と、前記オブジェクトの存在する位置を投影する第2の投影面を設定する投影面設定部を有し、
前記第1の投影面に投影されたオブジェクトの位置と、前記第2の投影面に投影されたオブジェクトの位置とをそれぞれ演算することを特徴とする請求項10に記載のデータ処理装置。
【請求項12】
前記表示部は、
前記ディスプレイ装置の表示領域に、前記第1の投影面に投影されたオブジェクトを表示する第1の表示領域と、前記第2の投影面に投影されたオブジェクトの存在を表示する第2の表示領域と、を設定する表示領域設定部を有し、
前記座標変換部は、
前記第1の投影面のオブジェクトの位置を前記第1の表示領域の位置に変換し、
前記第2の投影面に投影されたオブジェクトの位置を前記第2の表示領域の位置に変換することを特徴とする請求項11に記載のデータ処理装置。
【請求項13】
前記表示部は、
前記オブジェクトの詳細を前記第1の表示領域に表示する操作領域表示部と、
前記オブジェクトの存在を示す情報を前記第2の表示領域に表示する概観領域表示部と、
を含むことを特徴とする請求項12に記載のデータ処理装置。
【請求項14】
前記投影面設定部は、前記仮想空間に面して平面を設定し、当該平面を第1の投影面とすることを特徴とする請求項11に記載のデータ処理装置。
【請求項15】
前記操作領域表示部は、
前記第2の表示領域の内側に前記第1の表示領域を配置することを特徴とする請求項13に記載のデータ処理装置。
【請求項16】
前記概観領域表示部は、
前記第2の投影面に投影されたオブジェクトの存在を表示する第2の表示領域を方形の領域として前記ディスプレイ装置の表示領域に設定し、
前記操作領域表示部は、
前記第2の表示領域の内周で、前記第1の投影面に投影されたオブジェクトを表示する方形の領域として第1の表示領域を設定することを特徴とする請求項13に記載のデータ処理装置。
【請求項17】
前記操作部は、
前記第2の表示領域上でポインティングデバイスの選択動作を検出する選択動作検出部と、
前記ポインティングデバイスの選択動作があったときには、選択動作を行った第2の表示領域上の位置を、仮想空間上の位置に変換する指令を前記座標変換部に送出し、
前記座標変換部が変換した仮想空間上の位置に、前記第1の表示領域を移動させる指令を座標変換部に送出することを特徴とする請求項16に記載のデータ処理装置。
【請求項18】
前記操作部は、
前記ポインティングデバイスのドラッグ操作を検出するドラッグ操作検出部と、
前記ポインティングデバイスのドラッグ操作があったときには、ポインティングデバイスの移動速度を検出する速度検出部と、
前記移動速度が予め設定した閾値を超えた場合には、ポインティングデバイスの移動量よりも大きな移動量を前記座標変換部に指令して前記オブジェクトを移動するフリップ操作部と、
を含むことを特徴とする請求項10に記載のデータ処理装置。
【請求項19】
計算機に接続されたディスプレイ装置の表示領域に表示したオブジェクトを、ポインティングデバイスにより前記オブジェクトを操作するオブジェクトの操作方法であって、
前記計算機が予め設定した仮想空間に前記オブジェクトを配置する手順と、
前記計算機が仮想空間に予め設定した投影面を配置する手順と、
前記計算機が仮想空間上のオブジェクトの位置に応じた投影面上のオブジェクトの位置を演算する手順と、
前記計算機が投影面上の位置を前記ディスプレイ装置の表示領域上の位置に変換する手順と、
前記計算機が表示領域にオブジェクトを表示する手順と、
前記計算機がポインティングデバイスからの指令に基づいて前記表示領域上のオブジェクトを操作する手順と、
を含むことを特徴とするオブジェクトの操作方法。
【請求項20】
前記ポインティングデバイスからの指令に基づいて前記表示領域上のオブジェクトを操作する手順は、
前記ポインティングデバイスのドラッグ操作を検出する手順と、
前記ポインティングデバイスのドラッグ操作があったときには、ポインティングデバイスの移動速度を検出する手順と、
前記移動速度が予め設定した閾値を超えた場合には、ポインティングデバイスの移動量よりも大きな移動量を設定して前記オブジェクトを移動する手順と、
を含むことを特徴とする請求項19に記載のオブジェクトの操作方法。

【図1】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図23】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図37】
image rotate

【図38】
image rotate

【図39】
image rotate

【図40】
image rotate

【図41】
image rotate

【図42】
image rotate

【図2】
image rotate

【図3】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図24】
image rotate

【図25】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate

【図34】
image rotate

【図35】
image rotate

【図36】
image rotate


【公開番号】特開2006−164049(P2006−164049A)
【公開日】平成18年6月22日(2006.6.22)
【国際特許分類】
【出願番号】特願2004−356942(P2004−356942)
【出願日】平成16年12月9日(2004.12.9)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】