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