(57)【要約】【課題】タッチ・センシティブ・デバイス上でジェスチャが実行される際に、改良の必要性が存在する。【解決手段】タッチ入力を処理するための方法およびシステムが、開示される。本発明は、一態様では、マルチポイント・タッチ・スクリーンなどのマルチポイント感知デバイスから、マルチポイント感知デバイスに関連するタッチ入力に属するデータを読み取ること、およびマルチポイント感知デバイスからのデータに基づき、少なくとも１つのマルチポイント・ジェスチャを識別することを含む。【選択図】図１
2010170573.tif 000002
【特許請求の範囲】
【請求項１】
タッチ感応デバイス上に表示されるクラフィカル・ユーザ・インターフェース（ＧＵＩ）オブジェクトを操作する方法であって、
前記タッチ感応デバイスのマルチポイント・タッチ・スクリーン上の１つ以上のＧＵＩオブジェクトを表示するステップを備え、該タッチ・スクリーンは、前記タッチ感応デバイスのための主要表示を提供しており、
さらに、
表示された１つ以上の前記ＧＵＩオブジェクト上またはその近傍での同時の前記マルチポイント・タッチ・スクリーン上の１つ以上の異なる点におけるマルチプル・タッチを検出するステップと、
前記ＧＵＩオブジェクトそれぞれに対するマルチプル・タッチの関連ランキングに応じて、前記マルチプル・タッチを、前記表示された複数のＧＵＩオブジェクトの１つと関連付けるステップと、
前記関連付けられたＧＵＩオブジェクトで特定の操作をおこなう単一のジェスチャとして、前記マルチプル・タッチを解釈するステップであって、前記操作は前記関連付けられたＧＵＩオブジェクトに基づき決定される当該ステップとを含むことを特徴とする方法。
【請求項２】
前記ＧＵＩオブジェクトと相互作用をするステップをさらに含み、前記マルチプル・タッチは、前記ＧＵＩオブジェクトに対し、前記単一のジェスチャと関係する機能に従って関連付けられることを特徴とする請求項１に記載の方法。
【請求項３】
前記ＧＵＩオブジェクトと相互作用をするステップをさらに含み、前記マルチプル・タッチは、前記ＧＵＩオブジェクトに対し、前記単一のジェスチャと整合して関連付けられることを特徴とする請求項１に記載の方法。
【請求項４】
表示されるクラフィカル・ユーザ・インターフェース（ＧＵＩ）オブジェクトを直接操作するコンピュータシステムであって、
１つ以上のＧＵＩオブジェクトを表示し、前記コンピュータシステムのための主要表示を提供するようになっているタッチ・スクリーンであって、
１つ以上の前記表示されたＧＵＩオブジェクト上またはその近傍での同時の前記タッチ・スクリーン上の１つ以上の異なる点における複数のタッチを検出するタッチ・スクリーンと、
前記タッチ・スクリーンに接続され、前記ＧＵＩオブジェクトそれぞれに対するマルチプル・タッチの関連ランキングに応じて、前記マルチプル・タッチを、前記表示された複数のＧＵＩオブジェクトと関連付け、そして前記関連付けられたＧＵＩオブジェクトで特定の操作をおこなう単一のジェスチャとして前記タッチを解釈するようにプログラムされたプロセッサとを備えたことを特徴とするコンピュータシステム。
【請求項５】
前記プロセッサがさらに、前記主要表示を修正して、前記タッチが前記単一のジェスチャと関係する機能に従って関連付けられるという、前記単一のジェスチャと前記ＧＵＩオブジェクトとの間の相互作用を形成するようにプログラムされていることを特徴とする請求項４に記載のコンピュータシステム。
【請求項６】
前記プロセッサがさらに、前記単一のジェスチャと、前記タッチと関連付けられるＧＵＩオブジェクト間の整合した相互作用を形成するように前記主要表示を修正するようにプログラムされていることを特徴とする請求項４に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、全体として、タッチ・センシティブ・デバイスに関連するジェスチャリングに関する。
【背景技術】
【０００２】
（関連技術の説明）
今日、コンピュータ・システムにおける諸操作を実行するための多くのスタイルの入力デバイスが存在する。諸操作は、概ね、カーソルを動かすことや、ディスプレイ・スクリーン上で選択を行うことに対応する。また、操作には、ページング、スクロール、パン、ズーム、その他も含まれる。例として、入力デバイスには、ボタン、スイッチ、キーボード、マウス、トラックボール、タッチ・パッド、ジョイスティック、タッチ・スクリーンなどが含まれることが可能である。以上のデバイスのそれぞれは、コンピュータ・システムを設計する際に考慮される利点と欠点を有する。
【０００３】
ボタンやスイッチは、一般に、機械的な性質を有し、カーソルの動き、および選択を行うことに関して、限られたコントロールを提供する。例えば、ボタンやスイッチは、一般に、特定の方向にカーソルを動かすこと（例えば、矢印キー）、または特定の選択を行うこと（例えば、入力、削除、数、その他）に専用である。
【０００４】
マウスでは、入力ポインタの動きは、ユーザが、マウスを表面に沿って動かすにつれ、マウスの相対的動きに対応する。トラックボールでは、入力ポインタの動きは、ユーザが、筐体内のボールを動かすにつれ、ボールの相対的動きに対応する。また、マウスおよびトラックボールは、選択を行うための１つまたは複数のボタンも含む。また、マウスは、ユーザが、単にホイールを前方または後方に回転させることによってＧＵＩの中を移動することができるようにするスクロール・ホイールも含むことが可能である。
【０００５】
タッチ・パッドでは、入力ポインタの動きは、ユーザの指が、タッチ・パッドの表面に沿って動かされるにつれ、その指（またはスタイラス）の相対的動きに対応する。他方、タッチ・スクリーンは、スクリーンを覆うタッチ・センシティブな透明パネルを有する一種のディスプレイ・スクリーンである。タッチ・スクリーンを使用する際、ユーザは、スクリーン上のＧＵＩオブジェクトを直接にポイントする（通常、スタイラスまたは指で）ことにより、ディスプレイ・スクリーン上で選択を行う。
【０００６】
さらなる機能を提供するため、以上の入力デバイスのいくつかを使用してジェスチャが実施されてきた。例として、タッチ・パッドでは、タッチ・パッドの表面上で１回または複数回のタップが検出されると、選択が行われる。一部のケースでは、タッチ・パッドの任意の部分をタップし、他のケースでは、タッチ・パッドの専用の部分をタップすることが可能である。選択に加え、タッチ・パッドの縁における指の動きを使用することにより、スクロールを開始させることもる。
【０００７】
アップルコンピュータ株式会社に譲渡された米国特許第５，６１２，７１９号と米国特許第５，５９０，２１９号が、ジェスチャリングの他のいくつかの用法を説明している。米国特許第５，６１２，７１９号は、スクリーン上で、ボタンの上、またはボタン近くで行われた、少なくとも２つの異なるボタン・ジェスチャに応答するオンスクリーン・ボタンを開示する。米国特許第５，５９０，２１９号は、コンピュータ・システムのディスプレイ・スクリーン上で楕円型のジェスチャを認識するための方法を開示する。
【０００８】
最近、より高度なジェスチャが実装されている。例えば、スクロールは、タッチ・パッド上に４本の指を置いて、スクロール・ジェスチャを認識させ、その後、タッチ・パッド上でそれらの指を動かして、スクロール・イベントを実行することによって開始される。しかし、それらの高度なジェスチャを実施する方法は、いくつかの欠点を有する。例として、ジェスチャは、設定されると、ユーザが、ジェスチャ状態をリセットするまで、変更されることがない。例えば、タッチ・パッドでは、４本の指がスクロールし、ユーザが、４本の指が認識された後に、親指を置いた場合、４本の指と親指を含む、その新たなジェスチャに関連するいずれのアクションも、手全体が、タッチ・パッドから持ち上げられて離され、再び置かれる（例えば、リセットされる）まで、実行されない。簡単に述べると、ユーザは、ジェスチャ状態を中途で変更することができない。同様の文脈で、任意の所与の時点で、１つのジェスチャだけが実行される。つまり、複数のジェスチャは、同時に実行されることができない。
【０００９】
以上に基づき、ジェスチャが、タッチ・センシティブ・デバイス上で実行される形に、改良の必要性が存在する。
【発明の概要】
【発明が解決しようとする課題】
【００１０】
本発明は、一実施態様では、タッチ入力を処理するためのコンピュータによって実施される方法に関する。方法は、マルチポイント・タッチ・スクリーンからデータを読み取ることを含む。データは、タッチ・スクリーンに関連するタッチ入力に属する。また、方法は、マルチポイント・タッチ・スクリーンからのデータに基づき、少なくとも１つのマルチポイント・ジェスチャを識別することも含む。
【００１１】
本発明は、別の実施態様では、ジェスチャ方法に関する。方法は、タッチ・センシティブ面上の異なるポイントで複数のタッチを同時に検出することを含む。また、方法は、複数のタッチを、同時に生じる少なくとも２つの別々のジェスチャ入力に分離することも含む。各ジェスチャ入力は、ズーム、パン、回転などの、異なる機能を有する。
【００１２】
本発明は、別の実施態様では、ジェスチャ方法に関する。方法は、タッチ・センシティブ・デバイスに関して同時並行に実行された複数のジェスチャを同時並行に検出することを含む。また、方法は、検出されたジェスチャのそれぞれに関して、異なるコマンドを生成することも含む。
【００１３】
本発明は、別の実施態様では、ジェスチャ方法に関する。方法は、ディスプレイ・スクリーン上でグラフィック・イメージをディスプレイすることを含む。また、方法は、タッチ・センシティブ・デバイス上で複数のタッチを同時に検出することも含む。方法は、検出された複数のタッチを、ディスプレイ・スクリーン上に提示されたグラフィック・イメージに結び付けることをさらに含む。
【００１４】
本発明は、別の実施態様では、コンピューティング・システムのマルチポイント・タッチ・スクリーンを介して、ディスプレイ上にユーザ・インタフェース要素を呼び出す方法に関する。方法は、マルチポイント・タッチ・スクリーンと接触する２つ以上のオブジェクトの同時の存在を検出して、分析することを含む。また、方法は、コンピューティング・システムのユーザによる対話のためにディスプレイ上にディスプレイされるべきユーザ・インタフェース・ツールを、少なくともある程度、その分析することに基づき、複数の利用可能なツールから選択することも含む。方法は、マルチポイント・タッチ・スクリーンに関連するオブジェクトのさらなる動きに少なくともある程度、基づき、インタフェース・ツールを制御することをさらに含む。
【００１５】
本発明は、別の実施態様では、タッチ・ベースの方法に関する。方法は、マルチポイント感知デバイスの上で行われるユーザ入力を検出することを含む。ユーザ入力は、１つまたは複数の入力を含む。各入力は、一意識別子を有する。また、方法は、ユーザ入力中、ユーザ入力が１つの一意識別子を含む場合、ユーザ入力をトラッキング入力または選択入力として分類し、あるいはユーザ入力が、少なくとも２つの一意識別子を含む場合、ユーザ入力をジェスチャ入力として分類することも含む。方法は、ユーザ入力中、ユーザ入力がトラッキング入力または選択入力として分類されると、トラッキングまたは選択を実行することをさらに含む。方法は、ユーザ入力中、ユーザ入力が、ジェスチャ入力として分類されると、１つまたは複数の制御アクションを実行することをさらに含む。制御アクションは、少なくとも２つの一意識別子の間に生じた変化に少なくともある程度、基づく。
【００１６】
本発明は、別の実施態様では、タッチ・ベースの方法に関する。方法は、ディスプレイ上でＧＵＩを出力することを含む。また、方法は、タッチ・センシティブ・デバイス上でユーザ入力を検出することも含む。方法は、トラッキング、選択、またはジェスチャリングを示す特性に関してユーザ入力を分析することをさらに含む。方法は、ユーザ入力をトラッキング入力、選択入力、またはジェスチャ入力として分類することをさらに含む。方法は、ユーザ入力が、トラッキング入力または選択入力として分類されると、ＧＵＩにおいてトラッキングまたは選択を実行することをさらに含む。さらに、方法は、ユーザ入力が、ジェスチャ入力として分類されると、ＧＵＩにおいて制御アクションを実行することを含み、アクションはその特定のジェスチャ入力に基づく。
【００１７】
本発明は、別の実施態様では、タッチ・ベースの方法に関する。方法は、初期タッチ・イメージをキャプチャすることを含む。また、方法は、タッチ・イメージに基づいてタッチ・モードを判定することも含む。方法は、次のタッチ・イメージをキャプチャすることをさらに含む。方法は、初期タッチ・イメージと次のタッチ・イメージの間でタッチ・モードが変化したかどうかを判定することをさらに含む。方法は、タッチ・モードが変化している場合、次のタッチ・イメージを初期タッチ・イメージとして設定することと、その新たな初期タッチ・イメージに基づいてタッチ・モードを判定することをさらに含む。さらに、方法は、タッチ・モードがそのままであった場合、タッチ・イメージを比較して、その比較に基づく制御機能を実行することを含む。
【００１８】
本発明は、別の実施態様では、タッチ入力を処理するためのコンピュータによって実施される方法に関する。方法は、タッチ・スクリーンからデータを読み取ることを含む。データは、タッチ・スクリーンに関連するタッチ入力に属し、タッチ・スクリーンは、マルチポイント能力を有する。また、方法は、データをフィーチャの集合に変換することも含む。方法は、フィーチャを分類して、フィーチャを１つまたは複数のフィーチャ・グループにグループ化することをさらに含む。方法は、フィーチャ・グループの重要なパラメータを計算して、フィーチャ・グループを、ディスプレイ上のユーザ・インタフェース要素に関連付けることをさらに含む。
【００１９】
本発明は、別の実施態様では、コンピュータによって実施される方法に関する。方法は、グラフィック・イメージを出力することを含む。また、方法は、グラフィック・イメージの上でマルチポイント・ジェスチャ入力を受け取ることも含む。方法は、マルチポイント・ジェスチャ入力に基づき、その入力と調和してグラフィック・イメージを変更することをさらに含む。
【００２０】
本発明は、別の実施態様では、タッチ・ベースの方法に関する。方法は、第１の領域の上でジェスチャ入力を受け取ることを含む。また、方法は、第１の領域の上でジェスチャ入力が受け取られると、第１のコマンドを生成することも含む。方法は、第２の領域の上で同一のジェスチャ入力を受け取ることをさらに含む。方法は、第２の領域の上で同一のジェスチャ入力が受け取られると、第２のコマンドを生成することをさらに含む。第２のコマンドは、第１のコマンドとは異なる。
【００２１】
本発明は、別の実施態様では、複数のジェスチャ入力を認識するための方法に関する。方法は、タッチ・センシティブ面上でマルチタッチ・ジェスチャ・ストロークを受け取ることを含む。マルチタッチ・ジェスチャ・ストロークは、タッチ・センシティブ面上で継続的な接触を維持する。また、方法は、マルチタッチ・ジェスチャ・ストローク中に第１のジェスチャ入力を認識することも含む。方法は、マルチタッチ・ジェスチャ・ストローク中に第２のジェスチャ入力を認識することをさらに含む。
【００２２】
本発明は、別の実施態様では、コンピュータによって実施される方法に関する。方法は、タッチ・センシティブ・デバイス上で複数のタッチを検出することを含む。また、方法は、複数のタッチで１つまたは複数のタッチ・グループを形成することも含む。方法は、複数のタッチ・グループの各グループの動きと、各グループ内の動きを監視することをさらに含む。方法は、タッチ・グループ内のタッチが動かされた場合、またはタッチ・グループ全体が動かされた場合、制御信号を生成することをさらに含む。
【００２３】
前述した実施態様のそれぞれにおいて、方法は、タッチ・スクリーンまたはタッチ・パッドなどのタッチ・ベースの入力デバイスを使用して、より詳細には、マルチポイント・タッチ・ベースの入力デバイスを使用して、さらに詳細には、マルチポイント・タッチ・スクリーンを使用して実施されることが可能であることに留意されたい。また、ジェスチャ、ジェスチャ・モード、ジェスチャ入力などは、詳細な説明で以下に説明されるジェスチャ、ジェスチャ・モード、ジェスチャ入力などのいずれにも対応することが可能であることにも留意されたい。例えば、ジェスチャは、ズーム、パン、スクロール、回転、拡大、浮動制御、ズーム目標、ページング、慣性、キーボード入力、ホイール入力、および／または以上に類することに関連することが可能である。
【図面の簡単な説明】
【００２４】
【図１】本発明の一実施形態によるコンピュータ・システムのブロック図である。
【図２】本発明の一実施形態によるマルチポイント処理方法を示す図である。
【図３】本発明の一実施形態によるイメージを示す図である。
【図４】本発明の一実施形態によるフィーチャのグループを示す図である。
【図５】本発明の一実施形態によるパラメータ計算方法を示す図である。
【図６Ａ】本発明の一実施形態による回転ジェスチャを示す図である。
【図６Ｂ】本発明の一実施形態による回転ジェスチャを示す図である。
【図６Ｃ】本発明の一実施形態による回転ジェスチャを示す図である。
【図６Ｄ】本発明の一実施形態による回転ジェスチャを示す図である。
【図６Ｅ】本発明の一実施形態による回転ジェスチャを示す図である。
【図６Ｆ】本発明の一実施形態による回転ジェスチャを示す図である。
【図６Ｇ】本発明の一実施形態による回転ジェスチャを示す図である。
【図７】本発明の一実施形態によるタッチ・ベースの方法を示す図である。
【図８】本発明の一実施形態によるタッチ・ベースの方法を示す図である。
【図９】本発明の一実施形態によるタッチ・ベースの方法を示す図である。
【図１０】本発明の一実施形態によるズーム・ジェスチャ方法を示す図である。
【図１１Ａ】本発明の一実施形態によるズーム・シーケンスを示す図である。
【図１１Ｂ】本発明の一実施形態によるズーム・シーケンスを示す図である。
【図１１Ｃ】本発明の一実施形態によるズーム・シーケンスを示す図である。
【図１１Ｄ】本発明の一実施形態によるズーム・シーケンスを示す図である。
【図１１Ｅ】本発明の一実施形態によるズーム・シーケンスを示す図である。
【図１１Ｆ】本発明の一実施形態によるズーム・シーケンスを示す図である。
【図１１Ｇ】本発明の一実施形態によるズーム・シーケンスを示す図である。
【図１１Ｈ】本発明の一実施形態によるズーム・シーケンスを示す図である。
【図１２】本発明の一実施形態によるパン方法を示す図である。
【図１３Ａ】本発明の一実施形態によるパン・シーケンスを示す図である。
【図１３Ｂ】本発明の一実施形態によるパン・シーケンスを示す図である。
【図１３Ｃ】本発明の一実施形態によるパン・シーケンスを示す図である。
【図１３Ｄ】本発明の一実施形態によるパン・シーケンスを示す図である。
【図１４】本発明の一実施形態による回転方法を示す図である。
【図１５Ａ】本発明の一実施形態による回転シーケンスを示す図である。
【図１５Ｂ】本発明の一実施形態による回転シーケンスを示す図である。
【図１５Ｃ】本発明の一実施形態による回転シーケンスを示す図である。
【図１６】本発明の一実施形態によるＧＵＩ操作方法を示す図である。
【図１７Ａ】本発明の一実施形態による浮動制御シーケンスを示す図である。
【図１７Ｂ】本発明の一実施形態による浮動制御シーケンスを示す図である。
【図１７Ｃ】本発明の一実施形態による浮動制御シーケンスを示す図である。
【図１７Ｄ】本発明の一実施形態による浮動制御シーケンスを示す図である。
【図１７Ｅ】本発明の一実施形態による浮動制御シーケンスを示す図である。
【図１８】本発明の一実施形態によるＧＵＩ操作方法を示す図である。
【図１９Ａ】本発明の一実施形態によるズーム目標シーケンスを示す図である。
【図１９Ｂ】本発明の一実施形態によるズーム目標シーケンスを示す図である。
【図１９Ｃ】本発明の一実施形態によるズーム目標シーケンスを示す図である。
【図１９Ｄ】本発明の一実施形態によるズーム目標シーケンスを示す図である。
【図２０】本発明の一実施形態によるＧＵＩ操作方法を示す図である。
【図２１Ａ】本発明の一実施形態によるページ・ターニング・シーケンスを示す図である。
【図２１Ｂ】本発明の一実施形態によるページ・ターニング・シーケンスを示す図である。
【図２１Ｃ】本発明の一実施形態によるページ・ターニング・シーケンスを示す図である。
【図２１Ｄ】本発明の一実施形態によるページ・ターニング・シーケンスを示す図である。
【図２２】本発明の一実施形態によるＧＵＩ操作方法を示す図である。
【図２３Ａ】本発明の一実施形態による慣性シーケンスを示す図である。
【図２３Ｂ】本発明の一実施形態による慣性シーケンスを示す図である。
【図２３Ｃ】本発明の一実施形態による慣性シーケンスを示す図である。
【図２３Ｄ】本発明の一実施形態による慣性シーケンスを示す図である。
【図２４】本発明の一実施形態によるＧＵＩ操作方法を示す図である。
【図２５Ａ】本発明の一実施形態によるキーボード・シーケンスを示す図である。
【図２５Ｂ】本発明の一実施形態によるキーボード・シーケンスを示す図である。
【図２５Ｃ】本発明の一実施形態によるキーボード・シーケンスを示す図である。
【図２５Ｄ】本発明の一実施形態によるキーボード・シーケンスを示す図である。
【図２６】本発明の一実施形態によるＧＵＩ操作方法を示す図である。
【図２７Ａ】本発明の一実施形態によるスクロール・ホイール・シーケンスを示す図である。
【図２７Ｂ】本発明の一実施形態によるスクロール・ホイール・シーケンスを示す図である。
【図２７Ｃ】本発明の一実施形態によるスクロール・ホイール・シーケンスを示す図である。
【図２７Ｄ】本発明の一実施形態によるスクロール・ホイール・シーケンスを示す図である。
【発明を実施するための形態】
【００２５】
本発明のその他の形態および利点は、例として、本発明の諸原理を示す、添付の図面に関連して解釈される、以下の詳細な説明から明白となろう。
【００２６】
本発明は、概ね、ジェスチャに関し、タッチ・センシティブ・デバイスを使用してジェスチャを実施する方法に関する。タッチ・センシティブ・デバイスの例には、タッチ・スクリーンやタッチ・パッドが含まれる。本発明の一態様は、少なくとも２つの同時に行われるジェスチャを認識することに関する。本発明の別の形態は、グラフィック・イメージをディスプレイし、行われる様々なタッチを、そのグラフィック・イメージに結び付けることに関する。本発明の別の形態は、ジェスチャに関連するアクションが同時に実施されることが可能であるように、ジェスチャを即時に認識することに関する。本発明の別の形態は、ジェスチャ入力に基づき、ジェスチャ入力と調和して、ディスプレイされたイメージを変更することに関し、すなわち、ディスプレイされたイメージは、ディスプレイされたイメージがジェスチャ入力を絶えず追うように、ジェスチャ入力の変化とともに絶えず変化する。本発明の別の形態は、入力デバイスに接触している指（または他のオブジェクト）の数に基づく入力モードを実施することに関する。本発明の別の形態は、ジェスチャが、入力デバイスの異なる区域の上で実施された場合、異なる事物を意味する、領域反応性をもたらすことに関する。本発明の別の形態は、タッチ・センシティブ・デバイスのタッチ・センシティブ面と継続的に接触しながら、入力を変化させることに関する。
【００２７】
本発明の以上、およびその他の形態を、図１〜図２７に関連して以下に説明する。しかし、本発明は、それらの限られた実施形態を超えて広がるので、それらの図に関連して本明細書で与えられる詳細な説明は、例示を目的とすることが、当業者には直ちに理解されよう。
【００２８】
図１は、本発明の一実施形態による例示的なコンピュータ・システム５０のブロック図である。コンピュータ・システム５０は、デスクトップ・コンピュータ、ラップトップ・コンピュータ、タブレット・コンピュータ、またはハンドヘルド・コンピュータなどの、パーソナル・コンピュータ・システムに対応する。また、コンピュータ・システムは、セル電話機、ＰＤＡ、専用メディア・プレーヤ、家庭用電子機器などの、コンピューティング・デバイスに対応することも可能である。
【００２９】
図１に示された例示的なコンピュータ・システム５０は、命令を実行し、コンピュータ・システム５０に関連するオペレーションを実行するように構成されたプロセッサ５６を含む。例えば、メモリから取り出された命令を使用して、プロセッサ５６は、例えば、コンピューティング・システム５０のコンポーネント間における入力データと出力データの受信と操作を制御することができる。プロセッサ５６は、単一チップ上、複数のチップ上、または複数の電気コンポーネントに実装される。例えば、専用もしくは組み込み型のプロセッサ、単一目的プロセッサ、コントローラ、ＡＳＩＣなどを含め、様々なアーキテクチャをプロセッサ５６として使用できる。
【００３０】
ほとんどのケースで、プロセッサ５６は、オペレーティング・システムと一緒になって、コンピュータ・コードを実行し、かつデータを生成し使用する。オペレーティング・システムは、一般に、周知であり、さらに詳細に説明することはしない。例として、オペレーティング・システムは、ＯＳ／２、ＤＯＳ、Ｕｎｉｘ（登録商標）、Ｌｉｎｕｘ、Ｐａｌｍ  ＯＳなどとすることが可能である。また、オペレーティング・システムは、限定された目的の器具タイプのコンピューティング・デバイスのために使用されるような、特殊目的のオペレーティング・システムでもよい。オペレーティング・システム、その他のコンピュータ・コード、データは、プロセッサ５６に結合されたメモリ・ブロック５８内に常駐することが可能である。メモリ・ブロック５８は、一般に、コンピュータ・システム５０によって使用されるコンピュータ・コードやデータを格納する場所を提供する。例として、メモリ・ブロック５８には、読取り専用メモリ（ＲＯＭ）、ランダム・アクセス・メモリ（ＲＡＭ）、ハード・ディスク・ドライブ、および／または類似物が含まれる。また、情報は、取り外し可能な記憶媒体上に常駐して、必要とされる際に、コンピュータ・システム５０上に読み込まれる、またはインストールされる。取り外し可能な記憶媒体には、例えば、ＣＤ−ＲＯＭ、ＰＣ−ＣＡＲＤ、メモリ・カード、フロッピー（登録商標）・ディスク、磁気テープ、ネットワーク・コンポーネントが含まれる。
【００３１】
また、コンピュータ・システム５０は、プロセッサ５６に結合されたディスプレイ・デバイス６８も含む。ディスプレイ・デバイス６８は、液晶ディスプレイ（ＬＣＤ）（例えば、能動マトリックス、受動マトリックスなど）であってもよい。代替的に、ディスプレイ・デバイス６８は、モノクロのディスプレイ、カラー・グラフィックス・アダプタ（ＣＧＡ）ディスプレイ、高性能グラフィックス・アダプタ（ＥＧＡ）ディスプレイ、可変グラフィックス・アレイ（ＶＧＡ）ディスプレイ、スーパＶＧＡディスプレイ、陰極線管（ＣＲＴ）などのモニタであってもよい。また、ディスプレイ・デバイスは、プラズマ・ディスプレイ、または電子インクで実現されるディスプレイでもよい。
【００３２】
ディスプレイ・デバイス６８は、概して、コンピュータ・システムのユーザと、オペレーティング・システム、またはオペレーティング・システム上で実行されているアプリケーションとの間で、使いやすいユーザ・インタフェースを提供するグラフィカル・ユーザ・インタフェース（ＧＵＩ）６９をディスプレイするように構成される。一般的に述べると、ＧＵＩ６９は、グラフィック・イメージを伴うプログラム、ファイル、操作オプションを表す。グラフィック・イメージは、ウインドウ、フィールド、ダイアログ・ボックス、メニュー、アイコン、ボタン、カーソル、スクロール・バーなどを含む。そのようなイメージは、事前定義されたレイアウトで配置されるか、またはユーザによって行われる特定のアクションに役立つように動的に作成される。操作中、ユーザは、グラフィック・イメージに関連する諸機能やタスク群を開始するために、様々なグラフィック・イメージを選択し、活性化することができる。例として、ユーザは、ウインドウを開く、閉じる、最小化する、または最大化するボタン、または特定のプログラムを起動するアイコンを選択することができる。ＧＵＩ６９は、さらに、または代替的に、ユーザのためにディスプレイ・デバイス６８上で、非対話型のテキストやグラフィックスなどの情報をディスプレイすることもできる。
【００３３】
また、コンピュータ・システム５０は、プロセッサ５６に結合された入力デバイス７０も含む。入力デバイス７０は、外部世界からコンピュータ・システム５０にデータを転送するように構成される。入力デバイス７０は、例えば、ディスプレイ６８上のＧＵＩ６９に関連してトラッキングを実行し、選択を行うのに使用される。また、入力デバイス７０は、コンピュータ・システム５０においてコマンドを発行するのに使用されることも可能である。入力デバイス７０は、ユーザのタッチからの入力を受け取り、その情報をプロセッサ５６に送るように構成されたタッチ・センシティブ・デバイスを含む。例として、タッチ・センシティブ・デバイスは、タッチ・パッドまたはタッチ・スクリーンに対応する。多くのケースで、タッチ・センシティブ・デバイスは、タッチを認識するとともに、タッチ・センシティブ面上のタッチの位置と大きさも認識する。タッチ感知手段は、タッチをプロセッサ５６に報告し、プロセッサ５６は、そのタッチをプロセッサ５６のプログラミングに従って解釈する。例えば、プロセッサ５６は、特定のタッチに従ってタスクを開始することができる。タッチをローカルで処理し、コンピュータ・システムのメイン・プロセッサに対する要求を減らすのに専用プロセッサを使用してもよい。タッチ・センシティブ・デバイスは、静電容量感知、抵抗感知、表面弾性波感知、圧力感知、光学感知、および／または類似の技術を含むが、以上には限定されない感知技術に基づくことが可能である。さらに、タッチ感知手段は、単一ポイント感知またはマルチポイント感知に基づくことが可能である。単一ポイント感知は、単一のタッチを識別することだけができるのに対して、マルチポイント感知は、同時に生じた複数のタッチを識別することができる。
【００３４】
入力デバイス７０は、ディスプレイ６８の上または前に配置されたタッチ・スクリーンであることが可能である。タッチ・スクリーン７０は、ディスプレイ・デバイス６８に組み込まれても、別個のコンポーネントであってもよい。タッチ・スクリーン７０は、タッチ・パッド、マウス、その他などの他の入力技術に優る、いくつかの利点を有する。１つには、タッチ・スクリーン７０は、ディスプレイ６８の前に配置され、したがって、ユーザは、ＧＵＩ６９を直接に操作することができる。例えば、ユーザは、制御されるべきオブジェクトの上に、ユーザの指を単に置くだけである。タッチ・パッドにおいて、このような１対１の関係は全く存在しない。タッチ・パッドでは、タッチ・パッドは、ディスプレイから離れて、通常、異なる平面に配置される。例えば、ディスプレイは、通常、垂直面に配置され、タッチ・パッドは、通常、水平面に配置される。これにより、タッチ・パッドの使用は、それほど直観的でなくなり、したがって、タッチ・スクリーンと比べると、より困難になる。タッチ・スクリーンであることに加え、入力デバイス７０は、マルチポイント入力デバイスであることが可能である。マルチポイント入力デバイスは、複数のオブジェクト（指）を識別することができるという点で、従来の単一ポイント・デバイスに優る利点を有する。単一ポイント・デバイスは、複数のオブジェクトを識別することが全くできない。例として、本明細書で使用されることが可能なマルチポイント・タッチ・スクリーンは、参照により本明細書に組み込まれている、同時係属の、本発明の譲受人に譲渡された米国特許出願第１０／８４０，８６２号においてより詳細に示され、説明されている。
【００３５】
また、コンピュータ・システム５０は、１つまたは複数のＩ／Ｏデバイス群８０に結合するための諸機能も含む。例として、Ｉ／Ｏデバイス群８０は、キーボード、プリンタ、スキャナ、カメラ、スピーカ、および／または類似物に相当する。Ｉ／Ｏデバイス群８０は、コンピュータ・システム５０に組み込まれても、別個のコンポーネント（例えば、周辺デバイス群）であってもよい。一部のケースでは、Ｉ／Ｏデバイス群８０は、有線接続（例えば、ケーブル／ポート）を介してコンピュータ・システム５０に接続される。他のケースでは、Ｉ／Ｏデバイス群８０は、無線接続を介してコンピュータ・システム８０に接続される。例として、データ・リンクは、ＰＳ／２、ＵＳＢ、ＩＲ、ＲＦ、Ｂｌｕｅｔｏｏｔｈなどに相当する。
【００３６】
本発明の一実施形態によれば、コンピュータ・システム５０は、入力デバイス７０に印加されるジェスチャ８５を認識し、ジェスチャ８５に基づいてコンピュータ・システム５０の諸態様を制御するように設計される。一部のケースでは、ジェスチャは、１つまたは複数の特定のコンピューティング・オペレーションにマップされた、入力デバイスとの様式化された対話として定義される。ジェスチャ８５は、様々な手の動き、より詳細には、指の動きを介して行われる。代替的に、またはさらに、ジェスチャは、スタイラスを使用して行われることも可能である。以上のケースのすべてにおいて、入力デバイス７０は、ジェスチャ８５を受け取り、プロセッサ５６が、ジェスチャ８５に関連するオペレーションを実行する命令を実行する。さらに、メモリ・ブロック５８が、ジェスチャ・オペレーション・プログラム８８を含むことが可能であり、プログラム８８は、オペレーティング・システムの一部であっても、別個のアプリケーションであってもよい。ジェスチャ・オペレーション・プログラム８８は、一般に、ジェスチャ８５の出現を認識し、１つまたは複数のソフトウェア・エージェントに、それらのジェスチャ８５、および／またはそれらのジェスチャに応答してどのようなアクションが行われるべきかについて通知する命令セットを含む。
【００３７】
ユーザが、１つまたは複数のジェスチャを実行すると、入力デバイス７０は、ジェスチャ情報をプロセッサ５６に中継する。メモリ５８から、より詳細には、ジェスチャ・オペレーション・プログラム８８からの命令を使用して、プロセッサ５６は、ジェスチャ８５を解釈し、それらのジェスチャ８５に基づき、メモリ５８、ディスプレイ６８、Ｉ／Ｏデバイス群８０などの、コンピュータ・システム５０の様々なコンポーネントを制御する。ジェスチャ８５は、メモリ５８の中に格納されたアプリケーション群におけるアクションを実行するためのコマンド、ディスプレイ６８上に示されたＧＵＩオブジェクト群を変更するためのコマンド、メモリ５８の中に格納されたデータを変更するためのコマンド、および／またはＩ／Ｏデバイス群８０におけるアクションを実行するためのコマンドとして識別されることが可能である。例として、コマンドは、ズーム、パン、スクロール、ページング、回転、サイズ設定などに関連することが可能である。さらなる例として、コマンドは、特定のプログラムを起動すること、ファイルまたはドキュメントを開くこと、メニューを閲覧すること、選択を行うこと、命令を実行すること、コンピュータ・システムにログオンすること、権限を付与された個人が、コンピュータ・システムの制限された領域にアクセスするのを許すこと、コンピュータ・デスクトップのユーザが選好する構成に関連するユーザ・プロファイルを読み込むこと、および／または以上に類することに関連することも可能である。
【００３８】
多様な異なるジェスチャを利用することも可能である。例として、ジェスチャは、単一ポイント・ジェスチャもしくはマルチポイント・ジェスチャ、静的ジェスチャもしくは動的ジェスチャ、連続的ジェスチャもしくは区分されたジェスチャ、および／または以上に類するジェスチャである。単一ポイント・ジェスチャは、単一の接触ポイントで実行されるジェスチャであり、例えば、このジェスチャは、例えば、単一の指、手のひら、またはスタイラスからの、単一のタッチで実行される。マルチポイント・ジェスチャは、複数のポイントで実行されることが可能なジェスチャであり、例えば、ジェスチャは、例えば、複数の指、複数の指と手のひら、指とスタイラス、複数のスタイラス、および／または以上の任意の組み合わせからの、複数のタッチで実行される。静的ジェスチャは、動きを含まないジェスチャであり、動的ジェスチャは、動きを含むジェスチャである。連続的ジェスチャは、単一のストロークで実行されるジェスチャであり、区分されたジェスチャは、一連の別個のステップもしくはストロークで実行されるジェスチャである。
【００３９】
一部の実施形態では、コンピュータ・システム５０は、複数のジェスチャを同時に記録するように構成される、すなわち、複数のジェスチャが、同時に実行されることが可能である。例として、ズーム・ジェスチャが、回転ジェスチャと同時に実行されることが可能であり、あるいは回転ジェスチャが、パン・ジェスチャと同時に実行されることが可能である。１つの特定の実装では、ズーム・ジェスチャ、回転ジェスチャ、パン・ジェスチャはすべて、ズーム、回転、パンを同時に実行するために、同時に行われることが可能である。
【００４０】
別の実施形態では、システムは、ジェスチャに関連するアクションを、ジェスチャと同時に実施できるように、ジェスチャを即時に認識するように構成される、すなわち、ジェスチャとアクションは、２ステップのプロセスであるのではなく、並行して同時に行われる。例として、スクロール・ジェスチャ中、スクリーンが、指の動きとともに動く。
【００４１】
別の実施形態では、ディスプレイ６８上に提示されたオブジェクトが、タッチ・スクリーン上で行われるジェスチャを連続的に追う。実行されているジェスチャと、ディスプレイ６８上で示されるオブジェクトの間に１対１の関係が存在する。例えば、ジェスチャが実行されるにつれ、そのジェスチャの下に位置するオブジェクトの変更が同時に生じる。例えば、ズーム・ジェスチャ中、複数の指が、広げられて離れ、または閉じられて一緒になり、ディスプレイ６８上に示されたオブジェクトが、広げる最中にズーム・インされ、閉じる最中にズーム・アウトされるようにすることが可能である。この操作中、コンピュータ・システム５０は、ユーザ入力をズーム・ジェスチャとして認識し、どのようなアクションが行われるべきかを判定し、制御データを適切なデバイスに、このケースでは、ディスプレイ６８に出力する。
【００４２】
別の実施形態では、コンピュータ・システム５０は、ジェスチャが、入力デバイス６８の異なる区域の上で実施された場合、異なる事物を意味する、領域反応性をもたらす。例えば、音量ノブ上の回転ジェスチャは、音量が増大する／減少することを生じさせるのに対して、写真上の回転ジェスチャは、その写真の回転を生じさせる。
【００４３】
別の実施形態では、タッチ・スクリーンと接触している指の数は、入力モードを示すことが可能である。例えば、単一の指による単一のタッチが、例えば、トラッキング、すなわち、ポインタもしくはカーソルの動き、または選択を実行する要望を示すことが可能であるのに対して、例えば、一群の指による複数のタッチが、ジェスチャリングを実行する要望を示すことが可能である。ジェスチャリングを実施するための指の数は、様々であることが可能である。例として、２本の指が、第１のジェスチャ・モードを示すことが可能であり、３本の指が、第３のジェスチャ・モードを示す可能性があるといった具合である。代替的に、任意の数の指、すなわち、複数が、１つまたは複数のジェスチャ制御を含むことが可能な、同一のジェスチャ・モードのために使用されることが可能である。指の向きも同様に、所望されるモードを表すのに使用されることが可能である。指のプロファイルが、例えば、ユーザが、ユーザの親指を使用したか、または人差し指を使用したかに基づき、異なるモードのオペレーションを許すように検出されるようにすることも可能である。
【００４４】
別の実施形態では、ストロークを止める（例えば、タッチ・センシティブ面から持ち上げる）ことなしに、入力デバイス上で連続的なストロークを行いながら、入力を変更するようにしてもよい。１つの実装では、ユーザは、ストロークが行われている間に、トラッキング（または選択）モードからジェスチャリング・モードに切り替えることができる。例えば、トラッキングまたは選択を単一の指に関連付け、ジェスチャリングを、複数の指に関連付けることが可能であり、したがって、ユーザは、タッチ・スクリーン上から第２の指を持ち上げること、およびタッチ・スクリーン上に第２の指を置くことにより、トラッキング／選択とジェスチャリングの間で切り替えを行うことができる。別の実装では、ユーザは、ストロークが行われている間に、１つのジェスチャ・モードから別のジェスチャ・モードに切り替えることができる。例えば、ズームが、ペアの指を広げることに関連付けられることが可能であり、回転が、そのペアの指を回転させることに関連付けられることが可能であり、したがって、ユーザは、広げることと、回転させることの間でユーザの指の動きを交替させることにより、ズームと回転の間で切り替えを行うことができる。さらに別の実装では、ジェスチャ入力の数は、ストロークが行われている間に、変更されることが可能である（例えば、足される、または引かれる）。例えば、指が広げられて離されるズーム中、ユーザは、ユーザの指をさらに回転させて、ズームと回転をともに開始させることができる。さらに、ズームと回転の最中に、ユーザは、ユーザの指を広げるのを止めて、回転だけが生じるようにすることができる。つまり、ジェスチャ入力は、同時に、または連続的に、絶え間なく入力されることが可能である。
【００４５】
１つの特定の実施形態では、単一の指が、トラッキング（または選択）を開始し、互いに極めて近接した２つ以上の指が、スクロールまたはパンを開始する。１本の指と２本の指の間で容易な切り替えをもたらすように、２本の指が、通常、好ましくは、すなわち、ユーザは、単に、さらなる指を上げる、または下ろすことにより、モード間で非常に簡単に切り替えを行うことができる。以上は、他の形態のモード切り替えよりも直観的であるという利点を有する。トラッキング中、カーソルの動きは、ユーザが、タッチ・センシティブ・デバイスのタッチ・センシティブ面上で単一の指を動かすことによって制御される。タッチ・センシティブ・デバイスのセンサ配列が、指の動きを解釈し、ディスプレイ上でカーソルの対応する動きを生じさせるための信号を生成する。スクロール中、スクリーンの動きは、ユーザが、タッチ・センシティブ・デバイスのタッチ・センシティブ面上で双数の指を動かすことによって制御される。組み合わせの指が、垂直方向に動かされると、その動きは、垂直スクロール・イベントとして解釈され、組み合わせの指が、水平方向に動かされると、その動きが、水平スクロール・イベントとして解釈される。同一のことを、パンに関しても述べることができ、ただし、パンは、水平方向と垂直方向だけでなく、すべての方向で行われることが可能である。
【００４６】
本明細書で使用される「スクロール」という用語は、概ね、新たなデータのセット（例えば、テキストの行、またはグラフィックス）が、ディスプレイ領域内で見えるようにされるように、ディスプレイ・スクリーン上のディスプレイ領域にわたって、ディスプレイされるデータまたはイメージ（例えば、テキストまたはグラフィックス）を動かすことに関する。ほとんどのケースで、ディスプレイ領域が一杯になると、それぞれの新たなデータ・セットは、ディスプレイ領域の端に出現し、他のすべてのデータ・セットは、１つ位置を譲る。つまり、ディスプレイ領域から外れる各データ・セットにつき、新たなデータ・セットが出現する。要するに、スクロール・ファンクションは、ユーザが、現在、ディスプレイ領域から外れている、連続するデータ・セットを見ることができるようにする。ディスプレイ領域は、ディスプレイ・スクリーンのディスプレイ領域全体であっても、ディスプレイ・スクリーンの一部分（例えば、ウインドウ・フレーム）に過ぎなくてもよい。
【００４７】
前述したとおり、スクロールは、垂直に（上向きまたは下向きに）、または水平に（左または右に）実施されることが可能である。垂直スクロールのケースでは、ユーザが、下向きにスクロールすると、それぞれの新たなデータ・セットが、ディスプレイ領域の一番下に出現し、他のすべてのデータ・セットは、１つ位置を上に移動する。ディスプレイ領域が一杯である場合、一番上のデータ・セットは、ディスプレイ領域から外れるように移動する。同様に、ユーザが、上向きにスクロールすると、それぞれの新たなデータ・セットが、ディスプレイ領域の一番上に出現し、他のすべてのデータ・セットは、１つ位置を下に移動する。ディスプレイ領域が一杯である場合、一番下のデータ・セットは、ディスプレイ領域から外れるように移動する。
【００４８】
例として、ディスプレイ・スクリーンは、オペレーション中、メディア・アイテム（例えば、曲）のリストをディスプレイすることができる。ユーザは、タッチ・スクリーンにわたってユーザの指を動かすことにより、メディア・アイテムのリストを直線的にスクロールすることができる。指が、タッチ・スクリーンにわたって動くにつれ、メディア・アイテムのリストからのディスプレイされたアイテムは、ユーザが、メディア・アイテムのリストを効果的にスクロールすることができるように変化する。ほとんどのケースで、ユーザは、ユーザの指をより大きい速度で動かすことにより、メディア・アイテムのリストの走査を加速することができる。前述した例に関連することが可能な、いくつかの実施形態を、以下により詳細に説明する。例えば、図６、図２３、図２７を参照されたい。
【００４９】
図２は、本発明の一実施形態によるマルチポイント処理方法１００である。マルチポイント処理方法１００は、例えば、図１に示されたシステムにおいて実行される。マルチポイント処理方法１００は、一般に、ブロック１０２で始まり、イメージが、マルチポイント入力デバイスから、より詳細には、マルチポイント・タッチ・スクリーンから読み取られる。例として、マルチポイント・タッチ・スクリーンは、参照により本明細書に組み込まれている、同時係属の米国特許出願第１０／８４０，８６２号で開示されているマルチポイント・タッチ・スクリーンに相当する。「イメージ」という用語が使用されているが、データは、他の形態でもたらされることも可能であることに留意されたい。ほとんどのケースで、タッチ・スクリーンから読み取られるイメージは、大きさ（Ｚ）を、タッチ・スクリーンの各感知ポイントまたは各ピクセルの位置（ｘ、ｙ）の関数として与える。大きさは、各ポイントで測定される静電容量に反映させることが可能である。
【００５０】
ブロック１０２に続いて、マルチポイント処理方法１００は、ブロック１０４に進み、イメージが、フィーチャの集合もしくはリストに変換される。各フィーチャは、タッチなどの、別個の入力を表す。ほとんどのケースで、各フィーチャは、独自の一意識別子（ＩＤ）、ｘ座標、ｙ座標、Ｚの大きさ、角度θ、面積Ａなどを含む。例として、図３Ａおよび図３Ｂは、時間における特定のイメージ１２０を示す。イメージ１２０では、２つの別々のタッチに基づく２つのフィーチャ１２２が存在する。それらのタッチは、例えば、タッチ・スクリーンに触れるペアの指から形成される。図示されるとおり、各フィーチャ１２２は、一意識別子（ＩＤ）、ｘ座標、ｙ座標、Ｚの大きさ、角度θ、面積Ａを含む。より詳細には、第１のフィーチャ１２２Ａが、ＩＤ1、ｘ1、ｙ1、Ｚ1、θ1、Ａ1によって表され、第２のフィーチャ１２２Ｂが、ＩＤ2、ｘ2、ｙ2、Ｚ2、θ2、Ａ2によって表される。このデータは、例えば、マルチタッチ・プロトコルを使用して出力される。
【００５１】
データまたはイメージからフィーチャへの変換は、参照により本明細書に組み込まれている、同時係属の米国特許出願第１０／８４０，８６２号で説明される方法を使用して達成できる。その出願で開示されるとおり、生のデータが受け取られる。生のデータは、通常、デジタル化された形態になっており、タッチ・スクリーンの各ノードに関する値を含む。値は、０から２５６までの間であり、０は、タッチ圧力が全くないことに相当し、２５６は、完全なタッチ圧力に相当する。その後、生のデータは、雑音を減らすように濾過される。濾過されると、接続されたポイントの各グループのトポロジを示す勾配データが生成される。その後、タッチ領域に関する境界が、その勾配データに基づいて計算される、すなわち、いずれのポイントが一緒にグループ化されて、各タッチ領域を形成するかについての判定が行われる。例として、Ｗａｔｅｒｓｈｅｄアルゴリズムが使用される。境界が判定されると、タッチ領域のそれぞれに関するデータが計算される（例えば、ｘ、ｙ、Ｚ、θ、Ａ）。
【００５２】
ブロック１０４に続いて、マルチポイント処理方法１００は、ブロック１０６に進み、フィーチャの分類とフィーチャのグループ化が実行される。分類中、フィーチャのそれぞれの正体が特定される。例えば、フィーチャは、特定の指、親指、手のひら、またはその他のオブジェクトとして分類される。分類された後、フィーチャは、グループ化される。グループが形成される形は、様々であってよい。ほとんどのケースで、フィーチャは、何らかの基準（例えば、フィーチャが、類似した属性を有する）に基づいてグループ化される。例えば、図３Ａおよび図３Ｂに示される２つのフィーチャを、一緒にグループ化することが可能である。というのは、それらのフィーチャのそれぞれが、互いに近接した位置にあるため、またはそれらのフィーチャが、同一の手からくるためである。グループ化は、タッチ・イベントの一部ではないフィーチャを濾過して除くように、ある程度のフィルタリングを含むことが可能である。濾過する際、１つまたは複数のフィーチャが、何らかの事前定義された基準を満たすため、または何らかの基準を満たさないために、拒否されることがある。例として、フィーチャの１つは、タブレットＰＣの端に位置する親指として分類される。親指は、作業を実行するのに使用されるのではなく、デバイスを把持するのに使用されているため、親指から生成されたフィーチャは拒否される、すなわち、処理されているタッチ・イベントの一部とは見なされない。
【００５３】
ブロック１０６に続いて、マルチポイント処理方法１００は、ブロック１０８に進み、フィーチャ・グループに関する重要なパラメータが計算される。重要なパラメータには、フィーチャ間の距離、すべてのフィーチャのｘ／ｙ重心、フィーチャの回転、グループの総圧力（例えば、重心における圧力）などが含まれる。図４に示されるとおり、計算には、重心Ｃを求めること、重心Ｃから各フィーチャまで仮想の線１３０を引くこと、それぞれの仮想の線に関する距離Ｄ（Ｄ1およびＤ2）を定義すること、次に、距離Ｄ1と距離Ｄ2を平均することが含まれる。パラメータが、計算されると、パラメータ値が報告される。パラメータ値は、通常、グループ識別子（ＧＩＤ）と、各グループ内のフィーチャの数（このケースでは、３つ）とともに報告される。ほとんどのケースで、初期パラメータ値と現在のパラメータ値がともに、報告される。初期パラメータ値は、セットダウン時に、すなわち、ユーザが、ユーザの指をタッチ・スクリーン上に置いた時点に基づくことが可能であり、現在の値は、セットダウン後に行われたストローク内の任意のポイントに基づくことが可能である。理解されるべきこととして、ブロック１０２〜１０８は、ユーザ・ストローク中に繰り返し実行されて、複数の順次に更新された信号を生成する。初期パラメータと現在のパラメータは、後のステップで比較されて、システムにおけるアクションが実行される。
【００５４】
ブロック１０８に続いて、プロセス・フローは、ブロック１１０に進み、グループは、ユーザ・インタフェース（ＵＩ）要素であるか、またはＵＩ要素に関連付けられる。ＵＩ要素は、ボタン・ボックス、リスト、スライダ、ホイール、ノブ、その他である。各ＵＩ要素は、ユーザ・インタフェースのコンポーネントまたはコントロールを表す。ＵＩ要素の背後のアプリケーションは、ブロック１０８で計算されるパラメータ・データへのアクセスを有する。１つの実装では、アプリケーションは、タッチ・データに対応するＵＩ要素に対するタッチ・データの関連性をランク付けする。ランク付けは、何からの所定の基準に基づく。ランク付けは、性能指数を生成すること、および、いずれのＵＩ要素であれ、最高の性能指数を有するＵＩ要素に、グループへの唯一のアクセスを許すことを含むことが可能である。ある程度のヒステリシスさえも存在することが可能である（ＵＩ要素の１つが、そのグループのコントロールを主張すると、グループは、別のＵＩ要素が、はるかに高いランク付けを有するようになるまで、そのＵＩ要素から離れない）。例として、ランク付けは、ＵＩ要素に関連するＧＵＩオブジェクトに対する重心（またはフィーチャ）の近接性を判定することを含むことが可能である。
【００５５】
ブロック１１０に続いて、マルチポイント処理方法１００は、ブロック１１２、１１４に進む。ブロック１１２、１１４は、ほぼ同時に実行されることが可能である。ユーザから見て、一実施形態では、ブロック１１２、１１４は、同時並行に実行されるように見える。ブロック１１２で、初期パラメータ値と現在のパラメータ値の差と、それらの値が関連するＵＩ要素に基づき、１つまたは複数のアクションが実行される。ブロック１１４で実行される、それらの１つまたは複数のアクションに関するユーザ・フィードバックが、もたらされる。例として、ユーザ・フィードバックは、ディスプレイ・フィードバック、オーディオ・フィードバック、触覚フィードバック、および／または類似するフィードバックを含む。
【００５６】
図５は、本発明の一実施形態によるパラメータ計算方法１５０である。パラメータ計算方法１５０は、例えば、図２に示されるブロック１０８に対応する。パラメータ計算方法１５０は、一般に、ブロック１５２で始まり、フィーチャのグループを受け取る。ブロック１５２に続いて、パラメータ計算方法１５０は、ブロック１５４に進み、フィーチャのグループの中のフィーチャの数が変化したかどうかについての判定が行われる。例えば、フィーチャの数は、ユーザが、さらなる指を上げたこと、または置いたことに起因して、変化する。異なる指が、異なる制御（例えば、トラッキング、ジェスチャリング）を実行するのに必要とされる。フィーチャの数が変化している場合、パラメータ計算方法１５０は、ブロック１５６に進み、初期パラメータ値が計算される。数が同じままである場合、パラメータ計算方法１５０はブロック１５８に進み、現在のパラメータ値が計算される。その後、パラメータ計算方法１５０は、ブロック１５０に進み、初期パラメータ値と現在のパラメータ値が報告される。例として、初期パラメータ値は、ポイント間の平均初期距離（またはＤｉｓｔａｎｃｅ（ＡＶＧ）ｉｎｉｔｉａｌ）を含み、現在のパラメータ値はポイント間の平均現在距離（またはＤｉｓｔａｎｃｅ（ＡＶＧ）ｃｕｒｒｅｎｔ）を含むことが可能である。以上の値は、後続のステップで、コンピュータ・システムの様々な態様を制御するために比較される。
【００５７】
以上の方法と技術は、ＧＵＩインタフェース・オブジェクトやアクションの任意の数を実施するのに使用できる。例えば、ウインドウをサイズ変更する、ディスプレイをスクロールする、オブジェクトを回転させる、ディスプレイされたビューのズーム・インまたはズーム・アウトを行う、テキストもしくは他のオブジェクトの削除または挿入を行うなどのユーザ・コマンドを検出し、行うように、ジェスチャが生じさせられる。また、ジェスチャは、コンピューティング・システムとの人間の対話を円滑にするように作成される音量ノブ、スイッチ、スライダ、ハンドル、ノブ、ドア、その他のウィジェットなどの、仮想制御インタフェース群を呼び出し、操作するのに使用されてもよい。
【００５８】
以上の方法を使用する実施例を挙げるのに、図６Ａ〜図６Ｈを参照して、タブレットＰＣ１７５のディスプレイ１７４のＧＵＩインタフェース１７２上の仮想音量ノブ１７０を制御するための回転ジェスチャを説明する。ノブ１７０を作動させるため、ユーザは、ユーザの指１７６をマルチポイント・タッチ・スクリーン１７８上に置く。仮想制御ノブは、既にディスプレイされていてもよく、あるいはセットダウン時における指の特定の数、向き、もしくはプロファイル、またはセットダウン直後の指の動き、またはユーザの対話の以上の特性、その他の特性の何らかの組み合わせにより、ディスプレイされるべき仮想制御ノブが呼び出される。いずれにしても、コンピューティング・システムは、指グループを仮想制御ノブに関連付け、ユーザが、仮想音量ノブを使用することを意図しているという判定を行う。また、この関連付けは、入力の時点におけるコンピューティング・デバイスのモード、または現在の状態にある程度基づく。例えば、同一のジェスチャは、コンピューティング・デバイス上で現在、曲が再生されている場合、音量知識ジェスチャとして、またはオブジェクト編集アプリケーションが実行されている場合、回転コマンドとして、代替的に解釈されてもよい。例えば、可聴フィードバックまたは触覚フィードバックを含む、他のユーザ・フィードバックが提供されてもよい。
【００５９】
ノブ１７０が、図６Ａに示されるとおりディスプレイされると、ノブ１７０が実際のノブまたはダイヤルであるとした場合と同様に、ユーザの指１７６が、ノブ１７０の周りに位置付けられ、その後、ノブ１７０を回すことをシミュレートするように、ノブ１７０の周りで回転させられる。この場合も、例えば、クリック音の形態の可聴フィードバック、または振動の形態の触覚フィードバックが、ノブ１７０が「回転させられる」につれ、与えられてもよい。また、ユーザは、ユーザの他方の手を使用して、タブレットＰＣ１７５を把持してもよい。
【００６０】
図６Ｂに示されるとおり、マルチポイント・タッチ・スクリーン１７８は、少なくともペアのイメージを検出する。詳細には、第１のイメージ１８０が、セットダウン時に作成され、少なくとも１つの他のイメージ１８２が、指１７６が回転させられると、作成される。２つだけのイメージが示されているが、ほとんどのケースでは、それら２つのイメージの間で増分しながら生じるはるかに多くのイメージが存在する。各イメージは、特定の時点でタッチ・スクリーンと接触している指のプロファイルを表す。また、それらのイメージは、タッチ・イメージとも呼ばれる。「イメージ」という用語は、プロファイルが、スクリーン１７８上にディスプレイされることを意味しない（むしろ、タッチ・センシティブ・デバイスによってイメージングされる）ものと理解されたい。また、「イメージ」という用語が使用されるが、データは、様々な時点におけるタッチ平面を表す他の形態であってもよいことに留意されたい。
【００６１】
図６Ｃに示されるとおり、イメージ１８０、１８２のそれぞれは、フィーチャ１８４の集合に変換される。各フィーチャ１８４は、例えば、ノブ１７０を囲む指１７６のそれぞれ、およびタブレットＰＣ１７５を把持するのに使用される他方の手１７７の親指、先端部からの特定のタッチに関連する。
【００６２】
図６Ｄに示されるとおり、フィーチャ１８４は、分類され、すなわち、各指／親指が、識別され、イメージ１８０、１８２のそれぞれに関してグループ化される。この特定のケースで、ノブ１７０に関連するフィーチャ１８４Ａが一緒にグループ化されて、グループ１８８を形成し、親指に関連するフィーチャ１８４Ｂは濾過されて除かれる。代替の構成では、親指フィーチャ１８４Ｂは、それ自体で別個のフィーチャとして（または別のグループの中で）扱われて、例えば、システムの入力モードまたは操作モードを変更する、または別のジェスチャ、例えば、その親指（または他の指）の区域においてスクリーン上にディスプレイされるイコライザ・スライダに関連するスライダ・ジェスチャを実施することも可能である。
【００６３】
図６Ｅに示されるとおり、フィーチャ・グループ１８８の重要なパラメータが、各イメージ１８０、１８２に関して計算される。第１のイメージ１８０に関連する重要なパラメータは初期状態を表し、第２のイメージ１８２の重要なパラメータは現在の状態を表す。
【００６４】
やはり、図６Ｅに示されるとおり、フィーチャ・グループ１８８が、ノブ１７０に近接しているため、ノブ１７０がグループ１８８に関連するＵＩ要素である。その後、図６Ｆに示されるとおり、各イメージ１８０、１８２からのフィーチャ・グループ１８８の重要なパラメータ値が比較されて、回転ベクトルが、すなわち、初期状態から現在の状態まで時計方向に５度、回転させられたフィーチャ・グループが算出される。図６Ｆに、初期フィーチャ・グループ（イメージ１８０）が破線で示されているのに対して、現在のフィーチャ・グループ（イメージ１８２）は実線で示されている。
【００６５】
図６Ｇに示されるとおり、回転ベクトルに基づき、タブレットＰＣ１７５のスピーカ１９２が、指１７６の回転量に応じて、スピーカ１９２の出力を増加する（または減少させる）、すなわち、５度の回転に基づいて５％だけ音量を増加する。また、タブレットＰＣのディスプレイ１７４は、指１７６の回転量に応じて、ノブ１７０の回転を調整することもできる、すなわち、ノブ１７０の位置が、５度、回転する。ほとんどのケースで、ノブの回転は、指の回転と同時に生じる、すなわち、指の各回転度ごとに、ノブが１度回転する。要するに、仮想制御ノブは、スクリーン上で生じるジェスチャを追う。さらに、タブレットＰＣのオーディオ・ユニット１９４は、各回転単位につき、クリック音をもたらすことができ、例えば、５度の回転に基づき、５回のクリックをもたらすことができる。さらに、タブレットＰＣ１７５の触覚ユニット１９６が、各クリックに関して、ある量の振動、または他の触覚フィードバックをもたらして、実際のノブをシミュレートすることも可能である。
【００６６】
さらなるジェスチャが、仮想制御ノブ・ジェスチャと同時に実行されてもよいことに留意されたい。例えば、複数の仮想制御ノブが、両手、すなわち、各仮想制御ノブに関して１つの手を使用して、同時に制御されてもよい。代替的に、またはさらに、１つまたは複数のスライダ・バーが、仮想制御ノブと同時に制御されてもよい、すなわち、一方の手が、仮想制御ノブを操作するのに対して、他方の手の少なくとも１本の指、さらに、おそらく、複数の指が、少なくとも１つのスライダを操作し、さらに、おそらく、複数のスライダ・バー、例えば、指ごとのスライダ・バーを操作する。
【００６７】
実施形態は、仮想制御ノブを使用して説明されているが、別の実施形態では、ＵＩ要素は、仮想スクロール・ホイールであってもよいことにも留意されたい。例として、仮想スクロール・ホイールは、参照によりすべて本明細書に組み込まれている、米国特許公報Ｎｏｓ．２００３／００７６３０３Ａ１、米国特許公報Ｎｏｓ．２００３／００７６３０１Ａ１、米国特許公報Ｎｏｓ．２００３／００９５０９６Ａ１において説明されているスクロール・ホイールなどの、実際のスクロール・ホイールを模倣することが可能である。例えば、ユーザが、仮想スクロール・ホイールの表面上にユーザの指を置き、旋回、回転、または接線方向のジェスチャ・モーションを行うと、ウインドウ内にディスプレイされたアイテムのリストに関してスクロール・アクションが、実行されることが可能である。
【００６８】
図７は、本発明の一実施形態によるタッチ・ベースの方法２００の図である。方法は、一般に、ブロック２０２で始まり、マルチポイント感知デバイス上で行われたユーザ入力が検出される。ユーザ入力には、１つまたは複数のタッチ入力が含まれ、各タッチ入力は、一意識別子を有する。ブロック２０２に続いて、タッチ・ベースの方法２００は、ブロック２０４に進み、ユーザ入力が、単一の一意識別子（１回のタッチ入力）を含む場合、トラッキング入力または選択入力として分類され、あるいは、ユーザ入力が、少なくとも２つの一意識別子（複数のタッチ入力）を含む場合、ジェスチャ入力として分類される。ユーザ入力が、トラッキング入力として分類された場合、タッチ・ベースの方法２００は、ブロック２０６に進み、そのユーザ入力に対応するトラッキングが実行される。ユーザ入力が、ジェスチャ入力として分類された場合、タッチ・ベースの方法２００は、ブロック２０８に進み、そのユーザ入力に対応する１つまたは複数のジェスチャ制御アクションが実行される。ジェスチャ制御アクションは、その少なくとも２つの一意識別子とともに、またはそれらの識別子の間で生じた変化に、少なくともある程度、基づく。
【００６９】
図８は、本発明の一実施形態によるタッチ・ベースの方法２５０の図である。タッチ・ベースの方法２５０は、一般に、ブロック２５２で始まり、タッチ・センシティブ面上の入力ストローク中に、初期イメージがキャプチャされる。ブロック２５２に続いて、タッチ・ベースの方法２５０は、ブロック２５４に進み、タッチ・モードが、初期イメージに基づいて判定される。例えば、初期イメージが、単一の一意識別子を含む場合、タッチ・モードは、トラッキング・モードまたは選択モードに対応する。他方、イメージが、複数の一意識別子を含む場合、タッチ・モードは、ジェスチャ・モードに対応する。ブロック２５４に続いて、タッチ・ベースの方法２５０は、ブロック２５６に進み、タッチ・センシティブ面上の入力ストローク中に、次のイメージがキャプチャされる。イメージは、通常、ストローク中に順次にキャプチャされ、そのため、ストロークに関連する複数のイメージが存在することが可能である。ブロック２５６に続いて、タッチ・ベースの方法２５０は、ブロック２５８に進み、初期イメージのキャプチャと、次のイメージのキャプチャの間にタッチ・モードが変化しているかどうかの判定が行われる。タッチ・モードが変化している場合、タッチ・ベースの方法２５０は、ブロック２６０に進み、次のイメージが、初期イメージとして設定され、その後、タッチ・モードが、その新たな初期イメージに基づき、ブロック２５４で再び判定される。タッチ・モードが変わらないままであった場合、タッチ・ベースの方法２５０は、ブロック２６２に進み、初期イメージと次のイメージが比較され、１つまたは複数の制御信号が、その比較に基づいて生成される。
【００７０】
図９は、本発明の一実施形態によるタッチ・ベースの方法３００の図である。タッチ・ベースの方法３００は、ブロック３０２で始まり、ＧＵＩオブジェクトが出力される。例えば、特定のＧＵＩオブジェクトをディスプレイするよう、プロセッサが、ディスプレイに命令する。ブロック３０２に続いて、タッチ・ベースの方法３００は、ブロック３０４に進み、ＧＵＩオブジェクト上でジェスチャ入力が受け取られる。例えば、ユーザは、タッチ・スクリーンの表面上で、ディスプレイされたＧＵＩオブジェクトの上にある間に、ユーザの指をジェスチャの形で置く、または動かす。ジェスチャ入力には、連続して行われる１つまたは複数の単独ジェスチャ、または同時に行われる複数のジェスチャが含まれてもよい。ジェスチャのそれぞれは、一般に、そのジェスチャに関連する特定のシーケンス、動き、または向きを有する。例えば、ジェスチャには、指を広げて離すこと、または指を閉じて一緒にすること、指を回転させること、指を並進させること、および／または以上に類する動きが含まれる。
【００７１】
ブロック３０４に続いて、タッチ・ベースの方法３００は、ブロック３０６に進み、ＧＵＩオブジェクトが、ジェスチャ入力に基づき、ジェスチャ入力と調和して変更される。変更されるということが意味するのは、ＧＵＩオブジェクトが、実行される特定の１つまたは複数のジェスチャに応じて変化することである。調和してということが意味するのは、ほぼ、１つまたは複数のジェスチャが実行されている間に、変化が生じることである。ほとんどのケースでは、ジェスチャと、ＧＵＩオブジェクトにおいて生じる変化との間に、１対１の関係が存在し、ジェスチャと変化は、実質的に同時に生じる。要するに、ＧＵＩオブジェクトは指の動きを追う。例えば、指を広げることにより、オブジェクトが同時に拡大され、指を閉じることにより、ＧＵＩオブジェクトが同時に縮小され、指を回転させることにより、オブジェクトが同時に回転させられ、指を並進させることにより、ＧＵＩオブジェクトの同時のパンされるかまたはスクロールされる。
【００７２】
一実施形態では、ブロック３０６は、いずれのＧＵＩオブジェクトが、実行されているジェスチャに関連するかを判定し、その後、ディスプレイされたオブジェクトを、そのオブジェクトの上に置かれた指にロックして、ＧＵＩオブジェクトが、ジェスチャ入力に応じて変化するようにすることを含む。指をＧＵＩオブジェクトにロックすること、または関連付けることにより、ＧＵＩオブジェクトは、指がタッチ・スクリーン上で何を行っているかに応じて、自らを連続的に調整する。しばしば、判定することと、ロックすることは、セットダウン時に、すなわち、指がタッチ・スクリーン上に位置付けられた際に、行われる。
【００７３】
図１０は、本発明の一実施形態によるズーム・ジェスチャ方法３５０の図である。ズーム・ジェスチャは、マルチポイント・タッチ・スクリーン上で実行される。ズーム・ジェスチャ方法３５０は、一般に、ブロック３５２で始まり、少なくとも第１の指と第２の指の存在が、タッチ・センシティブ面上で同時に検出される。少なくとも２本の指の存在は、そのタッチが、１本の指に基づくトラッキング・タッチではなく、ジェスチャ・タッチであることを示すように構成される。一部のケースでは、２つだけの指の存在が、タッチが、ジェスチャ・タッチであることを示す。他のケースでは、２つより多くの任意の数の指が、タッチが、ジェスチャ・タッチであることを示す。実際、ジェスチャ・タッチは、触れている指が、２つであれ、３つであれ、４つ以上であれ、さらに、ジェスチャ中にその数が変わる場合でも、機能するように構成される、すなわち、ジェスチャ中のいずれの時点でも、２本の指を最低限、必要とするだけであることが可能である。
【００７４】
ブロック３５２に続いて、ズーム・ジェスチャ方法３５０は、ブロック３５４に進み、少なくとも２本の指の間の距離が比較される。距離は、指から指までであっても、各指から、他の何らかの基準点、例えば、重心までであってもよい。２本の指の間の距離が、増大した（広がって離れた）場合、ブロック３５６に示されるとおり、ズーム・イン信号が生成される。２本の指の間の距離が、小さくなった（閉じて一緒になった）場合、ブロック３５８に示されるとおり、ズーム・アウト信号が生成される。ほとんどのケースでは、指のセットダウンは、それらの指を、ディスプレイされている特定のＧＵＩオブジェクトに関連付ける、またはロックする。例えば、タッチ・センシティブ面が、タッチ・スクリーンでであり、ＧＵＩオブジェクトは、タッチ・スクリーン上にディスプレイされる。以上は、通常、指の少なくとも１つが、ＧＵＩオブジェクトの上に位置付けられると、生じる。その結果、それらの指が、離されると、ズーム・イン信号が使用されて、ＧＵＩオブジェクト内の組み込まれたフィーチャのサイズが大きくされ、指がすぼめられて一緒になると、ズーム・アウト信号が生成されて、オブジェクト内の組み込まれたフィーチャのサイズが小さくされる。ズームは、通常、ディスプレイの周辺、ウインドウの周辺、ＧＵＩオブジェクトの縁、および／または以上に類する場所などの、事前定義された境界内で行われる。組み込まれたフィーチャは、異なるレベルのズームをそれぞれが表す、複数のレイヤ上に形成される。ほとんどのケースでは、ズームの量は、２つのオブジェクト間の距離に応じて、変化する。さらに、ズームは、通常オブジェクトの動きと実質的に同時に行われることが可能である。例えば、指が、広がって離れる、または閉じて一緒になると、オブジェクトも同時に、ズーム・インまたはズーム・アウトする。以上の方法は、ズームを対象としているが、以上の方法は、拡大または縮小のために使用されてもよいことに留意されたい。ズーム・ジェスチャ方法３５０は、パブリシング・プログラム、写真プログラム、描画プログラムなどのグラフィック・プログラムにおいて特に有用である。さらに、ズームは、カメラなどの周辺デバイスを制御するのに使用されてもよく、すなわち、指が広げられて離されると、カメラが、ズーム・アウトし、指が閉じられると、カメラが、ズーム・インする。
【００７５】
図１１Ａ〜図１１Ｊは、前述した方法を使用するズーム・シーケンスを示す。図１１Ａは、ズームされることが可能な、組み込まれたレベルを有する北米の地図の形態で、ＧＵＩオブジェクト３６４を提示するディスプレイを示す。一部のケースでは、図示されるとおり、ＧＵＩオブジェクトは、ＧＵＩオブジェクト３６４の境界を形成するウインドウの内側に位置付けられる。図１１Ｂは、北米３６８の、詳細には、米国３７０のある地域上に、より詳細には、カリフォルニア３７２上に指３６６を位置付けるユーザを示す。カリフォルニア３７２をズーム・インするため、ユーザは、図１１Ｃに示されるとおり、ユーザの指３６６を広げて離すことを始める。指３６６が、さらに広がって離れる（距離が増大する）につれ、地図は、図１１Ｄ〜図１１Ｈに示されるように、カリフォルニア北部３７４をさらにズーム・インし、次いで、カリフォルニア北部３７４の特定の地域をズーム・インし、次いで、ベイエリア３７６をズーム・インし、次いで、半島３７８（例えば、サンフランシスコとサンノゼ・エリアの間の地域）をズーム・インし、次いで、サンフランシスコとサンノゼの間に位置するサンカルロス市３８０をズーム・インする。サンカルロス３８０からズーム・アウトし、北米３６８に戻るため、指３６６が、前述した順序に、ただし、逆の順序で従って、再び閉じられて一緒になる。
【００７６】
図１２は、本発明の一実施形態によるパン方法４００の図である。パン・ジェスチャは、マルチポイント・タッチ・スクリーン上で実行される。パン方法４００は、一般に、ブロック４０２で始まり、少なくとも第１のオブジェクトと第２のオブジェクトが、タッチ・センシティブ面上で同時に検出される。少なくとも２本の指の存在が、タッチが１本の指に基づくトラッキング・タッチではなく、ジェスチャ・タッチであることを示すように構成される。一部のケースでは、２つだけの指の存在が、タッチがジェスチャ・タッチであることを示す。他のケースでは、２つより多い任意の数の指が、タッチがジェスチャ・タッチであることを示す。実際、ジェスチャ・タッチは、触れている指が、２つであれ、３つであれ、４つ以上であれ、さらに、ジェスチャ中にその数が変わる場合でも、機能するように構成される、すなわち、ジェスチャ中のいずれの時点でも、２本の指を最低限、必要とするだけである。ブロック４０２に続いて、パン方法４００は、ブロック４０４に進み、２つのオブジェクトの、それらのオブジェクトが、タッチ・スクリーンにわたって一緒に動かされた場合の位置が、監視される。ブロック４０４に続いて、パン方法４００は、ブロック４０６に進み、２つのオブジェクトの位置が、初期位置に対して変化した際に、パン信号が生成される。ほとんどのケースでは、指のセットダウンが、タッチ・スクリーン上にディスプレイされた、特定のＧＵＩオブジェクトに指を関連付ける、またはロックする。典型的には、指の少なくとも１つが、ＧＵＩオブジェクト上のイメージの上に位置付けられる。その結果、指が、タッチ・スクリーンにわたって一緒に動かされると、パン信号を使用して、イメージが、それらの指の方向に並進させられる。ほとんどのケースでは、パンの量は、２つのオブジェクトが動く距離に応じる。さらに、パンは、通常、それらのオブジェクトの動きと実質的に同時に生じることが可能である。例えば、指が動くにつれ、オブジェクトが指と一緒に動く。
【００７７】
図１３Ａ〜図１３Ｄは、前述したパン方法４００に基づくパン・シーケンスを示す。図１１の地図を使用して、図１３Ａは、ユーザが、地図の上にユーザの指３６６を位置付けているのを示す。セットダウン後、指３６６は、地図にロックされる。図１３Ｂに示されるとおり、指３６６が、垂直に上方に動くと、地図３６４全体が、上方に動かされ、地図３６４のそれまでに見えていた部分が、ディスプレイ領域の外に置かれ、地図３６４の未だ見られていない部分が、ディスプレイ領域内に置かれる。図１３Ｃに示されるとおり、指３６６が、側方に水平方向に動くと、地図３６４全体が、側方に動かされて、地図３６４のそれまでに見えていた部分が、ディスプレイ領域の外に置かれ、地図の未だ見られていない部分が、ディスプレイ領域内に置かれる。図１３Ｄに示されるとおり、指３６６が、対角に動くと、地図３６４全体が、対角に動かされ、地図３６４のそれまでに見えていた部分が、ディスプレイ領域の外に置かれ、地図３６４の未だ見られていない部分が、ディスプレイ領域内に置かれる。理解されるべきこととして、地図３６４の動きは、指３６６の動きを追う。以上のプロセスは、テーブルに沿って１枚の紙をスライドさせることに類似する。紙にかけられた指の圧力が、紙をそれらの指にロックし、指が、テーブルにわたってスライドすると、その１枚の紙が、それらの指とともに動く。
【００７８】
図１４は、本発明の一実施形態による回転方法４５０の図である。回転ジェスチャは、マルチポイント・タッチ・スクリーン上で実行される。回転方法４５０は、一般に、ブロック４５２で始まり、第１のオブジェクトと第２のオブジェクトの存在が同時に検出される。少なくとも２本の指の存在が、タッチが、１本の指に基づくトラッキング・タッチではなく、ジェスチャ・タッチであることを示すように構成される。一部のケースでは、２つだけの指の存在が、タッチが、ジェスチャ・タッチであることを示す。他のケースでは、２つより多い任意の数の指が、タッチが、ジェスチャ・タッチであることを示す。実際、ジェスチャ・タッチは、触れている指が、２つであれ、３つであれ、４つ以上であれ、さらに、ジェスチャ中にその数が変わる場合でも、機能するように構成される、すなわち、ジェスチャ中のいずれの時点でも、２本の指を最低限、必要とするだけである。
【００７９】
ブロック４５２に続いて、回転方法４５０は、ブロック４５４に進み、指のそれぞれの角度が設定される。角度は、通常、基準点を基準として測定される。ブロック４５４に続いて、回転方法４５０は、ブロック４５６に進み、複数のオブジェクトの少なくとも１つのオブジェクトの角度が、基準点を基準として変化すると、回転信号が生成される。ほとんどのケースでは、指のセットダウンが、タッチ・スクリーン上にディスプレイされた特定のＧＵＩオブジェクトに指を関連付ける、またはロックする。通常、指の少なくとも１つが、ＧＵＩオブジェクト上のイメージの上に位置付けられると、ＧＵＩオブジェクトは、それらの指に関連付けられる、またはロックされる。その結果、指が回転させられると、回転信号を使用して、オブジェクトが、指回転の方向（例えば、時計方向、反時計方向）に回転させられる。ほとんどのケースでは、オブジェクト回転の量は、指回転の量に応じて変わる、すなわち、指が、５度、動いた場合、オブジェクトもそのように動く。さらに、回転は、通常、指の動きと実質的に同時に生じることが可能である。例えば、指が回転するにつれ、オブジェクトが、それらの指とともに同時に回転する。
【００８０】
図１５Ａ〜図１５Ｃは、前述した方法に基づく回転シーケンスを示す。図１１の地図を使用して、図１５Ａは、ユーザが、地図３６４の上にユーザの指３６６を位置付けているのを示す。セットダウン後、それらの指３６６は、地図３６４にロックされる。図１５Ｂに示されるとおり、指３６６が、時計方向に回転させられると、それらの回転する指３６６に応じて、地図３６４全体が、時計方向に回転させられる。図１５Ｃに示されるとおり、指３６６が、反時計方向に回転させられると、それらの回転する指３６６に応じて、地図３６４全体が、反時計方向に回転させられる。
【００８１】
図１０〜図１５で説明した方法は、同一のジェスチャ・ストローク中に実施されることが可能であることに留意されたい。つまり、ズーム、回転、パンはすべて、指を広げること、指を回転させること、指をスライドさせることを含む、ジェスチャ・ストローク中に実行される。例えば、少なくとも２本の指を使用したセットダウン後、ディスプレイされたオブジェクト（地図）は、それら２本の指に関連付けられる、またはロックされる。ズームを行うため、ユーザは、ユーザの指を広げる、または閉じる。回転させるため、ユーザは、ユーザの指を回転させる。パンするため、ユーザは、ユーザの指をスライドさせる。以上のアクションのそれぞれは、連続した動きで同時に行われてもよい。例えば、ユーザは、タッチ・スクリーンにわたってユーザの指を回転させ、スライドさせながら、それらの指を広げたり、閉じたりすることができる。代替的に、ユーザは、ジェスチャ・ストロークをリセットする必要なしに、以上の動きのそれぞれを分けることもできる。例えば、ユーザは、ユーザの指をまず、広げ、次いで、ユーザの指を回転させ、次いで、ユーザの指を閉じ、次いで、ユーザの指をスライドさせることなどができる。
【００８２】
図１６は、本発明の一実施形態によるＧＵＩ操作方法５００の図である。ＧＵＩ操作方法５００は、ＧＵＩにおける浮動制御を開始するために構成される。ＧＵＩ操作方法５００は、一般に、ブロック５０２で始まり、指または親指などのオブジェクトの存在が検出される。これは、例えば、タッチ・スクリーンを使用して行うことができる。ブロック５０２に続いて、ＧＵＩ操作方法５００は、ブロック５０４に進み、オブジェクトが認識される（オブジェクトの正体が、見出される）。オブジェクトは、複数のオブジェクトの中から認識される。例えば、前述の図２のブロック１０４を参照されたい。
【００８３】
ブロック５０４に続いて、ＧＵＩ操作方法５００は、ブロック５０６に進み、オブジェクトの付近におけるイメージが生成される。イメージは、通常、認識されたオブジェクトに基づく。イメージには、通常、ウインドウ、フィールド、ダイアログ・ボックス、メニュー、アイコン、ボタン、カーソル、スクロール・バー、その他が含まれる。一部のケースでは、ユーザは、機能とタスクを開始するために、イメージ（またはイメージに組み込まれたフィーチャ）を選択して、活性化することができる。例として、イメージは、ユーザ・インタフェース要素、またはユーザ・インタフェース要素のグループ（例えば、ウインドウを開く、閉じる、最小化する、または最大化する１つまたは複数のボタン）である。また、イメージは、特定のプログラムを起動する１つまたは複数のアイコン、または選択されると開くファイルであってもよい。イメージは、非対話型のテキストやグラフィックスにもさらに対応することが可能である。ほとんどのケースでは、イメージは、オブジェクトが検出される限りディスプレイされるが、あるいは、イメージは、事前設定された時間にわたってディスプレイされるようにしてもよく、すなわち、ある期間の後、イメージは、タイム・アウトになり、除去される。
【００８４】
１つの特定の実施形態では、イメージは、ユーザによって選択される１つまたは複数の制御オプションを含む。制御オプションは、様々なタスクを実施するための１つまたは複数のコントロール・ボタンを含む。例えば、制御オプション・ボックスは、音楽聴取コントロール・ボタン、例えば、再生、一時停止、シーク、メニューを含む。
【００８５】
図１７Ａ〜図１７Ｅは、前述した方法を使用した浮動制御シーケンスを示す。図１７Ａに示されるとおり、ユーザ５１０が、タブレットＰＣ５１２を使用しており、したがって、タブレットＰＣ５１２を一方の手５１４で把持する一方で、他方の手５１６を使用してナビゲート（例えば、トラッキング、ジェスチャリング）を行っている。タブレットＰＣ５１２を把持しているユーザのクローズ・アップである図１７Ｂに示されるとおり、把持する手５１４の親指の一部分が、タッチ・スクリーン５２０の上に位置付けられる。図１７Ｃに示されるとおり、タブレットＰＣ５１２は、親指を認識し、親指に隣接してコントロール・ボックス５２２をディスプレイする。コントロール・ボックス５２２は、ユーザの親指によって選択されて、タブレットＰＣ５１２におけるタスクを開始する様々なボタン５２４を含む。図１７Ｄに示されるとおり、タブレットＰＣ５１２を把持しながら、親指は、ボタン５２４の１つの上に伸ばされて、その後、タップされて、ボタン５２４に関連するタスクが選択される。例として、タスクは、プログラムを起動すること、またはネットワークへアクセスすること、またはデバイスのオペレーション・モードを変更することに関連する。コントロール・ボックス５２２とそのボタン群５２４は、タッチ・スクリーン５２０の入力モードを変更するのに使用され、したがって、例えば、ユーザの他方の手の指で行われた同一のジェスチャが、ボタン５２４のいずれが選択されたかに依存して、複数の意味を有することが可能である。図１７Ｅに示されるとおり、親指が、タッチ・スクリーン５２０から離されると、コントロール・ボックス５２２は、タイム・アウトして消えてもよい。代替的に、コントロール・ボックスは、従来のクローズ・アイコンまたはクローズ・ボタンを使用して閉じられてもよい。
【００８６】
図１８は、本発明の一実施形態によるＧＵＩ操作方法５５０の図である。ＧＵＩ操作方法５５０は、ズーム目標を開始するために構成される。ＧＵＩ操作方法５５０は、一般に、ブロック５５２で始まり、コントロール・ボックスＧＵＩ要素がディスプレイされる。コントロール・ボックスは、多少、互いに近接しており、アクションを実行するのに使用される１つまたは複数のコントロール・ボタンを含む。コントロール・ボックスは、例えば、最大化、最小化、閉じるなどの、コントロール・ボタンを含む。ブロック５５２に続いて、ＧＵＩ操作方法５５０は、ブロック５５４に進み、コントロール・ボックスの上、またはコントロール・ボタンの１つの上で、オブジェクトの存在が検出されると、ある期間にわたって、コントロール・ボックスが拡大されるか、またはコントロール・ボタンの少なくとも１つが拡大される。コントロール・ボックスが拡大されるケースでは、コントロール・ボタンのそれぞれが拡大されて、ボタンの選択がはるかに容易になる。コントロール・ボタンだけが拡大されるケースでは、ユーザは、そのボタンが、正しいボタンであるかどうかを判断し、正しいボタンである場合、その拡大されたコントロール・ボタンを選択し、さもなければ、プロセスを再スタートして、適切なコントロール・ボタンが提示されるようにする。ほとんどのケースでは、コントロール・ボタンのサイズは、オブジェクトによって容易に選択されることが可能であるように、指のサイズに対応する。ブロック５５４に続いて、ＧＵＩ操作方法５５０は、ブロック５５６に進み、拡大されたコントロール・ボタンの１つの上でオブジェクトの存在が検出されると、選択されたコントロール・ボタンに関連する制御信号が生成される。
【００８７】
図１９Ａ〜図１９Ｄは、前述したＧＵＩ操作方法５５０を使用したズーム目標シーケンスを示す。図１９Ａに示されるとおり、ユーザ５１０が、ユーザの指５７６をコントロール・ボックス５７８の上に置く。含まれるコントロール・ボックス５７８のボタン群５８０は指５７６より小さく、互いに近接して配置されるので、ユーザ５１０が、場合により、望ましくないボタン５８０、例えば、所望されるボタンに隣接するボタンを押すことなしに、選択を直接に行うのは困難である。例として、指５７６は、ボタン５８０の２つ以上を覆う可能性がある。コントロール・ボックスの上に置くと、コントロール・ボックス５７８に含まれるボタン群５８０を含む、コントロール・ボックス５７８の少なくとも一部分が拡大される。図１９Ｃに示されるとおり、コントロール・ボックスが、拡大された状態に達すると、ユーザは、現時点で親指のサイズにより近い、拡大されたボタンの１つを選択することができる。例として、ユーザは、所望されるコントロール・ボタンの上をタップする。図１９Ｄに示されるとおり、コントロール・ボックスは、ボタンが選択された後、または全く選択が行われなかった所定の期間（例えば、タイム・アウト）の後、またはユーザが、ユーザの指をコントロール・ボックスから離した後、ボックスの初期サイズにまで小さくなる。
【００８８】
図２０は、本発明の一実施形態によるＧＵＩ操作方法６００の図である。ＧＵＩ操作方法６００は、ページ・ターンを開始するために構成されている。ＧＵＩ操作方法６００は、一般に、ブロック６０２で始まり、多数のページからのあるページがＧＵＩ内にディスプレイされる。例として、それらのページは電子ブックに関連する。ブロック６０２に続いて、ＧＵＩ操作方法６００は、ブロック６０４に進み、ページの上の所定の領域内における、あるオブジェクト（または複数のオブジェクト）の存在が検出される。所定の領域は、例えば、ページ番号がディスプレイされている領域に相当する。ブロック６０４に続いて、ＧＵＩ操作方法６００はブロック６０６に進み、オブジェクト（または複数のオブジェクト）が、所定の領域内で並進させられると、ページ・ターン信号が生成される。並進は、実際の書籍版の本のページをめくる指をシミュレートするように構成される。並進の方向により、ページ・リストの中の次のページに行くか、前のページに行くかが示される。例えば、指が、右から左に通された場合、ページ・バック信号が生成され、指が、左から右に通された場合、ページ・アップ信号が生成される。以上のＧＵＩ操作方法６００は、いくつかの形で拡張させることができる。例えば、複数の指が通された場合、１ページより大きいページング信号を生じさせる。例えば、２本の指を通すことが、２ページをめくることに等しく、３本の指を通すことが、３ページをめくることに等しいといった具合である。あるいは、２本の指を通すことが、１０ページをめくることに等しく、３本の指を通すことが、５０ページをめくることに等しいといった具合である。
【００８９】
図２１Ａ〜図２１Ｅは、前述したＧＵＩ操作方法６００を使用したページ・ターニング・シーケンスを示す。タブレットＰＣ５１２を把持するユーザ５１０のクローズアップである図２１Ａに示されるとおり、ユーザは、ページ６３０の左側に向かう方向で、ページ番号上にユーザの指を通す。図２１Ｂに示されるとおり、タブレットＰＣ５１２は、ページ番号の領域内における、そのスワイプと、そのスワイプの方向を認識し、したがって、タブレットＰＣ５１２は、ページ・グループの中の次のページをディスプレイする。これは、ページ・グループをさっと通り過ぎるように繰り返し実行することが可能である。図２１Ｃに示されるとおり、ユーザは、ページ６３０の右側に向かう方向で、ページ番号上にユーザの指５７６を通す。図２１Ｄに示されるとおり、タブレットＰＣ５１２は、ページ番号の領域内における、そのスワイプと、そのスワイプの方向を認識し、したがって、タブレットＰＣ５１２は、ページ・グループの中の前のページをディスプレイする。これは、ページ・グループをさっと通り過ぎるように繰り返し実行されることが可能である。
【００９０】
図２２は、本発明の一実施形態によるＧＵＩ操作方法６５０の図である。ＧＵＩ操作方法６５０は、通常、スクロール操作中、またはパン操作中に慣性を開始するために構成される。慣性は、一般に、静止しているオブジェクトが、静止したままである傾向、または動いているオブジェクトが、外力によって乱されない限り、直線で運動を続ける傾向として定義される。この特定の実施形態では、ＧＵＩ、またはＧＵＩの何らかの部分が、動きの変化率に対するＧＵＩ、またはＧＵＩの何らかの部分の抵抗である慣性特性に関連付けられる。高い慣性特性を有するＧＵＩの場合、所与の入力に対するＧＵＩの加速度は小さい。他方、ＧＵＩが低い慣性特性を有する場合、所与の入力に対する加速度は、大きい。
【００９１】
ＧＵＩ操作方法６５０は、一般に、ブロック６５２で始まり、グラフィック・イメージがＧＵＩ上にディスプレイされる。ブロック６５２に続いて、ＧＵＩ操作方法６５０はブロック６５４に進み、タッチ・センシティブ面上のスクロール・ストロークまたはパン・ストロークが検出される。例として、ストロークは直線ストロークまたは回転ストロークである。直線ストローク中、スクロールまたはパンの方向は、通常、ストロークの方向に従う。回転ストローク中（図６参照）、回転ストロークは、時計方向の動きが垂直上方に対応し、反時計方向の動きが垂直下方に対応するように、直線入力に通常変換される。ブロック６５４に続いて、プロセス・フローは、ブロック６５６に進み、スクロール・ストロークまたはパン・ストロークの速度と方向が決定される。ブロック６５６に続いて、ＧＵＩ操作方法６５０はブロック６５８に進み、スクロール・ストロークまたはパン・ストロークの速度と方向、および関連する慣性特性に従って、イメージが動かされる。ブロック６５８に続いて、ＧＵＩ操作方法６５０はブロック６６０に進み、パン・ストロークまたはスクロール・スクロールがもはや検出されなくても、イメージの動きが継続する。例えば、ユーザが、タッチ・センシティブ面からユーザの指を持ち上げると、スクロール・ファンクションまたはパン・ファンクションは、あたかもスクロール・ストロークまたはパン・ストロークが依然として行われているかのように継続する。一部のケースでは、イメージの動きは、何らかの制動（停止または減速）制御が実行されるまで、継続する。以上の特定の方法は、０の重力加速度をシミュレートする。他のケースでは、イメージの動きは、関連する慣性ＧＵＩ操作方法６５０に応じて減速される。喩えとして述べると、イメージは、デスクトップ上を動く１枚の紙に相当することができる。その１枚の紙を動かすために、ユーザは、所望の方向でその紙に力を加える。ユーザが、その紙から指を上げて離すと、紙は、いくらかの時間にわたって、所望される方向でデスクトップに沿ってスライドすることを続ける。指を上げた後に紙がスライドする量は、一般に、とりわけ、紙の質量、指によって加えられた力、紙とデスクトップの間で見られる摩擦力などに依存する。理解されるべきこととして、従来、スクロールとパンが実施される場合、スクロールまたはパンは、指が持ち上げられると停止していた。これに対して、前述した方法を使用すると、スクロールまたはパンが、指が持ち上げられた場合にも動き続ける。
【００９２】
ＧＵＩ操作方法６５０は、ブロックＡ、Ｂをさらに含むことが可能である。ブロックＡにおいて、タッチ・センシティブ面上で、指などのオブジェクトが、そのオブジェクトの助けなしにイメージが動いている際に検出される（ブロック６６０）。ブロックＢにおいて、オブジェクトが検出されると、イメージの動きが停止される、すなわち、その新たなタッチは、制動手段の役割をする。前段の喩えを使用すると、１枚の紙が、デスクトップ上をスライドしている間に、ユーザが、ユーザの指をその紙の上に押し付けて、その紙の動きを停止させる。
【００９３】
図２３Ａ〜図２３Ｄは、前述した方法を使用した慣性シーケンスを示す。図２３Ａは、メディア・アイテム６８１のリスト６８０を有するウインドウ６７９を含む、ＧＵＩ６７８を提示するディスプレイを示す。ウインドウ６７９およびリスト６８０は、例えば、カリフォルニア州、クパチーノ所在のアップルコンピュータ株式会社によって製造されるｉＴｕｎｅ（商標）で見られる制御ウインドウおよび音楽リストに相当することが可能である。図２３Ｂに示されるとおり、ユーザが、タッチ・スクリーン５２０の上でユーザの１つまたは複数の指５７６をスライドさせると、ウインドウの中でメディア・アイテムを上方または下方に動かす垂直スクロールが実施される。スクロールの方向は、指の動き（図示される）と同一の方向に従っても、逆の方向に進んでもよい。１つの特定の実施形態では、リストからメディア・アイテムを選択するために、単一の指が使用され、リストをスクロールするのに、２本の指が使用される。
【００９４】
スクロールは、一般に、ディスプレイ・スクリーン上のディスプレイ領域にわたって、ディスプレイされたデータまたはイメージ（例えば、メディア・アイテム６８１）を動かして、新たなデータ・セット（例えば、メディア・アイテム６８１）が、ディスプレイ領域内で見えるようにすることに関する。ほとんどのケースでは、ディスプレイ領域が一杯になると、それぞれの新たなデータ・セットがディスプレイ領域の端に出現し、他のすべてのデータ・セットは１つ位置を譲る。つまり、ディスプレイ領域から外れる各データ・セットに対して新たなデータ・セットが出現する。要するに、それらのファンクションは、現在、ディスプレイ領域から外れている、連続するデータ・セットをユーザに見えるようにする。ほとんどのケースでは、ユーザは、ユーザの指をより高い速度で動かすことにより、データ・セットを走査するのを加速させることができる。リストをスクロールする例は、参照により本明細書に組み込まれている、米国特許公報Ｎｏｓ．２００３／００７６３０３Ａ１、米国特許公報Ｎｏｓ．２００３／００７６３０１Ａ１、米国特許公報Ｎｏｓ．２００３／００９５０９６Ａ１で見ることができる。
【００９５】
図２３Ｃに示されるとおり、ディスプレイされたデータは、指がタッチ・スクリーンから離されても動き続ける。この継続的な動きは、少なくともある程度、それまでの動きに基づく。例えば、スクロールは、同一の方向と同一の速度で続ける。一部のケースでは、スクロールは、時とともに、すなわち、メディア・アイテムを走査する速度は、次第に遅くなり、ついには、スクロールが最終的に止まって静的リストが残される。例として、ディスプレイ領域内に新たなメディア・アイテムが運び込まれるごとに、速度が徐々に減少させられる。代替的に、またはさらに、図２３Ｄに示されるとおり、指５７６がタッチ・スクリーン５２０上に再び置かれると、ディスプレイされたデータがその動くのを止める。つまり、タッチ・スクリーン上に指が再び置かれることにより、継続的な作用している動きを停止させる、または減速する制動が実施される。以上のシーケンスは、垂直スクロールを対象としているが、これは、限定ではなく、水平スクロールやパンも、前述した方法を使用して実行できることに留意されたい。
【００９６】
図２４は、本発明の一実施形態によるＧＵＩ操作方法７００の図である。方法７００は、キーボードをシミュレートするために構成されている。方法は、一般に、ブロック７０２で始まり、キーボードがディスプレイ上に提示される。ブロック７０２に続いて、プロセス・フローはブロック７０４に進み、第１のキー上の第１のオブジェクトと、第２のキー上の第２のオブジェクトの同時の存在がタッチ・スクリーン上で検出される。タッチ・スクリーンは、ディスプレイの上に、または前方に位置付けられる。例として、ディスプレイがＬＣＤで、タッチ・スクリーンがマルチポイント・タッチ・スクリーンである。ブロック７０４に続いて、プロセス・フローは、ブロック７０６に進み、第１のオブジェクトが、第１のキー上で検出され、第２のオブジェクトが、第２のキー上で同時に検出されると、１つまたは複数の同時の制御信号が、生成される。
【００９７】
一実施形態では、第１のオブジェクトが第１のキー上で検出され、第２のオブジェクトが第２のキー上で同時に検出されると、単一の制御信号だけが生成される。例として、第１のキーがシフト・キーで、第２のキーが記号キー（例えば、文字、数字）である。このようにして、このキーボードは、従来のキーボードのように作用する、すなわち、ユーザは、記号、すなわち、小文字文字盤／大文字文字盤を変更するために、複数のキーを同時に選択することが可能となる。また、キーは、コントロール・キー、Ａｌｔキー、エスケープ・キー、ファンクション・キーなどに対応することも可能である。
【００９８】
別の実施形態では、同時に生じるそれぞれの作動させられたキー（キー・タッチ）に関して、制御信号が生成される。例えば、文字のグループが、同時にタイプされることが可能である。一部のケースでは、キーボードの背後で実行されているアプリケーションは、何らかの所定の基準に基づいて文字の順序を判定するように構成される。例えば、文字は、入り乱れているものの、アプリケーションは、つづり、用法、文脈などに基づき、文字の正しい順序を判定することができる。
【００９９】
２つだけのキーについて述べたが、２つのキーは限定ではなく、２つより多くのキーが同時に作動させられて、１つまたは複数の制御信号を生成してもよいことに留意されたい。例えば、コントロール−Ａｌｔ−削除機能が、実施されることが可能であり、あるいはより大きい文字グループが、同時にタイプされることも可能である。
【０１００】
図２５Ａ〜図２５Ｄは、前述した方法を使用したキーボード・シーケンスを示す。図２５Ａは、キーボードの形態のＧＵＩオブジェクト７３０を提示するディスプレイを示す。図２５Ｂに示されるとおり、ユーザは、ユーザの指５７６をキーボード７３０上のマルチポイント・タッチ・スクリーン５２０の上に位置付けて、ワード・プロセッシング・プログラムにデータを入力する。例として、ユーザは、ワード・プロセッシング・プログラムにおいて小文字の「ｑ」を生じさせるために、Ｑキー上にユーザの指５７６Ａの１つを置くことができる。図２５Ｃに示されるとおり、文字が大文字であるべきであるとユーザが決めた場合、ユーザは、１本の指５７６Ｂをシフト・キー上に置き、別の指５７６Ａを所望される文字上に置く（矢印で示されるとおり）。図２５Ｄに示されるとおり、引き続き小文字でタイプするのに、ユーザは、単に、シフト・キーからユーザの指５７６Ｂを離し、ユーザの指５７６Ａを所望される文字上に置く（矢印で示されるとおり）。
【０１０１】
図２６は、本発明の一実施形態によるＧＵＩ操作方法７５０の図である。方法７５０は、参照によりすべて本明細書に組み込まれている、米国特許公報Ｎｏｓ．２００３／００７６３０３Ａ１、米国特許公報Ｎｏｓ．２００３／００７６３０１Ａ１、米国特許公報Ｎｏｓ．２００３／００９５０９６Ａ１において説明されるスクロール・ホイールのような、スクロール・ホイールをシミュレートするために構成される。方法は、一般に、ブロック７５２で始まり、仮想スクロール・ホイールが、ディスプレイ上に提示される。一部のケースでは、仮想スクロール・ホイールは、仮想ボタンを中央に含むことが可能である。仮想スクロール・ホイールは、例えば、リストをスクロールすることを実施するように構成され、ボタンは、例えば、リストの中に格納されたアイテムの選択を実施するように構成される。ブロック７５２に続いて、方法は、ブロック７５４に進み、仮想スクロール・ホイールの上の少なくとも第１の指の存在、より詳細には、第１の指と第２の指（トラッキングとジェスチャリングを区別する）の存在が、タッチ・スクリーン上で検出される。タッチ・スクリーンは、ディスプレイの上、または前方に配置される。例として、ディスプレイは、ＬＣＤであることが可能であり、タッチ・スクリーンは、マルチポイント・タッチ・スクリーンであることが可能である。ブロック７５４に続いて、方法は、ブロック７５６に進み、仮想スクロール・ホイール上の指の初期位置が、設定される。例として、基準ポイントに対する指の角度が、判定される（例えば、１２時、６時など）。ブロック７５６に続いて、方法７５０は、ブロック７５８に進み、基準ポイントに対する指の角度が変化すると、回転信号が生成される。ほとんどのケースでは、指のセットダウンは、指が仮想スクロール・ホイール上に位置付けられると、複数の指（または１本の指）を仮想スクロール・ホイールに関連付ける、結び付ける、またはロックする。その結果、指が回転させられると、回転信号を使用して、仮想スクロール・ホイールが、指回転の方向（例えば、時計方向、反時計方向）に回転させられることが可能である。ほとんどのケースでは、ホイール回転の量は、指回転の量に応じて変わる、すなわち、指が、５度、動いた場合、ホイールもそのように動く。さらに、回転は、通常、指の動きと実質的に同時に生じることが可能である。例えば、指が回転するにつれ、スクロール・ホイールが、それらの指とともに同時に回転する。
【０１０２】
一部のケースでは、前述した慣性の諸原理は、仮想スクロール・ホイールにも適用される。以上のようなケースでは、仮想スクロール・ホイールは、複数の指（または複数の指の１つ）が仮想スクロール・ホイールから離されると、回転することを続け、仮想の摩擦を介して徐々に止まる。代替的に、またはさらに、継続的な回転は、スクロール・ホイール上に再び複数の指（または離された指）を置いて、仮想スクロール・ホイールの回転を制動することにより、止められるようにしてもよい。
【０１０３】
図２７Ａ〜図２７Ｄは、前述した方法を使用したスクロール・ホイール・シーケンスを示す。図２７Ａは、スクロール・ホイールを提示するディスプレイを示す。スクロール・ホイールは、プログラムの一環として自動的にディスプレイされても、特定のジェスチャが実行された際にディスプレイされてもよい。例として、音楽プログラム（カリフォルニア州、クパチーノ所在のアップルコンピュータ株式会社によって製造されるｉＴｕｎｅなどの）のオペレーション中、音楽プログラムにおいてトラッキングを行うために通常、使用される１本の指ではなく、２本の指が、タッチ・スクリーン上に置かれると、仮想スクロール・ホイールが、音楽プログラムのＧＵＩ上に現れることが可能である。一部のケースでは、仮想スクロール・ホイールは、２本の指が、ＧＵＩの所定の領域上に置かれた場合にだけ、出現する。図２７Ｂに示されるとおり、ユーザは、ユーザの指をマルチポイント・タッチ・スクリーン５２０の上で、スクロール・ホイールの上に位置付ける。何らかの時点で、指は、スクロール・ホイールにロックされる。これは、例えば、セットダウン時に行われることが可能である。図２７Ｃに示されるとおり、指を時計方向に回転させるとと、スクロール・ホイールは、回転する指に応じて、時計方向に回転させられる。図２７Ｄに示されるとおり、指を反時計方向に回転させると、仮想スクロール・ホイールは、回転する指に応じて、反時計方向に回転させられる。代替的に、仮想スクロール・ホイールの回転は、接線の形の指の直線的な動きとともに、回転させられることも可能である。
【０１０４】
表面スクロール・ホイールが示されているが、表面スクロール・ホイールの諸原理は、仮想ベースの、より慣例的なスクロール・ホイールにも適用されることが可能であることに留意されたい。例えば、軸が、ディスプレイ・スクリーンに平行であり、図２８に示されるとおり、ディスプレイ・スクリーンを抜けて突き出るように見えるスクロール・ホイール。しかし、この特定のインプリメンテーションでは、指の直線的な動きが、仮想スクロール・ホイールを回転させるのに使用される。
【０１０５】
本発明の様々な態様、実施形態、実装、または特徴は、別々に使用されることも、任意の組み合わせで使用されることも可能である。
【０１０６】
本発明は、好ましくは、ハードウェアによって、ソフトウェアによって、またはハードウェアとソフトウェアの組み合わせによって実現できる。また、ソフトウェアは、コンピュータ可読媒体上のコンピュータ可読コードとして実装される。コンピュータ可読媒体は、コンピュータ・システムによって後に読み取られることが可能なデータを格納することができる任意のデータ記憶デバイスである。コンピュータ可読媒体の例には、読取り専用メモリ、ランダム・アクセス・メモリ、ＣＤ−ＲＯＭ、ＤＶＤ、磁気テープ、光データ記憶デバイス、および搬送波が含まれる。また、コンピュータ可読媒体は、コンピュータ可読コードが、分散された形で記憶され、実行されるように、ネットワーク結合されたコンピュータ・システムを介して分散されることも可能である。
【０１０７】
本発明を、いくつかの好ましい実施形態に関連して説明してきたが、本発明の範囲に含まれる変更形態、置換形態、および均等形態が存在する。例えば、本発明は、タッチ・スクリーンを主に対象としてきたが、一部のケースでは、タッチ・スクリーンの代わりにタッチ・パッドが使用されることも可能であることに留意されたい。また、他のタイプのタッチ・センシティブ・デバイスが、利用されることも可能である。また、本発明の方法および装置を実施する多くの代替の仕方が存在することにも留意されたい。したがって、添付の特許請求の範囲は、本発明の真の趣旨および範囲に含まれるものとして、すべてのそのような変更形態、置換形態、均等形態を含むものと解釈されるものとする。
【図１】
2010170573.tif 000003
【図２】
2010170573.tif 000004
【図３】
2010170573.tif 000005
【図４】
2010170573.tif 000006
【図５】
2010170573.tif 000007
【図６Ａ】
2010170573.tif 000008
【図６Ｂ】
2010170573.tif 000009
【図６Ｃ】
2010170573.tif 000010
【図６Ｄ】
2010170573.tif 000011
【図６Ｅ】
2010170573.tif 000012
【図６Ｆ】
2010170573.tif 000013
【図６Ｇ】
2010170573.tif 000014
【図７】
2010170573.tif 000015
【図８】
2010170573.tif 000016
【図９】
2010170573.tif 000017
【図１０】
2010170573.tif 000018
【図１１Ａ】
2010170573.tif 000019
【図１１Ｂ】
2010170573.tif 000020
【図１１Ｃ】
2010170573.tif 000021
【図１１Ｄ】
2010170573.tif 000022
【図１１Ｅ】
2010170573.tif 000023
【図１１Ｆ】
2010170573.tif 000024
【図１１Ｇ】
2010170573.tif 000025
【図１１Ｈ】
2010170573.tif 000026
【図１２】
2010170573.tif 000027
【図１３Ａ】
2010170573.tif 000028
【図１３Ｂ】
2010170573.tif 000029
【図１３Ｃ】
2010170573.tif 000030
【図１３Ｄ】
2010170573.tif 000031
【図１４】
2010170573.tif 000032
【図１５Ａ】
2010170573.tif 000033
【図１５Ｂ】
2010170573.tif 000034
【図１５Ｃ】
2010170573.tif 000035
【図１６】
2010170573.tif 000036
【図１７Ａ】
2010170573.tif 000037
【図１７Ｂ】
2010170573.tif 000038
【図１７Ｃ】
2010170573.tif 000039
【図１７Ｄ】
2010170573.tif 000040
【図１７Ｅ】
2010170573.tif 000041
【図１８】
2010170573.tif 000042
【図１９Ａ】
2010170573.tif 000043
【図１９Ｂ】
2010170573.tif 000044
【図１９Ｃ】
2010170573.tif 000045
【図１９Ｄ】
2010170573.tif 000046
【図２０】
2010170573.tif 000047
【図２１Ａ】
2010170573.tif 000048
【図２１Ｂ】
2010170573.tif 000049
【図２１Ｃ】
2010170573.tif 000050
【図２１Ｄ】
2010170573.tif 000051
【図２２】
2010170573.tif 000052
【図２３Ａ】
2010170573.tif 000053
【図２３Ｂ】
2010170573.tif 000054
【図２３Ｃ】
2010170573.tif 000055
【図２３Ｄ】
2010170573.tif 000056
【図２４】
2010170573.tif 000057
【図２５Ａ】
2010170573.tif 000058
【図２５Ｂ】
2010170573.tif 000059
【図２５Ｃ】
2010170573.tif 000060
【図２５Ｄ】
2010170573.tif 000061
【図２６】
2010170573.tif 000062
【図２７Ａ】
2010170573.tif 000063
【図２７Ｂ】
2010170573.tif 000064
【図２７Ｃ】
2010170573.tif 000065
【図２７Ｄ】
2010170573.tif 000066