(57)【要約】【課題】ユーザに課す操作を増やすことなく、また、ユーザの操作だけに依拠して、所望のオブジェクトを選択しやすくする。【解決手段】カーソル制御システム１は、カーソルが所定のオブジェクト上にいる場合であって、入力装置３からの入力値に基づいて算出したカーソルの位置が所定のオブジェクトの外に出る場合には、カーソルを所定のオブジェクトの境界上に位置づけ、位置づけられたカーソルの位置から、さらに入力装置３からの入力があって、所定のオブジェクトの外方向にカーソルの移動がある場合には、入力装置からの入力値に基づくカーソルの移動量が第１の閾値以上であるか否かを判定し、カーソルの移動量が第１の閾値以上である場合には、所定のオブジェクトの外にカーソルを位置づけ、第１の閾値未満である場合には、所定のオブジェクトの境界上にカーソルを位置づける。【選択図】図１
2010282244.tif 000002
【特許請求の範囲】
【請求項１】
画面上にオブジェクト及びカーソルを表示する表示装置と、
前記カーソルを用いて、前記オブジェクトを選択させる入力装置と、
前記入力装置からの入力値に基づいて、前記カーソルの移動を制御する制御装置と、を備えたカーソル制御システムであって、
前記制御装置は、
前記カーソルが所定のオブジェクト上にいる場合であって、前記入力装置からの入力値に基づいて算出した前記カーソルの位置が前記所定のオブジェクトの外に出る場合には、前記カーソルを前記所定のオブジェクトの境界上に位置づける第１の制御処理と、
前記第１の制御処理により位置づけられた前記カーソルの位置から、さらに前記入力装置からの入力があって、前記所定のオブジェクトの外方向に前記カーソルの移動がある場合には、前記入力装置からの入力値に基づく前記カーソルの移動量が第１の閾値以上であるか否かを判定する第２の制御処理と、
前記第２の制御処理において、前記カーソルの移動量が前記第１の閾値以上である場合には、前記所定のオブジェクトの外に前記カーソルを位置づける第３の制御処理と、
前記第２の制御処理において、前記カーソルの移動量が前記第１の閾値未満である場合には、前記所定のオブジェクトの境界上に前記カーソルを位置づける第４の制御処理と、
を実行することを特徴とするカーソル制御システム。
【請求項２】
前記第３の制御処理は、
前記カーソルの移動量から、前記第１の閾値以下の第２の閾値を差し引いて、前記カーソルの位置を算出することを特徴とする請求項１記載のカーソル制御システム。
【請求項３】
前記第１の制御処理は、
前記入力装置からの入力に基づく前記カーソルの移動方向に存在する前記所定のオブジェクトの境界上に前記カーソルを位置づけることを特徴とする請求項１または２記載のカーソル制御システム。
【請求項４】
前記第２の制御処理は、
前記入力装置からの予め定めた周期時間における入力値に基づいて、前記カーソルの移動量を算出することを特徴とする請求項１乃至３のいずれか１項に記載のカーソル制御システム。
【請求項５】
前記第２の制御処理は、
前記入力装置からの予め定めた周期時間ごとの入力値の累計に基づいて、前記カーソルの移動量を算出することを特徴とする請求項１乃至３のいずれか１項に記載のカーソル制御システム。
【請求項６】
前記第１の制御処理は、
前記カーソルが所定のオブジェクト上にいる場合であって、前記入力装置からの入力値に基づいて算出した前記カーソルの位置が前記所定のオブジェクトの外に出る場合であっても、前記カーソルの移動量が第３の閾値より大きい場合には、前記所定のオブジェクトの境界上に位置付けず、算出した前記カーソルの位置に位置づけることを特徴とする請求項１乃至５のいずれか１項に記載のカーソル制御システム。
【請求項７】
画面上にオブジェクト及びカーソルを表示する表示装置と、
前記カーソルを用いて、前記オブジェクトを選択させる入力装置と、
前記入力装置からの入力値に基づいて、前記カーソルの移動を制御する制御装置と、を備えたカーソル制御システムのための制御プログラムであって、
前記制御装置に、
前記カーソルが所定のオブジェクト上にいる場合であって、前記入力装置からの入力値に基づいて算出した前記カーソルの位置が前記所定のオブジェクトの外に出る場合には、前記カーソルを前記所定のオブジェクトの境界上に位置づける第１の制御処理と、
前記第１の制御処理により位置づけられた前記カーソルの位置から、さらに前記入力装置からの入力があって、前記所定のオブジェクトの外方向に前記カーソルの移動がある場合には、前記入力装置からの入力値に基づく前記カーソルの移動量が第１の閾値以上であるか否かを判定する第２の制御処理と、
前記第２の制御処理において、前記カーソルの移動量が前記第１の閾値以上である場合には、前記所定のオブジェクトの外に前記カーソルを位置づける第３の制御処理と、
前記第２の制御処理において、前記カーソルの移動量が前記第１の閾値未満である場合には、前記所定のオブジェクトの境界上に前記カーソルを位置づける第４の制御処理と、
を実行させることを特徴とするカーソル制御プログラム。
【請求項８】
前記第３の制御処理は、
前記カーソルの移動量から、前記第１の閾値以下の第２の閾値を差し引いて、前記カーソルの位置を算出することを特徴とする請求項７記載のカーソル制御プログラム。
【請求項９】
前記第１の制御処理は、
前記入力装置からの入力に基づく前記カーソルの移動方向に存在する前記所定のオブジェクトの境界上に前記カーソルを位置づけることを特徴とする請求項７または８記載のカーソル制御プログラム。
【請求項１０】
前記第２の制御処理は、
前記入力装置からの予め定めた周期時間における入力値に基づいて、前記カーソルの移動量を算出することを特徴とする請求項７乃至９のいずれか１項に記載のカーソル制御プログラム。
【請求項１１】
前記第２の制御処理は、
前記入力装置からの予め定めた周期時間ごとの入力値の累計に基づいて、前記カーソルの移動量を算出することを特徴とする請求項７乃至９のいずれか１項に記載のカーソル制御プログラム。
【請求項１２】
前記第１の制御処理は、
前記カーソルが所定のオブジェクト上にいる場合であって、前記入力装置からの入力値に基づいて算出した前記カーソルの位置が前記所定のオブジェクトの外に出る場合であっても、前記カーソルの移動量が第３の閾値より大きい場合には、前記所定のオブジェクトの境界上に位置付けず、算出した前記カーソルの位置に位置づけることを特徴とする請求項７乃至１１のいずれか１項に記載のカーソル制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、グラフィカルユーザインターフェース（ＧＵＩ）においてカーソルを制御する技術に関する。
【背景技術】
【０００２】
昨今、ユーザが機器を操作する場合には、液晶ディスプレイなどの表示装置にグラフィカルユーザーインターフェース（ＧＵＩ）を表示して、操作を行うことが増えている。このようなＧＵＩを用いた操作としては、トラックパッドやマウスなどのポインティングデバイスで画面上のカーソルを操作し、ボタンや画像といったオブジェクトを選択するのが一般的である。このとき、選択対象のオブジェクトが小さかったり、ポインティングデバイスの操作に慣れていなかったりすると、操作ミスによるブレが発生してしまい、カーソルがオブジェクトから外れてしまってうまく選択できないことがある。また、複数のオブジェクトが隣接している場合には、望んでいないオブジェクトを選択してしまうことも起こりうる。
【０００３】
この点、特許文献１には、設定した領域を拡大表示して、アイコンなどの選択性を向上させる画像表示システムが開示されている。同様にして、特許文献２には、選択対象であるホットスポットを拡大表示して、ホットスポットを確実に選択させるホットスポット選択方法が開示されている。
【０００４】
また、特許文献３には、タッチパッドを一定時間以上押圧することにより、仮想ポインタを選択領域内に移動して、誤入力を低減させる入力装置が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１０−３３３８７１号公報
【特許文献２】特開２０００−３２２１６９号公報
【特許文献３】特開２００６−２４４３９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１及び特許文献２が開示している、オブジェクトを拡大してオブジェクトの選択を容易とする技術においては、ユーザはオブジェクトを拡大するための操作が必要となるため、ユーザに課す操作が増えてしまうという問題がある。また、拡大領域が表示されることによって、それが他のオブジェクトに覆い被さり隠してしまい、操作性を損ねるという問題も起こり得る。
【０００７】
また、特許文献３が開示している、システム側がカーソルを自動的に移動させる技術においては、ユーザの操作が介在しないので、ユーザの意図しない動作をする可能性があり、ユーザにとってわかりにくいという問題がある。
【０００８】
本発明は、上記の事情を鑑みてなされたものであり、その課題の一例としては、ユーザに課す操作を増やすことなく、また、ユーザの操作だけに依拠して、所望のオブジェクトを選択しやすくするカーソル制御システム及びカーソル制御プログラムを提供することにある。
【課題を解決するための手段】
【０００９】
上記の課題を達成するため、本発明の第１の態様は、画面上にオブジェクト及びカーソルを表示する表示装置と、前記カーソルを用いて、前記オブジェクトを選択させる入力装置と、前記入力装置からの入力値に基づいて、前記カーソルの移動を制御する制御装置と、を備えたカーソル制御システムであって、前記制御装置は、前記カーソルが所定のオブジェクト上にいる場合であって、前記入力装置からの入力値に基づいて算出した前記カーソルの位置が前記所定のオブジェクトの外に出る場合には、前記カーソルを前記所定のオブジェクトの境界上に位置づける第１の制御処理と、前記第１の制御処理により位置づけられた前記カーソルの位置から、さらに前記入力装置からの入力があって、前記所定のオブジェクトの外方向に前記カーソルの移動がある場合には、前記入力装置からの入力値に基づく前記カーソルの移動量が第１の閾値以上であるか否かを判定する第２の制御処理と、前記第２の制御処理において、前記カーソルの移動量が前記第１の閾値以上である場合には、前記所定のオブジェクトの外に前記カーソルを位置づける第３の制御処理と、前記第２の制御処理において、前記カーソルの移動量が前記第１の閾値未満である場合には、前記所定のオブジェクトの境界上に前記カーソルを位置づける第４の制御処理と、を実行する。
【００１０】
また、本発明の第２の態様は、画面上にオブジェクト及びカーソルを表示する表示装置と、前記カーソルを用いて、前記オブジェクトを選択させる入力装置と、前記入力装置からの入力値に基づいて、前記カーソルの移動を制御する制御装置と、を備えたカーソル制御システムのためのカーソル制御プログラムであって、前記制御装置に、前記カーソルが所定のオブジェクト上にいる場合であって、前記入力装置からの入力値に基づいて算出した前記カーソルの位置が前記所定のオブジェクトの外に出る場合には、前記カーソルを前記所定のオブジェクトの境界上に位置づける第１の制御処理と、前記第１の制御処理により位置づけられた前記カーソルの位置から、さらに前記入力装置からの入力があって、前記所定のオブジェクトの外方向に前記カーソルの移動がある場合には、前記入力装置からの入力値に基づく前記カーソルの移動量が第１の閾値以上であるか否かを判定する第２の制御処理と、  前記第２の制御処理において、前記カーソルの移動量が前記第１の閾値以上である場合には、前記所定のオブジェクトの外に前記カーソルを位置づける第３の制御処理と、前記第２の制御処理において、前記カーソルの移動量が前記第１の閾値未満である場合には、前記所定のオブジェクトの境界上に前記カーソルを位置づける第４の制御処理と、を実行させる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施の形態に係るカーソル制御システムの概略構成を示す図である。
【図２】本発明の実施の形態に係るカーソル制御システムの制御装置が管理するテーブルデータ１の内容を示す図である。
【図３】本発明の実施の形態に係るカーソル制御システムにおいて操作デバイスから入力される入力値を説明する図である。
【図４】本発明の実施の形態に係るカーソル制御システムにおけるオブジェクト及びカーソルの座標を示す図である。
【図５】本発明の実施の形態に係るカーソル制御システムにおいてオブジェクトの境界を識別するための境界番号を説明する図である。
【図６】本発明の実施の形態に係るカーソル制御システムにおいてカーソルの状態遷移を示す図である。
【図７】図６に示す各状態のカーソルの位置を示す図である。
【図８】本発明の実施の形態に係るカーソル制御システムの状態１におけるカーソル移動制御処理の流れを示すフローチャートである。
【図９】本発明の実施の形態に係るカーソル制御システムの状態２．１におけるカーソル移動制御処理の流れを示すフローチャートである。
【図１０】本発明の実施の形態に係るカーソル制御システムの状態２．２におけるカーソル移動制御処理の流れを示すフローチャートである。
【図１１】本発明の実施の形態に係るカーソル制御システムにおいて、カーソルが複数のオブジェクトを飛び越えて移動する場合のカーソルの動きを説明する図である。
【図１２】本発明の実施の形態に係るカーソル制御システムの制御装置が管理するテーブルデータ２の内容を示す図である。
【図１３】本発明の実施の形態に係るカーソル制御システムにおいて、オブジェクト上にあるカーソルをオブジェクトの外に移動させようとした場合の修正前後のカーソルの位置を示す図である。
【図１４】図１２に示すテーブルデータ２が示す境界番号の割り当て方法を図示したものである。
【図１５】本発明の実施の形態に係るカーソル制御システムの制御装置が管理するテーブルデータ３の内容を示す図である。
【図１６】本発明の実施の形態に係るカーソル制御システムの制御装置が管理するテーブルデータ４の内容を示す図である。
【図１７】本発明の実施の形態に係るカーソル制御システムにおいて、オブジェクトの境界上にあるカーソルをオブジェクトの外に移動させようとした場合の修正前後のカーソルの位置を示す図である。
【図１８】本発明の実施の形態に係るカーソル制御システムにおいて、オブジェクトの境界上にあるカーソルをオブジェクトの外に移動させようとした場合の修正前後のカーソルの位置を示す図である。
【図１９】本発明の実施の形態に係るカーソル制御システムにおいて、オブジェクトの境界上にあるカーソルをオブジェクトの外に移動させようとした場合の修正前後のカーソルの位置を示す図である。
【図２０】本発明の実施の形態に係るカーソル制御システムの変形例によるカーソル移動制御処理を説明する図である。
【図２１】図２０に示す変形例において、ＧＵＩ上のオブジェクトの境界と、仮想領域上の外縁領域との対応関係を示す図である。
【図２２】図２０に示す変形例において、外縁領域上にいるカーソルをＧＵＩ上に表示する場合の座標の変換方法を示す表である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態を図面を用いて説明する。
【００１３】
＜構成＞
図１は、本発明の実施の形態に係るカーソル制御システム１の概略構成を示す図である。カーソル制御システム１は、表示画面上にＧＵＩを表示する表示装置２と、システムに対する指示を入力する入力装置３と、入力装置３からの入力に基づいてＧＵＩの表示制御を行う制御装置４と、を備えている。
【００１４】
表示装置２は、図１に示すように、表示画面上にオブジェクトＯＢ１〜４及びカーソルＣを表示する。本実施の形態においては、４つの矩形オブジェクトを表示する場合を例に挙げて説明するが、オブジェクトの形及び数はこの例に限定されるものではない。
【００１５】
入力装置３は、具体的には、トラックパッドやマウスなどのポインティングデバイス（以下、操作デバイス３とも称する）で構成されている。入力装置３は、入力値に応じて対応するカーソルＣを移動させ、移動したカーソルＣによりオブジェクトＯＢ（特定のオブジェクトを意味しない場合にはＯＢと表記する）を選択する。以下においては、トラックパッドを入力装置３として用いた場合について説明をする。
【００１６】
制御装置４は、例えば、コンピュータであり、少なくとも演算・制御機能を備えた中央演算装置（ＣＰＵ）、プログラムやデータを格納する記憶機能を備えたＲＯＭ、ＲＡＭ等からなる主記憶装置（メモリ）及びハードディスクなどの補助記憶装置から構成されている。
【００１７】
本実施の形態においては、制御装置４は、入力装置３からの入力に基づいてカーソルＣを移動させるカーソル移動制御処理を行う。本実施の形態のカーソル移動制御処理においては、カーソルＣがオブジェクトＯＢ上にいる場合であって、カーソルＣをオブジェクトＯＢの外に移動させる場合には、カーソルＣをオブジェクトＯＢの外に出しにくくする制御を行っている。詳しくは、カーソルＣをオブジェクトＯＢの外に移動させる場合には、まず、オブジェクトＯＢの境界上にカーソルＣを一旦止めるとともに、オブジェクトＯＢの境界からオブジェクトＯＢの外に対して、さらにカーソルＣの移動量が閾値（以下、脱出閾値という）以上あるか否かを判定する。そして、カーソルＣの移動量が閾値以上である場合には、カーソルＣをオブジェクトＯＢの外に移動させるようになっている。このように、本実施の形態においては、カーソルＣをオブジェクトＯＢの外に移動させる場合にカーソルＣをオブジェクトＯＢの境界上で拘束するので、操作デバイスの操作時のブレを無視することができ、より精度の高い操作を可能とすることができる。この結果、本実施の形態においては、所望のオブジェクトＯＢを選択しやすくなっている。
【００１８】
なお、本実施の形態に係るカーソル移動制御処理を実行するプログラムは、制御装置４の上述した主記憶装置またはハードディスクに格納されているものであるが、当該プログラムを携行可能なフラッシュメモリ、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ−ＲＯＭなどのＡＶ機器やコンピュータが読み取り可能な記録媒体に記録することも、通信ネットワークを介して配信することも可能である。
【００１９】
図２は、カーソル移動制御処理を実行するに際して、制御装置４が管理するパラメータの一部である。以下、図２に示すパラメータをテーブルデータ１と称する。テーブルデータ１は、制御装置４の主記憶装置に保持されている。
【００２０】
ここで、Ｘｉｎ、Ｙｉｎは、操作デバイス３からの入力値を表わしている。Ｘｉｎは、操作デバイス３の横方向の入力値、Ｙｉｎは、操作デバイス３の縦方向の入力値である。Δｔは、操作デバイス３から入力値を取得する時間間隔である。すなわち、操作デバイス３からの入力値は、Δｔの間に取得されるベクトルのｘ成分及びｙ成分となっている。例えば、トラックパッド上に図３に示すような軌跡ＴＲを描いた場合には、Δｔごとに入力されるベクトルｖ１〜ｖ７のそれぞれのｘ成分及びｙ成分を入力値として取得する。
【００２１】
Δｓは、カーソルＣの移動距離に関する閾値であり、カーソルＣをオブジェクトＯＢ上に拘束するか否かを決めるための閾値となっている。本実施の形態においては、カーソルＣをΔｓ以上移動させる場合には、カーソルＣの移動経路上に存するオブジェクトＯＢにカーソルＣは拘束されない。なお、閾値Δｓに関しては、詳しくは後述する。
【００２２】
Ｘ、Ｙは、カーソルＣの現在の位置である。Ｘｏｕｔ、Ｙｏｕｔは、カーソルＣの移動先の位置である。本実施の形態においては、ＸにＸｉｎを加算した値をＸｏｕｔ、ＹにＹｉｎを加算した値をＹｏｕｔとしているが、これとは別に、入力値を拡大または縮小した値を現在位置（Ｘ，Ｙ）に加算するようにしてもよい。また、カーソルＣの移動速度（トラックパッド上を移動する指の速度）を加味して、移動先の位置（Ｘｏｕｔ、Ｙｏｕｔ）を算出するようにしてもよい。なお、カーソルＣの位置とは、具体的には、図４に示すように矢印の先端の位置Ｐの位置をいう。
【００２３】
Ｎは、オブジェクトを一意に識別するためのオブジェクト番号であり、本実施の形態では、１から４までが用いられる。ｘｒＮ、ｘｌＮ、ｙｔＮ、ｙｂＮは、オブジェクト番号がＮのオブジェクトＯＢＮの境界の座標を示す。図４に本実施の形態のオブジェクトＯＢ１〜４の境界の座標を示す。本実施の形態においては、オブジェクトＯＢ１〜４を矩形のオブジェクトとしたので、４つの値で境界を表わすことができるが、矩形以外の形状のオブジェクトとした場合には、その形状に合わせた境界の設定が必要となる。また、オブジェクトＯＢが複雑な形状をしている場合には、境界を複雑な形状に合わせるのではなく、容易な形状に近似して設定するようにしてもよい。なお、オブジェクトＯＢが移動する場合には、境界の位置をその都度更新する必要がある。
【００２４】
Δｘ、Δｙは、カーソルＣがオブジェクトＯＢの境界上から外に出るための脱出閾値を表わしている。カーソルＣがオブジェクトＯＢの境界上にある場合には、この値以上の移動量が検出されないと、カーソルＣはオブジェクトＯＢの外に出ることができない。ここで、閾値との比較の対象となる移動量とは、本実施の形態ではカーソルの現在の位置と移動先の位置の差としているが、操作デバイスからの入力値をそのまま使用してもよい。また、本実施の形態では、ｘ方向及びｙ方向にそれぞれ異なる閾値を設けているが、ｘ方向及びｙ方向に同一の閾値を設けてもよい。もしくは、ｘ成分及びｙ成分で別々に閾値を設定するのではなく、ベクトルの大きさに対する閾値を設定してもよい。
【００２５】
Ｍは、オブジェクトＯＢの境界を一意に識別するための境界番号である。本実施の形態では、図５に示すように、オブジェクトＯＢの左上頂点には１、右上頂点には３、左下頂点には７、右下頂点には５がそれぞれ付され、また、上辺には２、下辺には６、右辺には４、左辺には８がそれぞれ付されている。本実施の形態では、境界番号Ｍをパラメータとして保持しているので、カーソルＣがどのオブジェクトＯＢのどの境界Ｍにいるかを判断することができる。
【００２６】
次に、図６及び図７を用いて、カーソルＣの状態遷移について説明する。ここで、図６は、カーソルＣの状態遷移を示す図であり、図７は、各状態におけるカーソルＣの位置を示す図である。
【００２７】
カーソルＣの状態は、カーソルＣがオブジェクトＯＢ上にいない状態（以下、状態１と称する）と、カーソルＣがオブジェクトＯＢ上にいる状態（以下、状態２と称する）に大別される。そして、状態２は、さらに、カーソルＣがオブジェクトＯＢの境界上にいない状態（以下、状態２．１と称する）と、カーソルＣがオブジェクトＯＢの境界上にいる状態（以下、状態２．２と称する）とに分けられる。図７に示すカーソルＣ−Ｏは、状態１におけるカーソルＣの位置、カーソルＣ−Ｉは、状態２．１におけるカーソルＣの位置、カーソルＣ−Ｂは、状態２．２におけるカーソルＣの位置をそれぞれ示している。
【００２８】
本実施の形態においては、上述したように、オブジェクトＯＢ上から外にカーソルＣを移動させる場合には、一旦、境界上で留まった後、オブジェクトＯＢの外に移動させるので、状態２．１から状態１に直接、遷移することはない（図６参照）。また、オブジェクト上にいない状態（状態１）から直接境界に載った場合は、まだオブジェクト上に載っていない（重なっていない）と見なし、状態１のままとする。このため、状態１から状態２．２に遷移することもない。例えば、カーソルＣが図４に示すオブジェクトＯＢ１に重なっているとは、ｘｌ１＜Ｘｏｕｔ＜ｘｒ１かつｙｔ１＜Ｙｏｕｔ＜ｙｂ１であることをいう。
【００２９】
＜動作＞
次に、図８〜図１０を用いて、本発明の実施の形態に係るカーソル制御システム１の動作について説明する。ここで、図８は、状態１におけるカーソル移動制御処理の流れを示すフローチャート、図９は、状態２．１におけるカーソル移動制御処理の流れを示すフローチャート、図１０は、状態２．２におけるカーソル移動制御処理の流れを示すフローチャートである。なお、図８〜図１０に示す処理は、カーソル制御システム１の制御装置４のＣＰＵによって実行される。
【００３０】
（状態１の処理）
まず、制御装置４は、カーソルＣの現在位置（Ｘ，Ｙ）を更新する（ステップＳ１）。詳しくは、カーソルＣの移動位置（Ｘｏｕｔ、Ｙｏｕｔ）をカーソルＣの現在位置（Ｘ，Ｙ）に設定するものである。
【００３１】
次に、制御装置４は、操作デバイス３からの入力値（Ｘｉｎ，Ｙｉｎ）を取得し（ステップＳ２）、取得した入力値（Ｘｉｎ，Ｙｉｎ）とカーソルＣの現在位置（Ｘ，Ｙ）とから、カーソルＣの移動位置（Ｘｏｕｔ、Ｙｏｕｔ）を計算し（ステップＳ４）、計算した移動位置（Ｘｏｕｔ、Ｙｏｕｔ）にカーソルＣを移動する（ステップＳ６）。
【００３２】
本実施の形態においては、上述したように、現在位置（Ｘ，Ｙ）に入力値（Ｘｉｎ，Ｙｉｎ）を加算して移動位置（Ｘｏｕｔ、Ｙｏｕｔ）を算出する方法を採用しているが、この方法に限定されず、入力値に所定の演算を施した後に現在位置（Ｘ，Ｙ）に加算して、移動位置（Ｘｏｕｔ、Ｙｏｕｔ）を算出するようにしてもよい。
【００３３】
次に、制御装置４は、移動したカーソルＣがオブジェクトＯＢに重なっているか否かを判定する（ステップＳ８）。なお、カーソルＣがオブジェクトＯＢに重なっているとは、上述したように、カーソルＣの矢印の先端の位置ＰがオブジェクトＯＢの内部にあることをいう。
【００３４】
移動したカーソルＣがオブジェクトＯＢと重なっている場合には（ステップＳ８：ＹＥＳ）、制御装置４は、テーブルデータ１を参照して、重なっているオブジェクトＯＢのオブジェクト番号Ｎと、そのオブジェクトＯＢの境界の座標（ｘｌＮ，ｘｒＮ，ｙｔＮ，ｙｂＮ）を取得する（ステップＳ１０）。
【００３５】
次に、制御装置４は、テーブルデータ１を参照して、閾値Δｓを取得し（ステップＳ１２）、カーソルＣの移動距離が閾値Δｓよりも大きいか否かを判定する（ステップＳ１４）。なお、カーソルＣの移動距離とは、カーソルＣの現在位置（Ｘ，Ｙ）と移動位置（Ｘｏｕｔ、Ｙｏｕｔ）との距離のことをいう。ここで、図１１を用いて、カーソルＣの移動距離を閾値Δｓと比較する理由について説明する。図１１に示すように、カーソルＣがオブジェクトＯＢ７及びＯＢ５を飛び越えて、オブジェクトＯＢ３を選択する場合、途中のオブジェクトＯＢ７及びＯＢ５上にカーソルＣが重なるたびにカーソルＣがオブジェクトＯＢに拘束されてしまうと、カーソル操作の利便性が失われるおそれがある。そのため、カーソルＣの移動距離が閾値Δｓより大きい場合には、ユーザはオブジェクトＯＢを選択しようとしているのではなく、カーソルＣを移動させているだけと見なして、この場合にはカーソルＣを拘束しようないようにしたものである。なお、本実施の形態においては、閾値Δｓを固定値としているが、これに限定されず、Δｓを可変値としてもよい。すなわち、ＧＵＩ上に配置されているオブジェクトＯＢの形状や大きさなどを加味して閾値Δｓを可変値としてもよい。この場合には、現在のカーソルＣの位置とカーソルＣの移動方向、及びカーソルＣの移動経路上に配置されたオブジェクトＯＢの形状、大きさ、数などによって最適な閾値Δｓを決定するようにしてもよい。
【００３６】
カーソルＣの移動距離が閾値Δｓよりも大きい場合には（ステップＳ１４：ＹＥＳ）、制御装置４は、状態２．１の処理には進まず、状態１の処理のステップＳ２に戻る。すなわち、カーソルＣの移動距離が閾値Δｓよりも大きい場合には、移動したカーソルＣがオブジェクトＯＢに重なっていても、オブジェクトＯＢ上にいるとは見なさず、オブジェクトＯＢの外にいると見なす。
【００３７】
カーソルＣの移動距離が閾値Δｓ以下の場合には（ステップＳ１４：ＮＯ）、制御装置４は、いずれかのオブジェクトＯＢを選択しようとしてカーソルＣを移動させていると見なすので、状態２．１の処理に進む。すなわち、カーソルＣの移動距離が閾値Δｓ以下の場合には、移動したカーソルＣがオブジェクトＯＢに重なっていれば、オブジェクトＯＢ上にいると見なす。
【００３８】
なお、ステップＳ８において、移動したカーソルＣがオブジェクトＯＢと重なっていない場合には（ステップＳ８：ＮＯ）、移動したカーソルＣはオブジェクトＯＢの外にいるので、状態１の処理のステップＳ１に戻る。
【００３９】
（状態２．１の処理）
まず、制御装置４は、カーソルＣの現在位置（Ｘ，Ｙ）を更新する（ステップＳ２１）。詳しくは、カーソルＣの移動位置（Ｘｏｕｔ、Ｙｏｕｔ）をカーソルＣの現在位置（Ｘ，Ｙ）に設定するものである。
【００４０】
次に、制御装置４は、操作デバイス３からの入力値（Ｘｉｎ，Ｙｉｎ）を取得し（ステップＳ２２）、取得した入力値（Ｘｉｎ，Ｙｉｎ）とカーソルＣの現在位置（Ｘ，Ｙ）とから、カーソルＣの移動位置（Ｘｏｕｔ、Ｙｏｕｔ）を計算する（ステップＳ２４）。なお、移動位置（Ｘｏｕｔ、Ｙｏｕｔ）の算出方法は、上述したステップＳ４の算出方法と同様である。
【００４１】
次に、制御装置４は、カーソルＣの移動位置（Ｘｏｕｔ、Ｙｏｕｔ）が、現在重なっているオブジェクトＯＢの外か、またはオブジェクトＯＢの境界と重なっているか否かを判定する（ステップＳ２６）。ここで、カーソルＣがオブジェクトＯＢの境界に重なっているとは、カーソルＣの矢印の先端の位置ＰがオブジェクトＯＢの境界にあることをいう。例えば、カーソルＣが図４に示すオブジェクトＯＢ１の下側の境界に重なっているとは、Ｙｏｕｔ＝ｙｂ１であることをいう。
【００４２】
カーソルＣの移動位置（Ｘｏｕｔ、Ｙｏｕｔ）が、現在重なっているオブジェクトＯＢの外か、またはオブジェクトＯＢの境界と重なっている場合には（ステップＳ２６：ＹＥＳ）、制御装置４は、カーソルＣをオブジェクトＯＢの境界上に移動させるために、移動先の座標（Ｘｏｕｔ、Ｙｏｕｔ）の修正を行う（ステップＳ２８，Ｓ３０）。
【００４３】
この修正の方法を図１２〜図１４を用いて具体的に説明する。ここで、図１２は、移動位置（Ｘｏｕｔ、Ｙｏｕｔ）の修正方法を示す表である。以下、図１２に示す表データをテーブルデータ２と称する。テーブルデータ２は、制御装置４の主記憶装置に保持されている。また、図１３は、オブジェクトＯＢＮ上にあるカーソルＣをオブジェクトＯＢＮの外に移動させようとした場合の修正前後のカーソルＣの位置を示す図である。なお、移動前のカーソルＣ（現在のカーソルＣ）の位置をＰ１、ステップＳ２４の計算をした後のカーソルＣ（修正前のカーソルＣ）の位置をＰ２、修正をした後のカーソルＣの位置をＰ３と表記する。また、図１４は、テーブルデータ２が示す境界番号の割り当て方法を図示したものである。
【００４４】
例えば、図１３に示すように、カーソルＣをＰ１からＰ２の位置に移動させようとする場合には、図１４に示すように境界番号４が割り当てられることとなる。すなわち、この場合には、ｘｒＮ≦ＸｏｕｔかつｙｔＮ≦Ｙｏｕｔ≦ｙｂＮの条件を満たすので、図１２に示すテーブルデータ２を参照して、ｘｒＮ≦ＸｏｕｔかつｙｔＮ≦Ｙｏｕｔ≦ｙｂＮに対応する境界番号４を取得する。そして、境界番号４の場合の（Ｘｏｕｔ、Ｙｏｕｔ）の置き換えは、テーブルデータ２に示すように、Ｘｏｕｔ＝ｘｒＮであり、Ｙｏｕｔは置き換えないので、Ｘｏｕｔの値のみ修正し、修正した（Ｘｏｕｔ、Ｙｏｕｔ）の位置にカーソルＣを移動する。すなわち、カーソルＣは、図１３に示すように、オブジェクトＯＢＮの外に出ることはなく、オブジェクトＯＢＮの右側の境界上のＰ３に移動することとなる。
【００４５】
以上から、カーソルＣの移動位置（Ｘｏｕｔ、Ｙｏｕｔ）が、現在重なっているオブジェクトＯＢの外か、またはオブジェクトＯＢの境界と重なっている場合には（ステップＳ２６：ＹＥＳ）、制御装置４は、テーブルデータ２を参照して、移動先の座標（Ｘｏｕｔ、Ｙｏｕｔ）から対応する境界番号Ｎ及び置き換え値を取得して、カーソルＣの移動位置（Ｘｏｕｔ、Ｙｏｕｔ）の修正を行い（ステップＳ２８）、修正した移動位置（Ｘｏｕｔ、Ｙｏｕｔ）にカーソルＣを移動させ（ステップＳ３０）、状態２．２の処理に進む。
【００４６】
一方、カーソルＣの移動位置（Ｘｏｕｔ、Ｙｏｕｔ）が、現在重なっているオブジェクトＯＢの外でなく、また、オブジェクトＯＢの境界とも重なっていない場合（ステップＳ２６：ＮＯ）、すなわち、オブジェクトＯＢ内にいる場合には、制御装置４は、計算した移動位置（Ｘｏｕｔ、Ｙｏｕｔ）にカーソルＣを移動させ（ステップＳ３２）、状態２．１の処理のステップＳ２１に戻る。
【００４７】
（状態２．２の処理）
まず、制御装置４は、カーソルＣの現在位置（Ｘ，Ｙ）を更新する（ステップＳ４１）。詳しくは、カーソルＣの移動位置（Ｘｏｕｔ、Ｙｏｕｔ）をカーソルＣの現在位置（Ｘ，Ｙ）に設定するものである。
【００４８】
次に、制御装置４は、操作デバイス３からの入力値（Ｘｉｎ，Ｙｉｎ）を取得し（ステップＳ４２）、取得した入力値（Ｘｉｎ，Ｙｉｎ）とカーソルＣの現在位置（Ｘ，Ｙ）とから、カーソルＣの移動位置（Ｘｏｕｔ、Ｙｏｕｔ）を計算する（ステップＳ４４）。なお、移動位置（Ｘｏｕｔ、Ｙｏｕｔ）の算出方法は、上述したステップＳ４の算出方法と同様である。
【００４９】
次に、制御装置４は、カーソルＣの移動位置（Ｘｏｕｔ、Ｙｏｕｔ）が、現在いるオブジェクトＯＢの境界上から見て脱出可能な方向にあるか否かを判定する（ステップＳ４６）。ここで、脱出可能な方向とは、境界上の現在位置（Ｘ，Ｙ）からオブジェクトＯＢの外部に向かう方向をいう。すなわち、ステップＳ４６においては、現在位置（Ｘ，Ｙ）から移動位置（Ｘｏｕｔ、Ｙｏｕｔ）に向かうベクトルの方向がオブジェクトＯＢの外部に向かっているか否かを判定する。具体的には、図１５に示すような脱出可能な方向に関する表データを参照して、脱出可能な方向にあるか否かを判定する。表内の○で示された方向が脱出可能な方向である。以下、図１５に示す表データをテーブルデータ３と称する。テーブルデータ３は、制御装置４の主記憶装置に保持されている。
【００５０】
例えば、カーソルＣが境界番号４の境界にいる場合には、＋ｘ方向が脱出可能な方向である。この場合には、現在位置（Ｘ，Ｙ）から移動位置（Ｘｏｕｔ、Ｙｏｕｔ）へ向かうベクトルのｘ成分が正であれば脱出は可能である。また、カーソルＣが境界番号１の境界にいる場合には、−ｘ方向または−ｙ方向が脱出可能な方向である。この場合には、現在位置（Ｘ，Ｙ）から移動位置（Ｘｏｕｔ、Ｙｏｕｔ）へ向かうベクトルのｘ成分が負、またはｙ成分が負のいずれかであれば脱出は可能である。
【００５１】
カーソルＣの移動位置（Ｘｏｕｔ、Ｙｏｕｔ）が、オブジェクトＯＢの境界上から見て脱出可能な方向にある場合には（ステップＳ４６：ＹＥＳ）、制御装置４は、テーブルデータ１を参照して、現在位置（Ｘ，Ｙ）から移動位置（Ｘｏｕｔ、Ｙｏｕｔ）へ向かうベクトルのｘ成分またはｙ成分の大きさのうち脱出可能な方向にあったものが、脱出閾値以上であるか否かを判定する（ステップＳ４８）。すなわち、本実施の形態においては、｜Ｘｉｎ｜≧Δｘ、または｜Ｙｉｎ｜≧Δｙであるか否かを判定する。
【００５２】
現在位置（Ｘ，Ｙ）から移動位置（Ｘｏｕｔ、Ｙｏｕｔ）へ向かうベクトルのｘ成分またはｙ成分の大きさのうち脱出可能な方向にあったものが、脱出閾値以上である場合には（ステップＳ４８：ＹＥＳ）、オブジェクトＯＢからの脱出が可能となるので、制御装置４は、カーソルＣをオブジェクトＯＢの境界から外に移動させるために、移動先の座標（Ｘｏｕｔ、Ｙｏｕｔ）の修正を行う（ステップＳ５０，Ｓ５２）。
【００５３】
この修正は、ユーザにカーソル操作の違和感をもたせないために行うものであり、移動位置（Ｘｏｕｔ、Ｙｏｕｔ）から脱出閾値分を差し引いて値を更新するものである。すなわち、オブジェクトＯＢの境界上におけるカーソルＣの拘束感を考慮して、カーソルＣの移動位置を決めるものである。ただし、脱出閾値分を差し引いた結果、カーソルＣの位置が境界近傍になることも考えられ、このような場合には、操作上のブレにより再びオブジェクトＯＢ内に入ってしまうことが想定される。したがって、脱出閾値分を差し引いた結果、カーソルＣの位置が境界近傍になる場合には、境界から所定の距離α離すような補正を行うようにしてもよい。すなわち、カーソルＣの位置と境界との距離を加味して、移動位置（Ｘｏｕｔ、Ｙｏｕｔ）から脱出閾値以下の値を差し引くようにしてもよい。
【００５４】
この修正の方法を図１６〜図１９を用いて具体的に説明する。ここで、図１６は、移動位置（Ｘｏｕｔ、Ｙｏｕｔ）の修正方法を示す表である。以下、図１６に示す内容の表データをテーブルデータ４と称する。テーブルデータ４は、制御装置４の主記憶装置に保持されている。また、図１７〜図１９は、いずれもＹｏｕｔ−Ｙ≧Δｙの場合であって、オブジェクトＯＢＮの境界上にあるカーソルＣをオブジェクトＯＢＮの外に移動させようとした場合の修正前後のカーソルＣの位置を示す図である。なお、移動前のカーソルＣ（現在のカーソルＣ）の位置をＰ１、ステップＳ４４の計算をした後のカーソルＣ（修正前のカーソルＣ）の位置をＰ２、修正をした後のカーソルＣの位置をＰ３と表記する。
【００５５】
例えば、図１７に示すように、Ｘｏｕｔ≧ｘｒＮ＋ΔｘかつＹｏｕｔ−Ｙ≧Δｙの場合には、境界６からＰ２までのｙ方向の距離≧Δｙであるとともに、境界４からＰ２までのｘ方向の距離≧Δｘであるので、Ｘｏｕｔ及びＹｏｕｔとも図１６に示す条件Ａに合致する。その結果、Ｘｏｕｔ及びＹｏｕｔともに脱出閾値を差し引いて更新する。すなわち、Ｐ３（Ｘｏｕｔ−Δｘ，Ｙｏｕｔ−Δｙ）の位置にカーソルＣを移動する。
【００５６】
また、図１８に示すように、ｘｒＮ＜Ｘｏｕｔ＜ｘｒＮ＋ΔｘかつＹｏｕｔ−Ｙ≧Δｙの場合には、境界６からＰ２までのｙ方向の距離≧Δｙであるが、境界４からＰ２までのｘ方向の距離＜Δｘであるので、Ｙｏｕｔは図１６に示す条件Ａに合致し、Ｘｏｕｔは図１６に示す条件Ｂに合致する。その結果、Ｘｏｕｔは対応する境界番号４の境界の座標の値に置き換え、Ｙｏｕｔは、脱出閾値を差し引いて更新する。すなわち、Ｐ３（ＸｒＮ，Ｙｏｕｔ−Δｙ）の位置にカーソルＣを移動する。
【００５７】
また、図１９に示すように、ｘｒＮ≧Ｘｏｕｔ≧ｘｌＮかつＹｏｕｔ−Ｙ≧Δｙの場合には、境界６からＰ２までのｙ方向の距離≧Δｙであるが、Ｐ２のＸ座標はオブジェクトＯＢＮのｘ座標の範囲内（ｘｌＮ以上ｘｒＮ以下）にあるので、Ｙｏｕｔは図１６に示す条件Ａに合致し、Ｘｏｕｔは図１６に示す条件Ｃに合致する。したがって、Ｘｏｕｔは更新を行わず、Ｙｏｕｔは脱出閾値を差し引いて更新する。すなわち、Ｐ３（Ｘｏｕｔ，Ｙｏｕｔ−Δｙ）の位置にカーソルＣを移動する。
【００５８】
以上から、現在位置（Ｘ，Ｙ）から移動位置（Ｘｏｕｔ、Ｙｏｕｔ）へ向かうベクトルのｘ成分またはｙ成分の大きさのうち脱出可能な方向にあったものが、脱出閾値以上である場合には（ステップＳ４８：ＹＥＳ）、制御装置４は、データテーブル４を参照して、移動位置（Ｘｏｕｔ，Ｙｏｕｔ）の値を更新し（ステップＳ５０）、更新した移動位置（Ｘｏｕｔ，Ｙｏｕｔ）にカーソルＣを移動させ（ステップＳ５２）、状態１の処理のステップＳ８に進む。
【００５９】
これに対して、現在位置（Ｘ，Ｙ）から移動位置（Ｘｏｕｔ、Ｙｏｕｔ）へ向かうベクトルのｘ成分及びｙ成分の大きさのいずれもが脱出閾値未満である場合には（ステップＳ４８：ＮＯ）、オブジェクトＯＢからの脱出は不可能であるため、制御装置４は、カーソルＣをオブジェクトＯＢの境界上を移動させるために、移動位置（Ｘｏｕｔ、Ｙｏｕｔ）の修正を行う（ステップＳ５４〜Ｓ５６）。
【００６０】
すなわち、入力値（Ｘｉｎ，Ｙｉｎ）のいずれの値も脱出閾値未満である場合には（ステップＳ４８：ＮＯ）、制御装置４は、データテーブル４を参照して、移動位置（Ｘｏｕｔ，Ｙｏｕｔ）の値を更新し（ステップＳ５４）、更新した移動位置（Ｘｏｕｔ，Ｙｏｕｔ）に基づいて、データテーブル２を参照し、更新した移動位置（Ｘｏｕｔ，Ｙｏｕｔ）に対応する境界番号Ｎを取得する（ステップＳ５６）。ここで、境界番号Ｎを取得するのは、更新した移動位置（Ｘｏｕｔ，Ｙｏｕｔ）の境界番号Ｍが変わっていないか否かを確認するためである。次いで制御装置４は、更新した移動位置（Ｘｏｕｔ，Ｙｏｕｔ）にカーソルＣを移動し（ステップＳ５８）、状態２．２の処理のステップＳ４１に戻る。
【００６１】
なお、ステップＳ４６において、カーソルＣの移動位置（Ｘｏｕｔ、Ｙｏｕｔ）が、オブジェクトＯＢの境界上から見て脱出可能な方向にない場合には（ステップｓ４８：ＮＯ）、カーソルＣはオブジェクトＯＢ内に移動するので、状態２．１の処理のステップＳ２６に進む。
【００６２】
以上、本実施の形態に係るカーソル制御システム１によれば、カーソルＣをオブジェクトＯＢの境界から外に移動させるための脱出閾値を備えており、オブジェクトＯＢ上にあるカーソルＣをオブジェクトＯＢの外に移動させる場合には、まず、カーソルＣを境界上まで移動させて停止させるとともに、さらにカーソルＣに対する移動量が脱出閾値以上であるときにだけ、カーソルＣをオブジェクトＯＢの外に移動させるので、カーソル操作時のブレを防止することができ、より精度の高いカーソル操作が可能となる。
【００６３】
従来におけるオブジェクトを拡大してオブジェクトの選択を容易とする技術、あるいはシステム側がカーソルを自動的に移動させる技術は、いずれもカーソルＣがオブジェクトＯＢに重なる前の制御処理である。そのため、ＧＵＩを用いた特別な処理（オブジェクトを拡大して表示するなど）やカーソルを用いた特別な処理（カーソルを自動的に移動させるなど）によってオブジェクトＯＢを選択しやすくしている。一方、本実施の形態で述べたカーソル移動制御処理はこれとは全く異なるものであり、カーソルＣがオブジェクトＯＢに重なる前ではなく、オブジェクトＯＢに重なった後のカーソルＣの動きを拘束する点に特徴を有している。すなわち、従来のようにユーザに課す操作を増やすことなく、また、ユーザの操作だけに依拠して、所望のオブジェクトを選択しやすくする方法である。
【００６４】
また、本実施の形態によれば、カーソルＣがオブジェクトＯＢに重なった後、カーソルＣがオブジェクトＯＢの外に出る前に一度境界上に留めるようにしているので、カーソルＣが簡単にオブジェクトＯＢの外に出ることはない。このため、特にオブジェクトＯＢが密集した中で選択する場合や小さな画面上にＧＵＩ表示を行う場合には、精度の高い操作を実現することができる。
【００６５】
＜その他の実施の形態＞
なお、上記実施の形態においては、脱出閾値を設けることにより、オブジェクトＯＢの境界にいるカーソルＣをオブジェクトＯＢ上に拘束させるようにしたが、これとは別の方法により、オブジェクトＯＢの境界にいるカーソルＣをオブジェクトＯＢ上に拘束させるようにしてもよい。
【００６６】
例えば、カーソルＣがオブジェクトＯＢ上にいる場合には、制御装置４が内部的に、ＧＵＩ上に表示される領域とは異なる仮想領域を持ち、この仮想領域上でカーソルＣの位置を管理することにより、オブジェクトＯＢの境界にいるカーソルＣをオブジェクトＯＢ上に拘束させるようにしてもよい。例えば、図２０に示すように、カーソルＣがオブジェクトＯＢ４にいる場合には、制御装置４は内部的にオブジェクトＯＢ４の境界外側に仮想的な外縁領域ＶＡを設け（勿論、外縁領域ＶＡはＧＵＩ上には表示されない）、この外縁領域ＶＡ内にカーソルＣがいる場合には、ＧＵＩ上ではオブジェクトＯＢ４の境界上にいるように表示して、カーソルＣをオブジェクトＯＢ上に拘束させるようにしてもよい。
【００６７】
図２１及び図２２を用いて、この変形例を詳しく説明する。図２１は、オブジェクトＯＢ４のＧＵＩ上の座標と、オブジェクトＯＢ４の仮想領域上の座標とを対比する図（ＧＵＩ上のオブジェクトＯＢ４の境界と、仮想領域上での外縁領域ＶＡとの対応関係を示す図）であり、図２２は、外縁領域ＶＡ上にいるカーソルＣをＧＵＩ上に表示する場合の座標の変換方法を示す表である。
【００６８】
本変形例では、図２１に示すように、仮想的な外縁領域ＶＡを８つの領域に分割している。ここで、ＧＵＩ上の矢印の番号と仮想的な外縁領域ＶＡに付された番号は対応しており、例えば、外縁領域ＶＡの領域２にカーソルＣがある場合には、カーソルＣは、ＧＵＩ上ではオブジェクトＯＢ４の上境界線（境界番号２）の上に配置され、また、外縁領域ＶＡの領域３にカーソルＣがある場合には、カーソルＣは、ＧＵＩ上ではオブジェクトＯＢ４の右上の頂点（境界番号３）上に配置される。
【００６９】
そして、仮想的な領域からＧＵＩ上の領域に座標を変換する場合には、図２２に示す表を用いて座標の変換を行う。以下、図２２に示す表データをテーブルデータ５と称する。テーブルデータ５は、制御装置４の主記憶装置に保持されている。
【００７０】
例えば、外縁領域ＶＡの４にカーソルＣがある場合には、ＧＵＩ上では、ｘ座標はｘｒＮ、ｙ座標は仮想領域上のｙ座標がそのまま反映される。なお、カーソルＣが外縁領域ＶＡから外に出た場合には、通常のＧＵＩ上の座標軸で位置算出を行う。
【００７１】
このようにオブジェクト４の境界外側に仮想的な外縁領域ＶＡを設け、この外縁領域ＶＡ内にカーソルＣがいる場合には、ＧＵＩ上ではオブジェクト４に境界上にいるように表示するようにして、カーソルＣをオブジェクトＯＢ上に拘束するようにしてもよい。なお、この変形例の場合には、オブジェクトＯＢから脱出するための移動量が蓄積されていくため、上記実施の形態の場合と比べて、緩やかなカーソル操作であっても、オブジェクトＯＢ４の外に移動することが可能となる。すなわち、上記実施の形態においては、周期Δｔの時間内に脱出閾値以上の入力値Ｘｉｎ及びＹｉｎがないと、カーソルＣはオブジェクトＯＢの境界上から外に移動できないが、本変形例においては、周期Δｔの時間内に脱出閾値（外縁領域ＶＡの幅に相当する）以上の入力値Ｘｉｎ及びＹｉｎがなくても、複数の周期Δｔに亘る入力値Ｘｉｎ及びＹｉｎの累積値が脱出閾値を超えればよいので、急激なカーソル操作を必要とせずにオベジェクトＯＢの外に移動することができる。図１１に示した複数のオブジェクトを飛び越えてカーソルを移動する場合にも、このような緩やかな拘束が有効である。しかしながら、本変形例の場合には、カーソルＣをオブジェクトＯＢ上に拘束する拘束力は上記実施の形態に比べて、弱くなるというデメリットもあるので、上記実施の形態のカーソル制御方法と本変形例のカーソル制御方法を、用途に応じて使い分けるようにしてもよい。
【００７２】
なお、オブジェクトＯＢが複雑な形状をしている場合には、外縁領域ＶＡを複雑な形状に合わせるのではなく、容易な形状に近似して設定するようにしてもよい。外縁領域ＶＡを容易な形状とすることにより、カーソル移動制御処理の計算を容易とすることができる。
【００７３】
また、上記実施の形態及びその変形例で述べたカーソル移動制御処理を常に実行させるのではなく、条件に応じて実行したり、実行させなかったりしてもよい。例えば、オブジェクトＯＢの数が多い場合には、カーソルＣがオブジェクトＯＢに拘束させる機能を働かせるか否かを選択するようにしてもよい。
【００７４】
以上、本発明の実施の形態について説明してきたが、本発明は、上述した実施の形態に限られるものではなく、本発明の要旨を逸脱しない範囲において、本発明の実施の形態に対して種々の変形や変更を施すことができ、そのような変形や変更を伴うものもまた、本発明の技術的範囲に含まれるものである。
【符号の説明】
【００７５】
１  カーソル制御システム
２  表示装置
３  入力装置（操作デバイス）
４  制御装置
ＯＢ  オブジェクト
Ｃ  カーソル
【図１】
2010282244.tif 000003
【図２】
2010282244.tif 000004
【図３】
2010282244.tif 000005
【図４】
2010282244.tif 000006
【図５】
2010282244.tif 000007
【図６】
2010282244.tif 000008
【図７】
2010282244.tif 000009
【図８】
2010282244.tif 000010
【図９】
2010282244.tif 000011
【図１０】
2010282244.tif 000012
【図１１】
2010282244.tif 000013
【図１２】
2010282244.tif 000014
【図１３】
2010282244.tif 000015
【図１４】
2010282244.tif 000016
【図１５】
2010282244.tif 000017
【図１６】
2010282244.tif 000018
【図１７】
2010282244.tif 000019
【図１８】
2010282244.tif 000020
【図１９】
2010282244.tif 000021
【図２０】
2010282244.tif 000022
【図２１】
2010282244.tif 000023
【図２２】
2010282244.tif 000024