(57)【要約】【課題】  入力装置によりポインタが１つまたは複数の位置調節の領域と交差する場合にポインタ移動を調整する、システム、方法、およびコンピュータ読取可能な媒体を提供すること。【解決手段】  ポインタ移動は、ユーザがＧＵＩオブジェクトを容易に位置調節することができるようにするために、位置調節の領域内で調整される。調整されたポインタ移動は、入力装置から受け取った入力に比例しない。代わりに位置調節の領域には、コンピュータディスプレイの他の領域と比べて入力に対するポインタの応答性が低いという点で「摩擦」を有する。【選択図】  図１
2005317003.tif 000002
【特許請求の範囲】
【請求項１】
ポインタ、ポインタ入力装置、およびオペレーティングシステムを備え、グラフィカルユーザインターフェースを表示するためのディスプレイを備えたコンピュータ装置において、前記グラフィカルユーザインターフェース上に表示されるオブジェクトにより、選択されたオブジェクトの位置調節を行う際にユーザを支援する方法であって、
（ａ）ポインタ移動のイベントの通知の受信に応答して、ポインタの現在および予測される座標位置を取得するステップと、
（ｂ）前記ポインタが移動中に位置調節の領域と交差するかどうかを決定するステップと、
（ｃ）前記ポインタが移動中に位置調節の領域と交差する場合、前記ポインタに関する調整された座標位置を計算するステップと、
（ｄ）前記ポインタの前記予測される座標位置を前記調整された座標位置に置き換えるステップと
を備えたことを特徴とする方法。
【請求項２】
前記ポインタが位置調節の領域と交差する場合、前記ポインタが位置調節の行われた座標位置に到達することを前記コンピュータ装置の前記オペレーティングシステムに伝えるステップをさらに備えたことを特徴とする請求項１に記載の方法。
【請求項３】
前記コンピュータ装置の前記ディスプレイ上で前記調整された座標位置に前記ポインタを表示するステップをさらに備えたことを特徴とする請求項１に記載の方法。
【請求項４】
前記ポインタの前記現在および予測される座標位置は、前記コンピュータ装置の前記オペレーティングシステムから取得されることを特徴とする請求項１に記載の方法。
【請求項５】
前記ポインタが位置調節の領域と交差するかどうかを決定するステップは、
（ａ）位置調節の領域によって占められる、前記コンピュータ装置の前記ディスプレイ上で前記座標位置を識別するステップと、
（ｂ）前記位置調節の領域によって占められる前記座標位置と、前記現在の座標位置から前記予測される座標位置までの前記ポインタ移動とを比較するステップと
を含むことを特徴とする請求項１に記載の方法。
【請求項６】
ポインタが交差する可能性のある前記位置調節の領域は、グラフィカルユーザインターフェース上に表示されるオブジェクトによって位置調節が行われることを特徴とする請求項１に記載の方法。
【請求項７】
前記ポインタに関する調整された座標位置を計算するステップは、
前記ポインタが前記位置調節の領域と交差する前記座標位置を計算するステップと、
前記現在の座標位置から前記予測される座標位置までの前記ポインタの前記予測される移動（以下、「予測される移動」という）において、各方向の構成要素について、
ポインタの場所の予測される変化を決定するステップと、
前記位置調節の領域の属性に基づいて調整量を決定するステップと、
ポインタの場所の前記予測される変化を前記調整量だけ減少させるステップと
を含むことを特徴とする請求項１に記載の方法。
【請求項８】
前記ポインタが位置調節の領域と交差する前記座標位置を計算するステップは、
位置調節の領域によって占められる前記座標位置を識別するステップと、
前記位置調節の領域によって占められる前記座標位置と、前記ポインタの前記予測される移動とを比較するステップと
を含むことを特徴とする請求項７に記載の方法。
【請求項９】
前記ポインタの場所の予測される変化を決定するステップは、
前記ポインタの前記予測される移動を計算するステップと、
前記ポインタの前記予測される移動をベクトルとして表すステップと
を含むことを特徴とする請求項７に記載の方法。
【請求項１０】
前記調整量を決定するステップは、
前記位置調節の領域によって生成される抵抗の全体量を計算するステップと、
前記抵抗の全体量が前記ポインタの場所の予測される変化よりも大きい場合、前記調整量が前記抵抗の全体量に等しいと決定するステップと、
前記抵抗の全体量が前記ポインタの場所の予測される変化よりも大きくない場合、前記予測されるポインタ移動が方向の摩擦曲線の下の領域に等しい前記方向の摩擦曲線の点を計算することによって前記調整量を決定するステップと
を含むことを特徴とする請求項７に記載の方法。
【請求項１１】
前記位置調節の領域によって生成される抵抗の全体量を計算するステップは、
前記位置調節の領域について方向の摩擦曲線を生成するステップと、
前記方向の摩擦曲線の下の領域を決定するステップと
を含むことを特徴とする請求項１０に記載の方法。
【請求項１２】
前記方向の摩擦曲線は、ポインタ移動に対する一定の抵抗を示す線形な方向の摩擦曲線であることを特徴とする請求項１１に記載の方法。
【請求項１３】
前記方向の摩擦曲線は、前記ポインタ移動に対する抵抗が前記位置調節領域内の前記ポインタの場所に依存することを示す非線形な方向の摩擦曲線であることを特徴とする請求項１１に記載の方法。
【請求項１４】
ポインタおよび位置調節の領域を含むグラフィカルユーザインターフェースを維持するコンピュータ装置において、前記ポインタの前記位置調節の領域への移動に応答して、前記ポインタが前記位置調節の領域と交差する、調整された座標位置を計算する方法であって、
前記ポインタが前記位置調節の領域と交差する前記座標位置を計算するステップと、
前記現在の座標位置から前記予測される座標位置までの前記ポインタの前記予測される移動（以下、「予測される移動」という）において、各方向の構成要素について、
ポインタの場所の予測される変化を決定するステップと、
前記位置調節の領域の属性に基づいて調整量を決定するステップと、
ポインタの場所の前記予測される変化を前記調整量により減少させるステップと
を備えたことを特徴とする方法。
【請求項１５】
前記ポインタが位置調節の領域と交差する前記座標位置を計算するステップは、
前記位置調節の領域によって占められる前記座標位置を識別するステップと、
前記位置調節の領域によって占められる前記座標位置と、前記ポインタの前記予測される移動とを比較するステップと
を含むことを特徴とする請求項１４に記載の方法。
【請求項１６】
前記ポインタの場所の予測される変化を決定するステップは、
前記ポインタの前記予測される移動を計算するステップと、
前記ポインタの前記予測される移動をベクトルとして表すステップと
を含むことを特徴とする請求項１４に記載の方法。
【請求項１７】
前記調整量を決定するステップは、
前記位置調節の領域によって生成される抵抗の全体量を計算するステップと、
前記抵抗の全体量が前記ポインタの場所の予測される変化よりも大きい場合、前記調整量が前記抵抗の全体量に等しいと決定するステップと、
前記抵抗の全体量が前記ポインタの場所の予測される変化よりも大きくない場合、前記予測されるポインタ移動が前記方向の摩擦曲線の下の領域に等しい方向の摩擦曲線の点を計算することによって、前記調整量を決定するステップと
を含むことを特徴とする請求項１４に記載の方法。
【請求項１８】
前記位置調節の領域によって生成される抵抗の全体量を計算するステップは、
前記位置調節の領域に関する方向の摩擦曲線を生成するステップと、
前記方向の摩擦曲線の下の領域を決定するステップと
を含むことを特徴とする請求項１７に記載の方法。
【請求項１９】
前記方向の摩擦曲線は、ポインタ移動に対する一定の抵抗を示す線形な方向の摩擦曲線であることを特徴とする請求項１８に記載の方法。
【請求項２０】
前記方向の摩擦曲線は、前記ポインタ移動に対する抵抗が前記位置調節の領域内の前記ポインタの場所に依存することを示す非線形な方向摩擦であることを特徴とする請求項１８に記載の方法。
【請求項２１】
ポインタ、ポインタ入力装置、およびオペレーティングシステムを備え、グラフィカルユーザインターフェースを表示するためのディスプレイを備えたコンピュータ装置によって実行されると、前記グラフィカルユーザインターフェース上に表示されるオブジェクトによって、選択されたオブジェクトの位置調節を行う際にユーザを支援する方法を実行するコンピュータ読取可能な命令を含む、コンピュータ読取可能な媒体であって、前記方法は、
ポインタ移動のイベントの通知の受信に応答して、ポインタの現在および予測される座標位置を取得するステップと、
前記ポインタが移動中に位置調節の領域と交差するかどうかを決定するステップと、
前記ポインタが移動中に位置調節領域と交差する場合、前記ポインタに関する調整された座標位置を計算するステップと、
前記ポインタの前記予測される座標位置を前記調整された座標位置に置き換えるステップと
を備えたことを特徴とするコンピュータ読取可能な媒体。
【請求項２２】
前記方法は、前記ポインタが位置調節の領域と交差する場合、前記ポインタが位置調節の行われた座標位置に到達することを前記コンピュータ装置の前記オペレーティングシステムに伝えるステップをさらに備えたことを特徴とする請求項２１に記載のコンピュータ読取可能な媒体。
【請求項２３】
前記方法は、前記調整された座標位置で前記コンピュータ装置の前記ディスプレイ上に前記ポインタを表示するステップをさらに備えたことを特徴とする請求項２１に記載のコンピュータ読取可能な媒体。
【請求項２４】
前記ポインタの前記現在および予測される座標位置は、前記コンピュータ装置の前記オペレーティングシステムから取得されることを特徴とする請求項２１に記載のコンピュータ読取可能な媒体。
【請求項２５】
前記ポインタが位置調節の領域と交差するかどうかを決定するステップは、
位置調節の領域によって占められる前記コンピュータ装置の前記ディスプレイ上の前記座標位置を識別するステップと、
前記位置調節の領域によって占められる前記座標位置と、前記現在の座標位置から前記予測される座標位置までの前記ポインタ移動とを比較するステップと
を含むことを特徴とする請求項２１に記載のコンピュータ読取可能な媒体。
【請求項２６】
ポインタが交差する可能性のある前記位置調節の領域は、グラフィカルユーザインターフェース上に表示されるオブジェクトを用いて位置調節が行われることを特徴とする請求項２１に記載のコンピュータ読取可能な媒体。
【請求項２７】
前記ポインタに関する調整された座標位置を計算するステップは、
前記ポインタが前記位置調節の領域と交差する前記座標位置を計算するステップと、
前記現在の座標位置から前記予測される座標位置までの前記ポインタの前記予測される移動（以下、「予測される移動」という）において、各方向の構成要素について、
ポインタの場所の予測される変化を決定するステップと、
前記位置調節の領域の属性に基づいて調整量を決定するステップと、
ポインタの場所の前記予測される変化を前記調整量により減少させるステップと
を含むことを特徴とする請求項２１に記載のコンピュータ読取可能な媒体。
【請求項２８】
前記ポインタが位置調節の領域と交差する前記座標位置を計算するステップは、
位置調節の領域によって占められる前記座標位置を識別するステップと、
前記位置調節の領域によって占められる前記座標位置と、前記ポインタの前記予測される移動とを比較するステップと
を含むことを特徴とする請求項２７に記載のコンピュータ読取可能な媒体。
【請求項２９】
前記ポインタの場所の予測される変化を決定するステップは、
前記ポインタの前記予測される移動を計算するステップと、
前記ポインタの前記予測される移動をベクトルとして表すステップと
を含むことを特徴とする請求項２７に記載のコンピュータ読取可能な媒体。
【請求項３０】
調整量を決定するステップは、
前記位置調節の領域によって生成される抵抗の全体量を計算するステップと、
前記抵抗の全体量が前記ポインタの場所の予測される変化よりも大きい場合、前記調整量が前記抵抗の全体量に等しいと決定するステップと、
前記抵抗の全体量が前記ポインタの場所の予測される変化よりも大きくない場合、前記予測されるポインタ移動が前記方向の摩擦曲線の下の領域に等しい方向の摩擦曲線の点を計算することによって、前記調整量を決定するステップと
を含むことを特徴とする請求項２７に記載のコンピュータ読取可能な媒体。
【請求項３１】
前記位置調節の領域によって生成される抵抗の全体量を計算するステップは、
前記位置調節の領域に関する方向の摩擦曲線を生成するステップと、
前記方向の摩擦曲線の下の領域を決定するステップと
を含むことを特徴とする請求項３０に記載のコンピュータ読取可能な媒体。
【請求項３２】
前記方向の摩擦曲線は、ポインタ移動に対する一定の抵抗を示す線形な方向の摩擦曲線であることを特徴とする請求項３１に記載のコンピュータ読取可能な媒体。
【請求項３３】
前記方向の摩擦曲線は、前記ポインタ移動に対する抵抗が前記位置調節の領域内の前記ポインタの場所に依存することを示す非線形な方向の摩擦曲線であることを特徴とする請求項３１に記載のコンピュータ読取可能な媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般には、改良されたグラフィカルユーザインターフェースに関し、より詳細には、グラフィカルユーザインターフェースにおいてオブジェクトの位置調整を行う改良されたシステムおよび方法に関する。
【背景技術】
【０００２】
多数のコンピュータ装置（例えば、パーソナルコンピュータ、携帯情報端末（「ＰＤＡ」）、セルラー電話など）が、ユーザとの対話にグラフィカルユーザインターフェース（以下「ＧＵＩ」と呼ぶ）を採用している。ＧＵＩとは、コンピュータディスプレイ上のグラフィックスを使用することにより、コンピュータユーザと通信することを特徴とする、入出力（Ｉ／Ｏ）システムのことである。ユーザは、頻繁に、マウスまたはトラックボールなどの入力装置を使用することにより、コンピュータディスプレイ上のポインタを操作および再配置する。ポインタがディスプレイ上の指定された位置にある間にユーザが入力装置をアクティベートまたは「クリック」すると、コンピュータ装置に情報が入力される。したがってユーザは、コンピュータ装置に入力するために、コマンドを記憶するまたはキーボードタイピングの知識を有する必要はない。
【０００３】
一般にＧＵＩは、コンピュータディスプレイ上にピクセルの２次元イメージとしてグラフィカル表示要素（以下、「ＧＵＩオブジェクト」と呼ぶ）を提示する。しばしばユーザは、所望の機能を実行するかまたは特定の特徴を有する文書を作成するために、ＧＵＩオブジェクトの位置調整を希望する。例えばユーザは、専門的な様相を呈した文書を作成するために、同じ垂直または水平の位置にＧＵＩオブジェクトの位置調節を行うよう希望する場合がある。特に一般的な位置調節のタスクの１つは、コンピュータディスプレイ上で連続して位置調節が行われる、ＧＵＩオブジェクトの「スタッキング（ｓｔａｃｋｉｎｇ）」である。
【０００４】
ユーザは頻繁に、ボタンクリックなどの単一のポインタイベントがＧＵＩオブジェクトを選択する「クリックアンドドラッグ」技法を使用して、ＧＵＩオブジェクトの位置調節を行う。いったんＧＵＩオブジェクトが選択されると、ポインタがそのＧＵＩオブジェクトを新しい位置へと移動させ、第２のポインタイベントがそのＧＵＩオブジェクトを配置する。ドラッグを使用して２つまたはそれ以上のＧＵＩオブジェクトの位置調節を行うには困難な場合が多く、挫折や生産性の低下につながる。場合によっては、視力または身体能力が低下したユーザ、あるいはトレーニング不足のユーザは、ドラッグしたオブジェクトを正確に位置決めするのが困難な場合がある。他の場合では、ポインタの位置決めの難しさがコンピュータ装置に起因する場合がある。
【０００５】
コンピュータディスプレイ上の特定の場所にオブジェクトを配置できないと、所望の機能が容易に実行できない場合があるために問題が生じる。それどころかユーザは、所望の機能を実行するためにポインタを繰り返し再調整する必要が生じる可能性がある。ＧＵＩオブジェクトの位置調節を行うために使用される「クリックアンドドラッグ」技法をさらに向上させるシステムが開発されてきた。例えば、一部のシステムでは、ＧＵＩオブジェクトは、位置調節の行われる座標位置を基準に所定の距離内に配置されると自動的に移動される（すなわちスナップされる）、「スナッピング」オプションをサポートしている。この手法の欠点は、位置調節の行われる座標位置から所定の距離より短い位置にＧＵＩオブジェクトを配置できない場合があることである。言い方を変えれば、ユーザは、位置調節の行われる座標位置にオブジェクトを「スナッピング」せずに、位置調節の行われる座標位置の近くではあるがその位置ではない場所に、ＧＵＩオブジェクトを配置できない場合がある。この手法の別の欠点は、例えばプルダウンメニューからメニュー項目を選択することによって、ユーザがスナッピングオプションをアクティベートしなければならないことである。ユーザによっては、「スナッピング」などのオプションが使用できることを知らずに、「クリックアンドドラッグ」技法を引き続き使用する場合がある。前述のように、この手法では、ユーザがドラッグしているオブジェクトを正確に配置するために、ポインタの位置を繰り返し再調整する必要がしばしばあるので、挫折の原因となる。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ＧＵＩオブジェクトをコンピュータディスプレイ上のいかなる場所にでも配置できる、ＧＵＩオブジェクトの位置調節を行うためのシステムおよび方法が求められている。システムおよび方法は使いやすく、ユーザ側の知識またはトレーニングを必要としないことが望ましい。本発明は、これらのニーズおよび現存する他の欠点に対処するものである。
【課題を解決するための手段】
【０００７】
従来、コンピュータディスプレイ上のポインタ移動は、入力装置（すなわち、トラックボール、マウスなど）から受信した入力に比例する。本発明は、一般に、入力装置から受信した入力に比例しないポインタ移動を使用して、ＧＵＩオブジェクトの位置調節を行うことを対象とする。より具体的に言えば、本発明の諸実施形態は、選択されたＧＵＩオブジェクトを伴うポインタが位置調節の領域と交差した場合にポインタ移動を調整する、システム、方法、およびコンピュータ読取可能な媒体を提供する。位置調節の領域は、接続ポイントまたは形状の頂点などの、ＧＵＩオブジェクト内の指定された場所から導出される。各ＧＵＩオブジェクトが、位置調節の行われる座標位置を指定する、異なる場所を有することから、位置調節の領域は、位置調節の行われるＧＵＩオブジェクトに依存して変化する。位置調節の領域と交差すると、比例してポインタ移動に影響を与えるために多くの入力量が必要となるように、ポインタ移動が調整される。例えば、コンピュータディスプレイ上でポインタを移動させる距離が長くなるほど、より多くの入力装置の移動が必要である。ユーザの見地からすれば、位置調節の領域は、コンピュータディスプレイの他の領域と比べてポインタの応答性が低いという点で「摩擦（ｆｒｉｃｔｉｏｎ）」がある。
【０００８】
本発明の一実施形態は、入力によってポインタが１つまたは複数の位置調節の領域と交差した場合にポインタ移動を調整する方法である。方法を、ポインタの予測される移動が位置調節の領域と交差することになるかどうかを決定する、イベント駆動型ルーチンのセットによって実装する。予測された移動が位置調節の領域と交差しない場合、すでに実現されたポインタ位置決めのソフトウェアはポインタの座標位置を計算する。反対に、予測された移動が位置調節の領域と交差する場合、本方法はポインタに関する調整された座標位置を計算する。計算によって、位置調節の領域内でのポインタ移動に影響を与えるために、比例して、より多くの入力が必要となるように、ポインタ移動を調整する。
【０００９】
本発明の別の実施形態では、入力によってポインタが１つまたは複数の位置調節の領域と交差した場合に、ポインタ移動を調整する、コンピュータ装置を説明する。コンピュータ装置には、入力装置、コンピュータディスプレイ、移動調整モジュール、および１つまたは複数のアプリケーションプログラムを含む、様々な構成要素と通信するオペレーティングシステムを含む。移動調整モジュールを、１つまたは複数の位置調節の領域と交差した場合にポインタの座標位置を調整するように構成する。
【００１０】
やはり別の実施形態では、コンピュータ読取可能な媒体にコンテンツ、すなわち本明細書において説明する方法に従って、コンピュータ装置を動作させるプログラムを提供する。
【００１１】
前述の諸態様および本発明に伴う利点の多くは、添付の図面と共に以下の詳細な説明を参照することによって、よりよく理解されるのと同じくより容易に理解されるであろう。
【発明を実施するための最良の形態】
【００１２】
本発明の諸実施形態では、入力装置がポインタを１つまたは複数の位置調節の領域と交差させた場合にポインタ移動を調整する、システム、方法、およびコンピュータ読取可能な媒体を提供する。本技術分野または他の技術者であればわかるように、ポインタとは、コンピュータ装置に情報を入力するために使用される絵画的な描写であり、典型的には矢印で表現される。しかしながらポインタは、コンピュータディスプレイ上の「ホットスポット」を識別することが可能なあらゆる絵画的な描写で表すことができる。本発明によれば、ポインタ移動をユーザがＧＵＩオブジェクトの位置調節を行うことを支援するように調整する。ポインタが位置調節の領域と交差する場合、ポインタ移動に影響を与えるためには、比例して、より多くの入力（すなわち、より多くのポインタ入力装置の移動）が必要となる。したがって、入力装置の不注意なわずかな移動では、ポインタが位置調節の領域から離れることはない。
【００１３】
以下の説明では、第一に、本発明を実装することが可能なシステムの概要について説明する。次に、添付の図面に示される、入力によってポインタが１つまたは複数の位置調節の領域と交差した場合にポインタ移動を調整する方法について説明する。本明細書において説明する例示的な例は、本発明を網羅すること、または開示された精密な形に限定することを意図するものではない。同様に、本明細書に記載されたいずれのステップも、同じ結果を達成するために、他のステップまたはステップの組合せと交換することができる。
【００１４】
図１は、本発明の諸実施形態が実装可能なコンピュータ装置１００の例示的な概要を提供する図である。コンピュータ装置１００には、コンピュータディスプレイ１０２、オペレーティングシステム１０４、移動調整モジュール１０６、アプリケーション１０８、および入力装置１１０を含む。コンピュータ装置１００は、パーソナルコンピュータ装置、サーバに基づくコンピュータ装置、携帯情報端末（ＰＤＡ）、セルラー電話、何らかの種類のメモリを有する他の電子装置等を含む、様々な装置のうちのいずれか１つとすることができるが、これらに限定されるものではない。例示しやすくするため、および本発明を理解するために重要ではないため、図１には、メモリ、キーボード、中央処理ユニット等の、多くのコンピュータ装置の典型的な構成要素の一部を示さない。
【００１５】
オペレーティングシステム１０４は、Ｍｉｃｒｏｓｏｆｔのオペレーティングシステム、ＵＮＩＸ（登録商標）オペレーティングシステム、またはＬｉｎｕｘのオペレーティングシステムなどの、汎用オペレーティングシステムとすることができる。本技術分野または他の技術者であればわかるように、オペレーティングシステム１０４はコンピュータ装置１００の全般的なオペレーションを制御し、ハードウェアおよび基本システムのオペレーション、同様にして実行中のアプリケーションを管理する責務を負う。より具体的に言えば、オペレーティングシステム１０４は、アプリケーション１０８などのコンピュータプログラムがハードウェアリソースを確実に使用できるようにするものである。図１に例示されるように、オペレーティングシステム１０４は、モニタ（例えば、ＣＲＴまたはＬＣＤ画面）、テレビジョン、その他などの典型的なディスプレイ装置を含むことができる、コンピュータディスプレイ１０２と通信する。コンピュータディスプレイ１０２は、ポインタおよび他のＧＵＩオブジェクトを表示するのに好適である。
【００１６】
コンピュータ装置１００を、ＧＵＩオブジェクトをコンピュータディスプレイ１０２上に表示させる、アプリケーション１０８などのコンピュータプログラムを実行するよう構成する。アプリケーション１０８は、エディタ、ワードプロセッサ、スプレッドシート、ブラウザ、コンピュータ支援設計（ＣＡＤ）、およびその他を含む、ＧＵＩオブジェクトを表示するあらゆるコンピュータプログラムとすることができるが、これらに限定されるものではない。
【００１７】
入力装置１１０は、ユーザおよびオペレーティングシステム１０４と対話して、実行するイベント駆動型ルーチンを指定する。本技術分野または他の技術者であればわかるように、入力装置１１０は、マウス、トラックボール、タッチパッドなどを含む、コンピュータディスプレイ１０２上のポインタ制御が可能なあらゆる装置とすることができる。一部のコンピュータ装置では、入力装置１１０をコンピュータ装置１００と同じ筐体内に含めることができる。こうした配置構成は、コンピュータ装置がノートブックコンピュータである場合に一般に見られる。ユーザは、入力装置１１０を操作して、コンピュータディスプレイ１０２上の指定位置でポインタを操作および再配置し、およびポインタをアクティベートすることができる。オペレーティングシステム１０４は、ポインタ移動および他のポインタイベントを監視し、およびこれらのイベントに応答して動作を実行するために、アプリケーション１０８などのコンピュータプログラム用のメカニズムを提供する。
【００１８】
以下の説明から、よりよく理解されるように、本発明の諸実施形態は、移動調整モジュール１０６内に配置されたイベント駆動型ルーチンのセットによって実装される。図１に例示されるように、移動調整モジュール１０６はオペレーティングシステム１０４と相互接続され、通信することができる。以下で、より詳細に説明するように、オペレーティングシステム１０４は、入力装置１１０がポインタ移動を生成している場合に移動調整モジュール１０６に通知する。移動調整モジュール１０６は、グリッドポイント、ハンドル、接続ポイント、形状の頂点、形状の外延、またはＧＵＩオブジェクトの位置調節が可能なコンピュータディスプレイのあらゆる他の領域とすることが可能な、位置調節の領域と、予測された移動とが交差するかどうかを決定する。予測された移動が位置調節の領域と交差する場合、移動調整モジュール１０６はＧＵＩオブジェクトに容易に位置調節を行うことできるようにポインタ移動を調整する。オペレーティングシステム１０４は移動調整モジュール１０６から調整された座標位置を受信し、および調整された座標でコンピュータディスプレイ１０２にポインタを表示させる。
【００１９】
本発明に従って形成されたソフトウェアが、例えば図１に例示された種類のコンピュータ装置内で実装されると、コンピュータ装置はＧＵＩオブジェクトに容易に位置調節を行うための方法をユーザに提供する。ユーザがＧＵＩオブジェクトに容易に位置調節を行うことできるようにすることで、コンピュータプログラムが、より使いやすくなり、コンピュータ体験を促進する。
【００２０】
例示の目的で、コンピュータディスプレイの代表的な断片を図２に示す。当事業者であればわかるように、コンピュータディスプレイは、イメージを表現するために使用される基本単位であるピクセルから構成される。ピクセルは非常に小さく数が多いものであるため、表示されると単一の平滑なイメージにまとまって見える。コンピュータディスプレイ上に表現されるピクセルの数を、ピクセル解像度と呼ぶ。通常、ピクセル解像度は６４０×４８０などの１対の数で表され、この対は、コンピュータディスプレイが横６４０ピクセルおよび縦４８０ピクセル（すなわち、合計６４０×４８０＝３０７，２００ピクセル）から構成されることを示す。図２は、高度に拡大されたピクセル集合を含む、コンピュータディスプレイ２００のサンプルの断片としての視覚的な描写である。より具体的に言えば、コンピュータディスプレイ２００のサンプルの断片は、ピクセル２０２、２０４、２０６、ポインタ２０８、およびポインタ２０８の移動を表現する経路２１０を含む。図２に示すように、入力装置１１０などのユーザが採用した入力装置を使用して、ピクセル２０２、２０４、および２０６を横切ってポインタ２０８を再配置する。図２に例示するポインタ２０８の移動は、ユーザによって生成される入力に比例する。
【００２１】
図３は、本発明に従ってピクセル２０４が位置調節の領域として指定された、図２に示されたコンピュータディスプレイ２００のサンプルの断片を示す図である。図２と同様に、入力装置１１０などのユーザが採用した入力装置を使用して、ピクセル２０２を横切ってポインタ２０８を再配置する。しかしながら、ポインタ２０８がピクセル２０４と交差すると、本発明の諸実施形態は、所定の移動量のポインタ移動を発生させるために、比例して、より多くの入力量（すなわちマウスの移動距離）が必要となるように、ポインタ移動を調整する。言い換えれば、マウスの移動距離とポイントの移動距離との比率を変更する。例示するように、ピクセル２０４を横切るために必要なマウスまたは他の入力装置の移動距離の全体量は、コンピュータディスプレイ２００の他の領域を横切るために必要な全体量の３倍より大きい。したがって、図３のポインタ２０８によって生成される経路３００は、図２の経路２１０によって示されるのと同じ量の入力（すなわち、マウスの移動）を表現する。ユーザの見地からすると、ポインタ移動が、コンピュータディスプレイ２００の他の領域に比べてピクセル２０４を横切るより多くの入力（すなわち、マウスの移動距離）を必要とするという点で、ピクセル２０４は「摩擦」を有する。
【００２２】
図４は、ピクセル２０４が位置調節の領域として指定された、図２〜３に例示されたコンピュータディスプレイ２００のサンプルの断片を示す代替の図である。図３と同様に、ユーザは入力装置を使用して、コンピュータディスプレイ２００の一部を横切る。しかしながら本発明のこの例示的実施形態では、ピクセル２０４を横切るのに必要な入力が、コンピュータディスプレイ２００の他の領域を横切るのに必要な入力の６倍より大きいように、ポインタの位置を調整する。図４のポインタ２０８によって生成される経路４００は、図２の経路２１０および図３の経路３００によって示されるのと同じ入力量（すなわち、マウスの移動距離）を表現する。
【００２３】
前述の図３および４の説明から容易に理解されるように、位置調節の領域がポインタ移動に抵抗する度合い（本明細書では以下、「摩擦因数」と呼ぶ）は、本発明の使用に基づいて変更することができる。例えば、特別に、視力または身体能力が低下したユーザ用のＧＵＩを設計する場合、ユーザの低下した能力を埋め合わせるために、摩擦因数の高い位置調節の領域を実装することができる。
【００２４】
次に図５〜８を参照しながら、本発明の他の例示的態様について説明する。便宜上、本明細書の説明の多くが特定のＧＵＩオブジェクトとの関連においてなされるが、本発明は他のＧＵＩオブジェクトにも適用可能であることを理解されたい。したがって、本明細書における特定のＧＵＩオブジェクトについての言及は例示的なものであって、本発明を制限するものと解釈すべきではない。
【００２５】
図５は、一般にスライダ５００と呼ばれる、多くのコンピュータプログラムによって実装されるメカニズムを示す図である。スライダ５００は、コントロールボタン５０２、スケール５０４、およびスケールインジケータ５０６を含む１つまたは複数のスケールインジケータを含む、複数のＧＵＩオブジェクトを備える。当事業者であれば周知のように、スライダ５００は、ユーザがポインタ２０８を使用してコントロールボタン５０２を選択し、スケール５０４に沿ってコントロールボタン５０２を移動させることによって動作する。典型的には、スライダ５００は、パーソナルコンピュータに接続されたスピーカによって再生される音声の音量などの変数の値を制御する。ユーザが、スケールインジケータ５０６などのスケールインジケータによって表現される値にポインタ２０８を容易に位置決めできない場合があるため、コントロールボタン５０２の位置調節を行う際にユーザを支援するためのシステムが開発されてきた。図５に示されたひとつのシステムは、一般にスナッピングと呼ばれる。スナッピングを使用する場合、コントロールボタン５０２は、スケールインジケータ５０６までの所定の距離５０８内に配置されると、自動的に移動（すなわちスナッピング）される。スナッピングの欠点は、コントロールボタン５０２が所定の距離５０８内では位置決めをできないことである。したがって、スケール５０４の断片は、アクセスすることができないような、自力で位置決めすることができない空間（ｉｎｅｒｔ  ｓｐａｃｅ）である。
【００２６】
図６は、本発明に従って作成された位置調節の領域に配置された、図５に示されたスライダ５００を示す図である。図５と同様に、ユーザはポインタ２０８を使用してコントロールボタン５０２を選択し、スケール５０４に沿ってコントロールボタン５０２を移動させることができる。図５とは異なり、ユーザがスケールインジケータ５０６の近くの値にコントロールボタン５０２の位置調節を行うことを支援するために、ポインタ２０８の移動を調整する。入力装置を一定の量だけ移動させるために、スケールインジケータ５０６によって表現される値に達すると、ポインタ２０８の移動速度が低下する。スケールインジケータ５０６に隣接する領域を位置調節の領域として指定することで、ユーザは、スケールインジケータの位置へのスナッピングなしに、コントロールボタン５０２をスケールインジケータ５０６の近くへと容易に位置決めすることができる。コントロールボタン５０２をこの方法で位置調節を行うことで、ユーザはスケール５０４に沿って付加された位置にアクセスすることができる。
【００２７】
図６は、２つのＧＵＩオブジェクトの垂直位置に位置調節が行われた一次元環境での本発明の態様を示す図である。図７および８は、二次元環境での本発明の態様を示す図である。より具体的に言えば、図７および８は、一般にスタッキングと呼ばれる、一部のコンピュータプログラムで実行される動作を示す図である。図７では、ＧＵＩオブジェクトの３段のスタック７０２、７０４、および７０６の下の、位置調節の行われる位置に配置されたＧＵＩオブジェクト７００を示す。二次元環境では、前述のスナッピングの技法も適用可能である。しかしながら、二次元環境でスナッピングが実行される場合は、少なくとも２つの所定の領域がＧＵＩオブジェクトの位置決めに使用できない、自力で位置決めすることができない空間となる。図７に例示された例では、縦軸の所定の距離７０８および横軸の所定の距離７１０が、ＧＵＩオブジェクト７００を位置決めするためにアクセスすることができない。
【００２８】
図８は、一般に、縦軸の所定の距離７０８および横軸の所定の距離７１０によって定義されたゾーンの中にＧＵＩオブジェクト７０２が配置されるように位置決めされた、図７に示されたＧＵＩオブジェクトを示す図である。接続ポイントの座標位置に到達するとポインタ２０８の速度が低下するように、位置調節の行われる領域の接続ポイント８００で、ポインタ移動を調整する。本発明の一実施形態では、ポインタ２０８が接続ポイント８００としての正確な座標位置に配置されると、視覚の、聴覚の、または見てわかるフィードバックがユーザに提供される。フィードバックは、ＧＵＩオブジェクト７００に適切に位置調節を行うことをユーザに示すものである。
【００２９】
図８は、ＧＵＩオブジェクトのスタッキングに関連して、本発明の例示的態様を示す図である。図８に例示された例示的態様では、ＧＵＩオブジェクトにさらに容易に位置調節を行うできるようにする位置調節の領域として、接続ポイント８００を指定する。しかしながら、ＧＵＩオブジェクトは他の方法でも位置調節を行うことが可能であることを理解されたい。例えば、ＧＵＩオブジェクトは、それぞれ同じｘ座標またはｙ座標を有するように、ＧＵＩオブジェクトは、接することなしに垂直または水平にのみ位置調節することが可能である。また、位置調節の領域のサイズ、形状、および位置を変更することで、ＧＵＩオブジェクトに、相互に関して特定の角度でさらに容易に位置調節を行うこともできる。
【００３０】
本発明の諸態様は、ポインタを位置調節の領域に導く捕捉補助機能（ａｃｑｕｉｓｉｔｉｏｎ  ａｉｄｓ）との組合せで実装することができる。ポインタをコンピュータディスプレイ上の特定の領域に導く方法、システム、およびコンピュータ読取可能な媒体についてのより詳細な説明は、その内容が参照により本明細書に明確に組み込まれ、本明細書と同時に出願され本出願人に譲渡された同時係属の、「System and Method For Acquiring a Target With Intelligent Pointer Movement」という名称の米国特許出願第 号明細書に記載されている。
【００３１】
図９は、本発明に従って形成されたポインタ位置決め方法９００の例示的な一実施形態を例示するフロー図である。手短に言えば、ポインタ位置決め方法９００は、入力装置がポインタ移動を生成しているという通知を受信する。方法９００は、ポインタの予測される移動が位置調節の領域と交差することになるかどうかを決定する。予測される移動が位置調節の領域と交差しない場合、すでに実現された（すなわち、以前に開発された）ポインタ制御のソフトウェアが新しいポインタの位置を計算する。反対に、予測される移動が位置調節領域と交差する場合、本発明の諸態様がポインタの調整された位置を計算する。図１〜８および付随する説明を引き続き参照しながら、図９に例示する例示的なポインタ位置決め方法９００について説明する。
【００３２】
ポインタ位置決め方法９００はブロック９０２で開始され、方法は、入力装置からのポインタ移動のイベントを待つ。例えば、入力装置１１０は、ユーザにより移動された場合、ポインタ移動のイベントを生成し、イベントをオペレーティングシステム１０４に送信する。前述のように、既存のシステムは、イベント駆動型ルーチンがポインタ移動のイベントの通知を受信し、イベントに応答して動作を実行できるようにする。例示的な実施形態では、本発明のイベント駆動型ルーチンを、機能呼出しのパラメータとして直接、オペレーティングシステム１０４に渡されるルーチンである、コールバック機能として実装する。オペレーティングシステム１０４がポインタ移動のイベントを受信すると、ポインタ位置決め方法９００の実行をオペレーティングシステム１０４により開始する。
【００３３】
ポインタ移動のイベントを受信すると、ポインタ位置決め方法９００はブロック９０４に進み、方法９００はポインタの現在および予測される位置を取得する。当事業者であればわかるように、ポインタの座標位置は一般に、ｘ座標およびｙ座標を含む２個組み（２−ｔｕｐｌｅ）として表現される。コンピュータディスプレイ上の１つの場所を、（０，０）の２個組みの値を用いて、原点として指定する。入力装置がポインタ移動のイベントを生成すると、本発明を実装するルーチンは、オペレーティングシステム１０４からポインタの現在および予測される位置を受信する。
【００３４】
ポインタ位置決め方法９００がポインタの現在および予測される座標位置を取得した後、ポインタの予測速度を計算する。ブロック９０６では、方法９００が、ブロック９０２で受信したポインタ移動のイベントに関する時間間隔を取得し、本技術分野で一般に知られている数学の関数およびコンピュータに実装されたルーチンを使用してポインタ移動速度を計算する。
【００３５】
ポインタ移動の速度がわかると、ポインタ位置決め方法９００は決定ブロック９０８へ進み、方法９００は、ブロック９０６で計算されたポインタ移動の速度が所定のしきい値よりも速いかどうかを決定する。本発明の一実施形態では、ポインタの予測された速度が所定のしきい値よりも速い場合、ポインタ移動を位置調節の領域内で調整しない。本実施形態では、方法９００は、迅速なポインタ移動を生成しているユーザは、ＧＵＩオブジェクトの位置調節を試行していないと仮定する。予測されるポインタ速度が所定のしきい値よりも速い場合、方法９００は以下で説明するブロック９２０に進む。反対に、予測されるポインタ速度が所定のしきい値よりも遅いかまたは等しい場合、方法９００はブロック９１０に進む。
【００３６】
ブロック９１０では、方法９００は、位置調節の領域のコンピュータディスプレイ上の座標位置を計算する。上述のように、位置調節の領域は、接続ポイントまたは形状の頂点などのＧＵＩオブジェクト内の指定された場所から導出される。各ＧＵＩオブジェクトが、位置調節の行われた座標位置を決定する特徴を有することから、位置調節の領域は位置調節の行われるＧＵＩオブジェクトに依存して異なる。また、位置調節の領域の座標位置（すなわち、ポインタ移動が非線形であるコンピュータディスプレイ上の場所）は、選択されたＧＵＩオブジェクトに対するポインタの位置に依存する。したがって、方法９００が位置調節の領域の場所を決定できるよう、ポインタのオフセット値を計算する。
【００３７】
決定ブロック９１２では、方法９００は、ブロック９０２で受信したポインタ移動のイベントにより、ポインタが位置調節の領域と交差するかどうかを決定する。本発明は、アプリケーション１０８などのコンピュータプログラムが位置調節の領域を定義および使用することができる、インターフェースを保持する。本発明の諸態様は、コンピュータディスプレイ上のすべての位置調節の領域の形状、場所、およびサイズを追跡する。方法９００は、ポインタの予測される移動と位置調節の領域によって占められた座標位置とを比較することによって、ブロック９０２で受信したポインタ移動のイベントにより、ポインタが位置調節の領域と交差するかどうかを決定することができる。ポインタの予測される移動が位置調節の領域と交差しない場合、方法９００は以下で説明するブロック９２０に進む。反対に、ポインタの予測される移動が位置調節の領域と交差する場合、方法９００はブロック９１４に進む。
【００３８】
ポインタの予測される移動が位置調節の領域と交差することから、本発明の態様はポインタに関する調整された座標位置を計算する。ブロック９１４では、調整された座標位置を計算する。本発明に従って調整されたポインタ位置を計算するための方法の一実施形態については、図１０〜１２を参照しながら以下で説明する。
【００３９】
ブロック９１６では、ポインタ位置決め方法９００は、ポインタの予測される座標位置をブロック９１４で計算され、調整された座標位置に置き換える。ブロック９１６では、方法は、本技術分野で一般に知られるソフトウェアエンジニアリングの技法を使用して、調整された座標位置をオペレーティングシステム１０４に送信する。またブロック９１６では、方法９００は、ＧＵＩオブジェクトに位置調節を行う場合に本発明を実装するコンピュータプログラムが視覚、聴覚、または触覚のフィードバックをユーザに提供することができるように、ポインタが位置調節の領域と交差したかどうかを示す情報をオペレーティングシステム１０４に渡す。
【００４０】
決定ブロック９１８では、ブロック９０２で受信したイベントによりポインタが別の位置調節の領域と交差するかどうかを決定するためのテストを行う。ブロック９１２では上述したように、方法９００は、ポインタの予測される移動を、既存の位置調節の領域の形状、場所、およびサイズと比較することによって、イベントによりポインタが位置調節の領域と交差するかどうかを決定する。したがって、ポインタイベントによりポインタが位置調節の領域と交差する場合、交差する付近で調整量の計算を実行する。ポインタの予測される移動が別の位置調節の領域と交差する場合、方法９００はブロック９１４に戻り、すべての位置調節の領域でポインタ移動を調整するまで、ブロック９１４から９１８を繰り返す。反対に、ポインタの予測される移動が別のの位置調節の領域と交差しない場合、方法９００はブロック９２０に進む。
【００４１】
ブロック９２０では、ポインタを、ブロック９１４で計算された座標位置で表示するためにレンダリングする。コンピュータディスプレイ上で表示するためにポインタをレンダリングするための既存のシステムは当事業者にとって周知であるため、ポインタレンダリングプロセスは本明細書では説明しない。そして、ブロック９２２では、ポインタ位置決め方法９００を終了する。
【００４２】
本発明の諸実施形態は図９に示された方法に限定されるものでないことを理解されたい。一部の実施形態は、追加の動作を含むこと、または図９に示された動作のうちの一部を不要とすることができる。例えば、ポインタ移動をポインタの速度に関係なく調整することができる。本実施例では、予測されるポインタ移動が速度しきい値内にあるかどうかを決定するブロック９０８を不要とすることになる。
【００４３】
図１０は、本発明に従って形成された計算方法１０００の例示的一実施形態を例示するフロー図である。次に、図１〜９および付随する説明を引き続き参照しながら、図１０に例示された例示的計算方法１０００について説明する。計算方法１０００はブロック１００２で開始され、方法１０００は、ポインタが位置調節の領域と交差する座標位置を決定する。上述のように、本発明の諸態様は、ポインタの現在および予測される座標位置を受信し、位置調節の領域のサイズ、形状、および場所を追跡する。方法１０００はこの情報を利用し、本技術分野で一般に知られている数学の関数およびコンピュータに実装されたルーチンを使用して、ポインタが位置調節の領域と交差する座標位置を計算することができる。
【００４４】
ブロック１００４では、ポインタの予測される移動を方向の構成要素に分解する。ポインタなどのあらゆるエンティティの移動を、ベクトルとして数学的に表現することができる。本技術分野または他の技術者であればわかるように、ベクトルとは大きさおよび方向の両方を有する量のことである。二次元環境では、ポインタ移動を、それぞれ垂直方向および水平方向でのポインタ位置の変化を計算することができる、水平の構成要素および垂直の構成要素に分解することができる。
【００４５】
ブロック１００６では、計算方法１０００は、ポインタ移動の方向の構成要素を選択する。選択された各方向の構成要素について、計算方法１０００は構成要素の方向におけるポインタの予測される移動を調整する。便宜上、本明細書の説明の多くは、調整が垂直方向および水平方向で実行される２次元環境との関連において提供される。しかしながら、本発明は３次元環境などの他の環境でも適用可能であることを理解されたい。本明細書の２次元環境に関する言及および例は単なる例示であって、本発明の適用範囲を制限するものと解釈すべきではない。
【００４６】
ブロック１００８では、計算方法１０００は、ポインタが交差すると予測される位置調節の領域におけるポインタ移動に対する抵抗を定量化する、方向の摩擦曲線（ｄｉｒｅｃｔｉｏｎａｌ  ｆｒｉｃｔｉｏｎ  ｃｕｒｖｅ）を取得する。ポインタ移動を調整する量は、（１）摩擦因数、（２）位置調節の領域サイズ、および（３）摩擦曲線の形状の、３つの変数に依存する。図３〜４を参照しながら上述したように、摩擦因数は、ポインタ移動に対する各ピクセルの抵抗を定量化する変数である。ピクセルがポインタ移動に抵抗する度合い（すなわち、摩擦因数）は、ＧＵＩの目的に依存して変化する可能性がある。また、摩擦因数は、ポインタ移動の属性に依存しても変化する可能性がある。例えば、迅速なポインタ移動を生成しているユーザは、ポインタをターゲット上に配置しようと試みている確率が低い。ポインタ移動に対する抵抗は、ポインタ速度などの別の変数に依存する可能性がある。位置調節の領域サイズ（すなわち、構成要素の方向のピクセル数）は、位置調節の領域が広くなるほど、より狭い位置調節の領域よりもポインタ移動に対する抵抗の合計が大きくなるという点で、ポインタ移動の調整に影響を与える。摩擦曲線の例示を図１１〜１３に例示し、および以下でより詳細に説明する。要約すると、摩擦曲線は、位置調節の領域に割り当てられた摩擦因数に対する、位置調節の領域のサイズをプロットするものであることから、ポインタ移動への必要な調整を容易に計算できる。
【００４７】
例示の目的で、図１１〜１３には、代表的な方向の摩擦曲線を例示する。図１１に例示された例では、位置調節の領域サイズ（すなわち、構成要素の方向のピクセル数）をｘ軸上にプロットし、および摩擦因数をｙ軸上にプロットする。図１１は、一定の方向の摩擦曲線１１００、すなわち、ポインタ移動の方向の摩擦曲線に対する一定の抵抗を例示する。図９を参照しながら上たように、本発明は、アプリケーション１０８などのコンピュータプログラムが、異なるサイズ、形状、および場所の位置調節の領域を定義することができるようにするものである。また、図４を参照しながら上述したように、位置調節の領域は、その摩擦因数に割り当てられた異なる値で定義することが可能であり、摩擦因数によって開発者はコンピュータプログラムのニーズに合致して位置調節の領域をカスタマイズすることができる。本発明の代替実施形態では、ポインタの速度は位置調節の領域内で上昇する。本実施形態では、位置調節の領域に割り当てられる摩擦因数は、線形なポインタ移動を生成するコンピュータディスプレイの領域に割り当てられる摩擦因数よりも小さい。通常、線形なポインタ移動を生成するコンピュータディスプレイの領域には、摩擦因数の１が割り当てられる。したがって、値が１よりも大きい摩擦因数はポインタ移動に対する抵抗を作成することになり、および１よりも小さい値はポインタの速度を上昇させることになる。本発明の諸態様は、位置調節の領域の属性を追跡し、および方向の摩擦曲線１１００などの摩擦曲線を生成する。
【００４８】
図１２は、位置調節の領域におけるポインタ移動に対する抵抗が位置調節の領域におけるポインタの場所に依存して変化するという点で、線形でない摩擦曲線１２００を示す図である。図１１と同様に、位置調節の領域のサイズ（すなわち、構成要素の方向のピクセル数）をｘ軸上にプロットし、および位置調節の領域に割り当てられた摩擦因数をｙ軸上にプロットする。本発明の一実施形態では、コンピュータプログラムが非線形な摩擦因数を使用して位置調節の領域を定義することができる。ここでも、本発明の諸態様は、位置調節の領域に割り当てられた属性を追跡し、および適切な方向の摩擦曲線を生成する。
【００４９】
図１０に戻ると、ブロック１０１０で計算方法１０００は、ブロック１００８で取得した方向の摩擦曲線の下にある全領域を計算する。以下でより詳細に説明するように、方向の摩擦曲線の下にある領域は、位置調節の領域の１つの構成要素の方向にわたるポインタ移動に対する全抵抗の測度である。一部の場合では、ポインタ移動を、方向の摩擦曲線の下の全領域によって調整することになる。他の場合では、方向の摩擦曲線の下の領域の一部を使用して、調整量を計算する。
【００５０】
決定ブロック１０１２では、ブロック１０１０で計算された、方向の摩擦曲線の下の領域が、ポインタ移動の選択された方向の構成要素よりも大きいかどうかを決定するためのテストを実行する。方向の摩擦曲線の下の領域がポインタ移動の選択された方向の構成要素よりも大きい場合、ポインタ移動の調整後、ポインタは位置調節の領域内に留まったままとなる。この場合では、方向の摩擦曲線の下の領域の一部を使用して、調整量を計算する。反対に、方向の摩擦曲線の下の領域がポインタ移動の選択された方向の構成要素よりも大きくない場合、ポインタは位置調節の領域の外に移動することになる。この場合では、ポインタ移動に対する全抵抗を表現する、方向の摩擦曲線の下の全領域が調整量である。方向摩擦曲線の下の領域がポインタ移動の選択された方向の構成要素よりも大きい場合、計算方法１０００は以下で説明するブロック１０１６に進む。反対に、方向の摩擦曲線の下の領域がポインタ移動の選択された方向の構成要素よりも大きくない場合、計算方法１０００はブロック１０１４に進む。
【００５１】
ブロック１０１４では、計算方法１０００は、選択された構成要素の方向へのポインタ移動を方向の摩擦曲線の下の全領域により減らす。例えば、長さが１０ピクセルの位置調節の領域と交差した後のポインタの予測される移動が５０ピクセルであり、および方向の摩擦曲線の下の領域が３０ユニットの場合、構成要素の方向での最終的なポインタ移動は、２０ピクセル（５０ピクセル−３０ピクセル＝２０ピクセル）に位置調節の領域の長さを加えたものである。位置調節の領域は１０ピクセルであるため、合計のポインタ移動は３０ピクセル（２０ピクセル＋１０ピクセル＝３０ピクセル）である。そして、方法１０００は、以下で詳細に説明するブロック１０１８に進む。
【００５２】
計算方法１０００がブロック１０１６に到達した場合、方向の摩擦曲線の下の領域は選択された構成要素の方向でのポインタ移動よりも大きい。この状況では、方向の摩擦曲線の下の領域の一部のみを使用して調整領域を計算する。図１１〜１２を参照しながら上述したように、位置調節の領域のサイズ（すなわち、構成要素の方向のピクセル数）を方向の摩擦曲線のｘ軸上にプロットする。ブロック１０１６では、計算方法１０００が、方向の摩擦曲線の下の領域が選択された構成要素の方向でのポインタの予測される移動に等しい、ｘ軸上のポイントを決定する。このポイントの前の、方向の摩擦曲線の下の領域を使用して、調整量を計算する。
【００５３】
ブロック１０１６での調整量の計算について、一例を用いて最も適切に説明する。図１３は、図１１に示された方向の摩擦曲線１１００を例示する図である。上述のように、方向の摩擦曲線１１００は、位置調節の領域のサイズ（すなわち構成要素の方向のピクセル数）をｘ軸上にプロットし、摩擦因数をｙ軸上にプロットする。これらの変数が合わせて、一構成要素の方向でのポインタ移動に対する一定の抵抗が生成される方向の摩擦曲線１１００を形成する。図１３に例示するように、方向の摩擦曲線１１００の下の全領域１３００は、５０ユニットに等しい（５摩擦因数×１０ピクセル＝５０ユニット）。位置調節の領域と交差した後の予測されるポインタ移動が４０ピクセルの場合、調整量は３２ピクセルに等しい。上述のように、計算方法１０００は、曲線の下の領域がポインタの予測される移動に等しい、方向の摩擦曲線１１００のｘ軸上のポイント１３０２を決定する。図１３に例示する例では、方向の摩擦曲線の下の領域が選択された構成要素の方向の予測される移動に等しい、ｘ軸上のポイント１３０２は、８ピクセルである。方向の摩擦曲線の下の領域が予測される移動に等しい、ｘ軸上のポイント１３０２を、予測される移動から差し引いて、調整量を取得する。図１３に例示する例では、調整量は３２ピクセルに等しく（４０ピクセル−８ピクセル＝３２ピクセル）、選択された構成要素の方向での最終的なポインタ移動は８ピクセルである（４０ピクセル−３２ピクセル＝８ピクセル）。
【００５４】
図１０に戻ると、決定ブロック１０１８では、ポインタ移動のすべての方向の構成要素が調整されたかどうかを決定するテストを実行する。調整されていないポインタ移動の方向の構成要素がある場合、計算方法１０００はブロック１００８に戻り、各構成要素の方向での調整を実行するまで、ブロック１００８から１０１８を繰り返す。反対に、すべての必要な調整が実行されていれば、方法１０００はブロック１０２０に進んで終了する。
【００５５】
本発明の実装は図１０に示された方法に限定されるものでないことを理解されたい。他の実施形態は、追加の動作を含むこと、または図１０に示す動作の一部を置き換えることが可能である。例えば本発明の一実施形態では、位置調節の領域内でポインタの速度を上昇させる。この実施形態では、位置調節の領域に割り当てられる摩擦因数は、線形なポインタ移動を生成するコンピュータディスプレイの領域に割り当てられる摩擦因数よりも小さい。計算方法１０００は、位置調節の領域内でポインタ速度を上昇させる値を反映するように変更することができる。
【００５６】
例示の目的で、高度に拡大されたピクセルのセットを含むコンピュータディスプレイ１４００の代表的な断片を図１４に示す。より具体的に言えば、コンピュータディスプレイ１４００のサンプルの断片は、ピクセル１４０２、１４０４、１４０６、１４０８、１４１０、ポインタ２０８、およびポインタ２０８の移動を表す経路１４１２を含む。図１４に示されるように、入力装置１１０などのユーザが採用した入力装置を使用して、ピクセル１４０２、１４０４、および１４０６を横切ってポインタ２０８を再配置する。ピクセル１４０４および１４０６が３×３ピクセルの位置調節の領域１４１４の一部であるため、ピクセル１４０４および１４０６を横切るポインタ２０８の移動は、ユーザが生成する入力には比例しない。図９〜１０を参照しながら上述したように、ポインタ２０８が位置調節の領域１４１４などの位置調節の領域と交差すると、ポインタ調整方法９００（図９）および計算方法１０００（図１０）がポインタ２０８の移動を調整して、ユーザがＧＵＩオブジェクトの位置調節を行うのを助ける。調整量を決定するために、計算方法１０００は、ポインタ２０８が移動すると予測される各方向でのポインタ移動に対する抵抗を定量化する、方向の摩擦曲線を取得する。図１４に例示する例では、ポインタ２０８は、水平（例えばｘ方向の構成要素）および垂直（例えばｙ方向の構成要素）の両方の方向に移動すると予測される。各構成要素の方向でのポインタ移動に対する抵抗が一定であるため、計算方法１０００によって取得される方向の摩擦曲線は線形である。
【００５７】
図１４では、経路１４１２が、単一のポインタ２０８の移動のイベントによって生成されるポインタ２０８の移動を表現する。図１４に例示するように、ポインタ２０８の最終的な場所は位置調節の領域１４１４の内部である。図１０を参照しながら上述したように（ブロック１０１２〜１０１６）、ポインタ２０８の最終的な場所が位置調節の領域の内部である場合、方向の摩擦曲線の下の領域は、各構成要素の方向でのポインタ２０８の予測される移動よりも大きい。この状況では、各方向の摩擦曲線の下の領域の一部のみを使用して調整量を計算する。反対に、ポインタ２０８の最終的な場所が位置調節の領域１４１４の外部である場合、方向の摩擦曲線の下の全領域を調整量として使用することになる。
【００５８】
以上、本発明の現在の好ましい実施形態について例示および説明してきたが、添付の特許請求の範囲内であれば、本明細書に具体的に記載された以外の方法で本発明を実施できることを理解されよう。
【００５９】
排他的特性または特権が請求される本発明の諸実施形態は、添付の特許請求の範囲に従って定義される。
【図面の簡単な説明】
【００６０】
【図１】本発明に従ってポインタ移動を調整するのに好適な移動調整モジュールを含む、コンピュータ装置の構成要素を示すブロック図である。
【図２】従来技術に従ったポインタ移動を例示する、コンピュータディスプレイの断片を表す図である。
【図３】コンピュータディスプレイの１つのピクセルが本発明に従って位置調節の領域として指定された、図２に例示されたコンピュータディスプレイの断片を表す図である。
【図４】コンピュータディスプレイの１つのピクセルが本発明に従って位置調節の領域として指定された、図２に例示されたコンピュータディスプレイの断片の代替を表す図である。
【図５】従来技術に従ったＧＵＩオブジェクトの位置調節を例示するスライダを表す図である。
【図６】本発明に従った位置調節の領域を含む、図５のスライダを表す図である。
【図７】従来技術に従ったＧＵＩオブジェクトの位置調節を例示するＧＵＩオブジェクトを表す図である。
【図８】本発明に従った位置調節の領域を含む、図７に例示されたＧＵＩオブジェクトを示す図である。
【図９】本発明に従ったポインタ移動を調整する方法を決定する、ポインタ位置決め方法の例示的な一実施形態を示すフロー図である。
【図１０】図９での使用に好適な、ポインタが位置調節の領域と交差した場合に調整されたポインタ位置を計算する計算方法の例示的な一実施形態を示すフロー図である。
【図１１】本発明に従ったポインタ移動に対する抵抗の計算を例示する、代表的な方向の摩擦曲線を表す図である。
【図１２】本発明に従ったポインタ移動に対する抵抗の計算を例示する、代表的な方向の摩擦曲線を表す図である。
【図１３】本発明に従ったポインタ移動に対する抵抗の計算を例示する、図１１に例示された方向の摩擦曲線を表す図である。
【図１４】本発明に従った位置調節の領域におけるポインタ移動を例示するコンピュータディスプレイの断片を表す図である。
【図１】
2005317003.tif 000003
【図２】
2005317003.tif 000004
【図３】
2005317003.tif 000005
【図４】
2005317003.tif 000006
【図５】
2005317003.tif 000007
【図６】
2005317003.tif 000008
【図７】
2005317003.tif 000009
【図８】
2005317003.tif 000010
【図９】
2005317003.tif 000011
【図１０】
2005317003.tif 000012
【図１１】
2005317003.tif 000013
【図１２】
2005317003.tif 000014
【図１３】
2005317003.tif 000015
【図１４】
2005317003.tif 000016
【外国語明細書】
2005317003000001.pdf