説明

ラジアル入力ジェスチャのための方法及びシステム

【課題】画面上の任意の位置で、タッチ入力によるパラメータ値の入力を可能にする。
【解決手段】コンピュータ装置102は、タッチ表面104とタッチ入力を使用して入力ジェスチャを認識するためのジェスチャ入力エンジン120を備える。プロセッサ108を備えたデータ処理要素は、ラジアル入力ジェスチャ方式により、入力するパラメータ値に対するインターフェース座標の直接マッピングを用いることなく、1又はそれ以上のパラメータ値を設定することができる。ラジアル入力ジェスチャ方式は、複数の入力ポイントを追跡するステップと、該複数の入力ポイントにより定義された経路を識別するステップと、経路を含む閉曲線を識別するステップと、経路が通過する曲線の割合を決定するステップと、割合に基づいてパラメータ値を設定するステップとを含む。

【発明の詳細な説明】
【背景技術】
【0001】
コンピュータアプリケーションは、通常、ユーザが幾つかの異なるパラメータ値を設定できるようにするものである。例えば、アプリケーションは、ユーザが、フォントサイズ、ズームレベル、及び同様のもの等の特性を設定できるようにする。カリフォルニア州サンホセ所在のAdobe Systems社から入手可能な、Adobe(登録商標)Photoshop(登録商標)などのようなデザインアプリケーションでは、ユーザが、色、彩度、及び同様のもの等のようなパラメータ値を選択できるようにしている。音声アプリケーションでは、ユーザが、利得又は音量、及び同様のものなどのパラメータ値を選択することができる。
【0002】
種々のインターフェース要素は、パラメータ値を選択するのに使用することができる。例えば、グラフィカルユーザインタフェースは、数字又は他の値を直接入力するためのフィールドを含むことができる。別の実施例として、インターフェースは、所望する効果の直接の選択(例えば、色パレットからの色の選択)を可能にし、或いは、選択可能な項目のリストからの選択を可能にすることができ、及び/又はダイアル、スライダー又はボタンなどのオンスクリーン制御を提供することができる。
【発明の概要】
【課題を解決するための手段】
【0003】
コンピュータ装置は、タッチ操作対応表面及びデータ処理ハードウェアを含むことができる。データ処理ハードウェアは、タッチ操作対応表面から得たデータに基づいて入力ジェスチャを認識し、該入力ジェスチャが通過する経路の決定に基づいてパラメータ値を設定するためのジェスチャ入力エンジンによって構成される。データ処理ハードウェアは、プロセッサを備え、ジェスチャ入力エンジンはプロセッサによってアクセス可能なメモリデバイス内に記憶されたプログラム論理を含むことができる。これに加えて又は代替として、ジェスチャ入力エンジンは、データ処理ハードウェアを含む論理回路を用いて実施することができる。実施に関係なく、ラジアル入力ジェスチャを使用して、パラメータ値に対するインターフェース座標値の直接マッピングを用いることなく、本明細書で説明するように1又はそれ以上のパラメータ値を設定することができる。
【0004】
本方法は、タッチ可能な入力装置により提供されるポイントなど複数の入力ポイントを追跡するステップを有することができる。これによって複数の入力ポイントにより定義された経路を識別することができ、本方法は、該経路を含む閉曲線を識別するステップと、該経路が通過する曲線の割合を決定するステップと、該割合に基づいてパラメータ値を設定するステップと、を更に含むことができる。例えば、パラメータ値は、デザインアプリケーションにおいて設定する視覚的パラメータであってもよい。経路は任意のものであってもよく、パラメータ値に対するインターフェース座標値の予め定義されたどのようなマッピングとも関係なく識別することができる。
【0005】
幾つかの実施例では、閉曲線が円を含み、経路が円弧を含むことができるが、閉曲線は他の何れかの形状を定義することもできる。円が使用される場合、経路が通過する閉曲線の割合を決定するステップは、円の中心を識別するステップと、円の円周を決定するステップと、円弧の長さ及び円周に基づいて割合を計算するステップと、を含むことができる。閉曲線の形状に関係なく、追跡ステップ、識別ステップ及び設定ステップは、連続するジェスチャの一部として定義された複数の経路について実行することができる。
【0006】
これらの例示の実施形態について、本発明の主題を限定するものではなく、簡単な説明を提供するために検討される。追加の実施形態は、ラジアル入力ジェスチャをサポートするために本主題の態様に従って構成されたアプリケーション、並びに及びラジアル入力ジェスチャをサポートするアプリケーションを提供するように適合されたコンピュータデバイスを具現化するコンピュータ可読媒体を含む。これら及び他の実施形態については、以下の詳細な説明において記載する。本発明の主題の目的及び利点は、本明細書の検討、及び/又は本明細書で教示される1又はそれ以上の態様に従って構成された実施形態の実施により明らかにすることができる。
【図面の簡単な説明】
【0007】
【図1A】コンピュータシステムと共にラジアル入力ジェスチャの例示的な使用を示す概略図である。
【図1B】図1Aのコンピュータシステムの例示的ハードウェアアーキテクチャを示す概略図である。
【図2】閉曲線の1又はそれ以上の部分を通過する経路を定義する複数のポイントと、対応するパラメータ値とを示す概略図である。
【図3A】進行中のラジアル入力ジェスチャを示す図である。
【図3B】進行中のラジアル入力ジェスチャを示す図である。
【図3C】進行中のラジアル入力ジェスチャを示す図である。
【図4】ラジアル入力ジェスチャを認識する構成要素のための例示的ソフトウェアアーキテクチャを示す概略図である。
【図5】ラジアル入力ジェスチャの処理方法における例示的ステップを示すフローチャートである。
【図6】円の1又はそれ以上の部分として指定されたラジアル入力ジェスチャの処理の実施例を示すフローチャートである。
【発明を実施するための形態】
【0008】
本明細書の残りの部分において、本発明の完全且つ有効な開示事項をより詳細に説明する。本明細書は以下の添付図を参照する。
【0009】
本開示の実施形態は、コンピュータシステム、方法、及びコードを具現化するコンピュータ可読媒体を含む。例えば、コンピュータシステムは、アプリケーションにおいて1又はそれ以上のパラメータ値を設定するラジアル入力ジェスチャをサポートするように構成することができる。ラジアル入力ジェスチャは、グラフィカルユーザインタフェース又は他の座標領域を介して経路を定義する複数のポイントによって表すことができる。
【0010】
経路は任意であってもよく、すなわち、経路は、特定の座標とジェスチャによって設定されたパラメータ値との間の予め定義された関係に関係なく定義することができる。或いは、経路自体を分析して、その経路を含む閉曲線を決定することができる。例えば、閉曲線は、楕円、円、方形又は他の何らかの形状を定義することができる。パラメータ値は、経路が通過する閉曲線の割合に基づいて設定することができる。例えば、経路が閉曲線の半分を含む(例えば、ユーザが円の半分をトレースする)場合、パラメータ値はパラメータの最大値の半分に設定することができる。別の実施例として、経路はパラメータの最大値に達するまで複数回の通過を必要とする場合がある。
【0011】
閉曲線の長さと比較して経路の長さを分析することによって、異なるレベルの精度に適合させることができる。例えば、ユーザが非常に小さな円を入力する場合、円の半分を通過するのに短い入力ジェスチャしか必要としないことになる。しかしながら、より大きな半径を使用する場合、円の半分を通過するにはより長い経路が必要になるが、これに応じて、半径が大きくなるにつれてより正確な調整が可能になる。半径は、経路から推測することができ、システムにより示されたアンカポイントに関して定義されるか、又は更に、経路を入力する前にユーザによって設定することもできる。
【0012】
設定される実際のパラメータ値は変更することができる。パラメータ値は、ある範囲内に存在する一連の数値のうちの1つとすることができ、経路が通過する曲線の割合に基づいて適切な数値を選択することができる。しかしながら、パラメータ値は、ジェスチャにマッピングされたある範囲内の数値にインデックス付けされた非数値パラメータ(例えば、ファイル名、ツール選択、その他)を含むことができる。ラジアル入力ジェスチャに基づいて数値が求まると、適切な非数値パラメータを選択することができる。
【0013】
ラジアル入力ジェスチャの使用は、モバイル機器上のような画面スペースが最小限である場合に有利とすることができる。例えば、1又はそれ以上のスライダー又は他のグラフィカルユーザインタフェース要素を置き換えて、これによってデザイン及び内容表示のための画面スペースを確保することができる。言うまでもなく、ラジアル入力ジェスチャは更に、より大きな画面を用いて、及び/又はスライダー及び他のグラフィカルユーザインタフェース要素と共に使用することができる。
【0014】
次に、種々の及び代替の例示的な実施形態並びに添付図面について詳細に説明する。各実施例は説明のために提供され、限定するものではない。当業者であれば修正及び変形を行い得ることは明らかであろう。例えば、1つの実施形態の一部として例示され又は説明される特徴は、別の実施形態と共に使用して更に別の実施形態を得ることができる。
【0015】
以下の詳細な説明において、多くの具体的な詳細事項について、本主題を完全に理解するために説明する。しかしながら、これらの具体的な詳細を用いることなく、本主題を実行できることは当業者であれば理解できるであろう。他の事例において、当業者に公知の方法、装置又はシステムは、本主題を曖昧にしないように詳細には説明していない。
【0016】
図1Aは例示的なコンピュータデバイス102を示す概略図である。図1Aに示すように、コンピュータデバイス102は、タッチセンシティブディスプレイなどのタッチ操作対応表面104を含む。本主題の1又はそれ以上の態様に従って、ユーザUは、ラジアル入力ジェスチャ106を提供し、コンピュータデバイス102により実行されるアプリケーションの1又はそれ以上の制御設定を調整することができる。
【0017】
例えば、ラスタ又はベクトルベースのグラフィック編集アプリケーションなどのデザインアプリケーションでは、ユーザが色相、透過性、又は同様のもの等のパラメータを選択し、ラジアル入力ジェスチャ106を設定して提供することができる。パラメータの大きさは、ラジアル入力ジェスチャに基づいて設定することができる。別の実施例として、コンピュータデバイス102は、ラジアル入力ジェスチャ106の入力を認識し、ユーザがどのパラメータ値を設定すべきであるかを最初に選択する必要もなく、対応するパラメータ値を設定することができる。一例として、デザインアプリケーションは、ラジアル入力ジェスチャが提供された場合に、該ラジアル入力ジェスチャを使用して複数の色の中から1色を選択するように構成することができる。
【0018】
図1Bは、コンピュータデバイス102のための例示的なアーキテクチャを示す概略図である。コンピュータデバイス102は、代替として、データ処理システム、コンピュータ化されたデバイス、又は単に「コンピュータ」と呼ばれることがある。コンピュータデバイス102は、デスクトップ、ラップトップ、タブレット、又は他の何れかのコンピュータシステムを表わす。コンピュータデバイス102の他の実施例には、限定ではないが、(PDA、スマートフォン、メディアプレイヤ、ゲームシステム、その他)モバイル機器、及び組込みシステム(例えば、車両、電化製品、又は他のデバイス内への)が含まれる。タッチ操作対応表面104は、コンピュータデバイス102のディスプレイに対応することができ、及び/又は、個別の入力面(例えば、トラックパッド、タッチセンシティブマウス、その他)であってもよい。
【0019】
一般的には、コンピュータデバイス102は、ジェスチャ入力エンジン120を実装する1又はそれ以上のデータ処理ハードウェア要素を特徴として備える。ジェスチャ入力エンジン120によって、コンピュータデバイス102は、タッチ操作対応表面からのデータに基づいて入力ジェスチャを認識し、入力ジェスチャが通過する経路を決定し、該経路に基づいてパラメータ値(又は複数の値)を設定するようにする。ジェスチャ入力エンジン120は、パラメータ値への識別位置のマッピングを必要とすることなく、コンピュータデバイスがパラメータ値を設定できるようにする。
【0020】
ジェスチャ入力エンジン120は、データ処理用要素(例えば、識別用途向け集積回路(ASIC)、プログラム可能な論理素子(例えば、PLA、FPGA、その他)のような)によって、或いはその一部としてアクセス可能なハードウェアで実施することができる。別の実施例として、ジェスチャ入力エンジン120は、ソフトウェア、又は1つ又は複数のプロセッサの動作を構成するファームウェアを使用して実施することができる。
【0021】
図1Bに示す実施例では、コンピュータデバイス102は、内部バス112、接続部、及び同様のものを介して相互接続された、1又はそれ以上のプロセッサ108及びコンピュータ可読媒体(メモリ110)を備えたデータ処理ハードウェア要素を特徴として備える。バス112はまた、コンピュータシステムの他のハードウェアに対する、ユニバーサルシリアルバス(USB)、VGA、HDMI、シリアル、及び他のI/O接続部のような、I/O構成要素114に接続される。ハードウェアはまた、1又はそれ以上のディスプレイ116を含む。上述したように、ディスプレイ116及びタッチ操作対応表面104は、同一のもの(例えば、タッチディスプレイ)であってもよく、或いは、別個のタッチ操作対応表面104を使用してもよい。理解されるように、コンピュータデバイス102は、ストレージデバイス、通信デバイス(例えば、Ethernet(登録商標)、無線構成要素)、及びスピーカ、マイク、又は同様のものなどの他のI/O構成要素のような、他の構成要素を含むことができる。
【0022】
コンピュータ可読媒体110は、RAM、ROM、又は他のメモリを含むことができ、この実施例では、プログラム構成要素118及びジェスチャ入力エンジン120を具現化する。プログラム構成要素118は、入力ジェスチャ106によりパラメータ値が設定される1又はそれ以上のアプリケーション又は処理を表す。例えば、プログラム構成要素118は、Adobe Systems社から入手可能なAdobe(登録商標)Photoshop(登録商標)、Illustrator(登録商標)、又はPremiere Pro(登録商標)などのデザインアプリケーションを含むことができる。別の実施例として、プログラム構成要素118は、別の何らかのアプリケーション又はオペレーティングシステムを含むことができる。ジェスチャ入力エンジン120は、入力ジェスチャ106を認識し、且つプログラム構成要素118に渡すための対応するパラメータ値を決定するコンピュータデバイス102を構成する1又はそれ以上の構成要素を表す。
【0023】
実際には、プログラム構成要素118及びジェスチャ入力エンジン120は、同じアプリケーションの一部とすることができ、例えば、プログラム構成要素118及びジェスチャ入力エンジン120の双方をデザインアプリケーション又は他のアプリケーションのモジュールとして含めてもよい。別の実施例として、ジェスチャ入力エンジン120は、複数の異なるアプリケーション及び/又はオペレーティングシステムによって使用される共有ライブラリ又は他の構成要素の中に含めることもできる。
【0024】
図2は、ジェスチャ入力エンジン120により更に詳細に認識できるラジアル入力ジェスチャ106を例示した概略図である。この実施例では、ラジアル入力ジェスチャは、経路を定義する複数の入力ポイント200〜216を追跡することによって認識される。例えば、タッチ操作対応表面104は、静電容量、光学、又は他の技術を使用して入力ポイントを識別することができる。この実施例では、ポイントは、アンカポイントCの周りの円弧である経路をトレースする。破線で示されるように、円弧は円の一部であるが、閉曲線は他の何らかの形状をとることもできる。
【0025】
図2はまた、パラメータ値を表す例示的な範囲218を示し、例えば、この範囲は、デザインアプリケーションにおいてペイントするのに使用される様々な色又はパターンを表すことができる。ラジアル入力ジェスチャは、範囲の一部分又は範囲内の値を選択するのに使用することができる。この実施例では、範囲の最小値は、僅かに影が付けられた部分に対応し、この影付けは、範囲の右側でほぼ単色の影付きにまで増大する。この実施例では、範囲218は、ジェスチャと並んで図示されているが、実際には、ジェスチャを介して選択される範囲又は別のインジケータは、ディスプレイ内のどこか別の場所に表示してもよく、或いは全く表示しなくてもよい。
【0026】
この実施例では、ユーザは、ポイント200から開始し、ポイント202まで円弧をトレースすることによってジェスチャ106を提供することができる。円弧はポイントCから半径R1の距離に位置するので、円弧の長さは円の比較的小部分に対応する。従って、218−Aにおける値が選択される。一方、ユーザが、ポイント200からポイント202、204、206、208、210、212、及び214を通過してポイント216までをトレースすると、円の半分がトレースされたことになる。これによって範囲全体の中間にある値にマッピングすることができ、この結果、218−Bにおける色/パターンの選択が得られる。ユーザが円の残りの部分をポイント216から戻ってポイント200にトレースする段階に進むと、218−Cにおける(範囲の最大値を表す)色/パターンを選択することができる。
【0027】
経路の長さに対するジェスチャの長さの特定のマッピングによって、追加入力をどのように解釈するのかを制御することができる。例えば、再度通過したポイント200の付近でジェスチャが続いた場合、対応するパラメータ値を218−Aにリセットすることができる。別の実施例として、範囲外にあるパラメータ値に対応するジェスチャは無視することができる。
【0028】
図2には、半径R2の第2の円も示されている。この円に沿ったラジアル入力ジェスチャは、範囲218を通過するのに遙かに短い経路長を使用する。例えば、ユーザは、ポイント220でジェスチャを開始し、ポイント222を通ってポイント224へ移動して円の半分を通過し、その結果、範囲218上のポイント218−Bにおける値の選択をすることができるようになる。
【0029】
この実施例はまた、開始ポイント及び終了ポイントの特定の座標値がそれ自体は制御されていない状態を示している。例えば、範囲218の値に対する開始又は終了の座標値のマッピングを使用する必要はない。従って、ポイント220からポイント222を通りポイント224まで第2の円の半分を通過することは、ポイント200からポイント216までによる第1の円の半分を通過するのと同じ結果を有することになる。同様に、円の底部を通ってポイント216からポイント200まで第1の円の半分を通過することもまた、同じ結果をもたらすことになる。この実施例では、範囲218の最大値に達するのに1回だけ円を通過するだけでよい。しかしながら、一部の実施では、円(又は他の曲線)を複数回トレースしてマッピングされた範囲全体を通って進むことできるようにマッピングを使用できるものもある。ジェスチャの方向は、ジェスチャがパラメータ値を設定する方法に影響を及ぼすことができ、例えば、時計回りの円が、反時計回りの円とは異なる結果をもたらす(又は更には、異なる値を設定する)ことができる。一方では、ジェスチャが通過する曲線部分だけが制御されるようにマッピングを定義することができる。
【0030】
幾つかの実施例では、入力経路は、複数の反復を介してパラメータ値を設定するために追跡され、識別され、且つ使用される。事実上、値は、連続する入力ジェスチャの一部として複数の経路について設定される。例えば、複数の円弧は、連続したジェスチャの一部として定義することができ、この複数の円弧のうちの少なくとも2つは、アンカポイントから異なる半径距離を有している。図2において、ユーザがポイント224から開始し、半径R2の円に沿ってポイント220までの時計回りの入力ジェスチャを行い、次いで、ジェスチャを継続しながら、外側の円(半径R1を有する)に出てポイント214及びポイント216まで螺旋状に移動した場合に上記の定義を行うことができる。
【0031】
この実施例を簡素化するために、ジェスチャは2つの円弧として分析されており、実際には螺旋は、勿論、より高い解像度で処理することができる。最初の円弧(224から220まで)は、半径R2を有するCの円の半分を通過し、これは(この実施例では)範囲218の中間点及び218−Bの値にマッピングされる。第2の円弧(214から216まで)はより微細な調整を可能にし、最終パラメータ値は、第2の円弧から導き出されたパラメータ値を第1の円弧から導き出されたパラメータ値にオフセットとして加えることに基づいた218−B及び218−C間の設定値をもたらすことになる。言うまでもなく、第2の円弧は、例えば、ジェスチャが外側の円に移動し、その後方向が変更された場合、小さな量の減算となる場合もある。
【0032】
図3A、3B、及び3Cは各々、進行中のラジアル入力ジェスチャ106を示したグラフィカルユーザインタフェース302の1つの実施例を示す。この実施例では、ジェスチャ106は、ボックス304に例示された数字パラメータ値にマッピングされている。このパラメータはこの実施例では0から20までの範囲を有する。
【0033】
図3Aは、ジェスチャが提供されていない初期状態を示す。従って、ボックス304に示すように、パラメータ値は0のままである。図3Bでは、矢印で示すように、円の50%を通過するラジアル入力ジェスチャが提供される。ボックス304に示すように、パラメータ値は範囲の50%(この実施例では「10」)に設定される。図3Cでは、ジェスチャは、継続して円の100%を通過し、これにより、ボックス304の最大値(「20」)の設定となる。実際には、経路は、入力に応答してトレースすることができ、或いは、他の視覚的なフィードバック(及び/又は音声、触覚、又は他のフィードバック)を提供してもよい。例えば、アプリケーションは、ジェスチャが提供されたときにパラメータ値を動的に更新する(例えば、色又は他の選択された視覚的特徴を変更すること、或いは、この実施例では、ジェスチャが提供されたときにボックス304に示される値の増分又は減分を行う)ことができる。勿論、幾つかの実施例では、フィードバックは1又はそれ以上のパラメータ値の設定以外には提供されない。
【0034】
パラメータ値の範囲は「20」を超えて拡張することができる。例えば、マッピングは、真の最大値が複数回円を通過することを必要とするように定義することができる。例えば、最大値が「60」である場合、円はその値に達するまで3回トレースすることができる。
【0035】
幾つかの実施形態では、通過した経路の割合が値の範囲にマッピングされ、範囲から得た対応する値を用いて、パラメータ値を直接設定する。しかしながら、他の方法を使用することもできる。例えば、範囲から得た対応する値は、パラメータの既存の値に加算又は減算し、或いは他の方法で適用されたオフセットとして使用することもできる。図3Aに戻ると、図3Bに示されるようなジェスチャ106が提供され、パラメータ値を「10」に設定したものと仮定する。オフセットベースの方法を使用してパラメータ値を設定する場合、図3Bに示されたようなジェスチャ106が提供された後に、この同じジェスチャを繰り返して、パラメータ値に別の10単位を加算することができる。或いは、異なるジェスチャを用いて、単位を減算することができる(例えば、反対方向にトレースされた円)。
【0036】
図4は、ジェスチャ入力エンジン120のための例示的なアーキテクチャを示す概略図である。座標値受信モジュール402は、複数の入力ポイントを表す入力データを受信するためのコンピュータシステムを構成したプログラムコード又はハードウェア論理回路を表す。例えば、ドライバ又は他の構成要素は、1又はそれ以上のタッチ入力デバイスからの信号を画面又は他の座標値に変換することができる。座標値受信モジュール402は、座標値の受信を識別し、ラジアル入力ジェスチャの検出をトリガすることができる。
【0037】
幾つかの実施形態では、ラジアル入力ジェスチャは、他のデータに基づいて認識される。例えば、グラフィカルユーザインタフェースの一部分は、ラジアル及び他のジェスチャの入力用として確保することができ、確保された領域から得た座標値の受信により、ラジアル入力ジェスチャの認識処理をトリガすることができる。別の実施例として、別のイベントにより、ラジアル入力ジェスチャの認識処理をトリガすることができる。例えば、モジュール402は、ラジアル入力ジェスチャ構成要素120を直接呼び出す命令を認識することができ、或いは、別の入力イベント(例えば、ツールの選択、設定すべきパラメータ値の選択)により、ジェスチャの認識処理をトリガすることができる。詳細な実施例として、デザインアプリケーションにおけるペイント又はフィル命令の選択によって、モジュール402をトリガし、入力座標の監視を行うことができる。
【0038】
経路識別子モジュール404は、円弧又は複数の入力ポイントにより定義された他の経路を識別し、更に、円弧又は他の経路を含む1又はそれ以上の閉曲線を識別するようにコンピュータシステムを構成するプログラムコード又はハードウェア論理回路を表す。この1又はそれ以上の閉曲線は、何れかの好適な方法で求めることができる。幾つかの実施形態では、閉曲線は円形と仮定され、円弧に基づいて決定することができる。例えば、円弧はポイントの幾何学的分析に基づいて識別することができ、すなわち、微分可能曲線を定義するのに十分な数のポイントが識別されると、円弧(又は潜在的円弧)を示すことができる。別の実施例として、グラフィカルユーザインタフェースは、複数の潜在的な曲線(例えば、複数の同心円又は他の曲線)を含むようにマッピングすることができ、また、識別された経路の座標値に基づいて、対応する曲線を分析のために選択することができる。
【0039】
マッピングモジュール406は、識別された経路及び対応する閉曲線に基づいてパラメータ値を調整するようにプロセッサを構成したプログラムコード又はハードウェア論理回路を表す。例えば、モジュール406は、円弧が通過する円の割合を決定するために、円弧と、円弧及びアンカポイント間の半径方向距離とに依存することができる。別の実施例として、経路の長さは、入力ポイントに基づいて計算され、経路を含む閉曲線の全長と比較され、経路が通過する閉曲線の割合を決定することができる。経路が通過する曲線の割合に基づいて、マッピングモジュール406は、1又はそれ以上の対応するパラメータ値を決定することができる。パラメータ値は、ジェスチャを使用するアプリケーションの適切な構成要素に渡すことができる。
【0040】
別の実施例として、ジェスチャ構成要素120がジェスチャを使用するアプリケーションから分離されている場合、マッピングモジュール406はパラメータ値を計算することができないので、代わりに、ジェスチャが通過した曲線の割合が上記アプリケーションに対するジェスチャを使用するアプリケーションに渡され、アプリケーションのマッピングに適用することができる。
【0041】
図5は、ラジアル入力ジェスチャに基づいてパラメータ値を決定する例示的な処理方法500の例示のステップを示すフローチャートである。例えば、方法500は、ジェスチャ構成要素120、及び他のアプリケーション又は構成要素に従ってコンピュータデバイス102の動作中に実行することができる。
【0042】
ブロック502は、複数の入力ポイントを追跡するステップを表す。上述したように、このような追跡ステップの1つの実施例は、タッチ操作対応表面104から入力座標値を受信するステップである。しかしながら、座標値は、マウスなどの他の入力装置から提供されてもよい。
【0043】
ブロック504は、複数の入力ポイントにより定義された経路を識別するステップを表す。例えば、このステップは、微分可能曲線又は他の認識可能経路を定義する入力ポイントの第1の利用可能なセットを決定するステップにより行うことができる。経路を識別するステップは、フィルタリング、閾値処理、又は入力座標内でのノイズ又はジッタを考慮する他の技法を適用するステップを含むことができる。
【0044】
本方法は、入力ポイントがもはや提供されない閾値時間が経過するまで、メモリ内の定義の更新を続行することができる。別の実施例として、曲線又は他の経路を定義する最少のポイント数が識別されると、本方法は別のステップに進むことができ、このような手法は、連続入力に応答して認識処理を複数回反復して実行されるときに有利とすることができる。
【0045】
ブロック506は、経路が通過する閉曲線の一部分を決定するステップを表す。閉曲線は、幾つかの方法で識別することができる。例えば、上述したように、ジェスチャ認識処理は、座標空間を介して複数の潜在的曲線を識別するデータに依存し、入力ポイントにより定義された経路を含む曲線を選択することができる。詳細な実施例として、一連の入力座標は、動径座標(r、Θ)(座標が、半径方向成分として未だ指定されていない場合)と、入力ポイントのr座標から識別された曲線とに変換することができる。別の実施例として、閉曲線は、1又はそれ以上のヒューリスティック又は曲線適合アルゴリズムを適用することによって複数の入力ポイントから外挿して推定することができる。閉曲線は、ジェスチャ中にグラフィカルユーザインタフェースに表示することができるが、曲線又は経路の表示は必要ではない。
【0046】
閉曲線の識別方法とは関係なく、経路が通過する閉曲線の部分を決定することができる。例えば、閉曲線の長さ(LC)は、算出、推測、又はメモリからアクセスすることができる。次に、経路が通過する曲線の長さ(LP)を入力ポイントに基づいて算出することができる。経路が通過する部分は、(LP)/(LC)として求めることができる。経路及び曲線の幾何形状に応じて、他の技法を使用してもよい。例えば、経路が円弧である場合、半径距離を求めることができ、経路が通過する部分は、度数又は図6で以下に説明するような円弧に対するラジアンに関して決定することができる。
【0047】
ブロック508は、経路が通過する曲線の部分に基づいて1又はそれ以上のパラメータ値を設定するステップを表す。ジェスチャは、1つのパラメータ値又はパラメータ値のセットにマッピングすることができる。このパラメータ値は、曲線の割合の関数として値を算出することにより、経路が通過する曲線の割合に基づいて求めることができる。別の実施例として、パラメータ値を設定する際に使用される値を算出するのではなく、設定されることになるパラメータの値に対する曲線の割合をマッピングしたデータを予め定義しておき、ブロック508においてアクセスすることができる。
【0048】
幾つかの実施例では、パラメータ値は、スケールから値を選択することによって決定される。例えば、スケールは、色相、色、彩度、又は何らかの他の視覚的パラメータに対する値など、ある範囲の数値を定義することができる。別の実施例として、スケールは、何らかの他の対象パラメータをインデックス付けする数値範囲を含むことができる。例えば、ファイルのリスト、フォント、アプリケーションツール/オプション、又は何らかの他の項目の選択可能なセットを各々範囲内の値にインデックス付けすることができる。
【0049】
例えば、経路が通過する曲線の割合(すなわち、(LP)/(IC))は、パラメータの最大値と乗算することができる。結果として得られる積は、計算されてそのまま使用することができ、或いは、(例えば、最も近い整数値に)四捨五入してもよい。この手法は、閉曲線の(例えば、1つの完全な円)1つの完全な通過が値の範囲全体と相関付けられることになる場合に使用することができる。複数の通過が必要である場合、パラメータの最大値と(LP)/(W*(LC))の乗算のような重み付け(W)を含めることもできる。
【0050】
上記の実施例では、全体の長さの割合として求められる曲線部分について説明した。しかしながら、幾つかの実施例では、曲線部分は、円の総ラジアン(2π)と比較して、円弧が通過する円のラジアンを用いて指定してもよい。複数の通過が範囲全体に及ぶことが望ましい場合、もちろん重み付けWを使用することができる。
【0051】
パラメータ値は、上述のような入力ジェスチャから決定された値を用いて直接設定することができる。しかしながら、幾つかの実施例では、パラメータ値は、この決定値を既存のパラメータ値に適用することによって設定される。例えば、決定値は、オフセットとして既存のパラメータに加算されるか、又は既存のパラメータから減算することができる。別の実施例として、決定値は、既存の値を乗算又は除算することによって既存のパラメータに適用することができる。
【0052】
図6は、円の1又はそれ以上の部分として指定されたラジアル入力ジェスチャを処理するための方法600の1つの実施例を示すフローチャートである。方法600は、例えば、ジェスチャ構成要素120によって実行することができる。
【0053】
ブロック602は、入力ポイントを追跡するステップを表し、ブロック604は、上述のようにポイントから円弧を識別するステップを表す。ブロック606は、円弧を含む円の半径を決定するステップを表す。
【0054】
例えば、この決定ステップは、アンカポイントを識別し、該アンカポイントからの円弧の距離を求めるステップにより実行することができる。幾つかの実施例では、アンカポイントは予め定義することができる。1つの実施例として、アプリケーションは、ラジアル入力ジェスチャを認識し、グラフィカルユーザインタフェースにおいてアンカポイントのインジケータを提供するようにトリガすることができる。別の実施例として、円弧を入力する前に、アプリケーションは、ユーザがアンカポイントを定義できるようにしてもよい(例えば、グラフィカルユーザインタフェースにおいてある位置にタッチすることによって)。半径は、ユーザがトレースする円弧に最も近い円を識別するステップによって判別することができる。
【0055】
しかしながら、アンカポイントは、円弧自体から判別することができる。例えば、アプリケーションは、円弧が円の一部分に対し、円弧の全てのポイントから等距離にあるポイントとしてアンカポイントを定義すると仮定することができる。例えば、距離は、円弧上の座標の差異及びアンカポイントの座標に基づいて測定することができる。別の実施例として、半径は、円弧の高さ及び幅に基づいて決定することができ、幅は円弧の基点を定義する弦の長さであり、高さは円弧の中心点で測定される。
【0056】
ブロック608は、弧長を決定するステップを表す。例えば、円弧の長さは、円弧を定義する座標値に基づいて算出することができる。弧長及び半径は、円弧が通過する半径距離を決定するのに用いることができる。ブロック610は、円弧が通過する円の部分の関数として制御用パラメータを設定するステップを表す。例えば、上述したように、円の長さ(すなわち、円周)に対する弧長の比率を算出し、スケールに適用することができる。
【0057】
別の実施例として、上記パラメータ値及びパラメータ値は、パラメータ値に対する半径距離のマッピングに基づいて設定することができる。例えば、スケールの最小値は、最初の半径値(例えば、0ラジアン)にマッピングすることができ、スケールの最大値は、「最後」の半径値(例えば、2πラジアン)にマッピングすることができる。実際には、2πラジアン及び0ラジアンは等価であるので、最初の値及び最後の値の一方又は双方を適宜調整することができる(例えば、スケールによって、最初の値を0.000001ラジアンにマッピングし、最後の値を2πラジアンにマッピングすすることができ、或いは、最初の値を0ラジアン、最後の値を1.999999πラジアンにマッピングすることができる)。言うまでもなく、マッピングは、円弧が円を複数回通過してスケール全体の範囲にわたるように定義することができ、例えば、スケール全体の範囲にわたるには円のまわりに2つのループが必要になるように、スケールの最後の値が4π(3.999999π)ラジアンにマッピングされた状態で、スケールの最小値を0ラジアンにマッピングすることができる。
【0058】
上述のように、設定されるパラメータ値は、アプリケーション内の選択可能な項目の何れかに対応することができる。実施例には、限定ではないが、デザインアプリケーションの視覚的パラメータが含まれる。別の実施例として、パラメータ値は、対象のファイルを選択し、選択可能なリストからツール又は他のアプリケーション機能を呼び出し、ファイルの一部分を選択(例えば、タイムラインにインデックス付けされたビデオ、オーディオ、又は他のコンテンツ内の特定のポイントを選択する)し、ハードウェアのパラメータ(例えば、機器のオーディオ利得)を設定するために用いられるインデックス値とすることができる。
【0059】
複数の実施例では、パラメータ値に対する通過した曲線部分のマッピングついて説明したが、マッピングは、最小値から最大値に、最大値から最小値に、線形的に、もしくは指数関数的に行うこともでき、又は、何らかの他の関数に従って進めることができ、或いは完全に任意であってもよい。上記の複数の実施例では、閉曲線は円であったが、他の閉曲線を使用することもできる。周長を有する他の幾何学的形状(例えば、方形、矩形、三角形、他の形状)も同様に使用することができる。追加の実施形態はまた、閉鎖した曲線及び形状以外の、開曲線などの他の図形も使用することができる。一般的に言えば、直線は2つの半径点間の距離を進む最速の進路であるので、他の図形の使用は、スケールの迅速な通過をもたらす可能性がある。
【0060】
(一般的事項)
詳細な説明の一部は、コンピュータメモリなどのコンピュータシステムメモリ内に記憶されたデータビット又は2進デジタル信号に対する演算のアルゴリズム又は記号表現に関して提示されたものである。これらのアルゴリズム記述又は表現は、データ処理技術者が自分の作業内容を他の当業者に伝えるのに用いられる技法の実施例である。本明細書において及び一般的には、アルゴリズムは、所望の結果をもたらす自己無撞着の作業シーケンス又は同様の処理と見なされる。本文中、演算又は処理には物理量の物理的操作が含まれる。
【0061】
通常、必須ではないが、このような物理量は、記憶、転送、結合、比較、又は他の操作を行うことができる電気又は磁気信号の形態を取ることができる。場合によっては、主として一般的な使用のために、このような信号をビット、データ、値、要素、記号、文字、項、番号、数字、又は同様のものと呼ぶことが好都合であることが判っている。しかしながら、これらの用語及び類似の用語の全ては、適切な物理量に関連付けられ、単に好都合な表記に過ぎない点は理解されたい。
【0062】
上述の説明から明らかであるように、特に明記しない限り、本明細書全体を通じて「処理する」、「演算する」、「算出する」、「決定する」、又は同様のもののような用語を利用した説明は、メモリ、レジスタ、又は他の情報ストレージデバイス、送信デバイス、又はコンピュータプラットフォームのディスプレイ装置内の物理的な電子量又は磁気量として表されるデータの操作又は変換を行う、1又はそれ以上のコンピュータ及び/又は同様の1又は複数の電子コンピュータデバイスなどのコンピュータプラットフォームの動作又は処理を意味すると理解すべきである。
【0063】
複数の実施例はモバイル機器を特徴として備えるが、本明細書で説明した様々なシステムは、何らかの特定のハードウェアアーキテクチャ又は構成に限定されるものではない。コンピュータデバイスは、1又はそれ以上の入力に条件付けられた結果をもたらす構成要素の何れかの適切な配置を含むことができる。好適なコンピュータデバイスは、記憶されたソフトウェアにアクセスする多目的マイクロプロセッサベースのコンピュータシステムを含み、このシステムは、本発明の主題の1又はそれ以上の実施形態を実施する汎用コンピュータデバイスから専用コンピュータデバイスまでのコンピュータシステムをプログラムし又は構成する。何れかの好適なプログラミング、スクリプト記述、或いは他のタイプの言語又は言語のセットみ合わせを用いて、コンピュータデバイスをプログラムし又は構成するのに使用されるソフトウェアにおいて、本明細書に包含される教示を実施することができる。
【0064】
コンピュータデバイスは、少なくとも1つのコンピュータによって実行されたときに、少なくとも1つのコンピュータに本発明の主題の1又はそれ以上の実施形態を実施させるようにするコンピュータ可読命令を具現化した1又はそれ以上の非一時的なコンピュータ可読媒体にアクセスすることができる。ソフトウェアが利用されるときには、ソフトウェアは、1又はそれ以上の構成要素、処理、及び/又はアプリケーションを含むことができる。ソフトウェアに加えて、或いは代替として、コンピュータデバイスは、本発明の主題の1又はそれ以上の方法を実施するようデバイスを有効な状態にする回路を含むことができる。
【0065】
コンピュータデバイスの実施例には、限定ではないが、サーバ、パーソナルコンピュータ、モバイル機器(例えば、タブレット、スマートフォン、携帯情報端末(PDA)、その他)、テレビ、テレビセットトップボックス、携帯音楽プレーヤー、並びにカメラ、カムコーダ、及びモバイル機器などの家庭用電子機器が含まれる。コンピュータデバイスは、「スマートな」電化製品、自動車、キオスク端末、及び同様のもの等の他の機器に組み込まれてもよい。
【0066】
本明細書に開示された方法の実施形態は、コンピュータデバイスの動作において実行することができる。上記の実施例において提示されたブロックの順序は変えることができ、例えば、ブロックは、再順序付けし、結合し、及び/又はサブブロックに分けることができる。特定のブロック又は処理は平行して実行することができる。
【0067】
何れかの好適な非一時的なコンピュータ可読媒体は、本開示で開示されている主題を実施又は実行するのに使用することができ、このコンピュータ可読媒体には、限定ではないが、ディスケット、ドライブ、磁気ベースストレージ媒体、光学ストレージ媒体(例えば、CD−ROM、DVD−ROM、及びこれらの変形形態)、フラッシュ、RAM、ROM、及び他のメモリデバイスが含まれる。
【0068】
本明細書で使用される「ように適合される(adapted to)」又は「ように構成される(configured to)」は、追加のタスク又はステップを実行するように適合又は構成された機器を排除しないオープンランゲージ且つ包含的用語を意味する。更に、「に基づく(based on)」の使用は、処理、ステップ、算出の点でオープンランゲージ且つ包含的であることを意味し、或いは、1又はそれ以上の記載の条件又は値「に基づく」他の動作は、実際には、記載された以上の追加の条件又は値に基づくことができることを意味する。本明細書に含まれる見出し、リスト、及び番号は、単に説明の容易にするためのものであり、限定を意図するものではない。
【0069】
本発明の主題を特定の例示的な実施形態及びその方法に関して詳細に説明してきたが、上述の説明を理解することにより、当業者にはこのような実施形態に対する代替形態、変形形態、及び均等な形態を容易に提示することができることは理解されるであろう。従って、本開示は、限定ではなく例示の目的で提示されたものであり、当業者には容易に理解されるように、本主題に対するこのような修正、変形、及び/又は追加を含むことを排除するものではない。

【特許請求の範囲】
【請求項1】
タッチ操作対応表面と、
データ処理ハードウェア要素と、
を備え、前記データ処理ハードウェア要素がジェスチャ入力エンジンを実装し、前記タッチ操作対応表面からのデータに基づいて入力ジェスチャを認識し、前記入力ジェスチャによって定義された経路を決定して、前記経路が通過する曲線の割合の決定に基づいてパラメータ値を設定するようにする、コンピュータ装置。
【請求項2】
前記入力ジェスチャがラジアル入力ジェスチャを含み、前記曲線が閉曲線である、請求項1に記載のコンピュータ装置。
【請求項3】
前記データ処理ハードウェアがプロセッサを備え、前記ジェスチャ入力エンジンが前記プロセッサによってアクセス可能なプログラム論理を含む、請求項1に記載のコンピュータ装置。
【請求項4】
前記パラメータ値が、デザインアプリケーションにおいて設定する視覚的パラメータを含む、請求項1に記載のコンピュータ装置。
【請求項5】
コンピュータにより実装される方法であって、
入力ジェスチャに応答して、入力装置により提供される複数の入力ポイントを追跡するステップと、
前記複数の入力ポイントにより定義された経路を識別するステップと、
前記経路を含む閉曲線を識別するステップと、
前記経路が通過する前記閉曲線の割合を決定するステップと、
前記割合に基づいてパラメータ値を設定するステップと、
を含む、コンピュータにより実装される方法。
【請求項6】
前記パラメータ値を設定するステップが、デザインアプリケーションにおいて設定する視覚的パラメータを調整するステップを含む、請求項5に記載の方法。
【請求項7】
前記パラメータ値が、パラメータ値に対する座標値のマッピングとは関係なく設定される、請求項5に記載の方法。
【請求項8】
前記複数の入力ポイントを追跡する前記ステップの前に、入力コマンドに基づいて設定されることになる前記パラメータ値を決定するステップを更に含む、請求項5に記載の方法。
【請求項9】
前記閉曲線が円を含み、前記経路が円弧を含み、前記経路が通過する閉曲線の割合を決定するステップが、
前記円の中心に対応するアンカポイントを識別するステップと、
前記円弧から前記アンカポイントまでの半径距離に基づいて前記円の円周を決定するステップと、
前記円弧の長さ及び前記円周に基づいて前記割合を算出するステップと、
を含む、請求項5に記載の方法。
【請求項10】
前記追跡ステップ、前記識別ステップ、及び前記設定ステップが、連続したジェスチャの一部として定義された複数の円弧に対して実行され、前記複数の円弧のうちの少なくとも2つの円弧が前記アンカポイントとは異なる半径距離を有する、請求項9に記載の方法。
【請求項11】
前記複数の入力ポイントを追跡する前記ステップの前に、前記アンカポイントの位置を定義する入力を受信するステップを更に含む、請求項9に記載の方法。
【請求項12】
前記複数の入力ポイントを追跡する前記ステップに応答して、グラフィカルユーザインタフェースにおいて前記経路の少なくとも一部分をレンダリングするステップを更に含む、請求項5に記載の方法。
【請求項13】
前記複数の入力ポイントが追跡されている間、グラフィカルユーザインタフェースに選択画像をレンダリングするステップを更に含む、請求項5に記載の方法。
【請求項14】
プロセッサと、
前記プロセッサにインターフェース接続されたメモリと、
を備えるシステムであって、
前記メモリが、
複数の入力ポイントを表す入力データを受信するように前記プロセッサを構成するプログラムコードと、
前記複数の入力ポイントによって定義された円弧を識別するように前記プロセッサを構成するプログラムコードと、
前記識別された円弧に基づいて、及び前記円弧とアンカポイントとの間の半径距離に基づいてパラメータ値を調整するように前記プロセッサを構成するプログラムコードと、
を含むプログラムコードを具現化する、システム。
【請求項15】
タッチ検出装置を更に備え、前記入力データが前記タッチ検出装置によって提供される前記複数の入力ポイントを表す、請求項14に記載のシステム。
【請求項16】
前記プロセッサ及びメモリがモバイル機器内に含まれる、請求項14に記載のシステム。
【請求項17】
前記プログラムコードがデザインアプリケーション内に構成され、前記パラメータ値が前記デザインアプリケーションにおいて提供されるツールを制御するのに使用される設定値を含む、請求項14に記載のシステム。
【請求項18】
前記設定値が視覚的パラメータを含む、請求項17に記載のシステム。
【請求項19】
プログラムコードを具現化する非一時的なコンピュータ可読媒体を備えるコンピュータプログラム製品であって、前記プログラムコードが、
コンピュータデバイスによって実行されたときに、前記コンピュータデバイスに複数の入力ポイントを分析させ、該入力ポイントによって定義され且つ予め定義されたあらゆる経路とは関係なく定義される円弧を識別させるようにするコードと、
前記コンピュータデバイスによって実行されたときに、前記識別された円弧と前記識別された円弧の制御ポイントからの距離とに基づいてアプリケーションのパラメータ値を前記コンピュータデバイスに調整させるコードと、
を含む、コンピュータプログラム製品。
【請求項20】
前記コンピュータデバイスによって実行されたときに、タッチ検出装置から得た前記複数の入力ポイントに前記コンピュータデバイスがアクセスするようにするコードを更に含む、請求項19に記載のコンピュータプログラム製品。
【請求項21】
前記パラメータ値を前記コンピュータデバイスに調整させる前記コードが、前記コンピュータデバイスに、前記円弧が通過する円の割合を決定させ且つ前記パラメータ値に対するフルスケール値の対応する割合を決定させるようにする、請求項19に記載のコンピュータプログラム製品。

【図1A】
image rotate

【図1B】
image rotate

【図2】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図3A】
image rotate

【図3B】
image rotate

【図3C】
image rotate


【公開番号】特開2012−118991(P2012−118991A)
【公開日】平成24年6月21日(2012.6.21)
【国際特許分類】
【出願番号】特願2011−263411(P2011−263411)
【出願日】平成23年12月1日(2011.12.1)
【出願人】(595097771)アドビ システムズ, インコーポレイテッド (22)
【氏名又は名称原語表記】ADOBE SYSTEMS, INC.
【Fターム(参考)】