(57)【特許請求の範囲】
【請求項１】
マルチタッチ操作を受け付ける情報処理装置であって、
入力された複数のタッチ位置を所定の周期で検出する検出手段と、
前記検出手段によって検出された、第１の時点における２つのタッチ位置から定まる直線と、第２の時点における前記２つのタッチ位置から定まる直線のなす角度を取得する取得手段と、
前記第１の時点における２つのタッチ位置の間の距離と、前記２つのタッチ位置によってマルチタッチされているオブジェクトのサイズとに基づいて、角度の閾値を設定する設定手段と、
前記取得手段によって取得された角度が、前記設定手段によって設定された角度の閾値より大きい場合に前記２つのタッチ位置に基づく入力を表示部に表示されている前記オブジェクトに対する回転操作を受け付ける受付手段と、を備え、
前記設定手段は、前記２つのタッチ位置の間の距離が同じで前記オブジェクトのサイズが異なる場合、前記オブジェクトのサイズが小さいほど小さい角度を、前記角度の閾値として設定することを特徴とする情報処理装置。
【請求項２】
マルチタッチ操作を受け付ける情報処理装置であって、
入力された複数のタッチ位置を所定の周期で検出する検出手段と、
前記検出手段によって検出された、第１の時点における２つのタッチ位置から定まる直線と、第２の時点における前記２つのタッチ位置から定まる直線のなす角度を取得する取得手段と、
前記第１の時点における２つのタッチ位置の間の距離と、前記マルチタッチ操作が入力される領域のサイズとに基づいて、角度の閾値を設定する設定手段と、
前記取得手段によって取得された角度が、前記設定手段によって設定された角度の閾値より大きい場合に、前記２つのタッチ位置に基づく入力を表示部に表示されている画像の少なくとも一部に対する回転操作を受け付ける受付手段と、
を備え、
前記設定手段は、前記２つのタッチ位置の間の距離が同じで前記領域のサイズが異なる場合、前記領域のサイズが小さいほど小さい角度を、前記角度の閾値として設定することを特徴とする情報処理装置。
【請求項３】
マルチタッチ操作を受け付ける情報処理装置であって、
入力された複数のタッチ位置を所定の周期で検出する検出手段と、
前記検出手段によって検出された、第１の時点における２つのタッチ位置から定まる直線と、第２の時点における前記２つのタッチ位置から定まる直線のなす角度を取得する取得手段と、
前記第１の時点における２つのタッチ位置の間の距離と、前記２つのタッチ位置によってマルチタッチされているオブジェクトのサイズの、前記マルチタッチ操作が入力される領域のサイズに対する比率とに基づいて、角度の閾値を設定する設定手段と、
前記取得手段によって取得された角度が、前記設定手段によって設定された角度の閾値より大きい場合に、前記２つのタッチ位置に基づく入力を表示部に表示されている前記オブジェクトに対する回転操作を受け付ける受付手段と、
を備え、
前記設定手段は、前記２つのタッチ位置の間の距離が同じで前記比率が異なる場合、前記比率が大きいほど大きい角度を、前記角度の閾値として設定することを特徴とする情報処理装置。
【請求項４】
マルチタッチ操作を受け付ける情報処理装置であって、
入力された複数のタッチ位置を所定の周期で検出する検出手段と、
前記検出手段によって検出された、第１の時点における２つのタッチ位置から定まる直線と、第２の時点における前記２つのタッチ位置から定まる直線のなす角度を取得する取得手段と、
前記第１の時点における２つのタッチ位置の間の距離と、前記マルチタッチ操作を行うユーザの手のサイズとに基づいて、角度の閾値を設定する設定手段と、
前記取得手段によって取得された角度が、前記設定手段によって設定された角度の閾値より大きい場合に、前記２つのタッチ位置に基づく入力を表示部に表示されている画像の少なくとも一部に対する回転操作を受け付ける受付手段と、
を備え、
前記設定手段は、前記２つのタッチ位置の間の距離が同じで前記手のサイズが異なる場合、前記手のサイズが小さいほど小さい角度を、前記角度の閾値として設定することを特徴とする情報処理装置。
【請求項５】
前記取得手段は、前記２つのタッチ位置のうち、少なくとも１つのタッチ位置が移動した場合に、移動前である前記第１の時点での前記２つのタッチ位置の位置を結ぶ直線と、移動後である前記第２の時点での前記２つのタッチ位置の位置を結ぶ直線のなす角度を取得することを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記設定手段は、前記第１の時点における前記２つのタッチ位置の間の距離がある距離ｉの場合には、前記第１の時点における前記２つのタッチ位置の間の距離が、前記距離ｉより大きいある距離ｋの場合よりも大きい角度を、前記角度の閾値として設定することを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記取得手段は、前記マルチタッチ操作を構成する２つのタッチ位置が初めて検出されたときである前記第１の時点における前記２つのタッチ位置を結ぶ直線と、前記２つのタッチ位置のうち少なくとも１つのタッチ位置の最新の移動が検出された後である前記第２の時点での前記２つのタッチ位置を結ぶ直線とのなす角度を取得することを特徴とする請求項１乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
前記取得手段によって取得された角度が前記設定手段によって設定された角度の閾値より小さい場合に、前記表示部に表示されている画像の回転を伴わないマルチタッチ操作が入力されたか否かを判定する判定手段を更に備えることを特徴とする請求項１乃至７のいずれか１項に記載の情報処理装置。
【請求項９】
前記判定手段は、前記取得手段によって取得された角度が前記設定手段によって設定された角度の閾値より小さい場合、前記第１の時点から前記第２の時点にかけ、前記２つのタッチ位置の間の距離を略一定に保たれたままの同一方向への移動があったかを判定することを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
前記マルチタッチ操作を構成する２つのタッチ位置は、前記マルチタッチ操作を構成する３つ以上のタッチ位置の中の２つのタッチ位置であることを特徴とする請求項１乃至９のいずれか１項に記載の情報処理装置。
【請求項１１】
コンピュータに読み込ませ実行させることで、前記コンピュータを請求項１乃至１０のいずれか１項に記載された情報処理装置として動作させるためのプログラム。
【請求項１２】
請求項１１に記載されたプログラムを格納したことを特徴とするコンピュータが読み取り可能な記憶媒体。
【請求項１３】
マルチタッチ操作を受け付ける情報処理装置の制御方法であって、
検出手段により、入力された複数のタッチ位置を所定の周期で検出する検出工程と、
取得手段により、前記検出工程において検出された、第１の時点における２つのタッチ位置から定まる直線と、第２の時点における前記２つのタッチ位置から定まる直線のなす角度を取得する取得工程と、
設定手段により、前記第１の時点における２つのタッチ位置の間の距離と、前記２つのタッチ位置によってマルチタッチされているオブジェクトのサイズとに基づいて、角度の閾値を設定する設定工程と、
受付手段により、前記取得工程において取得された角度が、前記設定工程において設定された角度の閾値より大きい場合に、前記２つのタッチ位置に基づく入力を表示部に表示されている前記オブジェクトに対する回転操作を受け付ける受付工程と、
を備え、
前記設定工程では、前記２つのタッチ位置の間の距離が同じで前記オブジェクトのサイズが異なる場合、前記オブジェクトのサイズが小さいほど小さい角度を、前記角度の閾値として設定することを特徴とする情報処理装置の制御方法。
【請求項１４】
マルチタッチ操作を受け付ける情報処理装置の制御方法であって、
検出手段により、入力された複数のタッチ位置を所定の周期で検出する検出工程と、
取得手段により、前記検出工程において検出された、第１の時点における２つのタッチ位置から定まる直線と、第２の時点における前記２つのタッチ位置から定まる直線のなす角度を取得する取得工程と、
設定手段により、前記第１の時点における２つのタッチ位置の間の距離と、前記マルチタッチ操作が入力される領域のサイズとに基づいて、角度の閾値を設定する設定工程と、
受付手段により、前記取得工程において取得された角度が、前記設定工程において設定された角度の閾値より大きい場合に、前記２つのタッチ位置に基づく入力を表示部に表示されている画像の少なくとも一部に対する回転操作を受け付ける受付工程と、
を備え、
前記設定工程では、前記２つのタッチ位置の間の距離が同じで前記領域のサイズが異なる場合、前記領域のサイズが小さいほど小さい角度を、前記角度の閾値として設定することを特徴とする情報処理装置の制御方法。
【請求項１５】
マルチタッチ操作を受け付ける情報処理装置の制御方法であって、
検出手段により、入力された複数のタッチ位置を所定の周期で検出する検出工程と、
取得手段により、前記検出工程において検出された、第１の時点における２つのタッチ位置から定まる直線と、第２の時点における前記２つのタッチ位置から定まる直線のなす角度を取得する取得工程と、
設定手段により、前記第１の時点における２つのタッチ位置の間の距離と、前記２つのタッチ位置によってマルチタッチされているオブジェクトのサイズの、前記マルチタッチ操作が入力される領域のサイズに対する比率とに基づいて、角度の閾値を設定する設定工程と、
受付手段により、前記取得工程において取得された角度が、前記設定工程において設定された角度の閾値より大きい場合に、前記２つのタッチ位置に基づく入力を表示部に表示されている前記オブジェクトに対する回転操作を受け付ける受付工程と、
を備え、
前記設定工程では、前記２つのタッチ位置の間の距離が同じで前記比率が異なる場合、前記比率が大きいほど大きい角度を、前記角度の閾値として設定することを特徴とする情報処理装置の制御方法。
【請求項１６】
マルチタッチ操作を受け付ける情報処理装置の制御方法であって、
検出手段により、入力された複数のタッチ位置を所定の周期で検出する検出工程と、
取得手段により、前記検出工程において検出された、第１の時点における２つのタッチ位置から定まる直線と、第２の時点における前記２つのタッチ位置から定まる直線のなす角度を取得する取得工程と、
設定手段により、前記第１の時点における２つのタッチ位置の間の距離と、前記マルチタッチ操作を行うユーザの手のサイズとに基づいて、角度の閾値を設定する設定工程と、
受付手段により、前記取得工程において取得された角度が、前記設定工程において設定された角度の閾値より大きい場合に、前記２つのタッチ位置に基づく入力を表示部に表示されている画像の少なくとも一部に対する回転操作を受け付ける受付工程と、
を備え、
前記設定工程では、前記２つのタッチ位置の間の距離が同じで前記手のサイズが異なる場合、前記手のサイズが小さいほど小さい角度を、前記角度の閾値として設定することを特徴とする情報処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザによって入力されたマルチタッチ操作を認識する技術に関する。
【背景技術】
【０００２】
従来、指やスタイラスによる装置表面の複数箇所の同時タッチを検出し、検出された複数座標の時間に対する変化に応じて装置を操作する技術がある。以下、本明細書ではこの技術を「マルチタッチ操作」と呼ぶ。
一般的なマルチタッチ操作の１つに「回転操作」がある。一般に、回転操作は、表示部に表示されている画像や地図などのオブジェクトを回転させるために用いられる。
特許文献１では、２つの指示位置（タッチ点）による操作を、移動開始時のタッチ点を結ぶ線と、移動終了時の同じタッチ点を結ぶ線とが角度をなす場合に基づいて、回転操作であると解釈する技術が知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−１４１６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
一方、ユーザが回転操作を意図していない場合にも、タッチ点の位置が移動することに伴って、複数のタッチ点を結ぶ直線に角度の変化が生じる場合がある。このような場合に、回転操作が入力されたと認識されてしまい、表示されているオブジェクトが回転されることは、ユーザの意図に反する誤動作となる。
本発明は上記課題に鑑みてなされたものであり、マルチタッチ操作が可能な装置において、ユーザの意図に反する誤動作を低減することを主な目的とする。
【課題を解決するための手段】
【０００５】
上記の目的を達成するために、本発明に係る情報処理装置は、マルチタッチ操作を受け付ける情報処理装置であって、入力された複数のタッチ位置を所定の周期で検出する検出手段と、前記検出手段によって検出された、第１の時点における２つのタッチ位置から定まる直線と、第２の時点における前記２つのタッチ位置から定まる直線のなす角度を取得する取得手段と、前記第１の時点における２つのタッチ位置の間の距離と、前記２つのタッチ位置によってマルチタッチされているオブジェクトのサイズとに基づいて、角度の閾値を設定する設定手段と、前記取得手段によって取得された角度が、前記設定手段によって設定された角度の閾値より大きい場合に前記２つのタッチ位置に基づく入力を表示部に表示されている前記オブジェクトに対する回転操作を受け付ける受付手段と、を備え、前記設定手段は、前記２つのタッチ位置の間の距離が同じで前記オブジェクトのサイズが異なる場合、前記オブジェクトのサイズが小さいほど小さい角度を、前記角度の閾値として設定することを特徴とする。
【発明の効果】
【０００６】
本発明によれば、マルチタッチ操作が可能な装置において、ユーザの意図に反する誤動作を低減することができる。
【図面の簡単な説明】
【０００７】
【図１】情報処理装置のハードウェア構成及び機能構成を表すブロック図
【図２】マルチタッチ操作を認識する処理のフローチャート
【図３】情報処理装置が実行する処理の流れの一例を示すフローチャート
【図４】情報を管理するテーブルの一例を表す図
【図５】具体的に回転操作を行う場合にタッチ点の推移の一例を表す図
【図６】情報処理装置の機能構成を表すブロック図
【図７】角度の閾値を設定する処理の流れの一例を表すフローチャート
【図８】ユーザの手のサイズの取得方法の一例を表す図
【図９】マルチタッチ操作を認識する処理のフローチャート
【発明を実施するための形態】
【０００８】
以下、添付図面を参照して本発明に係る実施の形態を詳細に説明する。ただし、この実施の形態に記載されている構成要素はあくまでも例示であり、本発明の範囲をそれらのみに限定する趣旨のものではない。
【０００９】
＜実施例１＞
実施例１では、ある時点において、ユーザの指によるタッチが２箇所で検出されているマルチタッチの状態を想定する。そして、検出された２点のタッチ点間の距離に基づく角度の閾値を設定し、タッチ点が移動されることによってタッチ点を結ぶ直線が回転した角度が、設定された閾値を超えたときに、回転操作が入力されたと認識する。その際、タッチ点の間の距離が小さい場合には、タッチ点の間の距離が大きい場合よりも大きい角度を閾値として設定する。それにより、タッチ点の間の距離に関わらず、ユーザが回転操作を行うことを意図していない場合には、ユーザの意図に反して表示画像が回転される動作を低減する実施例を説明する。
【００１０】
一般的な回転操作の認識方法について説明する。ある時刻Ｔに検出されているタッチ点Ａとタッチ点Ｂのうち少なくとも片方が移動して、それより後の時刻Ｔ´にタッチ点Ａ´とタッチ点Ｂ´として検出されたとする。そして、直線ＡＢと直線Ａ´Ｂ´とがなす角度αと、所定の角度の閾値θの大きさを比較し、角度αの大きさが閾値θ以上であった場合に、回転操作が入力されたと認識される。このように角度の閾値を設けることで、回転操作以外のマルチタッチ操作中に微小な角度αが生じた場合には、誤って回転操作が入力されたと認識されることを防ぐことができる。ここで、角度αが閾値θを超えるために、タッチ点Ａが移動する必要がある距離（直線ＡＡ´）またはタッチ点Ｂが移動する必要がある距離（直線ＢＢ´）は、距離ＡＢの大きさが大きいほど大きく、距離ＡＢの大きさが小さいほど小さくなる。
【００１１】
従って、例えばユーザが人差し指と中指を使って操作を行おうとすると、マルチタッチ操作を構成する２つのタッチ点の間隔が小さいので、２点のタッチ点の相対的な位置関係が微小に変化しただけでも、角度αの大きさが閾値θを超えてしまう場合がある。
【００１２】
しかし、ユーザにとって、表示画像を回転させないために、複数のタッチ点の相対的な位置関係を全く動かさないようにすることは負担を伴う。また、タッチパネルによっては、ユーザの指の接触を検出して、タッチ点の座標を特定する処理に誤差が生じるため、例えユーザが相対的な位置関係が全く変化しないように指を固定しているつもりでも、タッチ点として検出される座標には変動が生じることがある。
【００１３】
このように、特にタッチ点の間の距離が小さい場合には、ユーザが回転操作を意図していない場合であっても、誤って装置に回転操作が入力されたと認識されやすくなる。そのため、ユーザの意図と異なる動作が実行されることがある。これに対し、本実施例では、ユーザにタッチされた２点間の距離に基づいて定められる角度を閾値θとして設定する。その際、２点間の距離が小さい場合には、２点間の距離が大きい場合よりも大きな角度を閾値θとして設定する。すなわち、２点間の距離がある距離ｉの場合には、２点間の距離が距離ｉより大きいある距離ｋの場合よりも大きい角度を、前記角度の閾値として設定する。これにより、例えばタッチ点の距離が小さい場合であっても、ユーザが意図していない回転操作が実行されることを防ぐことができる。
【００１４】
図１（ａ）は、本実施例に係る情報処理装置１００のハードウェア構成の一例を示す図である。ＣＰＵ１０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）であり、各種処理のための演算や論理判断などを行い、システムバス１１０に接続された各構成要素を制御する。この情報処理装置１００には、プログラムメモリとデータメモリを含むメモリが搭載されている。ＲＯＭ（Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）１０２は、プログラムメモリであって、後述する各種処理手順を含むＣＰＵによる制御のためのプログラムを格納する。ＲＡＭ１０３（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０３は、データメモリであり、ＣＰＵ１０１の上記プログラムのワーク領域、エラー処理時のデータの退避領域、上記制御プログラムのロード領域などを有する。外部記憶装置１０９などからＲＡＭ１０３にプログラムをロードすることで、プログラムメモリを実現しても構わない。ＨＤ１０４は、本実施例に係るデータやプログラムを記憶しておくためのハードディスクである。本実施例では、これらのＨＤ１０４には、複数の画像データが格納されているものとする。同様の役割を果たすものとして、入出力インタフェース１０７を介して接続される外部記憶装置１０９を用いてもよい。ここで、外部記憶装置１０９は、例えば、メディア（記録媒体）と、当該メディアへのアクセスを実現するための外部記憶ドライブとで実現することができる。このようなメディアとしては、例えば、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤ、ＵＳＢメモリ、ＭＯ、フラッシュメモリ等が知られている。また、外部記憶装置１０９は、ネットワークで接続されたサーバ装置などであってもよい。本実施例において必要な情報は、ＲＡＭ１０３やＨＤ１０４、外部記憶装置１０９に保持される。入力インタフェース１０５は、ポインティングデバイスなどの入力装置を制御し、入力信号を取得して情報処理装置１００へのタッチを認識し、システムに通知する。出力インタフェース１０６は、液晶ディスプレイ、テレビモニタ等の表示部を有する出力装置に対して、後述する各種の処理を実行した結果の出力を制御する信号を出力する。本実施例において、入力装置であるタッチパネルと出力装置であるディスプレイ装置は、情報処理装置１００に一体化したタッチパネルディスプレイ１０８を使用するものとする。ただし、情報処理装置１００に接続された外部装置であってもよく、それぞれが独立した装置であってもかまわない。なお、本実施例では、タッチパネルは静電容量方式のものを使用するとし、ユーザとパネル表面とのタッチ面のうち、１点の座標をタッチ点として特定する。ただし、タッチパネルの方式は静電容量方式に限らない。
【００１５】
図１（ｂ）は、発明に係る情報処理装置１００の機能構成を表すブロック図である。検出部１１１は、ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３等で構成され、本実施例では、入力インタフェース１０５から通知された信号に基づき、ユーザがタッチしたタッチ点に関する情報を検出する。その際、本実施形態では、入力インタフェース１０５が、入力装置であるタッチパネルが検出している複数のタッチ点の情報を一定の周期で参照し、１点についての情報を取得する毎に順次、検出部１１１に信号を通知するものとする。タッチ点に関する情報には、タッチ点の位置を示す座標情報、タッチイベントの種類、及び複数のタッチ点を識別するためのＩＤを示す情報が含まれる。ＩＤにはタッチ点が検出された順番を関連させることで、検出されるタッチ点の数が複数である場合に管理がしやすくなる。本実施例において、入力インタフェース１０５から通知されるタッチイベントは、タッチの開始を表す「ＤＯＷＮ」、タッチしたまま指やスタイラスが移動されたことを表す「ＭＯＶＥ」、タッチが解除されたことを表す「ＵＰ」の３種類である。タッチの開始から終了に到る一連の軌跡を構成するタッチ点が検出された際には、同一のＩＤが割り振られる。検出部１１１は、検出したタッチ点に関する情報をＲＡＭ１０３に保持する。
【００１６】
距離取得部１１２は、ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３等で構成され、検出部１１１によってＲＡＭ１０３に保持されたタッチ点に関する情報に基づいて、タッチ点間の距離を取得し、ＲＡＭ１０３に保持する。
【００１７】
設定部１１３は、ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３等で構成され、距離取得部１１２によってＲＡＭ１０３に保持された、タッチ点間の距離に基づいて、判定部１１５で用いる閾値を設定し、ＲＡＭ１０３に保持する。
【００１８】
角度取得部１１４は、ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３等で構成され、検出部１１１によってＲＡＭ１０３に保持された複数のタッチ点の移動前後の位置情報から、ユーザによってタッチ点が回転された角度を取得し、ＲＡＭ１０３に保持する。
【００１９】
判定部１１５は、ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３等で構成され、角度取得部１１４によってＲＡＭ１０３に保持された角度と、距離取得部１１２によってＲＡＭ１０３に保持された閾値の比較に基づいて、回転操作が入力されたか否かを判定する。
【００２０】
受付部１１６は、ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３等で構成され、判定部１１５の判定結果に基づき、情報処理装置１００に入力されたマルチタッチ操作を受け付け、出力制御部１１７に通知する。
【００２１】
出力制御部１１７は、ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３等で構成され、ユーザによって入力されたマルチタッチ操作の結果を出力する為、出力に関連する機能部を制御する。
【００２２】
図２は、情報処理装置１００によるマルチタッチ操作の認識のフローチャートの一例である。本実施例では、図２のフローチャートの処理は、ユーザがタッチパネルを新たにタッチしたり、タッチしていた指やスタイラスを移動させたりすることで、入力インタフェース１０５から、タッチ点が検出されたことを示す情報が通知されたことに応じて起動される。また、ユーザがタッチパネルに対するタッチを解除したことで、入力インタフェース１０５から、検出されていたタッチ点が検出されなくなったことを示す情報の通知があったことに応じても起動される。
【００２３】
まず、ステップＳ２０１では、検出部１１１がタッチ点を検出する。検出部１１１は、タッチパネルが検出する情報に基づき、入力インタフェース１０５から通知されるタッチ点に関する情報を取得する。さらに検出部１１１は、検出したタッチ点を識別するためのＩＤ毎に、タッチ点の位置を示す座標の情報やタッチイベントの種類など、タッチ点に関する情報を保持する。ここで実行されるタッチ点検出処理の詳細は後述する。
【００２４】
ステップＳ２０２では、距離取得部１１２が、検出されたのは移動したタッチ点か否かを判定する。距離取得部１１２は、検出部１１１によってＲＡＭ１０３に保持されているタッチ点に関する情報を参照し、ステップＳ２０１において検出されたタッチ点が、以前から検出されたタッチ点が移動した位置で検出されたものか否かを判定する。本実施形態では、ＲＡＭ１０３に保持された情報には、タッチイベントを示す情報が含まれるため、ステップＳ２０１で検出されたタッチ点のタッチイベントがＭＯＶＥである場合に、検出されたのは移動したタッチ点であると判定される。検出されたのは移動したタッチ点であると判定された場合には（ステップＳ２０２でＹＥＳ）、ステップＳ２０３に進む。一方、検出されたのは移動したタッチ点ではない、すなわち、新しくタッチされたタッチ点が検出されていた場合、あるいはタッチが解除されたことが検出されていた場合には（ステップＳ２０２でＮＯ）、マルチタッチ操作は処理を終了する。
【００２５】
ステップＳ２０３では、距離取得部１１２が、検出されているタッチ点は複数か否かを判定する。距離取得部１１２は、検出部１１１によってＲＡＭ１０３に保持されているタッチ点に関する情報を参照し、複数のＩＤのタッチ点の情報が保持されているかを判定する。本実施例では、複数のタッチ点を識別するためのＩＤを保持しているため、保持されているＩＤが複数であれば、検出されているタッチ点は複数である。検出されているタッチ点は複数であると判定された場合には（ステップＳ２０３でＹＥＳ）、ステップＳ２０４に進む。一方、検出されているタッチ点が複数ではないと判定された場合には（ステップＳ２０３でＮＯ）、処理を終了する。
【００２６】
ステップＳ２０４では、距離取得部１１２が、２点のタッチ点の間の距離Ｄを取得する。本実施例では、三平方の定理に基づいて、検出されている複数のタッチ点の最新の位置を示す座標情報から２点間の距離を求めるものとする。
【００２７】
ステップＳ２０５では、設定部１１３が、取得された２点間の距離に応じて、角度の閾値θを設定する。その際、２点間の距離が小さい場合には、２点間の距離が大きい場合よりも大きな角度を閾値θとして設定する。ステップＳ２０５において実行される処理の詳細は後述する。
【００２８】
ステップＳ２０６では、角度取得部１１４が、マルチタッチ開始時のタッチ点を結ぶ直線と、  最新状態のタッチ点を結ぶ直線のなす角度αを取得する。本実施例では、タッチパネルへの接触が以前から継続されているタッチ点は、最初に検出された位置情報とともに、検出部１１１によって移動が検出される度にその軌跡を示す位置情報がＲＡＭ１０３に保持されている。従って、角度取得部１１４は、ステップＳ２０１で検出部１１１が検出したタッチ点と同じＩＤのタッチ点が、最初に検出された時刻での、各タッチ点の位置を示す情報を基に、移動前の２点のタッチ点を結ぶ直線を取得する。そして、ステップＳ２０１で検出部１１１がタッチ点を検出した時点時刻での、各タッチ点の位置情報を基に、移動後のタッチ点を結ぶ直線を取得する。そして、２本の直線がなす角度を角度αとして取得する。本実施例では、角度取得部１１４は、三角関数を用いて、移動前後のタッチ点を結ぶ２本の直線が、それぞれタッチパネルの座標軸となす角度を求める。求められた２つの角度の差分を、２本の直線がなす角度αの大きさとして取得する。
【００２９】
次に、ステップＳ２０７では、判定部１１５が、角度αの大きさが、閾値θの大きさ以上であるか否かを判定する。判定部１１５は、角度取得部１１４が取得してＲＡＭ１０３に保持している角度αの情報と、設定部１１３が設定してＲＡＭ１０３に保持している閾値θの情報を参照し、その大きさを比較する。角度αが閾値θ以上であると判定された場合には（ステップＳ２０７でＹＥＳ）、ステップＳ２０８に進み、角度αが閾値θ未満であると判定された場合（ステップＳ２０７でＮＯ）には、処理を終了する。
【００３０】
ステップＳ２０８では、受付部１１６が、情報処理装置１００に入力された回転操作を受け付け、タッチパネルディスプレイ１０８に表示されている画像を回転させる回転量を出力制御部１１７に通知する。画像を回転させる回転量は、角度αに依存する。
【００３１】
ステップＳ２０９では、出力制御部１１７が、タッチパネルディスプレイ１０８に表示させるための表示画像を生成し、出力する。ステップＳ２０８で、情報処理装置１００に入力された回転操作を受け付けた場合には、出力制御部１１７では、ユーザによるタッチ点の移動量に追従して、タッチパネルディスプレイ１０８に表示されている画像を回転させた表示画像を生成し、出力する。表示画像が出力されたら、本実施例のマルチタッチ操作を認識する処理は終了する。
【００３２】
なお、ステップＳ２０４やステップＳ２０６で、２点間の距離Ｄや２本の線分のなす角度αを求める方法は、ここで説明した方法に限らない。例えば、複数のタッチ点の位置関係から一意に決定される値を、予め情報処理装置１００が保持していてもよい。
【００３３】
なお、他のマルチタッチ操作と回転操作とを受け付けて同時に出力を返す場合には、ステップＳ２０９で表示画像を出力する前に、判定部１１５が回転操作以外のマルチタッチ操作が入力されたか否かを判定する。その際、判定部１１５がタッチ点の動きが他のマルチタッチ操作を認識する条件に当てはまるか否かを判定し、その判定結果に基づくマルチタッチ操作を受付部１１６が受け付け、表示画像の更新に必要なパラメータを通知しておく。このようにすることで、ユーザが意図しない回転操作が誤認識されるのを防ぐとともに、多種のマルチタッチ操作が入力されたことによる結果を出力できる。
【００３４】
ここで、図３（ａ）は、本実施例のステップＳ２０１において実行される、タッチ点の検出を示すフローチャートの一例である。本実施例において、入力インタフェース１０５から通知されるタッチイベントは、ユーザによるタッチの開始を表す「ＤＯＷＮ」、タッチしたまま指やスタイラスが移動されたことを表す「ＭＯＶＥ」、タッチが解除されたことを表す「ＵＰ」の３種類である。
【００３５】
ステップＳ３０１では、検出部１１１が、入力インタフェース１０５から通知された信号を解析し、タッチイベントが「ＵＰ」であるか否かを判定する。タッチイベントが「ＵＰ」ではないと判定された場合には（ステップＳ３０１でＮＯ）、ステップＳ３０２に進み、タッチ点に関する情報を追加して保持する。
【００３６】
ここで、図４（ａ）は、本実施例の検出部１１１がＲＡＭ１０３に保持していくタッチ点に関する情報の一例を表すテーブルである。ここで、図４（ａ）のテーブルの項目４０１には、検出番号が格納されている。本実施例では、タッチ点の情報が検出された順番を検出番号としており、ＲＡＭ１０３においては検出番号順に、タッチ点に関する情報をテーブルに追加していくものとする。ただし、タッチ点が検出された時刻の情報をさらに取得し、検出時刻順に情報をテーブルに追加していく方法でＲＡＭ１０３に保持しても構わない。
【００３７】
また、項目４０２では、各タッチ点が検出された際に通知されたタッチイベントを示す情報が格納されている。従って、項目４０２を参照することで、新たにタッチされたタッチ点であるのか、以前から検出されていたタッチ点が移動したのかが判定できる。ただし、タッチ点が新たにタッチされたのか移動されたのかが判定できる情報が保持される方法であれば、タッチイベントの種類を格納する方法に限らず利用できる。例えば、タッチイベントが「ＭＯＶＥ」であった場合にだけ移動フラグを立てるなどの方法を利用できる。
【００３８】
項目４０３および項目４０４には、タッチパネルのタッチ検出領域全体を座標平面としたときの、各タッチ点のＸ座標とＹ座標が格納される。
【００３９】
そして、項目４０５はタッチ点に割り当てられた識別情報であるＩＤが格納されている。本実施例では、最初に検出されたタッチ点を０、次に検出されたタッチ点を１、タッチパネルが同時に検出しているタッチ点が増える度に１ずつカウントアップされていく番号をＩＤとして割り当てる。タッチパネルから離れることなく移動するタッチ点の軌跡には、全て同じＩＤが割り当てられるため、複数のタッチ点を識別することができる。
【００４０】
一方、図３（ａ）のフローチャートのステップＳ３０１において、タッチイベントが「ＵＰ」であると判定された場合には（ステップＳ３０１でＹＥＳ）、ステップＳ３０３に進む。ステップＳ３０３では、検出部１１１が、ＲＡＭ１０３に保持されているタッチ点に関する情報のうち、タッチイベント「ＵＰ」が通知されたタッチ点と同じＩＤのタッチ点の情報を全て削除する。
【００４１】
本実施例では、タッチの開始を表す「ＤＯＷＮ」、タッチが解除されずに移動されたことを表す「ＭＯＶＥ」、タッチの動作が解除されたことを表す「ＵＰ」の３種類のタッチイベントが検出部１１１に通知されるものとしたが、タッチイベントの種類はこれに限らない。例えば、タッチ点がタッチパネル上で接触している状態が検出された場合には「ＴＯＵＣＨ」、タッチ点がタッチパネル上から離れたことが検出された場合には「ＲＥＬＥＡＳＥ」の２種類のタッチイベントが通知される形式であっても構わない。この場合にも、「ＲＥＬＥＡＳＥ」が通知された場合には、タッチ点の情報をＲＡＭ１０３から消去し、「ＴＯＵＣＨ」が通知された場合には、タッチ点の情報をＲＡＭ１０３に追加する。そして、既に検出されていたタッチ点とＩＤと同じタッチ点が、移動した位置で検出された場合には、例えば移動フラグを立てる等、タッチ点が移動したことを示す情報を保持するものとする。
【００４２】
このように、本実施例では、ユーザによるタッチが解除されない限り、繰り返し検出されるタッチ点の情報をＲＡＭ１０３に追加して保持していく。この場合、タッチ点が最初にタッチされたときの位置、その後の軌跡の位置を全て利用することができる。その一方で、タッチ点の数が多い場合や、ユーザが長時間タッチを継続している場合には、ＲＡＭ１０３に保持される情報量が大きくなってしまう場合がある。そのため、タッチ点が移動したことを検出した時に、タッチ点が移動前に検出されていた直前の状態に関する情報、及び移動後に検出された最新の状態の情報だけを保持して、それより古い情報を削除してもよい。その場合、ステップＳ３０１でＮＯの判定を行った後に、例えばタッチイベントが「ＤＯＷＮ」であるか否かを判定する処理を行い、「ＤＯＷＮ」であると判定された場合にはステップＳ３０２に進んでタッチ点に関する情報を追加する処理を行う。そして、タッチイベントが「ＤＯＷＮ」ではない、すなわち「ＭＯＶＥ」であると判定されば場合には、同じＩＤのタッチ点に関する情報のうち、最新の２回の検出で検出された情報のみを保持して、古い情報を消去する処理を行う。
【００４３】
次に、図３（ｂ）は、本実施例のステップＳ２０５において実行される、２点間の距離に応じた閾値θを設定する処理の流れの一例を示すフローチャートである。
【００４４】
ステップＳ３１１では、設定部１１３が、ステップＳ２０４で距離取得部１１２が取得した距離Ｄの大きさに対応付けられている所定の角度を取得する。図４（ｂ）はその対応関係の一例を示すテーブルである。
【００４５】
図４（ｂ）のテーブルにおいて、項目４０６には、ステップＳ２０４で取得された距離Ｄの範囲が格納され、項目４０７には、ある範囲の距離Ｄに対応する所定の角度が格納されている。このように、距離Ｄの大きさと所定の角度の対応関係を示すテーブルが予めＨＤ１０４に保持され、設定部１１３によってＲＡＭ１０３に読み出され、参照されるものとする。このとき、２点間の距離がある距離ｉの場合には、２点間の距離が距離ｉより大きいある距離ｋの場合よりも大きい角度が対応するように、対応関係が設定されている。例えば、図４（ｂ）に示すように距離Ｄが３００ｄｏｔであるときに対応する角度１０度は、距離Ｄが５００ｄｏｔであるときに対応する所定の角度５度よりも大きい。
【００４６】
ステップＳ３１２では、設定部１１３が、ステップＳ３１１で取得した角度を、閾値θとして設定する。これにより、２点間の距離がある距離ｉの場合に設定される角度の閾値は、２点間の距離が距離ｉより大きいある距離ｋの場合に設定される角度の閾値よりも大きくなる。このようにすることで、タッチ点の間隔が小さい場合には、タッチ点の位置に微小な変化が生じてタッチ点を結ぶ直線が回転したとしても、角度の閾値が大きいために回転角度が閾値を超え難い。従って、誤って回転操作が入力されたと認識される誤動作を低減できる。閾値θが設定されたら、ユーザによるマルチタッチ操作を認識するメインの処理にリターンする。
【００４７】
以上が、本実施例において実行されるマルチタッチ操作を認識する処理である。このように、本実施例では回転操作が入力されたか否かを判定するための角度の閾値として、マルチタッチ操作を構成する複数のタッチ点の間の距離に基づいた値を設定する。その際、タッチ点の間の距離が小さい場合には、タッチ点の間の距離が大きい場合よりも大きい角度を閾値として設定することで、タッチ点の間の距離に関わらず、ユーザが回転操作を意図しない場合に、誤って表示画像が回転されてしまう誤動作を低減する。
【００４８】
なお、本実施例では２点のタッチ点が入力された場合を例に挙げて説明しているが、３点以上が入力された場合に適用することもできる。この場合、例えば、３点以上のタッチ点の中から２点を抽出して、本実施例の処理を適用する。この２点の抽出方法は、最も近い２点、もしくは最も遠い２点を抽出する方法等が考えられる。また、例えば３点以上のタッチ点のそれぞれについて、他のタッチ点との２点間の距離の合計値又は平均値等に基づいて閾値θを設定し、同様に合計値又は平均値等に基づいて角度αの値を求め、本実施例の処理を適応することもできる。
【００４９】
ここで、具体的に、実施例１による情報処理装置１００に対して、ユーザが回転操作を入力する例を説明する。
【００５０】
図５は、ユーザが情報処理装置１００に対して、複数の指を使ったマルチタッチ操作を行う際に検出されるタッチ点の位置を示す座標の推移を、ｘ−ｙ平面において表したグラフである。
【００５１】
図５（ａ）は、ユーザが２本の指でタッチパネルディスプレイ１０８の２箇所をタッチしたことで、タッチ点５０８とタッチ点５０９とが検出されている様子を表し、図４（ａ）のテーブルでは検出番号２までの情報に相当するものとする。具体的には、まずタッチ点５０８が検出部１１１によって検出され、検出番号１として、タッチイベント「ＤＯＷＮ」、ｘ座標が５０、ｙ座標が１５０という情報が、ＩＤ＝０に関連付けられてＲＡＭ１０３に保持される。次に、タッチ点５０９が検出され、検出番号２として、タッチイベント「ＤＯＷＮ」、ｘ座標が２５０、ｙ座標が１５０という情報が、ＩＤ＝１に関連付けられてＲＡＭ１０３に保持される。検出番号２のタッチ点５０９が検出された時点で開始された図２のフローチャートの処理では、タッチイベントが「ＭＯＶＥ」ではないため、距離取得部１１２によってステップＳ２０２でＮＯと判定され、図２のフローチャートの処理は終了する。
【００５２】
図５（ｂ）は、ユーザが２本の指を動かしたことで、タッチ点５０８とタッチ点５０９が移動し、ＩＤ＝０のタッチ点５１０と、ＩＤ＝１のタッチ点５１１が検出された様子を表している。図４（ａ）のテーブルでは、検出番号４までの情報が検出された状態に相当する。ここで、検出番号４のタッチ点５１１が検出されたことに応じて実行される処理を、図２のフローチャートに従って説明する。
【００５３】
まず、タッチ点５１１は、検出番号４として、タッチイベント「ＭＯＶＥ」、ｘ座標が２４９、ｙ座標が１６７という情報が、ＩＤ＝１に関連付けられて保持される（ステップＳ２０１）。このとき、タッチイベントが「ＭＯＶＥ」であることから、タッチ点５１１は移動したタッチ点であり（ステップＳ２０２でＹＥＳ）、検出されているタッチ点はＩＤ＝０とＩＤ＝１の２つのタッチ点であると判定される（ステップＳ２０３でＹＥＳ）。次に、タッチ点５１０とタッチ点５１１の座標情報から、２点のタッチ点の間の距離Ｄが取得される（ステップＳ２０４）。２点の距離Ｄは、例えば１点目を（ｘ１、ｙ１）、２点目を（ｘ２、ｙ２）とした時、次の式により求まる。
【００５４】
Ｘ＝√｛（ｘ１−ｘ２）＊（ｘ１−ｘ２）＋（ｙ１−ｙ２）＊（ｙ１−ｙ２）｝
上記の式にタッチ点５１０とタッチ点５１１を当てはめると、距離Ｄは２００ｄｏｔと求められる。次に、設定部１１３が予め記憶されている図４（ｂ）のテーブルが参照され、距離Ｄに対応する所定の角度を取得する（ステップＳ３１１）。今、距離Ｄは２００ｄｏｔだったので、設定部１１３は、距離Ｄに対応する所定の角度として２０度を取得する。そして、取得した角度２０度を閾値θとして設定する。（ステップＳ３１２）。次に、設定部１１３は、マルチタッチ開始時のタッチ点、すなわちタッチ点５０８とタッチ点５０９を結ぶ直線と、最新状態のタッチ点、すなわちタッチ点５１０とタッチ点５１１を結ぶ直線のなす角度αを取得する（ステップＳ２０６）。角度αは、各タッチ点の座標から三角関数を利用して算出することができる。図５の例では、角度αは１０度であるものとする。ここでは、判定部１１５により、角度α（１０度）が閾値θ（２０度）以上ではないと判定されるので（ステップＳ２０７でＮＯ）、図２のフローチャートの処理は終了する。
【００５５】
次に、図５（ｃ）は、さらにユーザが２本の指を動かしたことで、タッチ点５１０とタッチ点５１１が移動し、ＩＤ＝０のタッチ点５１２と、ＩＤ＝１のタッチ点５１３が検出された様子を表している。図４（ａ）のテーブルでは、検出番号６までの情報が検出された状態に相当する。ここで、検出番号６のタッチ点５１３が検出されたことに応じて実行される処理を、図２のフローチャートに従って説明する。
【００５６】
まず、タッチ点５１３は、検出番号６として、タッチイベント「ＭＯＶＥ」、ｘ座標が２４４、ｙ座標が１８４という情報が、ＩＤ＝１に関連付けられて保持される（ステップＳ２０１）。このとき、タッチイベントが「ＭＯＶＥ」であることから、タッチ点５１１は移動したタッチ点であり（ステップＳ２０２でＹＥＳ）、検出されているタッチ点はＩＤ＝０とＩＤ＝１の２つのタッチ点であると判定される（ステップＳ２０３でＹＥＳ）。次に、タッチ点５１２とタッチ点５１３の座標情報から、２点のタッチ点の間の距離Ｄが取得される（ステップＳ２０４）。図５（ｃ）の例では、２点の距離Ｄは、２００ｄｏｔと求められる。次に、設定部１１３が予め記憶されている図４（ｂ）のテーブルが参照され、距離Ｄに対応する所定の角度を取得する（ステップＳ３１１）。今、距離Ｄは２００ｄｏｔだったので、設定部１１３は、距離Ｄに対応する所定の角度として２０度を取得し、閾値θとして設定する。（ステップＳ３１２）。次に、設定部１１３は、マルチタッチ開始時のタッチ点、すなわちタッチ点５０８とタッチ点５０９を結ぶ直線と、最新状態のタッチ点、すなわちタッチ点５１２とタッチ点５１３を結ぶ直線のなす角度αを取得する（ステップＳ２０６）。図５の例では、各タッチ点の座標を用いて算出することにより、角度αは２０度と求められるものとする。そして、判定部１１５により、角度α（２０度）が閾値θ（２０度）以上であると判定される（ステップＳ２０７でＹＥＳ）。従って、ステップＳ２０８で、受付部１１６が、情報処理装置１００に入力された回転操作を受け付け、出力制御部１１７に通知する。出力制御部１１７では、ユーザによるタッチ点の移動量に追従する方向に、タッチパネルディスプレイ１０８に表示されている画像を、角度α（２０度）分だけ回転させた表示画像を生成し、出力する（ステップＳ２０９）。表示画像が出力されたら、図２のフローチャートの処理は終了する。
【００５７】
なお、ここではＩＤ＝１のタッチ点が検出された時点における図２のフローチャートの処理に注目して説明したが、ＩＤ＝０のタッチ点５０８、タッチ点５１０、タッチ点５１２が検出された時点でも毎回、同じように図２のフローチャートの処理が実行される。
【００５８】
また、本実施例の具体例では、ステップＳ３１１で距離Ｄに対応する所定の角度を取得するのに、図４（ｂ）のような距離Ｄと角度の対応を示すテーブルを用いた。しかし、必ずしもテーブルを用いる必要はなく、予め用意された式やパラメータによって、距離Ｄから所定の角度を一意に定めてもよい。その際、２点間の距離が小さいほど、大きな角度が対応するように設定する。ただし、本実施例のように所定の角度に対応する距離Ｄが範囲を有していてもよい。図４（ｂ）のテーブルでは、距離Ｄがある距離ｉの場合には、２点間の距離が距離ｉより大きい範囲の中の、ある距離ｋの場合よりも大きい角度が対応するように、対応関係が設定されている。このように、２点のタッチ点の間の距離に応じて定められた所定の角度を、回転操作が入力されたことを認識するための角度の閾値に用いることで、２点間の距離の大きさに関わらず、適切な閾値を設定することができる。それにより、２点間の距離が小さい場合でも、ユーザの意図に反して表示画像が回転されてしまう誤動作を防止することができる。
【００５９】
また、本実施例の具体例では、回転操作が入力された場合に、表示されている画像が回転される角度は、角度αと一致するものとした。このようにすることで、ユーザは、指を使って表示画像を動かしているという感覚を得やすいので、直感的なマルチタッチ操作が可能になる。ただし、表示画像を回転させる角度はこれに限らない。例えば、表示画像が回転される角度は、５度毎の段階的な角度に限定することもできる。この場合、出力制御部１１７は、例えば角度αが２０〜２４度であれば、表示画像を最初の表示状態から２０度回転させ、角度αが２５〜２９度であれば表示画像を最初の表示状態から２５度回転させる。
【００６０】
以上説明したように、本実施例では、ある時点において、検出された２点のタッチ点間の距離に基づいて、回転操作が入力されたか否かを判定するための角度の閾値を設定する。そして、タッチ点が移動されることによって、複数のタッチ点を結ぶ直線が回転した角度が、設定された閾値を超えた場合に、回転操作が入力されたと認識する。その際、タッチ点の間の距離が小さい場合には、タッチ点の間の距離が大きい場合よりも大きい角度を閾値として設定することで、タッチ点の間の距離に関わらず、ユーザが回転操作を意図しない場合に表示画像が回転して表示されてしまう誤動作を低減する。
【００６１】
なお、本実施例では、２点のタッチ点の間の距離が小さいほど大きい角度を、回転操作が入力されたことを認識するための閾値として設定するが、さらに２点間のタッチ点の間の距離が所定の距離より小さい場合には、回転操作を禁止してもよい。このようにすることで、例えば表示部のサイズが小さいなど特殊な環境においても、ユーザが回転操作を意図しない場合に表示画像が回転して表示されてしまう誤動作を低減することができる。
【００６２】
（実施例１の変形例）
実施例１では、マルチタッチを構成する２点のタッチ点間の距離に基づいて、回転操作が入力されたか否かを判定するための角度の閾値を設定した。その際、２点間の距離が小さいほど大きくなる角度を、回転操作が入力されたことを認識するための閾値として設定することで、タッチ点の間の距離関わらず、ユーザ回転操作を意図していない場合に、誤って表示画像が表示される誤動作を低減することができた。しかしこの場合、２点のタッチ点間の距離をある程度以上大きくすることが困難な環境においては、回転操作が入力されたと認識され難くなり、操作性が低下するという問題がある。その問題を解決するため、状況に応じて閾値θの設定方法を変更し、回転操作が入力されたと認識され難くなることを防ぐ変形例を説明する。
【００６３】
まず、実施例１の変形例１として、２点のタッチ点間の距離Ｄと、入力装置であるタッチパネルディスプレイ１０８がユーザによるタッチを検出可能な範囲（以下、入力領域）のサイズとに基づいて、閾値θを設定する例を示す。この際、入力領域のサイズが小さいほど小さい角度を閾値θとして設定する。これにより、画面サイズが小さいため、ユーザが２点のタッチ点の間の距離を小さくせざるを得ない場合でも、回転操作を入力したときの操作性が低下することを防ぐ。
【００６４】
まず、実施例１の変形例１に係る情報処理装置１００のハードウェア構成は、実施例１の図１（ａ）と同様であるため、説明を省略する。
【００６５】
図６（ａ）は本実施形態における情報処理装置１００の機能構成の一例を示すブロック図である。図１（ｂ）と異なる点は、領域情報６０１が追加されたことである。領域情報６０１は、タッチパネルディスプレイ１０８と入力インタフェース１０５から取得したディスプレイ画面の大きさ、解像度、及びタッチパネルを駆動するドライバ情報に基づき、検出部１１１が入力領域のサイズを取得する。なお、入力領域のサイズは、情報処理装置１００に接続あるいは内蔵されたタッチパネルディスプレイ１０８のハードウェアサイズだけでなく、起動されているアプリケーションやディスプレイの表示内容によっても異なるものとする。その他の機能構成は、実施例１に準じるため、説明を省略する。
【００６６】
実施例１の変形例１の場合も、図２のフローチャートに従ってマルチタッチ操作を認識する処理が実行される。ただし、変形例１のステップＳ２０５において、図７（ａ）のフローチャートに従って、閾値θを設定する処理が行われる。
【００６７】
まず、ステップＳ７０１では、領域情報６０１が、タッチパネルディスプレイ１０８及び入力インタフェース１０５より、ユーザによるタッチを検出可能な入力領域のサイズを取得する。
【００６８】
ステップＳ７０２では、設定部１１３が、ステップＳ７０１で取得した入力領域のサイズにおける、距離Ｄと角度の対応関係を取得する。実施例１の変形例では、予め距離Ｄの大きさと所定の角度の対応関係を示す複数のテーブルが、ＨＤ１０４に保持されており、それぞれのテーブルが入力領域のサイズに対応付けられているものとする。ここで、実施例１の変形例１では、距離Ｄが小さい大きい角度が対応付けられているとともに、入力領域のサイズが小さいほど、同じ距離Ｄに対応付けられた角度は小さくなるように設定されている。ステップＳ７０２では、設定部１１３が、ステップＳ７０１で取得した入力領域のサイズに対応するテーブルを取得し、ＲＡＭ１０３に読み出して使用するものとする。
【００６９】
ステップＳ７０３では、設定部１１３が、取得した対応関係を参照して、ステップＳ２０４で距離取得部１１２が取得した距離Ｄの大きさに対応付けられている所定の角度を取得する。
【００７０】
ステップＳ７０４では、設定部１１３が、ステップＳ７０３で取得した角度を、閾値θとして設定する。閾値θが設定されたら、ユーザによるマルチタッチ操作を認識するメインの処理にリターンする。
【００７１】
図２のフローチャートにおけるこの他の処理は、実施例１と同様に行われる。
【００７２】
ここで、本実施例の具体例を、図５を参照しながら実施例１との相違点に着目して説明する。また、図４（ｂ）及び図４（ｃ）は、予めＨＤ１０４に保持された距離Ｄの大きさと所定の角度の対応関係を示すテーブルであるものとする。ここでは、領域情報６０１が取得した入力領域のサイズが、ｘ軸方向及びｙ軸方向ともに５００ｄｏｔ以上の場合は図４（ｂ）のテーブルを使用し、ｘ軸方向及びｙ軸方向ともに５００ｄｏｔ未満の場合には図４（ｃ）のテーブルを使用するものとする。
【００７３】
実施例１と同様、図５（ｂ）はユーザがタッチパネルにタッチしていた２本の指を動かしたことに伴って検出された、検出番号４までのタッチ点の位置の推移（タッチ点５０８〜５１１）を、ｘ−ｙ平面において表したグラフである。ステップＳ２０４までの処理は、実施例１に準じ、タッチ点５１０とタッチ点５１１との間の距離Ｄが２００ｄｏｔと求められる（ステップＳ２０４）。次に、領域情報６０１が、タッチパネルディスプレイ１０８から、入力領域のサイズを示す情報を取得する（ステップＳ７０１）。ここでは、検出可能なタッチ点のｘ座標の最大値が３００ｄｏｔ、ｙ座標の最大値が３００ｄｏｔという情報が得られたものとする。従って、設定部１１３は、図４（ｃ）のテーブルをＲＡＭ１０３に読み出し（ステップＳ７０２）、ステップＳ２０４で取得された距離Ｄに対応する所定の角度を取得する（ステップＳ７０３）。今、距離Ｄは２００ｄｏｔであるから、所定の角度は１０度であり、設定部１１３によって、閾値θが１０度と設定される（ステップＳ７０４）。実施例１と同様、角度取得部１１４によって、タッチ点５０８とタッチ点５０９とを結ぶ直線と、タッチ点５１０とタッチ点５１１とを結ぶ直線のなす角度αは１０度と求められる（ステップＳ２０６）。従って、判定部１１５によって角度α（１０度）が閾値θ（１０度）以上であると判定される（ステップＳ２０７でＹＥＳ）。従って、受付部１１６が、情報処理装置１００に入力された回転操作を受け付け、出力制御部１１７に通知する（ステップＳ２０８）。出力制御部１１７では、ユーザによるタッチ点の移動量に追従する方向に、タッチパネルディスプレイ１０８に表示されている画像を、角度α（１０度）分だけ回転させた表示画像を生成し、出力する。表示画像が出力されたら、図２のフローチャートの処理は終了する。
【００７４】
以上説明したように、実施例１の変形例１によれば、距離Ｄに加えて、ユーザによるタッチを検出可能な入力領域のサイズに基づいて閾値θを設定する。これにより、ユーザがタッチ点の間隔を小さくした状態で操作を行わざるを得ない場合に、回転操作が入力されたことが認識され難くなってしまうことを防ぐ。すなわち、情報処理装置１００に供えられたタッチパネルの画面サイズが小さかったり、アプリケーションの機能によって入力領域の範囲が狭められたりした場合であっても、マルチタッチ操作を行うユーザの操作性を低下させない。
【００７５】
次に、実施例１の変形例２として、２点のタッチ点間の距離Ｄと、ディスプレイに表示している表示画像において、ユーザがマルチタッチしているオブジェクトのサイズとに基づいて、閾値θを設定する例を示す。この際、オブジェクトのサイズが小さいほど小さい角度を閾値θとして設定する。これにより、ユーザがマルチタッチ操作によって回転させようとするオブジェクトが小さいため、ユーザが２点のタッチ点の間の距離を小さくせざるを得ない場合でも、回転操作を入力したときの操作性が低下することを防ぐ。
【００７６】
まず、実施例１の変形例３に係る情報処理装置１００のハードウェア構成は、実施例１の図１（ａ）と同じため、説明を省略する。
【００７７】
また、図６（ｂ）は本実施形態における情報処理装置１００の機能構成の一例を示すブロック図である。図１（ｂ）と異なる点は、オブジェクト情報取得部６０２が追加されたことである。オブジェクト情報取得部６０２は、出力制御部１１７がタッチパネルディスプレイ１０８に出力している表示画像の情報に基づき、検出部１１１が検出したタッチ点の位置に存在するオブジェクトを特定して、そのサイズを示す情報を取得する。その他の機能構成は、実施例１に準じるため、説明を省略する。
【００７８】
実施例１の変形例２の場合も、図２のフローチャートに従ってマルチタッチ操作を認識する処理が実行される。ただし、変形例１のステップＳ２０５において、図７（ｂ）のフローチャートに従って、閾値θを設定する処理が行われる。
【００７９】
まず、ステップＳ７１１では、オブジェクト情報取得部６０２が、ユーザによってマルチタッチされているオブジェクトのサイズを取得する。このとき、オブジェクト情報取得部６０２は、出力制御部１１７から出力されている表示画像の情報を得て、検出されているタッチ点の位置を示す座標に対応する位置に表示されているオブジェクトを、ユーザがマルチタッチしているオブジェクトとして１つ特定する。オブジェクトが複数存在し、重なり合っている場合には、一番上に存在するものとして表示されているオブジェクトを特定する。このように、検出されているタッチ点毎に、タッチ点の位置に表示されているオブジェクトを特定し、２点のタッチ点に表示されているオブジェクトが同一であった場合、そのオブジェクトのサイズを示す情報を出力制御部１１７から取得する。
【００８０】
ステップＳ７１２では、設定部１１３が、ステップＳ７１１で取得したオブジェクトのサイズにおける、距離Ｄと角度の対応関係を取得する。実施例１の変形例２においても、予め距離Ｄの大きさと所定の角度の対応関係を示す複数のテーブルが、ＨＤ１０４に保持されており、それぞれのテーブルが、ユーザがマルチタッチしているオブジェクトのサイズに対応付けられているものとする。実施例１の変形例２では、距離Ｄが小さいほど大きい角度が対応付けられているとともに、ユーザがマルチタッチしているオブジェクトのサイズが小さいほど、同じ距離Ｄに対応付けられた角度は小さくなるように設定されている。ステップＳ７１２では、設定部１１３が、ステップＳ７１１で取得したオブジェクトのサイズに対応するテーブルを取得し、ＲＡＭ１０３に読み出して使用するものとする。
【００８１】
ステップＳ７１３では、設定部１１３が、取得した対応関係を参照して、ステップＳ２０４で距離取得部１１２が取得した距離Ｄの大きさに対応付けられている所定の角度を取得する。
【００８２】
ステップＳ７１４では、設定部１１３が、ステップＳ７１３で取得した角度を、閾値θとして設定する。閾値θが設定されたら、ユーザによるマルチタッチ操作を認識するメインの処理にリターンする。
【００８３】
図２のフローチャートにおけるこの他の処理は、実施例１と同様に行われる。
【００８４】
実施例１の変形例２の具体例を、実施例１及び変形例１との差分に着目して説明する。なお、変形例２においても、図４（ｂ）及び図４（ｃ）は、予めＨＤ１０４に保持された距離Ｄの大きさと所定の角度の対応関係を示すテーブルであるものとする。ここでは、オブジェクト情報取得部６０２が取得したオブジェクトのサイズが、ｘ軸方向及びｙ軸方向ともに４００ｄｏｔ以上の場合は図４（ｂ）のテーブルを、ｘ軸方向及びｙ軸方向ともに４００ｄｏｔ未満の場合には図４（ｃ）のテーブルを使用するものとする。
【００８５】
ここで、図５（ｄ）は、ユーザがタッチパネルにタッチしていた２本の指を動かしたことに伴って検出された、検出番号４までのタッチ点の位置の推移（タッチ点５０８〜５１１）を、ｘ−ｙ平面において表したグラフである。すなわち、実施例１およびその変形例１の具体例で説明した図５（ｂ）に対応するものである。ここで、オブジェクト５１４は、ユーザがタッチ点５０８〜５１１によってマルチタッチしているオブジェクトを表している。ステップＳ２０４までの処理は、実施例１に準じ、タッチ点５１０とタッチ点５１１との間の距離Ｄが２００ｄｏｔと求められる（ステップＳ２０４）。次に、オブジェクト情報取得部６０２が、出力制御部１１７が出力している表示画像に基づき、ユーザがマルチタッチしているオブジェクトのサイズを示す情報を取得する（ステップＳ７１１）。図５（ｄ）の例では、オブジェクト５１４は、ｘ方向の最大幅が２４０ｄｏｔ、ｙ方向の最大幅が２４０ｄｏｔであることを示す情報が取得されたものとする。従って、設定部１１３は、図４（ｃ）のテーブルをＲＡＭ１０３に読み出し（ステップＳ７１２）、ステップＳ２０４で取得された距離Ｄに対応する所定の角度を取得する（ステップＳ７１３）。今、距離Ｄは２００ｄｏｔであるから、所定の角度は１０度であり、設定部１１３によって、閾値θが１０度と設定される（ステップＳ７１４）。以降は、実施例１の変形例１と同様、角度取得部１１４によって、タッチ点５０８とタッチ点５０９とを結ぶ直線と、タッチ点５１０とタッチ点５１１とを結ぶ直線のなす角度αは１０度と求められる（ステップＳ２０６）。従って、判定部１１５によって角度α（１０度）が閾値θ（１０度）以上であると判定される（ステップＳ２０７でＹＥＳ）。従って、受付部１１６が、情報処理装置１００に入力された回転操作を受け付け、出力制御部１１７に通知する（ステップＳ２０８）。出力制御部１１７では、ユーザによるタッチ点の移動量に追従する方向に、タッチパネルディスプレイ１０８に表示されている画像を、角度α（１０度）分だけ回転させた表示画像を生成し、出力する。表示画像が出力されたら、図２のフローチャートの処理は終了する。
【００８６】
以上説明したように、実施例１の変形例２によれば、距離Ｄに加えて、ユーザがマルチタッチしているオブジェクトのサイズに基づいて閾値θを設定する。これにより、変形例１と同様に、ユーザがタッチ点の間隔を小さくした状態で操作を行わざるを得ない場合に、回転操作が入力されたことを認識され難くなってしまうことを防ぐ。すなわち、ユーザがマルチタッチ操作によって回転させようとするオブジェクトが小さい場合でも、回転操作の操作性を低下させない。
【００８７】
次に、実施例１の変形例３として、距離Ｄと、入力領域のサイズと、ユーザがマルチタッチしたオブジェクトのサイズの比率を考慮して閾値θを設定する例を説明する。この場合も、入力領域のサイズが小さいほど小さい角度を閾値θとして設定するとともに、実施例１の変形例２で説明したように、オブジェクトのサイズが小さいほど小さい角度を閾値θとして設定することを目的とする。従って、例えば入力領域のサイズが小さくても、マルチタッチされているオブジェクトが十分に大きい場合には、同じ距離Ｄに対する閾値θは変形例２に比較して大きくなる。従って、実施例１の変形例３は、入力領域のサイズが比較的小さい情報処理装置１００において、より有効な変形例といえる。
【００８８】
まず、実施例１の変形例３に係る情報処理装置１００のハードウェア構成も、実施例１の図１（ａ）と同様である。また、機能構成においては、図６（ａ）に示した領域情報６０１と、図６（ｂ）に示したオブジェクト情報取得部６０２を両方とも有する点が、実施例１及びその変形例１、変形例２と異なる。その他の機能構成は、実施例１に準じるため、説明を省略する。
【００８９】
実施例１の変形例３の場合も、図２のフローチャートに従ってマルチタッチ操作を認識する処理が実行される。ただし、変形例１のステップＳ２０５において、図７（ｃ）のフローチャートに従って、閾値θを設定する処理が行われる。
【００９０】
まず、ステップＳ７２１では、設定部１１３が、入力領域に対する、ユーザにマルチタッチされているオブジェクトのサイズの比率を取得する。この際、領域情報６０１が、タッチパネルディスプレイ１０８及び入力インタフェース１０５より、ユーザによるタッチを検出可能な入力領域のサイズを取得する。また、オブジェクト情報取得部６０２が、ユーザによってマルチタッチされているオブジェクトのサイズを取得する。設定部１１３は、取得された入力領域のサイズと、取得されたオブジェクトのサイズに基づき、入力領域に対するオブジェクトのサイズの比率を算出する。
【００９１】
ステップＳ７２２では、設定部１１３が、ステップＳ７２１で取得した比率における、距離Ｄと角度の対応関係を取得する。実施例１の変形例３においても、予め距離Ｄの大きさと所定の角度の対応関係を示す複数のテーブルが、ＨＤ１０４に保持されており、それぞれのテーブルが、入力領域に対するオブジェクトのサイズの比率に対応付けられているものとする。実施例１の変形例３では、距離Ｄが小さいほど大きい角度が対応付けられているとともに、入力領域に対するオブジェクトのサイズの比率が大きいほど、同じ距離Ｄに対応付けられた角度は大きくなるように設定されている。ステップＳ７２２では、設定部１１３が、ステップＳ７２１で取得した比率に対応するテーブルを取得し、ＲＡＭ１０３に読み出して使用するものとする。
【００９２】
ステップＳ７２３では、設定部１１３が、取得した対応関係を参照して、ステップＳ２０４で距離取得部１１２が取得した距離Ｄの大きさに対応付けられている所定の角度を取得する。
【００９３】
ステップＳ７２４では、設定部１１３が、ステップＳ７１３で取得した角度を、閾値θとして設定する。閾値θが設定されたら、ユーザによるマルチタッチ操作を認識するメインの処理にリターンする。
【００９４】
以上説明したように、実施例１の変形例３によれば、距離Ｄと、入力領域に対するユーザがマルチタッチしているオブジェクトのサイズの比率に基づいて閾値θを変更する。これにより、タッチパネルディスプレイ１０８とその表示画像の内容に依存して、ユーザによるマルチタッチ操作が正しく認識され難くなってしまうことを防ぐ。すなわち、変形例４では、ユーザのタッチを検出可能な入力領域のサイズが狭められても、ユーザがマルチタッチ操作によって回転させようとするオブジェクトのサイズが十分であれば、回転操作が入力されたことを認識するための角度の閾値を大きく設定できる。それにより、回転操作の操作性を低減させずに、ユーザが回転操作を意図していないにも関わらず表示画像が回転されてしまう誤動作を低減することができる。
【００９５】
次に、実施例１の変形例４として、２点のタッチ点間の距離Ｄと、ユーザがマルチタッチ操作に用いる手のサイズとに基づいて、閾値θを設定する例を示す。この際、ユーザの手のサイズが小さいほど小さい角度を閾値θとして設定する。これにより、例えばユーザが子供であるとった場合に、手が小さいため、２点のタッチ点の間の距離が小さくならざるを得ない場合でも、回転操作を入力したときの操作性が低下することを防ぐ。
【００９６】
実施例１の変形例３に係る情報処理装置１００のハードウェア構成も、実施例１の図１（ａ）と同様である。
【００９７】
図６（ｃ）は、本発明に係る情報処理装置１００の機能構成を表すブロック図である。本実施例では、図１のブロック図からユーザ情報取得部６０３が追加されている。
【００９８】
ユーザ情報取得部６０３は、検出部１１１が取得する複数のタッチ点の位置情報を利用して、ユーザの手のサイズを取得する。ここで、手のサイズの取得方法の一例を説明する。実施例１の変形例４では、予めユーザ情報として、ユーザの手のサイズを情報処理装置１００に登録してＨＤ１０４などの記憶装置に保持しておく処理を行っておくものとする。そして、マルチタッチ操作を認識する際に、ユーザの手のサイズの情報が要求され場合には、保持していた情報を読み出して利用する。手のサイズを登録する処理では、ユーザが規定されたポーズでタッチパネルディスプレイ１０８の入力領域上に手を置くことによって、ユーザの指先に相当する位置情報を検出する。ここで図８（ａ）は、ユーザがタッチパネルディスプレイ１０８の入力領域８００上に手８０１を置いた状態を表している。ここで、規定のポーズとしては、手を軽く広げて５本の指先を入力領域８００に触れさせることが、予め情報処理装置１００で定められているものとする。従って、図８（ｂ）に示されるように、検出部１１１によりユーザの５本の指に対応する複数のタッチ点８０２〜８０６が検出される。そして、ユーザ情報取得部６０３は、検出された全てのタッチ点を内包する最小の矩形領域のサイズを示す情報を、ユーザの手のサイズ情報として登録する。図８（ｃ）の矩形８０７は、図８の例でユーザの手のサイズを示す矩形領域である。その他の機能構成は、実施例１とその変形例１〜３に準じるため、説明を省略する。なお、ユーザの手のサイズを登録する場合には、必ずしも５本の指の位置情報を取得する必要はなく、規定のポーズとしては、人差し指と中指だけを、または親指と人差し指だけを入力領域に触れさせるようなポーズが利用されても構わない。
【００９９】
実施例１の変形例２の場合も、図２のフローチャートに従ってマルチタッチ操作を認識する処理が実行される。ただし、変形例１のステップＳ２０５において、図７（ｄ）のフローチャートに従って、閾値θを設定する処理が行われる。
【０１００】
まず、ステップＳ７３１では、ユーザ情報取得部６０３が、ＨＤ１０４などの記憶装置に保持されているユーザの手のサイズの情報を取得する。
【０１０１】
ステップＳ７３２では、設定部１１３が、ステップＳ７３１で取得したユーザの手のサイズにおける、距離Ｄと角度の対応関係を取得する。実施例１の変形例４においても、予め距離Ｄの大きさと所定の角度の対応関係を示す複数のテーブルが、ＨＤ１０４に保持されており、それぞれのテーブルが、ユーザの手のサイズに対応付けられているものとする。実施例１の変形例４では、距離Ｄが小さいほど大きい角度が対応付けられているとともに、ユーザの手のサイズが小さいほど、同じ距離Ｄに対応付けられた角度は小さくなるように設定されている。ステップＳ７１２では、設定部１１３が、ステップＳ７３１で取得したユーザの手のサイズの情報に対応するテーブルを取得し、ＲＡＭ１０３に読み出して使用するものとする。
【０１０２】
ステップＳ７３３では、設定部１１３が、取得した対応関係を参照して、ステップＳ２０４で距離取得部１１２が取得した距離Ｄの大きさに対応付けられている所定の角度を取得する。
【０１０３】
ステップＳ７３４では、設定部１１３が、ステップＳ７１３で取得した角度を、閾値θとして設定する。閾値θが設定されたら、ユーザによるマルチタッチ操作を認識するメインの処理にリターンする。
【０１０４】
以上説明したように、実施例１の変形例４によれば、距離Ｄに加えて、ユーザの手のサイズに基づいて閾値θを設定する。これにより、ユーザがタッチ点の間隔を小さくした状態で操作を行わざるを得ない場合に、マルチタッチ操作が認識され難くなってしまうことを防ぐ。すなわち、ユーザの手が小さい場合でも、回転操作の操作性を低下させない。
【０１０５】
なお、上述した実施例１の４つの変形例（変形例１〜変形例４）は、一部または全てを組み合わせることによっても、ユーザがタッチ点の間隔を小さくした状態で操作を行わざるを得ない場合に、回転操作の操作性を低下させないという効果を奏する。
【０１０６】
＜実施例２＞
実施例１では、ユーザが回転操作を意図していない場合に、誤って表示画像が回転して表示される誤動作を低減するため、マルチタッチ操作を構成する２点のタッチ点の間の距離に基づいて、回転操作が入力されたことを認識するための角度の閾値θを設定する例を示した。実施例２では、移動前後の２点のタッチ点の位置を結ぶ直線がなす角度αが、閾値θ未満であった場合、表示画像の回転を伴うことがないマルチタッチ操作が入力されたか否かを判定する。これにより、特にユーザが表示画像を回転させることを意図していないマルチタッチ操作を行う場合に、タッチ点の間の距離に関わらず、誤って回転操作が入力されたと認識されてしまう誤動作を低減することができる。
【０１０７】
実施例２に係る情報処理装置１００のハードウェア構成、及び機能構成は、実施例１の図１（ａ）及び（ｂ）と同じため、説明を省略する。
【０１０８】
実施例２では、図９のフローチャートに従ってマルチタッチ操作を認識する処理が実行される。図９のフローチャートは、ステップＳ９０１及びステップＳ９０２が追加されていることが図２と異なる。その他のステップは、全て実施例１と同様に処理されるため、説明を省略する。
【０１０９】
実施例２では、ステップＳ２０７において、角度αが閾値θ未満であると判定された場合、ステップＳ９０１に進む。ステップＳ９０１では、表示画像の回転を伴わないマルチタッチ操作が入力されたか否かを判定する処理が行われる。ここで判定するマルチタッチ操作は、予め表示画像の回転が伴わないと定められている操作であって、情報処理装置１００で実行されているアプリケーションや機能によって決定される。例えば、写真を閲覧している場合には、２点間の距離が略一定に保たれたままタッチ点が同一方向に移動されたかに基づいて、特定の画像を呼び出して表示させるためのマルチドラッグ操作が入力されたか否かを判定することが可能である。表示画像の回転を伴わないマルチタッチ操作が入力されたと判定された場合には、受付部１１６が入力された操作を受け付け、表示画像を更新するために出力制御部１１７に必要なパラメータを通知する。例えば、本実施例におけるマルチドラッグ操作は、特定の画像を呼び出して表示させるために行われるので、受付部１１６は出力制御部１１７に表示させるべき画像を示す情報を通知する。さらに、ステップＳ９０１では、複数のマルチタッチ操作について、それぞれ入力されたか否かを判定する複数の処理を直列的に、あるいは並列的に実行することもできる。
【０１１０】
ステップＳ９０２では、表示画像の回転を伴うことができるマルチタッチ操作が入力されたか否かを判定する処理が行われる。ここで判定するマルチタッチ操作は、情報処理装置１００で実行されているアプリケーションや機能によって決定される。例えば地図を表示させている場合には、２点間の距離Ｄが少なくともタッチ点が移動した前後で拡大されたか、あるいは縮小されたかに基づいて表示画像を拡大あるいは縮小するためのピンチ操作が入力されたか否かを判定することが可能である。表示画像の回転を伴うことができるマルチタッチ操作が入力されたと判定された場合には、受付部１１６が入力された操作を受け付けて表示画像を更新するために出力制御部１１７に必要なパラメータを通知する。ピンチ操作が入力された場合には、受付部１１６が出力制御部１１７に表示画像の表示サイズを変更するための拡大率を通知する。ステップＳ９０２においても、複数のマルチタッチ操作について、それぞれ入力されたか否かを判定する複数の処理を直列的に、あるいは並列的に実行することもできる。
【０１１１】
なお、実施例２においても、距離Ｄに基づいて閾値θを設定する際には、タッチパネルの入力領域のサイズを考慮した変形例を利用することができる。その場合には、ステップＳ２０５の閾値θを設定する処理では、図７（ａ）に示すフローチャートに従って処理が行われる。この際も、実施例１の変形例１と同様、２点のタッチ点の距離Ｄが同じときには、入力領域のサイズが小さいほど、小さい角度が閾値θとして設定される。これによって、入力領域が小さいためにユーザが２点間の距離を小さくして操作を行わざるを得ない場合にも、回転操作の操作性を低下させない。
【０１１２】
同様に、実施例２においても、距離Ｄに基づいて閾値θを設定する際には、マルチタッチされているオブジェクトのサイズを考慮した変形例を利用することができる。その場合には、ステップＳ２０５の閾値θを設定する処理では、図７（ｂ）に示すフローチャートに従って処理が行われる。この際も、実施例１の変形例２と同様、２点のタッチ点の距離Ｄが同じときには、マルチタッチされているオブジェクトのサイズが小さいほど、小さい角度が閾値θとして設定される。これによって、操作したいオブジェクトが小さいために、ユーザが２点間の距離を小さくして操作を行わざるを得ない場合にも、回転操作の操作性を低下させない。
【０１１３】
同様に、実施例２においても、距離Ｄに基づいて閾値θを設定する際には、マルチタッチされているオブジェクトの入力領域に対するサイズの比率を考慮した変形例を利用することができる。その場合には、ステップＳ２０５の閾値θを設定する処理では、図７（ｃ）に示すフローチャートに従って処理が行われる。この際も、実施例１の変形例３と同様、２点のタッチ点の距離Ｄが同じときには、マルチタッチされているオブジェクトの入力領域に対するサイズの比率が大きいほど、大きい角度が閾値θとして設定される。これによって、ユーザが２点間の距離を狭めて操作を行わざるを得ない場合にも、回転操作の操作性を低下させない。
【０１１４】
同様に、実施例２においても、距離Ｄに基づいて閾値θを設定する際には、ユーザの手のサイズを考慮した変形例を利用することができる。その場合には、ステップＳ２０５の閾値θを設定する処理では、図７（ｃ）に示すフローチャートに従って処理が行われる。この際も、実施例１の変形例４と同様、２点のタッチ点の距離Ｄが同じときには、操作に用いられるユーザの手のサイズが小さいほど、小さい角度が閾値θとして設定される。これによって、ユーザの手が小さいために、ユーザが２点間の距離を比較的小さくして操作を行わざるを得ない場合にも、回転操作の操作性を低下させない。
【０１１５】
なお、上述した実施例１の４つの変形例は、一部または全てを組み合わせることによっても、ユーザがタッチ点の間隔を小さくした状態で操作を行わざるを得ない場合に、回転操作の操作性を低下させないという効果を奏する。
【０１１６】
以上説明したように、本実施例では、ある時点において、検出された２点のタッチ点間の距離に応じた異なる角度の閾値を設定する。そして、タッチ点が移動されることによって、複数のタッチ点を結ぶ直線が回転した角度が、設定された閾値を超えた場合に回転操作が入力されたと認識し、閾値を超えなかった場合には、表示画像の回転操作を伴わないマルチタッチ操作が入力されたか否かを判定する。その際、タッチ点の間の距離が小さい場合には、タッチ点の間の距離が大きい場合よりも大きい角度を閾値として設定することで、タッチ点の間の距離の大きさに関わらず、ユーザの意図に反して表示画像が回転して表示されてしまう誤動作を低減することができる。
【０１１７】
＜その他の実施例＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施例の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0006004716.tif 000002
【図２】
0006004716.tif 000003
【図３】
0006004716.tif 000004
【図４】
0006004716.tif 000005
【図５】
0006004716.tif 000006
【図６】
0006004716.tif 000007
【図７】
0006004716.tif 000008
【図８】
0006004716.tif 000009
【図９】
0006004716.tif 000010