(57)【特許請求の範囲】
【請求項１】
マルチタッチ操作が可能な情報処理装置であって、
前記情報処理装置に対して入力された複数のタッチ点の位置を取得する位置取得手段と、
前記位置取得手段によって取得された位置に基づいて、前記マルチタッチ操作を構成する２点のタッチ点の間の距離を取得する距離取得手段と、
前記情報処理装置に対して入力されたマルチタッチ操作を決定する決定手段とを備え、
前記決定手段は、前記距離取得手段によって複数回に渡って取得される前記２点のタッチ点の間の距離が、連続して拡大された場合に前記入力されたマルチタッチ操作は表示部に表示されている画像を拡大して表示させるための操作であると決定するか、または連続して縮小された場合に前記入力されたマルチタッチ操作は前記表示部に表示されている画像を縮小して表示させるための操作であると決定することを特徴とする情報処理装置。
【請求項２】
前記距離取得手段によって複数回に渡って取得された前記２点のタッチ点の間の距離が、連続して拡大されたか、または、連続して縮小されたかを判定する判定手段を更に備え、
前記決定手段は、前記判定手段による判定結果に応じて、前記入力されたマルチタッチ操作を決定することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記位置取得手段は、前記マルチタッチ操作を構成する複数のタッチ点の位置を１点ずつ取得し、
前記距離取得手段は、前記位置取得手段がタッチ点の位置を１点ずつ取得する度に、前記マルチタッチ操作を構成する２点のタッチ点の間の距離を取得する、ことを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記判定手段は、前記距離取得手段によって複数回に渡って取得される前記２点のタッチ点の間の距離が、連続して拡大あるいは連続して縮小されていないと判定した場合に、前記情報処理装置に対して前記拡大または縮小の操作以外のマルチタッチ操作が入力されたか否かを判定することを特徴とする請求項２に記載の情報処理装置。
【請求項５】
前記判定手段は、前記判定手段によって、前記距離取得手段によって複数回に渡って取得される前記２点のタッチ点の間の距離が、連続して拡大あるいは連続して縮小されていないと判定された場合に、前記マルチタッチ操作を構成する２点のタッチ点が移動されたときに前記距離取得手段が取得した前記２点のタッチ点の間の距離と、前記距離取得手段が最初に検出した前記２点のタッチ点の間の距離とが略一定に保たれているかを判定することを特徴とする請求項２に記載の情報処理装置。
【請求項６】
前記決定手段は、前記マルチタッチ操作を構成する２点のタッチ点が移動されたときに前記距離取得手段が取得した前記２点のタッチ点の間の距離と、前記距離取得手段が最初に検出した前記２点のタッチ点の間の距離とが略一定に保たれている場合には、前記入力されたマルチタッチ操作は、前記表示部に表示されている画像とは異なる画像を特定して表示させるための操作であると決定することを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記決定手段は、前記距離取得手段によって複数回に渡って取得される前記２点のタッチ点の間の距離が、規定回数以上連続して拡大された場合に前記入力されたマルチタッチ操作は前記拡大の操作であると決定するか、または規定回数以上連続して縮小された場合に、前記入力されたマルチタッチ操作は前記縮小の操作であると決定することを特徴とする請求項１乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
前記規定回数を変更する変更手段を更に備え、
前記変更手段は、前記距離取得手段が最初に検出した前記２点のタッチ点の間の距離が、所定の距離よりも大きい場合に、前記規定回数をより少ない回数に変更することを特徴とする請求項７に記載の情報処理装置。
【請求項９】
前記規定回数を変更する変更手段を更に備え、
前記位置取得手段は、入力装置であるタッチパネルが検出している複数のタッチ点の情報を一定の周期で１点ずつ順次取得し、
前記変更手段は、前記位置取得手段が、前記複数のタッチ点の最新の位置情報を検出する周期が、所定の時間よりも短い場合に、前記規定回数をより少ない回数に変更することを特徴とする請求項７に記載の情報処理装置。
【請求項１０】
前記規定回数を変更する変更手段を更に備え、
前記変更手段は、前記位置取得手段によって取得されたタッチ点の位置の移動速度が所定の速度より小さい場合に、前記規定回数をより少ない回数に変更することを特徴とする請求項７に記載の情報処理装置。
【請求項１１】
コンピュータに読み込ませ実行させることで、前記コンピュータを請求項１乃至１０のいずれか１項に記載された情報処理装置として動作させるためのプログラム。
【請求項１２】
マルチタッチ操作が可能な情報処理装置の制御方法であって、
位置取得手段により、前記情報処理装置に対して入力された複数のタッチ点の位置を取得する位置取得工程と、
距離取得手段により、前記位置取得工程において取得された位置に基づいて、前記マルチタッチ操作を構成する２点のタッチ点の間の距離を取得する距離取得工程と、
決定手段により、前記情報処理装置に対して入力されたマルチタッチ操作を決定する決定工程とを備え、
前記決定工程では、前記距離取得工程において複数回に渡って取得される前記２点のタッチ点の間の距離が、連続して拡大された場合に前記入力されたマルチタッチ操作は表示部に表示されている画像を拡大して表示させるための操作であると決定するか、または連続して縮小された場合に前記入力されたマルチタッチ操作は前記表示部に表示されている画像を縮小して表示させるための操作であると決定することを特徴とする情報処理装置の制御方法。
【請求項１３】
請求項１１に記載のプログラムを格納したコンピュータ読み取り可能な記憶媒体。
【請求項１４】
マルチタッチ操作が可能な情報処理装置であって、
前記情報処理装置に対して入力された複数のタッチ点の位置を取得する位置取得手段と、
前記位置取得手段によって取得された位置に基づいて、前記マルチタッチ操作を構成する２点のタッチ点の間の距離を取得する距離取得手段と、
前記情報処理装置に対して入力されたマルチタッチ操作を決定する決定手段とを備え、
前記決定手段は、前記距離取得手段によって複数回に渡って取得される前記２点のタッチ点の間の距離が連続して拡大された場合、前記入力されたマルチタッチ操作は表示部に表示されている画像を拡大して表示させるための拡大操作であると決定し、前記距離取得手段によって取得される前記２点のタッチ点の間の距離が拡大されたが複数回連続してはいない場合、前記入力されたマルチタッチ操作は前記拡大操作であると決定しないことを特徴とする情報処理装置。
【請求項１５】
マルチタッチ操作が可能な情報処理装置の制御方法であって、
位置取得手段により、前記情報処理装置に対して入力された複数のタッチ点の位置を取得する位置取得工程と、
距離取得手段により、前記位置取得工程において取得された位置に基づいて、前記マルチタッチ操作を構成する２点のタッチ点の間の距離を取得する距離取得工程と、
前記情報処理装置に対して入力されたマルチタッチ操作を決定する決定工程とを備え、
前記決定工程では、前記距離取得工程において複数回に渡って取得される前記２点のタッチ点の間の距離が連続して拡大された場合、前記入力されたマルチタッチ操作は表示部に表示されている画像を拡大して表示させるための拡大操作であると決定し、前記距離取得手段によって取得される前記２点のタッチ点の間の距離が拡大されたが複数回連続してはいない場合、前記入力されたマルチタッチ操作は前記拡大操作であると決定しないことを特徴とする情報処理装置。
【請求項１６】
コンピュータに読み込ませ実行させることで、前記コンピュータを請求項１４に記載された情報処理装置として動作させるためのプログラム。
【請求項１７】
請求項１６に記載のプログラムを格納したコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザによって入力されたマルチタッチ操作を認識する技術に関する。
【背景技術】
【０００２】
近年、ユーザの指あるいはスタイラスにより画面がタッチされたことに応答して、タッチされた位置のＸ，Ｙ座標値を入力値として取り込み、この入力値に基づいて各種処理を実行するタッチ入力機器が普及している。
また、近年、画面の複数点をタッチすることにより操作を行う、いわゆるマルチタッチの技術が発展しつつある。一般に、タッチパネルに対するマルチタッチ操作として、ユーザがタッチパネルに触れている２点を近付けたり離したりする操作をピンチと言う。特に２点を近付ける操作をピンチインと言い、表示画像の縮小が行われる。反対に２点を離す操作をピンチアウトと言い、表示画像の拡大が行われる。
特許文献１では、画面に接触した２本の指のうち、少なくとも一方の指が移動した時、２本の指の間の距離変化に応じてピンチ操作を認識し、画像の拡大率の変更を行うと同時に、指の移動方向に応じて表示画像をスクロールする技術が知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−０５９９５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
一般に、ユーザによるタッチ操作を認識する際には、タッチ検出領域において検出されるタッチ点の情報を１点ずつ順次取得し、タッチ点の位置や移動した軌跡を利用する。しかし、１点ずつタッチ点の情報を取得すると、ユーザが複数のタッチ点を同時に操るマルチタッチ操作に対して、誤ってユーザの意図に反した操作が認識され、誤動作の原因となる場合がある。
本発明は上記課題に鑑みてなされたものであり、マルチタッチ操作が可能な装置において、ユーザの意図に反する誤動作を低減することを主な目的とする。
【課題を解決するための手段】
【０００５】
上記課題を解決するため、本発明は、マルチタッチ操作が可能な情報処理装置であって、前記情報処理装置に対して入力された複数のタッチ点の位置を取得する位置取得手段と、前記位置取得手段によって取得された位置に基づいて、前記マルチタッチ操作を構成する２点のタッチ点の間の距離を取得する距離取得手段と、前記情報処理装置に対して入力されたマルチタッチ操作を決定する決定手段とを備え、前記決定手段は、前記距離取得手段によって複数回に渡って取得される前記２点のタッチ点の間の距離が、連続して拡大された場合に前記入力されたマルチタッチ操作は表示部に表示されている画像を拡大して表示させるための操作であると決定するか、または連続して縮小された場合に前記入力されたマルチタッチ操作は前記表示部に表示されている画像を縮小して表示させるための操作であると決定することを特徴とする。
【発明の効果】
【０００６】
本発明によれば、マルチタッチ操作が可能な装置において、ユーザの意図に反する誤動作を低減することができる。
【図面の簡単な説明】
【０００７】
【図１】情報処理装置の構成の一例を示すブロック図
【図２】情報処理装置がマルチタッチ操作を認識する処理の流れの一例を示すフローチャート
【図３】情報処理装置が実行する処理の流れの一例を示すフローチャート
【図４】マルチドラッグ操作を構成する複数のタッチ点の一例を示す図
【図５】ピンチ操作を構成する複数のタッチ点の一例を示す図
【図６】マルチドラッグ操作を構成する複数のタッチ点の一例を示す図
【図７】情報処理装置がマルチタッチ操作を認識する処理の流れの一例を示すフローチャート
【図８】規定回数変更処理の流れの例を示すフローチャート
【図９】マルチドラッグ操作を構成する複数のタッチ点の一例を示す図
【図１０】情報処理装置がマルチタッチ操作を認識する処理の流れの一例を示すフローチャート
【発明を実施するための形態】
【０００８】
以下、添付図面を参照して本発明に係る実施の形態を詳細に説明する。ただし、この実施の形態に記載されている構成要素はあくまでも例示であり、本発明の範囲をそれらのみに限定する趣旨のものではない。
【０００９】
＜第１の実施形態＞
本実施形態では、ユーザがある時点で２点をタッチしているマルチタッチの状態を想定する。以下では、情報処理装置１００に対してユーザがマルチタッチ操作を入力する際に、意図されないピンチ操作が認識されることを防ぐため、ピンチアウトあるいはピンチインの操作を認識するための条件を設ける例を説明する。
【００１０】
マルチタッチ操作の一例として、ユーザが２点のタッチ点の間の距離を略一定に保ったまま同一方向に動かす操作（以下、マルチドラッグ操作）を行おうとする場合を説明する。
【００１１】
従来、マルチタッチ操作を認識する場合は、タッチパネルが検出しているタッチ点の情報が１点ずつ取得され、取得された位置情報に基づいて即座に認識処理が実行される。従って、マルチドラッグ操作を行うためにユーザに移動された２点のタッチ点のうち、１点目の移動後の位置が取得された時点では、もう１点のタッチ点は移動前の位置が保持されており、ユーザが指を動かした分、「２点間の距離が拡大された」と判定される。次に２点目の移動後の位置を取得した時点では、２点間の距離は移動前の２点間の距離に戻るため、「２点間の距離が縮小された」と判定される。よって、ユーザがマルチドラッグ操作を行おうとした場合に、上記判定結果に基づいてピンチアウトとピンチインが交互に連続して通知されるため、装置では、表示画像が拡大と縮小を交互に繰り返すといった、ユーザの意図と異なる不自然な表示が実行される。これに対し、本実施形態では、ユーザにタッチされた２点間の距離が予め規定された回数以上連続して拡大された場合にのみ、ピンチアウトの操作が入力されたと判定する。そして、２点間の距離が予め規定された回数以上連続して縮小された場合にのみ、ピンチインの操作が入力されたと判定する。
【００１２】
図１（ａ）は、本実施形態に係る情報処理装置１００のハードウェア構成の一例を示す図である。ＣＰＵ１０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）であり、各種処理のための演算や論理判断などを行い、システムバス１１０に接続された各構成要素を制御する。この情報処理装置１００には、プログラムメモリとデータメモリを含むメモリが搭載されている。ＲＯＭ（Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）１０２は、プログラムメモリであって、後述する各種処理手順を含むＣＰＵによる制御のためのプログラムを格納する。ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０３は、データメモリであり、ＣＰＵ１０１の上記プログラムのワーク領域、エラー処理時のデータの退避領域、上記制御プログラムのロード領域などを有する。外部記憶装置１０９などからＲＡＭ１０３にプログラムをロードすることで、プログラムメモリを実現しても構わない。ＨＤ１０４は、本実施形態に係るデータやプログラムを記憶しておくためのハードディスクである。本実施形態では、これらのＨＤ１０４には、複数の画像データが格納されているものとする。同様の役割を果たすものとして、入出力インタフェース１０７を介して接続される外部記憶装置１０９を用いてもよい。ここで、外部記憶装置１０９は、例えば、メディア（記録媒体）と、当該メディアへのアクセスを実現するための外部記憶ドライブとで実現することができる。このようなメディアとしては、例えば、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤ、ＵＳタッチ点Ｂメモリ、ＭＯ、フラッシュメモリ等が知られている。また、外部記憶装置１０９は、ネットワークで接続されたサーバ装置などであってもよい。本実施形態において必要な情報は、ＲＡＭ１０３やＨＤ１０４、外部記憶装置１０９に保持される。入力インタフェース１０５は、ポインティングデバイスなどの入力装置を制御し、入力装置からの入力信号を取得して検出されているタッチ点の状態の変化を認識し、情報処理装置１００のタッチ操作を認識するシステムに通知する。出力インタフェース１０６は、液晶ディスプレイ、テレビモニタ等の表示部を有する出力装置に対して、後述する各種の処理を実行した結果の出力を制御する信号を出力する。本実施形態において、入力装置であるタッチパネルと出力装置であるディスプレイ装置は、情報処理装置１００に一体化したタッチパネルディスプレイ１０８を使用するものとする。ただし、情報処理装置１００に接続された外部装置であってもよく、それぞれが独立した装置であってもかまわない。なお、本実施形態では、タッチパネルは静電容量方式のものを使用するとし、ユーザとパネル表面との接触面のうち、１点の座標をタッチ点として特定する。ただし、タッチパネルの方式は静電容量方式に限らない。
【００１３】
図１（ｂ）は、本実施形態における情報処理装置１００の機能構成の一例を示すブロック図である。検出部１１１は、ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３等で構成され、本実施形態では、入力インタフェース１０５から通知された信号に基づき、ユーザがタッチしたタッチ点に関する情報を検出する。その際、本実施形態では、入力インタフェース１０５が、入力装置であるタッチパネルが検出している複数のタッチ点の情報を一定の周期で参照し、１点についての情報を取得する毎に順次検出部１１１に信号を通知するものとする。従って、検出部１１１は取得した信号を解析し、タッチ点に関する情報を１点ずつ検出する。タッチ点に関する情報には、タッチ点の位置情報、検出された時刻、及び複数のタッチ点を識別するためのＩＤを示す情報が含まれる。なお、ＩＤにはタッチ点が検出された順番を関連させることで、検出されるタッチ点の数が複数である場合に管理がしやすくなる。検出部１１１は、タッチ点に関する情報をＩＤに関連付け、タッチ点毎に保持する。検出部１１１は、ＩＤを基に、既に検出されているタッチ点の最新の情報を検出することができるので、同じＩＤのタッチ点が以前に検出されたのと異なる位置で検出された事に基づいて、タッチ点が移動したことを検出する。また、検出されていたタッチ点でのタッチが離されたことを検出することができる。本実施形態では、タッチ点が解除された場合には、保持していたタッチ点の情報を消去する。取得部１１２は、ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３等で構成され、検出部１１１にて２点のタッチ点が検出された場合に、その２点間の距離を取得する。判定部１１３は、ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３等で構成され、取得部１１２にて取得された２点間の距離が連続して拡大、あるいは連続して縮小された回数に基づき、表示画像の拡大あるいは縮小を指示するピンチ操作が入力されたか否かの判定を行う。本実施形態では、２点間の距離が拡大あるいは縮小されたことが規定回数以上連続した場合に、ピンチ操作が入力されたと判定する。さらに、判定部１１３は、ピンチ操作が入力されていない場合には、ピンチ操作以外のマルチタッチ操作が入力されたか否かを判定する。決定部１１４は、ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３等で構成され、判定部１１３の判定結果に基づき、情報処理装置１００に入力されたマルチタッチ操作を決定し、出力制御部１１５に通知する。出力制御部１１５は、ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３等で構成され、ユーザによって入力されたマルチタッチ操作の結果を出力する為、出力に関連する機能部を制御する。本実施形態では、入力されたマルチタッチ操作に応じた表示画像を生成して、タッチパネルディスプレイ１０８である出力装置に表示させる。特に、情報処理装置１００に対して、ピンチ操作が入力された場合には、タッチパネルディスプレイ１０８に表示されていた画像を拡大あるいは縮小して表示させるための表示画像を生成し、出力する。また、情報処理装置１００に対して、マルチドラッグ操作が入力された場合には、タッチパネルディスプレイ１０８に表示されていた画像とは異なる画像を表示させるための表示画像を生成し、出力するものとする。
【００１４】
図２は、情報処理装置１００がマルチタッチ操作を認識する処理の流れの一例を示すフローチャートである。図２のフローチャートの処理は、入力インタフェース１０５からタッチパネルにおいて検出されたタッチ点の情報の通知があったことに応じて起動される。また、入力インタフェース１０５からタッチパネル等において検出されていたタッチ点が検出されなくなったとの通知があったことに応じても起動される。
【００１５】
まず、ステップＳ２０１では、検出部１１１がタッチ点を検出する。検出部１１１は、タッチパネルが検出する情報に基づき、入力インタフェース１０５から通知されるタッチ点に関する情報を取得する。さらに検出部１１１は、検出したタッチ点を識別するためのＩＤ毎に、タッチ点に関する情報を保持する。本実施形態では、ＲＡＭ１０３をタッチ点の情報を保持するために利用するものとする。
【００１６】
次に、ステップＳ２０２において、取得部１１２が、タッチパネルで検出されているタッチ点が複数であるか否かを判定する。タッチ点の数が複数であると判定された場合には、ステップＳ２０３に進む。一方、タッチ点の数が複数ではないと判定された場合には、処理を終了する。
【００１７】
ステップＳ２０３では、取得部１１２が、検出されているタッチ点の２点間の距離を取得する。取得部１１２は、検出部１１１が保持している各タッチ点に関する情報を参照し、２点のタッチ点の位置を示す座標情報から、２点間の距離を算出することにより取得する。
【００１８】
ステップＳ２０４では、取得部１１２が、検出されているＩＤのタッチ点について、２点間の距離を取得する処理が初回の処理であるか否かを判定する。ここでの初回の処理とは、マルチタッチ操作を構成するタッチ点が最初に検出されてから初めて２点間の距離を取得する処理のことである。２点間の距離を取得する処理が初回であると判定された場合には、ステップＳ２０５に進み、２点間の距離を取得する処理が初回ではないと判定された場合には、ステップＳ２０６に進む。
【００１９】
ステップＳ２０５では、取得部１１２が取得した２点間の距離を、初回距離及び基準距離として保持する。本実施形態では、ＲＡＭ１０３を取得された距離の情報を保持するために利用するものとする。初回距離及び基準距離を保持したら、初回の処理は終了する。
【００２０】
一方、ステップＳ２０６では、判定部１１３が、取得部１１２が取得した２点間の距離と、ＲＡＭ１０３に保持されている基準距離との差分の絶対値が、閾値ａよりも大きいか否かを判定する。取得部１１２が取得した２点間の距離と、ＲＡＭ１０３に保持されている基準距離との差分の絶対値は、ユーザの操作による２点間の距離の変化量に相当する。閾値ａとは、予め情報処理装置１００に登録された距離の大きさの閾値である。本実施形態では、２点間の距離が閾値ａ以上変化したことに基づいて、情報処理装置１００はピンチ操作のためにユーザがタッチした２点間の距離を拡大、あるいは縮小したことを認識する。２点間の距離と基準距離との差分の絶対値が、閾値ａよりも大きいと判定された場合には、ステップＳ２０７に進む。一方。２点間の距離と基準距離との差分の絶対値が、閾値ａ以下であると判定された場合には、ステップＳ２１４に進む。
【００２１】
ステップＳ２０７では、判定部１１３が、取得部１１２が取得した２点間の距離と、ＲＡＭ１０３に保持されている基準距離との差分が、０未満であるか否かを判定する。取得部１１２が取得した２点間の距離と、ＲＡＭ１０３に保持されている基準距離との差分は、今回の処理で取得した２点間の距離から、以前に取得されて保持されていた基準距離を差し引くことで求められる。従って、２点間の距離と基準距離との差分が０未満であるとは、今回の処理で取得した２点間の距離の方が小さいことを示し、すなわちユーザによって２点間の距離が縮小されたことを意味する。２点間の距離と基準距離との差分が０未満であると判定された場合には、ステップＳ２０８に進む。一方、２点間の距離と基準距離との差分が、０以上であると判定された場合には、ステップＳこのようにすることで、２１１に進む。
【００２２】
ステップＳ２０８では、判定部１１３が、ピンチイン回数Ｎｉｎとピンチアウト回数Ｎｏｕｔを読み出し、ＮｉｎをＮｉｎ＋１にカウントアップするとともに、Ｎｏｕｔを０に初期化する。そして、ピンチイン回数Ｎｉｎとピンチアウト回数Ｎｏｕｔの値を保持する。ここで、ピンチイン回数Ｎｉｎ及びピンチアウト回数Ｎｏｕｔは、タッチ点の移動を検出することで、２点間の距離を縮小するピンチイン、２点間の距離を拡大するピンチアウトが連続して検出された回数を示す値である。判定部１１３は、ピンチイン回数Ｎｉｎとピンチアウト回数Ｎｏｕｔの値をＲＡＭ１０３に保持しているものとする。
【００２３】
そして、ステップＳ２０９において、判定部１１３が、保持しているピンチイン回数Ｎｉｎが規定回数以上であるか否かを判定する。規定回数とは、ピンチインあるいはピンチアウト操作の入力が開始されたことを判定するために、情報処理装置１００に予め登録された回数であって、判定部１１３がＲＡＭ１０３に保持しているものとする。本実施形態では、規定回数以上ピンチインが連続して検出された場合にのみ、ユーザがピンチインの操作を入力したと判定する。このようにすることで、マルチタッチ操作を構成するタッチ点の情報が１点ずつ取得される場合に、一時的に２点間の距離が縮小されたことが検出されたことにより、直ちに表示画像の縮小処理が実行されることを防ぐ。ピンチイン回数Ｎｉｎが規定回数以上であると判定された場合には、ステップＳ２１０に進む。一方、ピンチイン回数Ｎｉｎが規定回数未満であると判定された場合には、ステップＳ２１４に進む。
【００２４】
ステップＳ２１０では、決定部１１４が、判定部１１３の判定を受け、情報処理装置１００に入力された操作はピンチインの操作であると決定し、出力制御部１１５に通知する。出力制御部１１５は、ユーザによる操作前にタッチパネルディスプレイ１０８に表示されていた画像を、２点間の距離の変化量に基づいて縮小して表示させる表示画像を生成し、出力する。
【００２５】
一方、ステップＳ２１１においては、判定部１１３が、ピンチアウト回数Ｎｏｕｔとピンチイン回数Ｎｉｎを読み出し、ＮｏｕｔをＮｏｕｔ＋１にカウントアップするとともに、Ｎｉｎを０に初期化する。そして、ピンチアウト回数Ｎｏｕｔとピンチイン回数Ｎｉｎの値を保持する。
【００２６】
そして、ステップＳ２１２において、判定部１１３が、保持しているピンチアウト回数Ｎｏｕｔが規定回数以上であるか否かを判定する。ステップＳ２０９同様に、本実施形態では、規定回数以上ピンチアウトが連続して検出された場合にのみ、ユーザがピンチアウトの操作を入力したと判定する。このようにすることで、マルチタッチ操作を構成するタッチ点の情報が１点ずつ取得される場合に、一時的に２点間の距離が拡大されたことが検出されたことにより直ちに表示画像の拡大処理が実行されることを防ぐ。ピンチアウト回数Ｎｏｕｔが規定回数以上であると判定された場合には、ステップＳ２１３に進む。一方、ピンチアウト回数Ｎｏｕｔが規定回数未満であると判定された場合には、ステップＳ２１４に進む。
【００２７】
ステップＳ２１３では、決定部１１４が、判定部１１３の判定を受け、情報処理装置１００に入力された操作はピンチアウトの操作であると決定し、出力制御部１１５に通知する。出力制御部１１５は、ユーザによる操作前にタッチパネルディスプレイ１０８に表示されていた画像を、２点間の距離の変化量に基づいて拡大して表示させる表示画像を生成し、出力する。
【００２８】
ステップＳ２１４では、ピンチ以外のマルチタッチ操作が入力されたか否かの判定処理が実行される。本実施形態では、一例としてマルチドラッグ操作が入力されたか否かを判定するマルチドラッグ判定処理が実行される。ここで実行されるマルチドラッグ判定処理の詳細は後述する。
【００２９】
そして、ステップＳ２１５においては、取得部１１２が、ステップＳ２０３で取得した２点間の距離を基準距離として保持する。本実施形態では、ＲＡＭ１０３を基準距離の情報を保持するために利用するものとする。基準距離を保持したら、処理は終了する。以上が、本実施形態においてユーザのマルチタッチ操作を認識する処理の流れである。
【００３０】
ここで、図３は、ステップＳ２１４で実行されるマルチドラッグ判定処理の流れの一例を示すフローチャートである。
【００３１】
まず、ステップＳ３０１において、判定部１１３は、ステップＳ２０１で検出されたタッチ点の移動距離を取得する。判定部１１３は、ＲＡＭ１０３に保持している、タッチ点が前回検出された位置の情報と、今回検出された位置の情報を参照し、タッチ点が移動した距離を求める。
【００３２】
次にステップＳ３０２において、判定部１１３は、少なくとも１つのタッチ点について、取得した移動距離が閾値ｂよりも大きいか否かを判定する。ここで、閾値ｂとは、予め情報処理装置１００に登録された距離の大きさの閾値で、その値は、情報処理装置１００が認識可能なマルチタッチ操作のために、ユーザがタッチパネルをタッチした点を移動させることが必要な最低限の距離に基づいて設定されている。移動距離が閾値ｂよりも大きいと判定された場合には、ステップＳ３０３に進む。一方、移動距離が閾値ｂ以下であると判定された場合には、処理を終了する。本実施形態では、タッチ点の移動距離が閾値ｂよりも大きかった場合に、ユーザはマルチタッチ操作を行うためにタッチ点を動かしたと考え、入力されたマルチタッチ操作がマルチドラッグ操作か否かを判定する処理を実行する。タッチ点の移動距離が閾値ｂ未満だった場合には、ユーザはタッチ点を停止させていると考え、入力されたマルチタッチ操作を判定する段階ではないとして処理を終了し、マルチタッチ操作を認識するメインの処理（図２のフローチャート）にリターンする。
【００３３】
次に、ステップＳ３０３では、判定部１１３が、ステップＳ２０３で取得部１１２が取得した２点間の距離と、初回距離との差分の絶対値が、閾値ｃ未満か否かを判定する。判定部１１３はＲＡＭ１０３から、取得部１１２が取得した２点間の距離と、保持されていた初回距離を読み出し、その差分の絶対値を求める。求められた差分の絶対値は、ユーザによってタッチパネルがタッチされた最初の状態からの２点間の距離の変化量に相当する。そして、閾値ｃは、予め情報処理装置１００に登録された距離の大きさの閾値で、本実施形態では、２点間の距離の変化量が閾値ｃ未満である場合には、２点間の距離が略一定に保たれていると考え、ステップＳ３０４に進む。一方、２点間の距離と初回距離との差分の絶対値が、閾値ｃ以上であると判定された場合には、処理を終了し、マルチタッチ操作を認識するメインの処理（図２のフローチャート）にリターンする。この際、本実施形態では、一度２点間の距離が略一定でなくなった後に検出されたタッチ点に対してもマルチドラッグ判定処理を実行し、２点間の距離と初回距離とが略一定に戻った際にはマルチドラッグ操作が入力されたと決定する。ただし、一度マルチドラッグ操作が入力された後で、２点間の距離が略一定でなくなったことに基づいて、例えばユーザがマルチドラッグ操作をキャンセルした事を示すキャンセルフラグを立てて、この後マルチドラッグ判定処理を行わないようにしてもよい。尚、キャンセルフラグは、例えば次に操作を開始するために改めてタッチされたタッチ点の情報が通知された時に下げればよい。
【００３４】
本実施形態では、２点間の距離が略一定に保たれたまま移動されている場合には、マルチドラッグ操作が入力されたと判定する。従って、ステップＳ３０４では、決定部１１４が、情報処理装置１００に入力された操作はマルチドラッグ操作であると決定し、出力制御部１１５に通知して、マルチタッチ操作を認識するメインの処理（図２のフローチャート）にリターンする。以上が、本実施形態のステップＳ２１４において実行されるマルチドラッグ判定処理である。
【００３５】
以上説明したように、本実施形態では、２点間の距離が拡大された、あるいは縮小されたことが規定回数以上連続して検出されたことに応じて、ピンチ操作が入力されたと判定する。２点間の距離が拡大された、あるいは縮小されたと連続して判定された回数が、規定回数に満たない場合には、ピンチではない他のマルチタッチ操作が入力されたか否かを判定する。このようにすることで、マルチタッチ操作を構成するタッチ点の情報が１点ずつ取得される場合に、一時的に２点間の距離の大きさが変化したことによって、直ちに表示画像の拡大縮小処理が実行されることを防ぐ。従って、ユーザがタッチした２点の間の距離をほぼ一定に保ったまま同一方向にさせる場合には、誤ってピンチ操作が入力されたと判定され、ユーザの意図に反して表示画像の表示倍率が変更される誤動作は防止される。
【００３６】
なお、本実施形態では、入力インタフェース１０５が、入力装置であるタッチパネルが検出している複数のタッチ点の情報を一定の周期で参照し、１点についての情報を取得する毎に順次検出部１１１に信号を通知するものとした。このように、タッチ点の最新の情報が少なくとも１点分取得される度に、タッチ操作を認識する処理を行えるようにしたことで、情報処理装置１００はタッチ操作に対する反応を速やかに出力することができる。その一方で、一時的な２点のタッチ点の間の距離変化が検出されやすくなるために、上述したようにユーザの意図に反したピンチ操作が認識される場合があった。このような問題は、例えば一定の周期でタッチ点の検出領域を走査するタッチパネルから、走査に従い１点ずつ検出されるタッチ点の情報が通知され、入力インタフェース１０５が取得した１点分の情報を順次検出部１１１に通知する形態であっても同様に発生する。そのような情報処理装置１００においても、本実施形態で説明したように、２点間の距離の拡大あるいは縮小が連続して検出されたことに基づいてピンチ操作を認識するようにすることで、誤動作を低減することができる。
【００３７】
ここで、具体的に、第１の実施形態による情報処理装置１００をユーザが操作する操作例１を説明する。図４は、マルチドラッグ操作を構成する複数のタッチ点の一例を示す。図４（ａ）と図４（ｂ）は、マルチドラッグを行った際にタッチ点が移動する様子の一例を示している。タッチ点の座標は、入力領域４００の図面に向かって左上を原点とし、指が触れた横方向の位置をｘ座標、縦方向の位置をｙ座標で表したものとする。単位は、タッチパネルディスプレイの画面解像度に合わせてｄｏｔとする。
【００３８】
なお、操作例１では、ユーザにタッチされた２点間の距離が、拡大されたあるいは縮小されたと判定するための閾値ａを３０ｄｏｔとし、ピンチイン及びピンチアウトの操作が入力開始されたと判定されるために必要な規定回数を２として説明する。また、タッチ点が操作のために移動されたか否かを判定するための閾値ｂを２０ｄｏｔ、２点間の距離が維持されているか否かを判定するための閾値ｃを１０ｄｏｔとする。
【００３９】
まずは、入力インタフェース１０５からタッチ点Ａ０の情報が通知されることにより、マルチタッチ操作を認識する処理（図２のフローチャート）が開始される。ステップＳ２０１では、検出部１１１がタッチ点Ａ０を検出する。検出部１１１は、ステップＳ３０４において、タッチ点Ａ０について、位置を示す座標情報としてＸ座標Ａ０ｘ＝１００、Ｙ座標Ａ０ｙ＝１００、検出された時刻を示す情報をＩＤ＝１に関連付けて保持する。以下、タッチ点の情報が通知される度に、ステップＳ２０１においては、同様にＩＤ毎にタッチ点の情報が保持される。ステップＳ２０２では、取得部１１２にてタッチ点数が２点であるかを判断する。この時点で検出されているタッチ点はタッチ点Ａ０の１点のみなので、ＮＯに進み処理を終了する。
【００４０】
次に入力インタフェース１０５からタッチ点Ｂ０の情報が通知されることで、図２のフローチャートの処理が開始される。ステップＳ２０１では検出部１１１によりタッチ点Ｂ０が検出される。検出部１１１は、タッチ点Ｂ０（ＩＤ＝２）に関する情報を保持する。ステップＳ２０２ではこの時点で検出されているタッチ点がタッチ点Ａ０とタッチ点Ｂ０の２点で複数であるため、ＹＥＳに進む。ステップＳ２０３では、取得部１１２がタッチ点Ａ０タッチ点Ｂ０の２点間の距離を取得する。タッチ点Ａ０タッチ点Ｂ０の２点間の距離は、例えば次のような式で求められる。
【００４１】
√｛（Ｂ０ｘ−Ａ０ｘ）＊（Ｂ０ｘ−Ａ０ｘ）−（Ｂ０ｙ−Ａ０ｙ）＊（Ｂ０ｙ−Ａ０ｙ）｝＝√｛（１００−１００）＊（１００−１００）−（２００−１００）＊（２００−１００）｝＝１００［ｄｏｔ］
従って、タッチ点Ａ０（１００，１００）、タッチ点Ｂ０（１００，２００）の間の距離は１００ｄｏｔと求められる。この時、取得部１１２が取得する２点間の距離は、図４（ｃ）の矢印で示された部分である。ステップＳ２０４では、取得部１１２が、２点間の距離を取得する処理は初回であったためＹＥＳに進み、ステップＳ２０５において、取得した２点間の距離１００ｄｏｔを、初回距離及び基準距離としてＲＡＭ１０３に保持し、処理を終了する。
【００４２】
図４（ｂ）は、図４（ａ）の状態から、２本の指４０１が移動された状態を示している。この時、２本の指４０１はＡ１（２００，１００）、Ｂ１（２００，２００）に移動しているが、１点ずつ順番に検出される。従って、タッチ点Ａ１（ＩＤ＝１）の情報が通知された時点で、再び図２のフローチャートの処理が開始される。ステップＳ２０１ではタッチ点Ａ１が検出され、検出部１１１は保持しているタッチ点の情報のうちＩＤが１のタッチ点の情報を更新し、前回検出された位置情報とともに今回検出された位置情報を保持する。ステップＳ２０２ではこの時点で検出されているタッチ点がタッチ点Ｂ０とタッチ点Ａ１の２点であるため、ＹＥＳに進む。ステップＳ２０３では、取得部１１２がタッチ点Ｂ０とタッチ点Ａ１の２点間の距離を取得する。２点間の距離は、例えば次のような式で求められる。
【００４３】
√｛（Ａ１ｘ−Ｂ０ｘ）＊（Ａ１ｘ−Ｂ０ｘ）−（Ａ１ｙ−Ｂ０ｙ）＊（Ａ１ｙ−Ｂ０ｙ）｝＝√｛（２００−１００）＊（２００−１００）−（１００−２００）＊（１００−２００）｝≒１４１．４［ｄｏｔ］
この時、算出される２点間の距離は、図４（ｄ）の矢印で示された部分である。ステップＳ２０４では、取得部１１２が、ＩＤが１のタッチ点とＩＤが２のタッチ点の間の距離を取得するのは２回目であるため、ＮＯと判定しステップＳ２０６に進む。ステップＳ２０６では、ステップＳ２０３で取得した２点間の距離１４１．４ｄｏｔから基準距離の１００ｄｏｔの差分を求め、その絶対値である４１．４ｄｏｔが閾値の３０ｄｏｔを超えているため、ＹＥＳに進む。ステップＳ２０７では、ステップＳ２０３で取得した２点間の距離から基準距離を聞いた差分が４１．４ｄｏｔで、正の値であるためＮＯに進む。これは、前回の２点間の距離より今回の２点間の距離の方が大きい値ということを示すため、判定部１１３によって２点間の距離が拡大された、すなわちピンチアウトが１回発生したと判定される。ステップＳ２１１では、判定部１１３が、ピンチアウト回数Ｎｏｕｔを１カウントアップとすると同時に、ピンチイン回数Ｎｉｎを０に初期化する。ここでは、初めてピンチアウトが検出されたため、Ｎｏｕｔ＝１となる。ステップＳ２１２では、判定部１１３によって、ピンチアウト回数が１であり、操作例１で設定されている規定回数の２に満たないと判定され、ＮＯに進む。従って、ステップＳ２１４のマルチドラッグ判定処理が実行される。まずステップＳ３０１では、判定部１１３が、今回の処理で検出されたタッチ点Ａ１（ＩＤが１のタッチ点）の移動距離を取得する。ＩＤが１のタッチ点は、タッチ点Ａ０からタッチ点Ａ１に移動しており、それぞれの座標から、移動距離は１００ｄｏｔであることがわかる。ステップＳ３０２では、取得した移動距離１００ｄｏｔが、予め設定された閾値ｂの２０ｄｏｔよりも大きいため、ＹＥＳに進む。ステップＳ３０３では、ステップＳ２０３で取得部１１２が取得した２点間の距離１４１．４ｄｏｔから保持された初回距離１００ｄｏｔを引いた差分を求める。そして、求めた差分の絶対値４１．４ｄｏｔが、閾値ｃの１０ｄｏｔよりも大きいため、２点のタッチ点の間の距離は一定に維持されていないとして、ＮＯに進み、図２のフローチャートにリターンする。ステップＳ２１５では、ステップＳ２０３で取得した２点間の距離１４１．４ｄｏｔを基準距離として保持し、処理を終了する。今回の処理では、ピンチアウトが発生したことは認識されたが、ピンチアウトの操作が入力開始されたとは判定せずに、次の処理を待つことになる。
【００４４】
次に、タッチ点Ｂ１（ＩＤ＝２）の情報が通知された時点で、再び図２のフローチャートの処理が開始される。ステップＳ２０１において検出部１１１は、タッチ点Ｂ１を検出し、ＩＤが２であるタッチ点の情報を更新する。ステップＳ２０２ではこの時点で検出されているタッチ点がＡ１とタッチ点Ｂ１の２点であるため、ＹＥＳに進む。ステップＳ２０３では、取得部１１２がタッチ点Ａ１とタッチ点Ｂ１の２点間の距離を取得する。２点間の距離は、例えば、次のような式で求められる。
【００４５】
√｛（Ｂ１ｘ−Ａ１ｘ）＊（Ｂ１ｘ−Ａ１ｘ）−（Ｂ１ｙ−Ａ１ｙ）＊（Ｂ１ｙ−Ａ１ｙ）｝＝√｛（２００−２００）＊（２００−２００）−（１００−２００）＊（１００−２００）｝＝１００［ｄｏｔ］
ここで求められる２点間の距離は、図４（ｅ）の矢印で示された部分である。ステップＳ２０４では、取得部１１２が、ＩＤが１のタッチ点とＩＤが２のタッチ点の間の距離を取得するのは２回目以降であるため、ＮＯに進む。ステップＳ２０６では、ステップＳ２０３で取得した２点間の距離１００ｄｏｔから、保持されている基準距離の１４１．４ｄｏｔを引き、その絶対値４１．４ｄｏｔが、閾値ａの３０ｄｏｔを超えているため、ＹＥＳに進む。次に、ステップＳ２０７では、２点間の距離１００から基準距離１４１．４を引いた差分が、−４１．４という０未満の負の値であるため、ＹＥＳに進む。これは、前回取得した２点間の距離より、今回取得した２点間の距離の方が小さい値であるということであり、２点間の距離が縮小された、すなわちピンチインが発生したことを意味する。ステップＳ２０８では、ピンチイン回数Ｎｉｎを１カウントアップするとともに、ピンチアウト回数Ｎｏｕｔを０に初期化する。ここでは、初めてピンチインが検出されたため、Ｎｉｎ＝１となる。ステップＳ２０９では、判定部１１３が、ピンチイン回数Ｎｉｎが１であるため、規定回数の２に満たないと判定して処理はＮＯに進む。従って、ステップＳ２１４のマルチドラッグ判定処理が実行される。まずステップＳ３０１では、判定部１１３が、今回の処理で検出されたタッチ点Ｂ１（ＩＤが２のタッチ点）の移動距離を取得する。ＩＤが２のタッチ点は、タッチ点Ｂ０からタッチ点Ｂ１に移動しており、それぞれの座標から、移動距離は１００ｄｏｔであることがわかる。ステップＳ３０２では、取得した移動距離１００ｄｏｔが、予め設定された閾値ｂの２０ｄｏｔよりも大きいため、ＹＥＳに進む。ステップＳ３０３では、ステップＳ２０３で取得部１１２が取得した２点間の距離１００ｄｏｔから保持された初回距離１００ｄｏｔを引いた差分を求める。そして、求められた差分が０で、閾値ｃの１０ｄｏｔよりも未満であるため、２点のタッチ点の間の距離は一定に維持されているとして、ＹＥＳに進む。そして、ステップＳ３０４において、決定部１１４が、マルチドラッグ操作が入力されたと決定し、出力制御部１１５に通知する。出力制御部１１５は、操作が入力される前にタッチパネルディスプレイに表示されていた画像とは異なる特定の画像の表示画像を生成し、ユーザによるタッチが全て解除された事に応じて、表示させるものとする。決定部１１４が、マルチドラッグ操作が入力されたと決定すると、処理は図２のフローチャートにリターンする。ステップＳ２１５では、ステップＳ２０３で取得した２点間の距離１００ｄｏｔを基準距離として保持し、処理を終了する。今回の処理では、ピンチインが発生したと認識されたが、ピンチイン操作の入力が開始されたとは判定されず、マルチドラッグ判定処理が実行され、マルチドラッグ操作が入力されたと決定された。この後も、マルチドラッグが継続して入力されたとしても、タッチ点Ａ１およびタッチ点Ｂ１検出時に行われた内容の処理が繰り返され、ピンチアウトもピンチインも発生はするが、ピンチ操作として入力が開始されたとは判定されない。
【００４６】
このように、本実施形態を適応することで、マルチタッチ操作可能な情報処理装置において、マルチドラッグを行った場合にはピンチ操作が入力されたと判定されないため、操作中に表示画像が拡大・縮小を繰り返して見辛くなるという問題が発生しない。
【００４７】
次に、第１の実施形態による情報処理装置１００をユーザがピンチ操作を行う例を説明する。図５は、ユーザが２点のタッチ点をほぼ同一方向へ移動させながら、少しずつ２点間の距離を変える操作をした場合に検出されるタッチ点の様子を示す。すなわち、ユーザは、表示画像をスクロールしつつ、同時に拡大・縮小操作を行うように、ピンチ操作を入力する。
【００４８】
まず、操作例２として、ユーザがピンチアウトの操作を入力する例を説明する。図５（ａ）、図５（ｂ）は、ユーザが表示画像に対しスクロール操作をしながら、徐々に表示倍率の拡大を指示するピンチアウト操作を行った場合にタッチ点が移動する様子の一例を示している。図５においても、タッチ点の座標は、入力領域４００の図面に向かって左上を原点とし、指が触れた横方向の位置をｘ座標、縦方向の位置をｙ座標で表したものとする。単位は、タッチパネルディスプレイの画面解像度に合わせてｄｏｔとする。
【００４９】
なお、操作例２においても、ユーザにタッチされた２点間の距離が、拡大されたあるいは縮小されたと判定するための閾値ａを３０ｄｏｔとし、ピンチイン及びピンチアウトの操作が開始されたと判定されるために必要な規定回数を２として説明する。また、タッチ点が操作のために移動されたか否かを判定するための閾値ｂを２０ｄｏｔ、２点間の距離が維持されているか否かを判定するための閾値ｃを１０ｄｏｔとする。
【００５０】
まず、図５（ａ）の状態で実行される処理は、図４（ａ）で示した操作例１と同内容であるため、説明を省略する。初回距離及び基準距離は、操作例１と同様にタッチ点Ａ０とタッチ点Ｂ０との間の距離である１００ｄｏｔが保持されている。
【００５１】
図５（ｂ）は、図５（ａ）の状態から、２本の指４０１が移動された状態を示している。この時、２本の指４０１はＡ１（２００，４０）、Ｂ１（２００，２６０）に移動しているが、１点ずつ順番に検出される。従って、タッチ点Ａ１の情報が通知された時点で、図２のフローチャートの処理が開始される。
【００５２】
まず、ステップＳ２０１ではタッチ点Ａ１（ＩＤ＝１）が検出され、検出部１１１は保持しているタッチ点の情報のうちＩＤが１のタッチ点の情報を更新し、前回検出された位置情報とともに今回検出された位置情報を保持する。ステップＳ２０２ではこの時点で検出されているタッチ点がタッチ点Ｂ０とタッチ点Ａ１の２点であるため、ＹＥＳに進む。ステップＳ２０３では、取得部１１２がタッチ点Ｂ０とタッチ点Ａ１の２点間の距離を取得する。２点間の距離は、例えば次のような式で求められる。
【００５３】
√｛（Ａ１ｘ−Ｂ０ｘ）＊（Ａ１ｘ−Ｂ０ｘ）−（Ａ１ｙ−Ｂ０ｙ）＊（Ａ１ｙ−Ｂ０ｙ）｝＝√｛（２００−１００）＊（２００−１００）−（４０−２００）＊（４０−２００）｝≒１８８．７［ｄｏｔ］
ステップＳ２０４では、取得部１１２が、ＩＤが１のタッチ点とＩＤが２のタッチ点との間の距離を取得するのは２回目であるため、ＮＯと判定しステップＳ２０６に進む。ステップＳ２０６では、判定部１１３が２点間の距離１８８．７ｄｏｔから基準距離の１００ｄｏｔを引いた差分を求める。そして、その絶対値８８．７ｄｏｔが、閾値ａの３０ｄｏｔを超えているため、ＹＥＳに進む。ステップＳ２０７では、２点間の距離１８８．７ｄｏｔから基準距離１００ｄｏｔを引いた差分８８．７ｄｏｔが０より大きい正の値であるためＮＯに進む。これは、２点間の距離がユーザによって拡大されたことを示す。ステップＳ２１１からステップＳ２１２までは操作例１と同様で、ピンチアウト回数Ｎｏｕｔが１となり規定回数には満たないため、ピンチアウト操作の入力が開始されたとは判定されず、ステップＳ２１４のマルチドラッグ判定処理が実行される。マルチドラッグ判定処理では、ステップＳ３０１において、ＩＤが１のタッチ点のタッチ点Ａ０からタッチ点Ａ１の移動距離が取得される。ステップＳ３０２では、取得された移動距離１１６．６ｄｏｔが閾値ｂの２０ｄｏｔより大きいと判定される。さらにステップＳ３０３において、２点間の距離１８８．７ｄｏｔと初回距離１００ｄｏｔとの差分が閾値ｃの１０ｄｏｔよりも大きいため、マルチドラッグ操作が入力されたとは判定されずに、図２のフローチャートにリターンする。ステップＳ２１５では、ステップＳ２０３で取得した２点間の距離１８８．７ｄｏｔを基準距離として保持し、処理を終了する。
【００５４】
次に、タッチ点Ｂ１（ＩＤ＝２）の情報が通知された時点で、再び図２のフローチャートの処理が開始される。ステップＳ２０１において検出部１１１は、タッチ点Ｂ１を検出し、ＩＤが２であるタッチ点の情報を更新する。ステップＳ２０２ではこの時点で検出されているタッチ点がＡ１とタッチ点Ｂ１の２点であるため、ＹＥＳに進む。ステップＳ２０３では、取得部１１２がタッチ点がＡ１とタッチ点Ｂ１の２点間の距離を取得する。２点間の距離は、例えば、次のような式で求められる。
【００５５】
√｛（Ｂ１ｘ−Ａ１ｘ）＊（Ｂ１ｘ−Ａ１ｘ）−（Ｂ１ｙ−Ａ１ｙ）＊（Ｂ１ｙ−Ａ１ｙ）｝＝√｛（２００−２００）＊（２００−２００）−（２６０−４０）＊（２６０−４０）｝＝２２０［ｄｏｔ］
ステップＳ２０４では、取得部１１２が、ＩＤが１のタッチ点とＩＤが２のタッチ点の間の距離を取得するのは２回目以降であるため、ＮＯに進む。ステップＳ２０６では、取得した２点間の距離２２０ｄｏｔから基準距離の１８８．７ｄｏｔを引いた差分を求める。そして、その絶対値が３１．３ｄｏｔとなり、閾値の３０ｄｏｔを超えているため、ＹＥＳに進む。また、ステップＳ２０５では、２点間の距離と基準距離の差分３１．３が０より大きい正の値であるためＮＯに進む。これは、２点間の距離がユーザによって拡大されたことを示す。従って、ステップＳ２１１では、判定部１１３がピンチアウト回数Ｎｏｕｔを１カウントアップするためＮｏｕｔ＝２となり、ピンチイン回数は０に初期化される。ステップＳ２１２では、ピンチアウト回数Ｎｏｕｔが２で、規定回数の２以上に達したためＹＥＳに進む。ステップＳ２１３では、決定部１１４が、ピンチアウトの操作が入力されたと決定し、出力制御部１１５に通知する。出力制御部１１５は、ユーザの指４０１が移動された位置の変化と、２点間の距離の変化から、表示させる表示画像を生成し、タッチパネルディスプレイ１０８に出力する。ステップＳ２１５では、ステップＳ２０３で取得した２点間の距離を基準距離として保持し、処理を終了する。この後も仮にタッチ点Ａ０からタッチ点Ａ１の延長線上にさらにタッチ点Ａ２が入力された場合、既にピンチアウト回数が規定回数を超えているため、ここでもピンチアウトが入力されたと判定される。このように、ピンチアウト回数Ｎｏｕｔが規定回数を超えた後は、連続して２点間の距離が拡大されたことが検出される度に、ピンチアウトの操作が入力されたと判定されることになる。
【００５６】
このように、本実施形態を適応することで、マルチタッチ操作可能な情報処理装置において、２点のタッチ点をほぼ同一方向へ移動させながら２点間の距離を拡大する操作によって、表示画像をスクロールさせつつ拡大させるピンチアウト操作も入力可能となる。
【００５７】
次に、操作例３として、ユーザがピンチインの操作を入力する例を説明する。図５（ｃ）、図５（ｄ）は、ユーザが表示画像に対しスクロール操作をしながら、徐々に表示倍率の縮小を指示するピンチイン操作を行った場合にタッチ点が移動する様子の一例を示している。
【００５８】
なお、操作例３においても、ユーザにタッチされた２点間の距離が、拡大されたあるいは縮小されたと判定するための閾値ａを３０ｄｏｔとし、ピンチイン及びピンチアウトの操作が開始されたと判定されるために必要な規定回数を２として説明する。また、タッチ点が操作のために移動されたか否かを判定するための閾値ｂを２０ｄｏｔ、２点間の距離が維持されているか否かを判定するための閾値ｃを１０ｄｏｔとする。
【００５９】
図５（ｃ）は、２本の指４０１が入力領域４００に触れた時点での２本の指４０１の位置を示している。操作例１及び操作例２と同様に、２点のタッチ点が、タッチ点Ａ０（１００，４０）、タッチ点Ｂ０（１００，２６０）の順番で検出部１１１に検出されたものとする。操作例３においても、入力インタフェース１０５から１点分のタッチ点の情報が通知される度に、図２のフローチャートの処理が開始される。ただし、各処理ステップにおける詳細な内容は、操作例１及び操作例２と同様のため説明を省略する。図５（ｃ）の状態では、図４（ａ）と同様の処理によって、初回距離及び基準距離としてタッチ点Ａ０とタッチ点Ｂ０の間の距離である２２０ｄｏｔが保持される（ステップＳ２０５）。
【００６０】
図５（ｄ）は、図５（ｃ）の状態から、２本の指４０１が移動された状態を示している。この時、２本の指４０１はＡ１（２００，１００）、Ｂ１（２００，２００）に移動しているが、１点ずつ順番に検出される。まず、タッチ点Ａ１（ＩＤ＝１）が検出されたことに応じて開始される処理で、タッチ点Ｂ０とタッチ点Ａ１の２点間の距離１８８．８ｄｏｔが取得される（ステップＳ２０３）。また、取得された２点間の距離１８８．８ｄｏｔと、基準距離２２０ｄｏｔの差分の絶対値は３１．３ｄｏｔとなり、閾値ａの３０ｄｏｔを超えていると判定される（ステップＳ２０６でＹＥＳ）。さらに、取得された２点間の距離１８８．８ｄｏｔから基準距離２２０ｄｏｔを引いた差分は−３１．３であり、０未満の負の値であることから、２点間の距離が縮小されたと判定される（ステップＳ２０７でＹＥＳ）。従って、ピンチイン回数Ｎｉｎが１カウントアップされ、ピンチアウト回数Ｎｏｕｔが０に初期化される（ステップＳ２０８）。タッチ点Ａ１が検出された時点では、ピンチイン回数Ｎｉｎ＝１で、規定回数に満たないと判定され（ステップＳ２０９でＮＯ）、ピンチイン操作は入力開始されていないのでマルチドラッグ判定処理が実行される（ステップＳ２１４）。マルチドラッグ判定処理では、タッチ点Ａ０からタッチ点Ａ１への移動距離１１６．６ｄｏｔは閾値ｂの２０ｄｏｔを超えると判定される（ステップＳ３０２でＹＥＳ）。しかし、２点間の距離１８８．８ｄｏｔと初回距離２２０ｄｏｔの差分の絶対値３１．２ｄｏｔは、閾値ｃの１０ｄｏｔよりも大きいと判定される（ステップＳ３０３でＮＯ）。従って、マルチドラッグ操作は入力されていないとして、図２のフローチャートにリターンし、２点間の距離１８８．８ｄｏｔが基準距離として検出部１１１に保持される（ステップＳ２１５）。
【００６１】
続いて、タッチ点Ｂ１（ＩＤ＝２）が検出されたことに応じて開始される処理で、タッチ点Ａ１とタッチ点Ｂ１の２点間の距離１００ｄｏｔが取得される（ステップＳ２０３）。取得された２点間の距離１００ｄｏｔと、基準距離１８８．８ｄｏｔの差分の絶対値は８８．８ｄｏｔとなり、閾値ａの３０ｄｏｔより大きいと判定される（ステップＳ２０６でＹＥＳ）。さらに、取得された２点間の距離１００ｄｏｔから基準距離１８８．８ｄｏｔを引いた差分は−８８．８であり、０未満の負の値であることから、２点間の距離が縮小されたと判定される（ステップＳ２０７でＹＥＳ）。従って、ピンチイン回数Ｎｉｎが１カウントアップされ、ピンチアウト回数Ｎｏｕｔが０に初期化される（ステップＳ２０８）。タッチ点Ｂ１が検出されたことで、ピンチイン回数Ｎｉｎ＝２となり規定回数の２回に達したと判定され（ステップＳ２０９でＹＥＳ）、決定部１１４が、ピンチイン操作が入力されたと決定する（ステップＳ２１０）。出力制御部１１５は、ユーザの指４０１が移動された位置の変化と、２点間の距離の変化から、表示させる表示画像を生成し、タッチパネルディスプレイ１０８に出力する。取得部１１２が、取得した２点間の距離１００ｄｏｔを基準距離として保持し（ステップＳ２１５）、処理を終了する。ピンチイン回数Ｎｉｎは規定回数の２を超えているため、これ以降は、連続して２点間の距離が縮小されたことを検出する度にピンチインの操作が入力されたと判定される。
【００６２】
このように、本実施形態を適応することで、マルチタッチ操作可能な情報処理装置において、２点のタッチ点をほぼ同一方向へ移動させながら、２点間の距離を縮小する操作によって、表示画像をスクロールさせつつ縮小させるピンチイン操作も入力可能となる。
【００６３】
また、操作例２及び操作例３の説明では、ピンチインとピンチアウトが入力されたことを判定するための規定回数を同じ２回としたが、ピンチインとピンチアウトで違う値としてもよい。例えば、２点がタッチされた直後の２点間の距離が大きければ、ピンチインが行われる可能性が高いため、ピンチインを判定する回数は少なく（例えば１回）、ピンチアウトを判定する回数は多く（例えば２回）、規定してもよい。反対に、２点がタッチされた直後の２点間の距離が小さければピンチアウトが行われる可能性が高いため、ピンチアウトを判定する回数は少なく（例えば１回）、ピンチインを判定する回数は多く（例えば２回）、規定してもよい。更に、ピンチの連続発生回数に応じてユーザにタッチされた２点間の距離が、拡大されたあるいは縮小されたと判定するための閾値ａの値を変更してもよい。例えば、ピンチインあるいはピンチアウトの連続発生回数が２回目では１回目に比べて閾値ａの値を小さくしてもよい。３回目以降の閾値ａは、２回目と同じ値としてもよいし、連続発生回数に応じて徐々に小さくしてもよい。こうすることで、拡大、縮小が交互に発生することによる誤動作を低減しつつ、ピンチ操作と判定されるまでの２点間の距離を小さくすることができ、ピンチ操作に対する応答性が良くなる。
【００６４】
なお、本実施形態では２点が入力された場合を例に挙げて説明しているが、３点以上が入力された場合に適用してもよい。例えば、３点以上のタッチ点の中から２点を抽出して、本実施形態の処理を適用してもよい。２点の抽出方法は、最も近い２点、もしくは最も遠い２点を抽出する方法等が考えられる。また、３点以上のタッチ点のそれぞれのタッチ点間の距離の合計値、もしくは平均値等を用いて本実施形態の処理を適用してもよい。
【００６５】
以上のように、本実施形態の情報処理装置１００では、ユーザがマルチタッチ操作を入力する際に、マルチタッチ操作を構成するタッチ点の間の距離が拡大された、あるいは縮小された回数が規定回数を超えたことに応じて、ピンチ操作が入力されたと判定する。従って、検出されたタッチ点の情報が１点ずつ更新されるために、一時的に２点間の距離が変化したとしても直ちにピンチ操作が実行されることがないので、ユーザの意図に反して表示画像の拡大・縮小が繰り返されるという誤動作を低減することができる。
【００６６】
また、本実施形態では、マルチタッチ操作の一例として、ユーザが２点のタッチ点の間の距離をほぼ一定に保ったまま同一方向に動かすマルチドラッグ操作を入力する場合を想定した。マルチドラッグ操作では、例えばユーザによる操作が入力される前にタッチパネルディスプレイに表示されていた画像とは異なる画像を特定し、表示させることができるものとする。同様に、ユーザが複数の指を用いて表示されている画像のスクロールや回転を指示する等、他のマルチタッチ操作を入力する場合にも、本実施形態を適応することで、誤ってピンチ操作が認識されることを防ぐことができる。その場合には、ステップＳ２１４において、ピンチではないマルチタッチ操作が入力されたか否かを判定する処理を実行する。
【００６７】
＜第１の実施形態の変形例＞
第１の実施形態では、規定回数以上連続してピンチインもしくはピンチアウトが発生しないとピンチと判定されないため、規定回数の定め方によってはピンチ操作が入力されたと決定し、結果を出力するのが遅くなってしまう。その問題を解決するため、状況に応じて規定回数を変更し、ピンチ操作の実行が遅れることを防ぐ変形例を説明する。
【００６８】
まず、第１の実施形態の変形例１として、ユーザがタッチを開始した時点での２点間の距離が大きい場合に、ピンチアウトあるいはピンチインの操作の入力開始が判定されるために連続して検出されることが必要な規定回数を少ない回数に変更する例を示す。
【００６９】
まず、第１の実施形態の変形例１を効果的に適応可能な具体例を説明する。図６は、マルチドラッグ操作を構成するタッチ点が検出される様子を示す。図６（ａ）は、２本の指４０１が入力領域４００に触れた時点での２本の指４０１の位置を示し、図６（ｂ）は、図６（ａ）の状態から、２本の指４０１が移動された状態を示している。タッチ点の移動距離は、それぞれＸ軸のプラス方向に１００ｄｏｔであり、これは図４の操作例１と同様である。ただし、図４の操作例１で示した例よりもタッチ点の２点間の距離が大きい。また、操作例１、操作例２、操作例３と同様に、閾値ａは３０ｄｏｔであるものとする。
【００７０】
図６（ａ）に示された、タッチ点Ａ０（１００，５０）及びタッチ点Ｂ０（１００，２５０）が検出された時点で取得される２点間の距離は、タッチ点Ａ０とタッチ点Ｂ０との間の距離２００ｄｏｔとなり、２００ｄｏｔが初回距離及び基準距離として保持される。次に図６（ｂ）に示されたタッチ点Ａ１（２００，５０）が検出された時点で取得される２点間の距離は、タッチ点Ｂ０とタッチ点Ａ１との間の距離であるため、２３３．６ｄｏｔとなる。ここで、２点間の距離２２３．６ｄｏｔと、基準距離２００ｄｏｔの差分を求めると、その絶対値は２３．６ｄｏｔとなるため、閾値ａを超えない。このように、２点間の初回距離が大きい場合には、初回距離が小さい場合と同じ距離を移動しても、２点間の距離の変化量が閾値ａを超えにくい。これは、２点間の距離が大きい場合、操作のためにタッチ点が移動されたことによる２点間の距離の変化量が、２点間の距離に対して相対的に小さくなるためである。従って、初回距離が大きいにも関わらず、閾値ａを超えるだけの２点間の距離の変化が検出された場合には、ユーザが２点間の距離を積極的に変化させた、すなわちピンチ操作が入力された可能性が高いと考えることができる。
【００７１】
そこで変形例１では、ユーザがタッチを開始した時点での２点間の距離が大きい場合には、ピンチ操作の開始を判定するために用いる規定回数を少ない回数に変更することで、入力されたピンチ操作に対する結果の出力が遅れることを防ぐ。
【００７２】
第１の実施形態の変形例１に係る情報処理装置１００のハードウェア構成は、第１の実施形態の図１（ａ）と同様であるため、説明を省略する。
【００７３】
図１（ｃ）は本実施形態における情報処理装置１００の機能構成の一例を示すブロック図である。図１（ｂ）と異なる点は、変更部１１６が追加されたことである。変更部１１６は、取得部１１２が取得した２点間の距離の情報に応じて、ピンチ操作が入力開始されたことを判定するための規定回数を少なく変更し、判定部１１３に通知する。第１の実施形態の変形例１における変更部１１６は、特に取得部１１２に取得された２点間の距離が所定の距離以上大きい場合には、規定回数を少ない回数に変更する処理を実行する。
【００７４】
図７は第１の実施形態の変形例１において、情報処理装置１００が実行するマルチタッチ操作を認識する処理の一例を示すフローチャートである。なお、図２と同内容の処理ステップについては、同符号を付して説明を省略し、図２と異なる点を説明する。第１の実施形態の変形例１では、ステップＳ２０５において、取得部１１２が初めて取得したタッチ点２点間の距離を、初回距離及び基準距離として保持して、ステップＳ７０１に進む。ステップＳ７０１では、変更部１１６が、ピンチアウトあるいはピンチインの操作の入力開始が判定されるために連続して検出されることが必要な規定回数を変更する処理を行う。
【００７５】
ここで、図８（ａ）は、第１の実施形態の変形例１のステップＳ７０１において実行される、規定回数変更処理の流れの一例を示すフローチャートである。ステップＳ８０１では、変更部１１６が、保持されている初回距離が、閾値ｄ以上であるか否かを判定する。ここで閾値ｄは、予め情報処理装置１００に登録されている距離の大きさの閾値で、タッチパネルディスプレイ１０８のサイズ、タッチ点の最新情報が検出される周期、及び閾値ａの値に基づいて設定されている値である。初回距離が閾値ｄ以上であると判定された場合、ステップＳ８０２に進む。一方、初回距離が閾値ｄ未満であると判定された場合、ステップＳ８０３に進む。ステップＳ８０２では、変更部１１６が、ピンチ操作の開始を判定するための規定回数を、少ない回数に変更する。本実施形態では、規定回数を１回に設定するものとする。そして、変更した規定回数をＲＡＭ１０３に保持し、判定部１１３に通知する。この変更された回数は、ユーザがタッチ操作を終了するためにタッチ点を離したことを検出するまで、もしくは次のタッチ操作のための初回のタッチ点を検出した時点まで継続される。このように、初回距離が閾値ｄ以上であった場合、次のタッチ点の情報が検出されるまでの間に、ユーザが２点のタッチ点を移動させることによる２点間の距離の変化量が、相対的に小さくなり、閾値ａを超えにくくなる。そのため、２点間の距離が大きいにも関わらず２点間の距離の変化量が閾値ａを超えた場合には、ピンチ操作が入力された可能性が高いといえるので、通常設定されているよりも少ない回数をピンチ操作が判定されるための条件に利用する。一方、ステップＳ８０３では、判定部１１３が保持している規定回数を維持して、処理を終了する。
【００７６】
このように、第１の実施形態の変形例１では、ユーザがタッチを開始した時点での２点間の距離が所定の距離（閾値ｄ）よりも大きい場合、ピンチアウトあるいはピンチインの操作の入力が開始されたことを判定するために用いる規定回数を少ない回数に変更する。すなわち、ユーザがタッチを開始した時点での２点間の距離が大きいにも関わらず、２点間の距離の閾値ａ以上の変化が検出された場合には、ピンチ操作が入力された可能性が高いことから、直ちに表示画像の拡大縮小処理を実行する。これにより、ユーザの操作による結果を速やかに出力することができる。
【００７７】
また、第１の実施形態の変形例２として、タッチ点の最新の情報が検出される周期が短い場合に、ピンチアウトあるいはピンチインの操作の入力開始が判定されるために連続して検出されることが必要な規定回数を少ない回数に変更する例を説明する。
【００７８】
まず、第１の実施形態の変形例２を効果的に適応可能な具体例を説明する。図９は、マルチドラッグ操作を構成するタッチ点が検出される様子を示す。図９（ａ）は、２本の指４０１が入力領域４００に触れた時点での２本の指４０１の位置を示し、図９（ｂ）は、図９（ａ）の状態から、２本の指４０１が移動された状態を示している。ただし、図９（ａ）（ｂ）で示す例では、入力インタフェース１０５が、タッチパネルが検出しているタッチ点の情報を参照する周期、すなわちタッチ点の最新の情報が検出される周期が、操作例１で示した２０ｍｓｅｃより短い１０ｍｓｅｃであるものとする。図４で示した操作例１に比較して、タッチ点の最新の位置が検出される周期が半分になったことで、図９（ｂ）では、同じＩＤのタッチ点の最新の位置が検出されるまでの間に、各タッチ点が移動する距離は半分の５０ｄｏｔとなっている。なお、変形例２でも操作例１、操作例２、操作例３と同様に、閾値ａは３０ｄｏｔであるものとする。
【００７９】
図９（ａ）に示された、タッチ点Ａ０（１００，１００）及びタッチ点Ｂ０（１００，２００）の２点が検出された時点では、図４（ａ）に示した操作例１と同様、タッチ点Ａ０とタッチ点Ｂ０との間の距離１００ｄｏｔが初回距離及び基準距離として保持される。さらに、タッチパネルのタッチ点情報が１０ｍｓｅｃ毎に参照されることによって、図９（ｂ）に示されたタッチ点Ａ１（１５０，１００）が検出された時点では、２点間の距離として、タッチ点Ｂ０とタッチ点Ａ１との間の距離１１１．８ｄｏｔが取得される。ここで、２点間の距離１１１．８ｄｏｔと、基準距離１００ｄｏｔの差分を求めると、その絶対値は１１．８ｄｏｔとなるため、閾値ａを超えない。このように、タッチ点の最新の位置が検出される周期が短い場合、その間にタッチ点が移動可能な距離は小さくなるため、２点間の距離の変化量は閾値ａを超えにくくなる。従って、タッチ点の最新の位置が検出される周期が短いにも関わらず、閾値ａを超えるだけの２点間の距離の変化が検出された場合には、ユーザが２点間の距離を積極的に変化させた、すなわちピンチ操作が入力された可能性が高いと考えることができる。
【００８０】
そこで変形例２では、タッチ点の最新の位置が検出される周期が短い場合には、ピンチ操作の開始を判定するために用いる規定回数を少ない回数に変更することで、入力されたピンチ操作に対する結果の出力が遅れることを防ぐ。
【００８１】
第１の実施形態の変形例２に係る情報処理装置１００のハードウェア構成は、第１の実施形態の図１（ａ）と同様であるため、説明を省略する。また、機能構成は、第１の実施形態の変形例１の図１（ｃ）と同様である。ただし、第１の実施形態の変形例２における変更部１１６は、検出部１１１が同じＩＤのタッチ点の最新の位置を検出する周期が所定の時間よりも短い場合に、規定回数を少ない回数に変更する処理を実行する。
【００８２】
図１０は第１の実施形態の変形例２において、情報処理装置１００が実行するマルチタッチ操作を認識する処理の一例を示すフローチャートである。なお、図２及び図７と同内容の処理ステップについては、同符号を付して説明を省略し、図７と異なる点を説明する。第１の実施形態の変形例２では、ステップＳ２０４において、取得部１１２が２点間の距離を取得する処理が初回ではないと判定された場合に、ステップＳ１００１の規定回数変更処理に進む。ステップＳ１００１では、変更部１１６が、図８（ｂ）のフローチャートに従って、規定回数を変更する処理を行う。
【００８３】
まず、ステップＳ８１１では、変更部１１６が、検出部１１１がタッチ点の最新の位置を検出する周期（タッチ点の検出周期）を示す情報を取得する。本実施形態では、検出部１１１が、入力インタフェース１０５がタッチパネルのタッチ点情報を参照する周期を制御しているものとする。従って、変更部１１６は、検出部１１１からタッチ点の検出周期を示す情報を取得する。ただしこれに限らず、変更部１１６は、例えばアプリケーションからタッチ点の検出周期の設定情報を取得してもよい。次に、ステップＳ８１２では、変更部１１６が、タッチ点の検出周期が閾値ｅ未満であるか否かを判定する。閾値ｅは、予め情報処理装置１００に登録されている時間の長さの閾値であって、タッチパネルディスプレイ１０８のサイズ、及び閾値ａの値に基づいて設定されている値である。タッチ点の検出周期が閾値ｅ未満であると判定された場合、処理はステップＳ８０２に進む。一方、タッチ点の検出周期が閾値ｅ以上であると判定された場合、処理はステップＳ８０３に進む。ステップＳ８０２では、第１の実施形態の変形例１と同様、変更部１１６が、ピンチ操作の開始を判定するための規定回数を、少ない回数に変更する。そして、変更した規定回数をＲＡＭ１０３に保持し、判定部１１３に通知する。タッチ点の検出周期が閾値ｅ未満であった場合、タッチ点の検出が行われる１周期の間に、ユーザが２点のタッチ点を移動させることによる２点間の距離の変化量が小さくなり、閾値ａを超えにくくなる。そのため、タッチ点の検出周期が短いにも関わらず２点間の距離の変化量が閾値ａを超えた場合には、ピンチ操作が入力された可能性が高いといえるので、通常設定されているよりも少ない回数をピンチ操作が判定されるための条件に利用する。一方、ステップＳ８０３では、判定部１１３が保持している規定回数を維持して、処理を終了する。
【００８４】
このように、第１の実施形態の変形例２では、タッチ点の最新の位置が検出される周期が所定の時間（閾値ｅ）よりも短い場合には、ピンチアウトあるいはピンチインの操作の入力が開始されたことを判定するための条件に用いる規定回数を少ない回数に変更する。すなわち、ユーザがタッチした位置の情報が更新される周期が短いにも関わらず、２点間の距離の閾値ａ以上の変化が検出された場合には、ピンチ操作が入力された可能性が高いことから、直ちに表示画像の拡大縮小処理を実行する。これにより、ユーザの操作による結果を速やかに出力することができる。
【００８５】
また、変形例２の規定回数変更処理は、２回目以降に２点間の距離を取得した直後に実行されるものとしたが、これに限らない。例えば、情報処理装置１００の起動時や、アプリケーションによってタッチ点を検出する周期が変更されたタイミングで、図８（ｂ）の規定回数変更処理を実行してもよい。この際にも、変更された規定回数は変更部１１６がＲＡＭ１０３等に保持し、判定部１１３に通知する。そして、図２のフローチャートに従って実行されるマルチタッチ操作を認識する処理において、ピンチイン回数Ｎｉｎあるいはピンチアウト回数Ｎｏｕｔを、規定回数と比較する処理を行う際に、判定部１１３は変更された規定回数を参照する。また、変形例２では、タッチ点を検出する周期が所定の時間未満の場合にピンチの規定回数を少ない回数に変更する例を示したが、反対にタッチ点を検出する周期が所定の時間以上の場合にピンチの規定回数を大きい値に変更してもよい。
【００８６】
次に、第１の実施形態の変形例３として、タッチ点の移動速度が小さい場合に、ピンチアウトあるいはピンチインの操作の入力開始が判定されるために、２点間の距離の変化が連続して検出されることが必要な規定回数を少ない回数に変更する例を説明する。
【００８７】
まず、第１の実施形態の変形例３を効果的に適応可能な具体例を説明する。図９（ａ）は、変形例２で説明した通り２本の指４０１が入力領域４００に触れた時点での２本の指４０１の位置を示す。さらに、図９（ｃ）は、図９（ａ）の状態から、２本の指４０１が移動された状態を示している。ただし、図９（ａ）（ｃ）で示す例では、タッチ点の移動が遅いため、操作例１と同じ２０ｍｓｅｃの周期でタッチ点の最新の位置が検出された場合において、同じＩＤのタッチ点が検出されるまでに各タッチ点が移動する移動距離が５０ｄｏｔと小さくなっている。なお、ここでも操作例１、操作例２、操作例３と同様に、閾値ａは３０ｄｏｔであるものとする。
【００８８】
図９（ａ）に示された、タッチ点Ａ０（１００，１００）及びタッチ点Ｂ０（１００，２００）の２点が検出された時点では、図４（ａ）に示した操作例１と同様、タッチ点Ａ０とタッチ点Ｂ０との間の距離１００ｄｏｔが初回距離及び基準距離として保持される。次に図９（ｂ）に示されたタッチ点Ａ１（１５０，１００）が検出された時点では、２点間の距離として、タッチ点Ｂ０とタッチ点Ａ１との間の距離１１１．８ｄｏｔが取得される。ここで、２点間の距離１１１．８ｄｏｔと、基準距離１００ｄｏｔの差分を求めると、その絶対値は１１．８ｄｏｔとなるため、閾値ａを超えない。このように、タッチ点が移動する速度が小さい場合、タッチ点が次に検出されるまでの間にタッチ点が移動する距離も小さくなるため、２点間の距離の変化量は閾値ａを超えにくくなる。従って、タッチ点が移動する速度が小さいにも関わらず、閾値ａを超えるだけの２点間の距離の変化が検出された場合には、ユーザが２点間の距離を積極的に変化させた、すなわちピンチ操作が入力された可能性が高いと考えることができる。
【００８９】
そこで変形例３では、タッチ点が移動する速度が小さい場合には、ピンチ操作の開始を判定するために用いる規定回数を少ない回数に変更することで、入力されたピンチ操作に対する結果の出力が遅れることを防ぐ。
【００９０】
第１の実施形態の変形例３に係る情報処理装置１００のハードウェア構成も、第１の実施形態の図１（ａ）と同様であるため、説明を省略する。また、機能構成は、第１の実施形態の変形例１の図１（ｃ）と同様である。ただし、第１の実施形態の変形例３における変更部１１６は、検出部１１１が検出したタッチ点の位置が移動する速度が所定の速度よりも遅い場合に、規定回数を少ない回数に変更する処理を実行する。
【００９１】
第１の実施形態の変形例３においても、図１０のフローチャートに従って情報処理装置１００が実行するマルチタッチ操作を認識する処理が実行される。ただし、ステップＳ１００１の規定回数変更処理では、変更部１１６が、図８（ｃ）のフローチャートに従って、規定回数を変更する処理を行う。
【００９２】
まず、ステップＳ８２１では、変更部１１６が、タッチ点の移動速度を取得する。この際、変更部１１６は、検出部１１１が保持している、タッチ点が前回検出された位置の情報と今回検出された位置の情報とから得られるタッチ点の移動距離と、タッチ点の検出周期とに基づいて、移動速度を求める。図９（ｃ）の例であれば、タッチ点Ａ０からタッチ点Ａ１への移動距離５０ｄｏｔと、タッチ点の検出周期２０ｍｓｅｃから、移動速度は２．５ｄｏｔ／ｍｓｅｃと求められる。タッチ点Ｂ０からタッチ点Ｂ１への移動についても同様である。ステップＳ８２２では、変更部１１６が、ステップＳ８２１にて取得した移動速度が閾値ｆ未満であるか否かを判定する。閾値ｆは、予め情報処理装置１００に登録されている速度の大きさの閾値であって、タッチパネルディスプレイ１０８のサイズ、タッチ点の検出周期、及び閾値ａの値に基づいて設定されている値である。タッチ点の移動速度が閾値ｆ未満であると判定された場合、処理はステップＳ８０２に進む。一方、タッチ点の移動速度が閾値ｆ以上であると判定された場合、処理はステップＳ８０３に進む。ステップＳ８０２では、第１の実施形態の変形例１及び変形例２と同様、変更部１１６が、ピンチ操作の開始を判定するための規定回数を、少ない回数に変更する。そして、変更した規定回数をＲＡＭ１０３に保持し、判定部１１３に通知する。一方、ステップＳ８０３では、判定部１１３が保持している規定回数を維持して、処理を終了する。
【００９３】
このように、第１の実施形態の変形例３では、タッチがの移動速度が所定の速度（閾値ｆ）よりも小さい場合には、ピンチアウトあるいはピンチインの操作の入力が開始されたことを判定するための条件に用いる規定回数を少ない回数に変更する。すなわち、ユーザによるタッチ点の移動が遅いにも関わらず、２点間の距離の閾値ａ以上の変化が検出された場合には、ピンチ操作が入力された可能性が高いことから、直ちに表示画像の拡大縮小処理を実行する。これにより、ユーザの操作による結果を速やかに出力することができる。
【００９４】
また、ここでは、タッチ点が検出される毎に、前回の検出位置から今回の検出位置の検出周期への移動の速度を求めているが、タッチ点の検出を複数回行う毎に平均速度を求めてもよい。こうすることで、タッチパネルに検出されるタッチ点の位置の精度による影響を少なくすることができる。また、変形例３では、タッチ点の移動速度が所定の速度未満の場合にピンチの規定回数を少ない回数に変更する例を示したが、反対にタッチ点の移動速度が所定の速度以上の場合に規定回数を大きい値に変更してもよい。
【００９５】
なお、上述した第１の実施形態の変形例では、ステップＳ８０２で規定回数を少ない回数に変更する方法の一例として、１回という固定値に変更した。ただし、例えばステップＳ８０２ではデクリメントし、ステップＳ８０３ではインクリメントするなど、処理の度に変更してもよい。また、２点間の距離の大きさやタッチ点の検出周期、タッチ点の移動速度に応じた段階的な複数の閾値を設け、それに対応して段階的に規定回数を変更してもよい。
【００９６】
以上のように、本実施形態の情報処理装置１００においては、状況に応じてピンチ操作が入力されたことを判定するための条件として用いる規定回数を、少ない回数に変更することで、ユーザの操作に対して速やかに反応することができる。なお、２点のタッチ点の間の距離が拡大されたあるいは縮小されたことを判定するための閾値ａの大きさを、状況に応じて変更することによっても、上述した変形例と同じように、ユーザの操作に対して速やかに反応することができる。
【００９７】
＜その他の実施形態＞
第１の実施形態では、検出部１１１がタッチ点を検出する度に、情報処理装置１００に対してピンチ操作の入力が開始されたか否かを判定し、ピンチ操作が開始されていない場合に、その他のマルチタッチ操作が入力されたか否か判定していた。ただし、他の実施形態として、検出部１１１がタッチ点を検出する度に、ピンチ操作が入力されたか否かを判定する処理と、その他のマルチタッチ操作が入力されたか否かを判定する処理を独立に実行することもできる。その際には、例えば図２のフローチャートにおいて、ステップＳ２１４を省略したピンチ判定処理と、図３（ａ）のフローチャートのマルチドラッグ判定処理を、直列処理あるいは並列処理する。ただし、図３（ｂ）のフローチャートの処理開始直後に、図２のフローチャートのステップＳ２０１及びステップＳ２０２と同内容の処理ステップを加え、複数のタッチ点が検出されている場合にのみ、処理が実行されることが好ましい。複数のマルチタッチ操作が入力されたか否かを判定する複数の処理を独立して実行させる場合においても、２マルチタッチ操作を構成する２点のタッチ点の間の距離が、規定回数連続して拡大あるいは縮小された場合にのみピンチ操作が行われたことを判定する。それによって、マルチタッチ操作を構成する複数のタッチ点の位置情報が１点ずつ取得される場合に、ユーザの意図に反してピンチ操作が入力されたと判定され、表示画像の表示倍率が変更される誤動作は防止される。このように、複数のマルチタッチ操作が入力されたか否かを判定する複数の処理を独立して実行する方法では、実行する処理と実行しない処理を選択することで、アプリケーション毎に認識可能なマルチタッチ操作を限定するなど、必要に応じた調整が可能となる。また、処理負荷を調整することができる。
【００９８】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005979916.tif 000002
【図２】
0005979916.tif 000003
【図３】
0005979916.tif 000004
【図４】
0005979916.tif 000005
【図５】
0005979916.tif 000006
【図６】
0005979916.tif 000007
【図７】
0005979916.tif 000008
【図８】
0005979916.tif 000009
【図９】
0005979916.tif 000010
【図１０】
0005979916.tif 000011