(57)【要約】      （修正有）【課題】理想的な入力点を推定することにより、マルチタッチジェスチャの誤認識を低減することができる情報処理装置を提供する。【解決手段】情報処理装置１００は、ユーザによって指示される入力領域上の指示位置を検出し、検出された指示位置と、同時刻において指示されている複数の指示位置が検出されている場合には当該複数の指示位置の間の距離の変化量を示す情報とを保持する。また、検出された指示位置の数と直近に検出された指示位置の数とを比較し、これにより指示位置の数が減少したか否かを判定する。そして、指示位置の数が減少したと判定された場合、情報処理装置１００が保持する指示位置と変化量を示す情報とに基づいて、当該減少した指示位置を推定する。情報処理装置１００は、また、保持された指示位置と推定された指示位置とに基づいて、ユーザによる指示を解釈する。【選択図】図１
2015191250.tif 000002
【特許請求の範囲】
【請求項１】
ユーザによって指示される入力領域上の指示位置を検出する検出手段と、
前記検出された指示位置と、前記検出手段が同時刻において指示されている複数の指示位置を検出している場合には当該複数の指示位置の間の距離の変化量を示す情報とを保持する保持手段と、
前記検出された指示位置の数と直近に検出された指示位置の数とを比較し、これにより指示位置の数が減少したか否かを判定する判定手段と、
前記指示位置の数が減少したと判定された場合、前記保持手段に保持された指示位置と前記変化量を示す情報とに基づいて、当該減少した指示位置を推定する推定手段と、
前記保持手段に保持された指示位置と前記推定手段が推定した指示位置とに基づいて、前記ユーザによる指示を解釈する解釈手段と、を有することを特徴とする、
情報処理装置。
【請求項２】
前記検出手段は、前記指示位置を所定の時間間隔で順次連続して検出し、
前記保持手段は、一の指示位置を起点に連続して検出された指示位置をそれぞれ識別可能に関連付けて保持し、
前記推定手段は、前記判定手段が減少したと判定したときに保持された指示位置と、この指示位置に関連付けられており、且つ、この指示位置を保持する直前に保持された指示位置との間の距離に基づいて、前記減少した指示位置を推定することを特徴とする、
請求項１に記載の情報処理装置。
【請求項３】
前記推定手段は、前記関連付けされた指示位置により特定される当該指示位置の移動方向に従って前記距離を加算し、これにより前記減少した指示位置を推定することを特徴とする、
請求項２に記載の情報処理装置。
【請求項４】
前記推定手段は、前記推定した指示位置を仮想位置として生成し、この仮想位置、前記保持手段により保持された指示位置、及び、前記変化量を示す情報に基づいて前記減少した指示位置をさらに推定することを特徴とする、
請求項１、２又は３に記載の情報処理装置。
【請求項５】
前記保持手段は、前記生成された仮想位置を前記減少した指示位置に対応させて保持することを特徴とする、
請求項４に記載の情報処理装置。
【請求項６】
前記保持手段は、複数の同時刻において指示されている２つの指示位置を繋ぐ直線の向きの変化量を示す情報を保持することを特徴とする、
請求項１に記載の情報処理装置。
【請求項７】
前記検出手段は、前記指示位置を所定の時間間隔で順次連続して検出し、
前記保持手段は、一の指示位置を起点に連続して検出された指示位置をそれぞれ識別可能に関連付けて保持し、
前記推定手段は、前記判定手段が減少したと判定する直前に同時刻において指示されている２つの指示位置を繋ぐ直線の方向角度と、さらに一つ前に同時刻において指示されている２つの指示位置を繋ぐ直線の方向角度との差分に基づいて、前記減少した指示位置を推定することを特徴とする、
請求項６に記載の情報処理装置。
【請求項８】
前記推定手段は、前記関連付けされた指示位置により特定される当該指示位置の回転方向に従って前記差分を加算し、これにより前記減少した指示位置を推定することを特徴とする、
請求項７に記載の情報処理装置。
【請求項９】
情報処理装置の制御方法であって、
ユーザによって指示される入力領域上の指示位置を検出する工程と、
前記検出された指示位置と、同時刻において指示されている複数の指示位置が検出されている場合には当該複数の指示位置の間の距離の変化量を示す情報とを保持する工程と、
前記検出された指示位置の数と直近に検出された指示位置の数とを比較し、これにより指示位置の数が減少したか否かを判定する工程と、
前記指示位置の数が減少したと判定された場合、前記保持された指示位置と前記変化量を示す情報とに基づいて、当該減少した指示位置を推定する工程と、
前記保持された指示位置と前記推定された指示位置とに基づいて、前記ユーザによる指示を解釈する工程と、を有することを特徴とする、
情報処理装置の制御方法。
【請求項１０】
コンピュータを、
請求項１から請求項８のいずれか一項に記載の情報処理装置として機能させるためのコンピュータプログラム。
【請求項１１】
請求項１０に記載のコンピュータプログラムをコンピュータが読み取り可能に記録した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチタッチ入力を検出する技術に関する。
【背景技術】
【０００２】
従来、タッチパネルにおいてその面上の２点を同時に押し、これにより２点を入力する技術が提案されている。また、その同時２点の入力軌跡を認識し、マルチタッチジェスチャを処理する携帯端末も提案されている。
【０００３】
また、特許文献１に開示された座標入力／検出装置では、入力されたタッチ入力の位置の２次元座標間の変化の方向、及び、その長さをベクトル座標化した情報に基づき、タッチ状態が途切れたか否か、入力がかすれたか否かを判断する。入力がかすれたと判断した場合、そのかすれ部分を補正する、というものである。
【０００４】
特許文献２に開示された電子機器では、タッチパネルに対して１点が指示されたか、あるいは２点が指示されたかの判別を行う。１点が指示されていると判別した場合、第１のモードで図形処理を行い、また、２点が指示されていると判別した場合、第２のモードで図形処理を行う、というものである。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００１−０８４１０４号公報
【特許文献２】特開２０１０−１９１５７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に開示された座標入力／検出装置が行うかすれ補正は、不連続な点の間を直線で繋ぐ様に補正する。そのため、補正後の軌跡の形状は、本来ユーザが入力した形状とは異なる形状になってしまう場合がある。さらに、補正後の形状を認識してジェスチャコマンドとする場合には、誤認識の要因になり得る。
【０００７】
また、特許文献２に開示された電子機器において、例えば指先を用いて２点を指示している途中で当該指先の圧力が変動した場合、あるいは検出系の限界から１点と検出されたり、再び２点と検出されたりする場合がある。この場合、第１のモードと第２のモードが交互に切り替わってしまい、その結果、本来であれば第２のモードで図形処理を継続する必要があっても、この状態を継続することができない、という課題が残る。
【０００８】
本発明は、マルチタッチジェスチャの同時入力点が２点から１点に途切れて２点に戻るような状態でも理想的な入力点を推定することにより、マルチタッチジェスチャの誤認識を低減することができる情報処理装置を提供することを、主たる目的とする。
【課題を解決するための手段】
【０００９】
本発明の情報処理装置は、ユーザによって指示される入力領域上の指示位置を検出する検出手段と、前記検出された指示位置と、前記検出手段が同時刻において指示されている複数の指示位置を検出している場合には当該複数の指示位置の間の距離の変化量を示す情報とを保持する保持手段と、前記検出された指示位置の数と直近に検出された指示位置の数とを比較し、これにより指示位置の数が減少したか否かを判定する判定手段と、前記指示位置の数が減少したと判定された場合、前記保持手段に保持された指示位置と前記変化量を示す情報とに基づいて、当該減少した指示位置を推定する推定手段と、前記保持手段に保持された指示位置と前記推定手段が推定した指示位置とに基づいて、前記ユーザによる指示を解釈する解釈手段と、を有することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、マルチタッチジェスチャの同時入力点が２点から１点に途切れて２点に戻るような状態でも理想的な入力点を推定することにより、マルチタッチジェスチャの誤認識を低減することができる。
【図面の簡単な説明】
【００１１】
【図１】（ａ）、（ｂ）は、第１実施形態に係る情報処理装置の構成の一例を説明するための図。
【図２】（ａ）、（ｂ）は、従来の補正方式によるかすれ補正を説明するための図。
【図３】（ａ）、（ｂ）、（ｃ）は、マルチタッチジェスチャの一例を説明するための図。
【図４】入力部の検出結果に基づき記憶部が記憶した座標点の一例を示す図。
【図５】情報処理装置におけるタッチ入力処理の一例を示すフローチャート。
【図６】仮想点を生成する際の処理（仮想位置計算処理）の一例を示すフローチャート。
【図７】情報処理装置がマルチタッチジェスチャを識別する際に参照する表の一例を示す図。
【図８】（ａ）、（ｂ）、（ｃ）は、第２実施形態に係るマルチタッチジェスチャの一例を説明するための図。
【図９】情報処理装置におけるタッチ入力処理の一例を示すフローチャート。
【図１０】仮想点を生成する際の処理（仮想位置計算処理）の一例を示すフローチャート。
【発明を実施するための形態】
【００１２】
以下、図面を参照しながら実施形態を説明する。本実施形態では、例えば２本以上の指により入力された指示位置を検出可能なタッチパネルを有する情報処理装置を例に挙げて説明する。
【００１３】
［第１実施形態］
図１は、本実施形態に係る情報処理装置の構成の一例を説明するための図である。図１（ａ）は、情報処理装置１００の概略構成図であり、図１（ｂ）は、情報処理装置１００の機能構成の一例を示す図である。
【００１４】
図１（ａ）に示す情報処理装置１００は、ＬＣＤ（Liquid Crystal Display：液晶ディスプレイ）３、タッチパネル４、ＣＰＵ（Central Processing Unit）５、ＲＡＭ（Random Access Memory）６、ＲＯＭ（Read Only Memory）７、システムバス８を含んで構成される。なお、各構成はシステムバス８を介して相互に情報伝達が可能に接続される。
【００１５】
ＬＣＤ３は、例えば液晶表示素子、液晶制御回路、表示メモリから構成された液晶ディスプレイである。ＬＣＤ３は、ＣＰＵ５からの指示に応じてその表示画面に文字、画像などを表示する。
タッチパネル４は、ユーザが指あるいはスタイラスなどを用いて同時刻において入力した複数の指示位置（複数の点）を検出可能に構成されたタッチパネルであり、抵抗膜方式、あるいは静電誘導方式の検出機構を含んで構成される。タッチパネル４は、また、同時刻において指示されている複数の指示位置のＸＹ座標値を所定の時間間隔（サンプリングレート：例えば、１ｍ秒間隔）に従って順次連続して検出し、検出結果をＩＤと共にＣＰＵ５に送信する。なお、ＩＤは、一の指示位置を起点に連続して検出された指示位置をそれぞれ識別可能に関連付けて一意に識別するためのものである。また、複数の指示位置を順次連続して検出する際には、それぞれの指示位置を検出するタイミングに時間差が生じることがあるが、本実施形態ではその場合でも実質的に「同時に検出される」と表現する場合がある。
【００１６】
また、タッチパネル４は、接触なく指（またはスタイラス等）の近接を検知し、これにより指示位置を取得可能に構成することもできる。つまり、本実施形態に係る情報処理装置１００においては、タッチパネル４の面上に触れるマルチタッチ入力による指示位置、この面上に触れない近接入力による指示位置を検出可能に構成することができる。
また、以下の説明においては、同時２点の入力によるマルチタッチジェスチャをタッチパネル４が検出するものとする。なお、タッチパネル４は、３点あるいは４点の入力によるマルチタッチジェスチャの検出にも対応することができる。
【００１７】
ＣＰＵ５は、ＲＯＭ７に記憶されているプログラムを実行することにより情報処理装置１００の動作を制御する。ＲＡＭ６は、ＣＰＵ５が実行するプログラム、各種データなどを読み込む。ＲＡＭ６は、また、ＣＰＵ５がプログラムを実行する際のワーク領域として利用される。ＲＯＭ７は、例えばＣＰＵ５により実行される各種プログラム、各種データを記録する。
システムバス８は、ＣＰＵ５、ＲＡＭ６、ＲＯＭ７、及び、その他のデバイス等とのデータの授受を仲介する。
なお、ＬＣＤ３とタッチパネル４を一体的に構成したタッチパネルディスプレイを情報処理装置１００の構成として採用することもできる。
【００１８】
図１（ｂ）に示す各機能部は、ＣＰＵ５が所定のプログラムを実行することにより実現される情報処理装置１００の機能部である。
制御部１０は、情報処理装置１００が有する各機構部を制御する。
入力部１１は、タッチパネル４に対し同時に入力された複数の指示位置それぞれのＸＹ座標値をサンプリングレートに従って検出する。このように、入力部１１は、ユーザによって指示される入力領域上の指示位置を検出する検出手段として機能する。なお、入力部１１は、１点のＸＹ座標値を検出することができることは言うまでもない。
また、入力部として、ステレオカメラ等で、手の画像を入力して、指先の高さを検出しタッチ点を検出する物であっても良い。又、３次元のデータが取れる距離センサを用いて指先の位置を検出する物であっても良い。
【００１９】
記憶部１２は、同時入力された２つの指示位置間（２点間）の相対変化量を記憶する。具体的には、同時入力された２つの指示位置のＸＹ座標値を記憶し、その後の２点間の位置の相対的変化量を記憶する。このように、記憶部１２は、入力部１１の検出結果、及び、変化量などの各種情報を保持する保持手段として機能する。
例えば、２つの指示位置が同一速度、且つ、同一方向へ同時に移動するならば、これらの相対的距離は変化しない。また、２つの指示位置を繋ぐ直線の中心点を中心にして当該２つの指示位置が同一の速度、且つ、同一の回転方向で回転移動するならば、これらの相対的距離は変化しない。なお、この場合には、回転移動に伴い２つの指示位置を繋ぐ直線の方向角度が変化することになる。
【００２０】
判定部１３は、入力部１１の検出結果が変化したか否かを判定する。具体的には、例えば入力部１１が最初に同時入力された２点を検出し、２点の入力が継続されている途中に一方の点の検出が上手くいかないことがある。このような場合、ユーザは、２点の入力を継続しているつもりであっても、例えば一方の指がタッチパネル４の面上から離れてしまい、情報処理装置１００においては１点しか検出されない。このように、判定部１３は、同時入力された指示位置の数に変化があるか否か、つまりその数が減少したか否かを判定し、判定結果を後述する推定部１４に通知する。なお、２点の入力が継続されている途中に入力部１１により検出されなかった１つの指示位置を消失点と称す。
【００２１】
推定部１４は、判定部１３から指示位置の減少した旨の通知の受信を契機に、記憶部１２に記憶されている２点の相対変化量、及び、検出が継続している１点の変化量に基づき検出されなかった指示位置（消失点）を推定する。推定部１４は、また、推定した指示位置を仮想位置（仮想点）として生成する。なお、生成した仮想点は、記憶部１２に記憶される。詳細は、後述する。
【００２２】
解釈部１５は、例えばタップ、スクロール、ピンチ、スワイプなどのマルチタッチジェスチャの種類を識別する。具体的には、解釈部１５は、入力部１１が検出した指示位置のＸＹ座標値と、推定部１４が生成した仮想位置のＸＹ座標値とに基づいてマルチタッチジェスチャの種類を識別する。
なお、マルチタッチジェスチャの種類を識別するための認識アルゴリズムは、従来から広く用いられている方式を採用することが可能である。例えば２点の相対変化量に基づき識別することができる。解釈部１５は、例えば検出される２点間の距離が変化することなく当該２点が移動している場合、ユーザによる指示はダブルドラッグジェスチャであると解釈する。また、検出される２点が離れる方向に移動したり、あるいは近づく方向に移動したりしている場合、解釈部１５はピンチジェスチャであると解釈する。また、２点を繋ぐ直線の方向角度が加算したり、減算したりする場合、解釈部１５は回転ジェスチャであると解釈する。
【００２３】
表示部１６は、ＬＣＤ３の表示画面に各種情報を表示する。
【００２４】
図２（ａ）、（ｂ）は、従来の補正方式によるかすれ補正を説明するための図である。なお、「かすれ」とは、前述した消失点が発生するようなケースである。
従来の補正方式として、特開２００１−０８４１０４号公報に開示された座標入力／検出装置が行うかすれ補正を例に挙げて説明する。なお、図２（ａ）は、入力の開始位置から終了位置までの間において、適切に検出された入力軌跡を実線矢印で示しており、検出されなかった入力軌跡を点線矢印で示している。
【００２５】
特開２００１−０８４１０４号公報に開示された座標入力／検出装置は、ベクトル化手段によるベクトル値に基づき、かすれか否かを判断するかすれ判断手段を備える。この座標入力／検出装置では、かすれ判断手段により例えば図２（ａ）に示す点線矢印部分がかすれ部分であると判断した場合、そのかすれ部分を直線で補間する。具体的には、図２（ｂ）に示す座標点Ａと座標点Ｂを直線で繋ぐことにより補間している。
【００２６】
図２（ａ）と図２（ｂ）とを見比べると明らかなように、直線で繋がれた座標点Ａ、Ｂ間には、本来であれば複数の座標点、つまり消失点が存在している。そのため、単に座標点Ａ、Ｂ間を直線で繋ぐ補間を行ってしまうと、例えばマルチタッチジェスチャの識別において誤認識が生じてしまうことになる。
【００２７】
図３は、マルチタッチジェスチャの一例を説明するための図である。具体的には、図３（ａ）は、マルチドラッグジェスチャの入力例、図３（ｂ）は、回転ジェスチャの入力例、図３（ｃ）は、ピンチインジェスチャの入力例である。
【００２８】
図３（ａ）は、タッチパネル４の入力領域上でユーザが行ったマルチドラックジェスチャの入力例であり、同時入力された２点をＸ軸方向右側に向けて移動させた際の入力軌跡を矢印で示している。図３（ａ）中において矢印の端部に位置する点ａ１１、ａ１２、ａ１３、ａ２１、ａ２２、ａ２３はサンプリングレートに従って検出された指示位置の一例である。また、点ａ１１と点ａ２１、点ａ１３と点ａ２３はそれぞれ同じタイミングで検出された指示位置である。なお、点ａ２２は、推定部１４により生成された仮想点であり、点ａ１２の検出タイミングにおいて検出されなかった消失点に対応するものである。また、図３（ａ）中に示す距離ｄｘは、Ｘ軸方向における点ａ１１と点ａ１２間の距離を示している。
【００２９】
図３（ｂ）は、回転ジェスチャの入力例であり、同時入力された２点を時計回りの回転方向で移動させた際の入力軌跡を矢印で示している。図３（ｂ）中において矢印の端部を示す点ｂ１１、ｂ１２、ｂ１３、ｂ２１、ｂ２２、ｂ２３はサンプリングレートに従って検出された指示位置の一例である。また、点ｂ１１と点ｂ２３、点ｂ１２と点ｂ２２は、あるタイミングにおいて、マルチタッチされていることが検出された指示位置（同時刻に指示されている複数の指示位置）である。なお、点ｂ２１は、推定部１４により生成された仮想点であり、点ｂ１３の検出タイミングにおいて検出されなかった消失点に対応するものである。図３（ｂ）中に示す差分ｄΔは、点ｂ１１と点ｂ２３を繋ぐ直線の方向角度と、点ｂ１２と点ｂ２２を繋ぐ直線の方向角度との差分を表す角度である。同様に、点ｂ１２と点ｂ２２を繋ぐ直線の方向角度と、点ｂ１３と点ｂ２１を繋ぐ直線の方向角度との差分もｄΔである。
【００３０】
図３（ｃ）は、ピンチインジェスチャの入力例であり、同時入力された２点をＸ軸方向に並行に移動させた際の入力軌跡を矢印で示している。図３（ｃ）中において矢印の端部を示す点ｃ１１、ｃ１２、ｃ２１、ｃ２２はサンプリングレートに従って検出された指示位置の一例である。また、点ｃ１１と点ｂ２１はそれぞれ同じタイミングで検出された指示位置である。なお、点ｃ２２は、推定部１４により生成された仮想点であり、点ｃ１２の検出タイミングにおいて検出されなかった消失点に対応するものである。図３（ｃ）中に示す距離ｄｘは、Ｘ軸方向における点ｃ１１と点ｃ１２間の距離を示している。また、図３（ｃ）中に示す距離−ｄｘは、Ｘ軸方向における点ｃ２１と点ｃ２２間の距離を示している。
【００３１】
図４は、入力部１１の検出結果に基づき記憶部１２が記憶した座標点の一例を示す図である。具体的には、入力時間（サンプリングレート）毎に、Ｘ座標点１、Ｙ座標点１により特定される１点と、Ｘ座標点２、Ｙ座標点２により特定される１点の計２点のＸＹ座標値が記憶される。図４では、サンプリングレートに従い、入力時間「００１ｍｓ」から「０１０ｍｓ」までの１０回の検出結果が記憶されている。なお、これらは記憶するための領域として、例えばＲＡＭ６の特定の記憶領域が確保される。
【００３２】
なお、指示位置を検出するための機構の構成によっては、例えば２つの指示位置を示す指と指が近付きすぎた場合、１つの指示位置、つまり１点として検出してしまうことがある。また、光学式の検出機構では、指示位置がセンサの死角に入ってしまうと、これに伴い２点から１点へ検出結果が変化してしまうことがある。このようなケースが生じた場合、図４に示すように、検出されたかった座標点（消失点）の記憶領域は空白になる。また、入力時間「００３ｍｓ」におけるＸ座標点２、Ｙ座標点２が消失点である場合、この消失点に対応する仮想点が生成されたときには、当該仮想点のＸＹ座標値（仮想点Ｘ２３、Ｙ２３）が空白の記憶領域に格納される。
以下、タッチパネル４に対しユーザがタッチ入力を行った場合の情報処理装置１００の処理手順について図５、図６を用いて説明する。
【００３３】
図５は、情報処理装置１００におけるタッチ入力処理の一例を示すフローチャートである。図６は、仮想点を生成する際の処理（仮想位置計算処理）の一例を示すフローチャートである。図７は、情報処理装置１００がマルチタッチジェスチャを識別する際に参照する表の一例を示す図である。図７に示す表では、ジェスチャの種別、２点間の相対的な距離の変化量（相対距離変化量）、相対的な方向角度の変化量（相対方向角度変化量）、仮想点を生成する際の計算処理方法それぞれの関係を規定している。なお、図７に示すジェスチャ種別は例示であり、マルチドラッグジェスチャ、ピンチジェスチャ、回転ジェスチャの３種類を示している。
【００３４】
ＣＰＵ５は、ＲＡＭ６上にワーク領域等を確保し、必要な初期化を行った後にタッチ入力処理を開始する。
ＣＰＵ５は、タッチ入力点、つまり入力部１１が検出した指示位置のＸＹ座標値、及びＩＤを取得する（Ｓ７０２）。なお、このＩＤは、例えば同時に入力された複数の指示位置それぞれを一意に識別するためのものである。例えば１点目をＩＤ１とし、検出結果を図４に示すＸ座標点１、Ｙ座標点２の記憶領域に格納する。また、２点目をＩＤ２とし、検出結果を座標点２、Ｙ座標点２の記憶領域に格納する。
【００３５】
ＣＰＵ５は、ユーザによる指示（例えば、タッチ入力）がタッチダウンであるか否かを判別する（Ｓ７０３）。具体的は、ＣＰＵ５は、少なくとも１点の入力を検出したときにはタッチダウンであると判別する。タッチダウンであると判別した場合（Ｓ７０３：Ｙｅｓ）、タッチ入力が２点の同時入力であるか否かを判別する（Ｓ７０４）。また、そうでない場合（Ｓ７０３：Ｎｏ）、ステップＳ７０２の処理に戻る。
【００３６】
ＣＰＵ５は、２点の同時入力であると判別した場合（Ｓ７０４：Ｙｅｓ）、ステップＳ７０６の処理に進む。また、１点の入力であると判別した場合（Ｓ７０４：Ｎｏ）、シングルタッチジェスチャの処理を行う（Ｓ７０５）。シングルタッチジェスチャの処理自体は、従来から広く用いられている方法を採用することができる。そのため、ここでの説明は省略する。
ただし、ユーザによる指示が最初はシングルタッチジェスチャであり、途中から同時２点の入力によるマルチタッチジェスチャとなるような場合がある。このような場合に対処するため、ＣＰＵ５は、シングルタッチジェスチャ処理においても継続して指示位置の数の変化を検出し、２点の同時入力が検出されたタイミングでステップＳ７０２の処理に戻るように制御する。
【００３７】
ＣＰＵ５は、同時入力された２点に対するサンプリング回数が２回目以降であるか否かを判別する（Ｓ７０６）。サンプリング回数が２回目以降である場合（Ｓ７０６：Ｙｅｓ）、ステップＳ７０７の処理に進む。また、そうでない場合（Ｓ７０６：Ｎｏ）、ステップＳ７０２の処理に戻る。
【００３８】
ＣＰＵ５は、次に入力部１１が検出した指示位置のＸＹ座標値、及びＩＤを取得する（Ｓ７０７）。ＣＰＵ５は、取得したこれらの情報を記憶部１２に記憶する（Ｓ７０８）。
【００３９】
ＣＰＵ５は、同時入力された２点間の相対距離変化量、及び、相対方向角度変化量を記憶する（Ｓ７０９）。これらの変化量は、記憶部１２に記憶された座標点（図４参照）に基づき算出することができる。また、これらの変化量は、例えば時系列に沿って順次ＲＡＭ６の所定の記憶領域に記憶される。
ここで、同時入力された２点間の相対方向角度変化量とは、当該同時入力された２点を繋ぐ直線の方向角度における変化量である。具体的には、例えば、ＸＹ平面上において２点を繋ぐ直線が垂直であるときの方向角度を９０度とする。また、サンプリングレートに従って検出された次の２点を繋ぐ直線の方向角度が１２５度であるとする。この場合の２点間の相対方向角度変化量は、１２５度−９０度＝３５度となり、この３５度が変化量として記憶される。仮に、次の２点を繋ぐ直線の方向角度が４５度であったならば、４５度−９０度＝−４５度となり、この−４５度が変化量として記憶される。
【００４０】
ＣＰＵ５は、タッチダウンが継続しているか否かを判別する（Ｓ７１０）。具体的には、ＣＰＵ５は、サンプリングレートに従った次の検出タイミングにおいて少なくとも１点の入力が検出されていればタッチダウンが継続していると判別する。タッチダウンが継続していると判別した場合（Ｓ７１０：Ｙｅｓ）、ステップＳ７１２の処理に進む。また、そうでない場合（Ｓ７１０：Ｎｏ）、ＣＰＵ５は、タッチアップされたとして一連の処理を終了する。
【００４１】
ＣＰＵ５は、タッチ入力が２点の同時入力であるか否かを判別する（Ｓ７１２）。２点の同時入力であると判別した場合（Ｓ７１２：Ｙｅｓ）、ステップＳ７０７の処理に戻る。また、タッチ入力が１点に減少した場合（Ｓ７１２：Ｎｏ）、ＣＰＵ５は、仮想位置計算を行うサブルーチン処理に進む（Ｓ７１３）。以下、仮想点を生成する仮想位置計算処理について図６を用いて詳細に説明する。
【００４２】
ＣＰＵ５は、図６に示す仮想位置計算処理を開始する。なお、仮想位置計算処理においてはジェスチャ種別に応じた処理を行うことにより仮想点を生成する。
ＣＰＵ５は、２点のタッチ入力のうち途切れた側、つまり消失点が発生した側において当該消失点が発生する直前に記憶されたＸＹ座標点（例えば、座標（Ｘ２ｂ、Ｙ２ｂ）とする）を取得する（Ｓ８０２）。なお、一方のタッチ入力において消失点が２点連続して発生している場合、２点目の消失点に対する仮想点を生成する際は、１点目の消失点に対して生成された仮想点のＸＹ座標値を取得することになる。
【００４３】
具体的に、図４を用いて説明する。図４に示す入力時間「００３ｍｓ」におけるＸ座標点２（仮想点Ｘ２３）、Ｙ座標点２（仮想点Ｙ２３）に対する仮想点を生成する場合、入力時間「００２ｍｓ」におけるＸ座標点２（Ｘ２２）、Ｙ座標点２（２２）を取得する。また、入力時間「００４ｍｓ」におけるＸ座標点２、Ｙ座標点２の仮想点を生成する場合、入力時間「００３ｍｓ」における座標点２（仮想点Ｘ２３）、Ｙ座標点２（仮想点Ｙ２３）を取得する。このように、１点目の消失点に対する仮想点を生成した後、この仮想点を用いて２点目の消失点に対する仮想点を生成することになる。
【００４４】
ＣＰＵ５は、消失点が発生したときにタッチ入力が途切れていない側において記憶されたＸＹ座標値と、その直近に記憶されたＸＹ座標値との差分を差分ｄｘ（Ｘ軸方向における差分）、差分ｄｙ（Ｙ軸方向における差分）として算出する。また、ＣＰＵ５は、消失点発生の直前に記憶された２点を繋ぐ直線の方向角度ΔＡと、さらにひとつ前に記憶された２点を繋ぐ直線の方向角度ΔＢを算出する。ＣＰＵ５は、方向角度ΔＡと方向角度ΔＢとの差分ｄΔを算出する。このようにして、ＣＰＵ５は、差分ｄｘ、差分ｄｙ、差分ｄΔを取得する（Ｓ８０３）。
【００４５】
ＣＰＵ５は、差分ｄΔの値が閾値以上であるか否かを判別する（Ｓ８０４）。これにより、タッチ入力が回転ジェスチャであるか、あるいはそれ以外の種類のジェスチャであるか否かを判定することができる。この閾値は、例えばユーザが行う回転ジェスチャを１０度刻みに検知してアプリケーションに返すような仕様であれば、予め当該閾値を１０度に設定しておく。
ＣＰＵ５は、差分ｄΔの値が閾値以上である場合（Ｓ８０４：Ｙｅｓ）、回転ジェスチャの仮想点を生成する（Ｓ８０６）。また、そうでない場合（Ｓ８０４：Ｎｏ）、ＣＰＵ５は、マルチドラッグジェスチャであるか、あるいはピンチジェスチャであるかを判定する（Ｓ８０５）。
【００４６】
マルチドラッグジェスチャであるか、あるいはピンチジェスチャであるかの判定は、例えば以下のようにしてＣＰＵ５が行う。消失点が発生する直前に記憶された２点間の相対距離を距離ｄＬ１とし、そのひとつ前に記憶された２点間の相対距離を距離ｄＬ２とする。ＣＰＵ５は、距離ｄＬ１と距離ｄＬ２を比較し、これらの値が変化していなければマルチドラックジェスチャであると判定する。また、これらの値が変化していればピンチジェスチャであると判定する。なお、タッチ入力における検出誤差を閾値として予め設定し、相対距離ｄＬ２から相対距離ｄＬ１を減算した値が当該閾値以下であればマルチドラックジェスチャであると判定するように構成してもよい。
【００４７】
ＣＰＵ５は、ピンチジェスチャであると判定した場合（Ｓ８０５：Ｎｏ）、ピンチジェスチャの仮想点を生成するための準備を行う（Ｓ８０７）。また、マルチドラッグジェスチャであると判定した場合（Ｓ８０５：Ｙｅｓ）、マルチドラッグジェスチャの仮想点を生成する（Ｓ８０８）。
【００４８】
ＣＰＵ５は、回転ジェスチャの仮想点を生成する（Ｓ８０６）。図３（ｂ）を用いて具体的に説明する。図３（ｂ）に示すように、消失点は点ｂ２１である。また、消失点が発生する２つ前のＸＹ座標点が点ｂ１１、点ｂ２３であり、これらを繋ぐ直線の方向角度が１９５度であるとする。また、消失点が発生する直前（１つ前）のＸＹ座標点が点ｂ１２、点ｂ２２であり、これらを繋ぐ直線の方向角度が１８５度であるとする。この場合、差分ｄΔは１０度となり、点ｂ１３と仮想点を繋ぐ直線の方向角度は１７５度になる。ＣＰＵ５は、点ｂ１３のＸＹ座標値、及び、方位角度が１７５度であることに基づき仮想点（点ｂ２１）のＸＹ座標値を算出する。なお、回転ジェスチャにおいては、複数の同時に検出された２点間の相対的距離は変化しないものとする。
【００４９】
ＣＰＵ５は、ピンチジェスチャの仮想点を生成するために差分ｄｘ、ｄｙの符号を反転する（Ｓ８０７）。
ピンチジェスチャの場合、例えば表示内容を拡大する場合には２つの指示位置が相対的に離れていくように操作される。また、縮小する場合には２つの指示位置が相対的に近づくように操作される。このように、同時入力された２点それぞれの移動する方向が相対的に逆方向になる。そのため、差分ｄｘ、ｄｙの符号を反転させる必要が生じる。以下、図３（ｃ）を用いて具体的に説明する。
【００５０】
図３（ｃ）に示すように、消失点は点ｃ２２である。また、Ｘ軸方向における点ｃ１１と点ｃ１２間の距離が差分ｄｘになる。差分ｄｘの符号を反転させることにより、方向が加味された差分−ｄｘが求められる。消失点が発生する直前に記憶された点ｃ２１のＸＹ座標値に対し、差分−ｄｘを加算する。その結果、座標点（Ｘ＝Ｘ―ｄｘ、Ｙ＝Ｙ）が仮想点となり、これが点ｃ２２である。なお、図３（ｃ）は、ユーザがＸ軸方向に並行にピンチインジェスチャを行った場合の一例であり、例えばＹ軸方向に並行にピンチインジェスチャを行った場合には差分ｄｙに対して符号の反転等を行うことになる。
【００５１】
ＣＰＵ５は、ピンチジェスチャ、マルチドラッグジェスチャの仮想点を生成する（Ｓ８０８）。具体的には、Ｘ＝Ｘ２ｂ＋ｄｘ、Ｙ＝Ｙ２ｂ＋ｄｙとする２つの仮想点を生成する
マルチドラッグジェスチャの場合、同時入力された２点間の距離は大きく変化することなく移動する。図３（ａ）を用いて具体的に説明する。図３（ａ）に示すように、消失点は点ａ２２である。また、Ｘ軸方向における点ａ１１と点ａ１２間の距離が差分ｄｘになる。消失点が発生する直前に記憶された点ａ２１のＸＹ座標値に対し、差分ｄｘを加算する。その結果、座標点（Ｘ＋ｄｘ、Ｙ）が仮想点となり、これが点ａ２２である。なお、図３（ａ）は、ユーザがＸ軸方向に並行にマルチドラッグジェスチャを行った場合の一例であり、例えばＹ軸方向に並行にマルチドラッグジェスチャを行った場合には差分ｄｙを加算することになる。
なお、ピンチジェスチャの仮想点を生成する場合であっても、既にステップＳ８０７の処理において差分ｄｘ、ｄｙの符号の反転が行われていることから、ステップＳ８０８の処理により仮想点を生成することができる。
【００５２】
ＣＰＵ５は、仮想位置計算を行うサブルーチン処理を終了し、その後、ステップＳ７１４の処理へ進む。
【００５３】
図５の説明に戻り、ＣＰＵ５は、生成した仮想点をこれに対応する空白の記憶領域（図４参照）に格納する。例えば、図４に示す入力時間「００３ｍｓ」のＸ座標点２、Ｙ座標点２に対する仮想点を生成した場合に、当該仮想点のＸＹ座標値をそれぞれに格納する。
ＣＰＵ５は、実行されているアプリケーションに対し識別したマルチタッチジェスチャをイベントとして出力する（Ｓ７１４）。
例えば、図３（ａ）に示すマルチドラッグジェスチャの例であれば、仮想点として点ａ２２が生成され、実行されているアプリケーションに対して点ａ１１から点ａ２３までの各座標点の情報、マルチドラッグのイベント情報などの各情報が伝達される。
【００５４】
このように、本実施形態に係る情報処理装置１００では、複数点の入力が継続されている途中で一方の入力にいわゆる「かすれ」が生じた場合であっても、マルチタッチが継続していると判別するとともに、「かすれ」部分における消失点に対応する仮想点を生成する。これにより、マルチタッチジェスチャの誤認識を低減することが可能になり、ジェスチャタイプの識別をより正確に行うことができる。
【００５５】
［第２実施形態］
本実施形態では、同時３点の入力、あるいは同時４点の入力によるマルチタッチジェスチャに対する仮想点を生成することができる情報処理装置について説明する。なお、同時３点、４点の入力によるマルチタッチジェスチャでは、同時２点の入力の場合と比べてその入力軌跡の形状が異なる。また、同時３点の入力が１点に変化してしまう場合、あるいは２点に変化してしまう場合など複数の場合が存在することになる。以下、図８〜１０を用いて詳細に説明する。なお、第１実施形態において既に説明した機能構成と同一のものは、同じ符号を付すとともにその説明を省略する。
【００５６】
本実施形態に係る情報処理装置により実現される各機能部は、図１（ｂ）に示す各機能部と基本的に同じである。異なる点は、記憶部１２は、同時入力された３点間、あるいは４点間の相対変化量を記憶するという点である。また、推定部１４は、記憶部１２に記憶された３点あるいは４点の相対変化量と、検出が継続している１点あるいは２点の指示位置の変化量とに基づき消失点を推定するという点である。詳細は、後述する。
【００５７】
図８は、マルチタッチジェスチャの一例を説明するための図である。具体的には、図８（ａ）は、上方向への３点入力ドラッグジェスチャの入力例、図８（ｂ）は、３点入力ピンチジェスチャの入力例、図８（ｃ）は、４点入力マルチドラッグジェスチャの入力例である。
【００５８】
図８（ａ）は、３点入力のマルチドラックジェスチャの入力例であり、同時入力された３点をＹ軸方向上側に向けて移動させた際の入力軌跡を矢印で示している。図８（ａ）中において矢印の端部を示す点ｄ１１、ｄ１２、ｄ１３、ｄ２１、ｄ２２、ｄ２３、ｄ３１、ｄ３２、ｄ３３はサンプリングレートに従って検出された指示位置の一例である。また、点ｄ１１、点ｄ２１、点ｄ３１は同じタイミングで検出された指示位置である。同様に、点ｄ２２、点ｄ３２は同じタイミングで検出された指示位置である。なお、点ｄ２３、点ｄ３３は、推定部１４により生成された仮想点であり、点ｄ１３の検出タイミングにおいて検出されなかった消失点に対応するものである。
【００５９】
図８（ｂ）は、３点入力ピンチインジェスチャの入力例であり、同時入力された３点を移動させた際の入力軌跡を矢印で示している。図８（ｂ）中において矢印の端部を示す点ｅ１１、ｅ１２、ｅ２１、ｅ２２、ｅ３１、ｅ３２はサンプリングレートに従って検出された指示位置の一例である。また、点ｅ１１、点ｅ２１、点ｅ３１は同じタイミングで検出された指示位置である。なお、点ｅ２２、点ｅ３２は、推定部１４により生成された仮想点であり、点ｅ１２の検出タイミングにおいて検出されなかった消失点に対応するものである。
【００６０】
図８（ｃ）は、４点入力マルチドラッグジェスチャの入力例であり、同時入力された４点をＸ軸方向右側に向けて移動させた際の入力軌跡を矢印で示している。図８（ｃ）中において矢印の端部を示す点ｆ１１、ｆ１２、ｆ２１、ｆ２２、ｆ３１、ｆ３２、ｆ４２、ｆ４２はサンプリングレートに従って検出された指示位置の一例である。また、点ｆ１１、点ｆ２１、点ｆ３１、点ｆ４１は同じタイミングで検出された指示位置である。なお、点ｆ２２、ｆ３２は、推定部１４により生成された仮想点であり、点ｆ１２、点ｆ４２の検出タイミングにおいて検出されなかった消失点に対応するものである。
【００６１】
図９は、本実施形態に係る情報処理装置におけるタッチ入力処理の一例を示すフローチャートである。図１０は、仮想点を生成する際の処理（仮想位置計算処理）の一例を示すフローチャートである。以下、図９、図１０を用いて処理手順について詳細に説明する。
【００６２】
ＣＰＵ５は、ＲＡＭ６上にワーク領域等を確保し、必要な初期化を行った後にタッチ入力処理を開始する。
ＣＰＵ５は、タッチ入力点、つまり入力部１１が検出した指示位置のＸＹ座標値、及びＩＤを取得する（Ｓ１２０２）。なお、このＩＤは、例えば同時に入力された複数の指示位置それぞれを識別するためのものである。例えば３点が同時に入力された場合、１点目をＩＤ１、２点目をＩＤ２、３点目をＩＤ３とする。
なお、ＣＰＵ５が取得したこれらの情報は、図４において説明したように記憶部１２を介してＲＡＭ６の特定領域に記憶される。
【００６３】
ＣＰＵ５は、ユーザのタッチ入力がタッチダウンであるか否かを判別する（Ｓ１２０３）。具体的は、ＣＰＵ５は、１点でも入力されていればタッチダウンであると判別する。タッチダウンであると判別した場合（Ｓ１２０３：Ｙｅｓ）、タッチ入力が複数点の同時入力であるか否かを判別する（Ｓ１２０４）。また、そうでない場合（Ｓ１２０３：Ｎｏ）、ＣＰＵ５は、タッチアップされたとして一連の処理を終了する。
【００６４】
ＣＰＵ５は、タッチ入力が複数点の同時入力であるか否かを判別する（Ｓ１２０４）。２点以上の同時入力であると判別した場合（Ｓ１２０４：Ｙｅｓ）、ステップＳ１２０６に進む。また、そうでない場合（Ｓ１２０４：Ｎｏ）、具体的には１点の入力であれば、シングルタッチジェスチャの処理を行う（Ｓ１２０５）。なお、ＣＰＵ５は、シングルタッチジェスチャ処理において同時入力される点の数の変化を検出し、２点が検出された時点でステップＳ７０２の処理に戻るように制御する。
【００６５】
ＣＰＵ５は、次に入力部１１が検出した指示位置のＸＹ座標値、及びＩＤを取得し、取得したこれらの情報が記憶部１２を介してＲＡＭ６に記憶される（Ｓ１２０６）。なお、図４では、同時入力された２つの指示位置を記憶しているが、これを３つの指示位置、あるいは４つの指示位置を記憶可能に拡張すればよい。
【００６６】
ＣＰＵ５は、同時入力された複数点間それぞれの相対距離変化量、及び、相対方向角度変化量を記憶する（Ｓ１２０７）。これらの変化量は、記憶部１２が記憶した座標点（図４参照）に基づき算出することができる。また、これらの変化量は、例えば時系列に沿って順次ＲＡＭ６の所定の記憶領域に記憶される。例えば、同時３点の入力の場合、ＩＤ１とＩＤ２の相対変化量、ＩＤ２とＩＤ３の相対変化量、ＩＤ３とＩＤ１の相対変化量を記憶する。
【００６７】
ＣＰＵ５は、入力部１１により検出されるタッチ入力の点数が減少したか否かを判別する（Ｓ１２０８）。例えば、サンプリングレートに従った直近のタイミングにおいて検出された指示位置の数と、今回検出した指示位置の数とを比較することにより判別する。減少したと判別した場合（Ｓ１２０８：Ｙｅｓ）、ＣＰＵ５は、タッチ入力が３点から２点へ減少したか否かを判別する（Ｓ１２０９）。また、そうでない場合（Ｓ１２０８：Ｎｏ）、ステップＳ１２１２の処理へ進む。
【００６８】
ＣＰＵ５は、タッチ入力が３点から２点へ減少したと判別した場合（Ｓ１２０９：Ｙｅｓ）、ステップＳ１２１０の処理へ進む。また、そうでない場合（Ｓ１２０９：Ｎｏ）、つまり、タッチ入力が３点から１点へ減少したと判別した場合、ステップＳ１２１１の処理へ進む。このように、タッチ入力が３点から２点へ減少した場合と、３点から１点へ減少したと場合とで処理が異なる。
【００６９】
ＣＰＵ５は、１つの仮想点を生成する仮想位置計算処理を行う（Ｓ１２１０）。消失点の数が１点であるときの仮想点を生成する処理は、図６において既に説明した仮想位置計算処理に準じて進められるため、その説明を省略する。なお、図６に示す処理と異なる点は、２点の入力が３点であること、及び、ジェスチャタイプが異なる点である。
【００７０】
ＣＰＵ５は、２つの仮想点（例えば、仮想点（Ｘ２、Ｙ２）、（Ｘ３、Ｙ３）とする）を生成する仮想位置計算処理を行う（Ｓ１２１１）。以下、図１０を用いて消失点の数が２点あるときの仮想点を生成する仮想位置計算処理について詳細に説明する。
【００７１】
ＣＰＵ５は、３点のタッチ入力のうちの途切れた側、つまり消失点が発生した側の当該消失点発生の直前に記憶されたＸＹ座標点（例えば、座標点（Ｘ２ｂ、Ｙ２ｂ）、（Ｘ３ｂ、Ｙ３ｂ）とする）を取得する（Ｓ１３０２）。例えば、図８（ａ）に示す３点入力マルチドラッグジェスチャの場合であれば、点ｄ２２、点ｄ３２のＸＹ座標値が取得される。なお、途切れた側において消失点が２点連続して発生した場合、２点目の消失点に対する仮想点を生成する際は、１点目の消失点に対して生成された仮想点のＸＹ座標値を取得することになる。
【００７２】
ＣＰＵ５は、タッチ入力が途切れていない側における、消失点発生時に記憶されたＸＹ座標点と、消失点発生の直前に記憶されたＸＹ座標点との差分を差分ｄｘ（Ｘ軸方向における差分）、差分ｄｙ（Ｙ軸方向における差分）を取得する（Ｓ１３０３）。
【００７３】
ＣＰＵ５は、差分ｄｙの値が閾値以下であるか否かを判別する（Ｓ１３０４）。この閾値は、指示位置がＸ軸方向、Ｙ軸方向に移動したか否かを判別するためのものであり、例えばタッチ入力における検出誤差を閾値として予め設定しておく。このようにして、Ｙ軸方向に指示位置が移動したか否かが判別される。
ＣＰＵ５は、閾値以下であると判別した場合（Ｓ１３０４：Ｙｅｓ）、差分ｄｘの値が閾値以上であるか否かを判別する（Ｓ１３０５）。また、そうでない場合（Ｓ１３０４：Ｎｏ）、差分ｄｘの値が閾値以下であるか否かを判別する（Ｓ１３０６）。
【００７４】
ＣＰＵ５は、差分ｄｘの値が閾値以上であると判別した場合（Ｓ１３０５：Ｙｅｓ）、ステップＳ１３０８の処理へ進む。また、そうでない場合（ｓ１３０５：Ｎｏ）、ステップＳ１３０７の処理へ進む。このようにして、指示位置の移動方向がＸ軸方向のみであるか否かが判別される。
【００７５】
ＣＰＵ５は、差分ｄｘの値が閾値以下であると判別した場合（Ｓ１３０６：Ｙｅｓ）、ステップＳ１３０９の処理へ進む。また、そうでない場合（Ｓ１３０６：Ｎｏ）、ステップＳ１３１０の処理へ進む。このようにして、指示位置の移動方向がＹ軸方向のみであるか否かが判別される。
【００７６】
ＣＰＵ５は、Ｘ２＝Ｘ２ｂ、Ｘ３＝Ｘ３ｂとする２つの仮想点を生成する（Ｓ１３０７）。この場合に生成される仮想点は、差分ｄｘ、ｄｙ共に閾値以下であるため、消失点発生時において検出された指示位置と、その直前に検出された指示位置とが変化（移動）していない場合の仮想点である。指示位置が移動していない場合、消失点も移動してないとすることがマルチタッチジェスチャの特性上適切である。
【００７７】
ＣＰＵ５は、Ｘ２＝Ｘ２ｂ＋ｄｘ、Ｘ３＝Ｘ３ｂ＋ｄｘとする２つの仮想点を生成する（Ｓ１３０８）。この場合に生成される仮想点は、差分ｄｙの値が閾値以下であり、且つ、差分ｄｘの値が閾値以上であることから、指示位置の移動方向がＸ軸方向のみである場合の仮想点である（例えば、図８（ｃ）参照）。
【００７８】
ＣＰＵ５は、Ｙ２＝Ｙ２ｂ＋ｄｙ、Ｙ３＝Ｙ３ｂ＋ｄｙとする２つの仮想点を生成する（Ｓ１３０９）。この場合に生成される仮想点は、差分ｄｙの値が閾値を超えており、且つ、差分ｄｘの値が閾値以下であることから、指示位置の移動方向がＹ軸方向のみである場合の仮想点である（例えば、図８（ａ）参照）。
【００７９】
ＣＰＵ５は、差分ｄｘの値、差分ｄｙの値が共に閾値を超えるときには、ピンチジェスチャの仮想点を生成する（Ｓ１３１０）。
以下、図８（ｂ）に示す３点入力ピンチインジェスチャの例を用いて具体的に説明する。なお、説明においては、点ｅ２２を仮想点（Ｘ２、Ｙ２）とし、点ｅ２１を座標点（Ｘ２ｂ、Ｙ２ｂ）とする。また、点ｅ３２を仮想点（Ｘ３、Ｙ３）とし、点ｅ３１を座標点（Ｘ３ｂ、Ｙ３ｂ）とする。
【００８０】
例えば、生成する仮想点が点ｅ２２である場合、点ｅ２２は消失点でもあり、その直前に検出された指示位置は点ｅ２１である。また、点ｅ２１に対する点ｅ２２の相対的な位置は、記憶部１２が記憶する座標点情報（図４参照）を参照することにより特定することができる。例えば、図８（ｂ）を見た場合、点ｅ２１に対する点ｅ２２は、図正面から見て右下側に位置している。その場合、ＣＰＵ５は、Ｘ２＝Ｘ２ｂ＋ｄｘ、Ｙ２＝Ｙ２ｂ−ｄｙとする仮想点を生成する。
また、消失点発生時の直前に記憶された指示位置に対する仮想点の相対的な位置が右上側に位置する場合、Ｘ２＝Ｘ２ｂ＋ｄｘ、Ｙ２＝Ｙ２ｂ＋ｄｙとする仮想点が生成される。同様に、相対的な位置が左下側に位置する場合、Ｘ２＝Ｘ２ｂ−ｄｘ、Ｙ２＝Ｙ２ｂ−ｄｙとする仮想点が生成される。また、相対的な位置が左上側に位置する場合、Ｘ２＝Ｘ２ｂ−ｄｘ、Ｙ２＝Ｙ２ｂ＋ｄｙとする仮想点が生成される。
【００８１】
また、生成する仮想点が点ｅ３２である場合、点ｅ３２は消失点でもあり、その直前に検出された指示位置は点ｅ３１である。ＣＰＵ５は、仮想点である点ｅ２２を生成するときと同様の処理を行い、これにより仮想点を生成する。例えば、図８（ｂ）を見た場合、点ｅ３１に対する点ｅ３２は、図正面から見て左下側に位置している。その場合、ＣＰＵ５は、Ｘ３＝Ｘ３ｂ−ｄｘ、Ｙ３＝Ｙ３ｂ−ｄｙとする仮想点を生成する。
【００８２】
ＣＰＵ５は、２つの仮想点を生成する仮想位置計算処理を終了し、その後、ステップＳ１２１２の処理へ進む。
【００８３】
図９の説明に戻り、ＣＰＵ５は、生成した仮想点をこれに対応する空白の記憶領域（図４参照）に格納する。また、ＣＰＵ５は、実行されているアプリケーションに対し識別したマルチタッチジェスチャをイベントとして出力する（Ｓ１２１２）。
【００８４】
このように、本実施形態に係る情報処理装置では、複数点の入力が継続されている途中で一方の入力にいわゆる「かすれ」が生じた場合であっても、マルチタッチが継続していると判別するとともに、「かすれ」部分における消失点に対応する仮想点を生成する。これにより、マルチタッチジェスチャの誤認識を低減することが可能になり、ジェスチャタイプの識別をより正確に行うことができる。また、例えば複数点の入力が継続されている途中で検出された当該入力が３点から１点になり、その後２点に変化するような場合であっても対処することができる。
【００８５】
また、本発明は、上述した情報処理装置においてなされる各処理の手順を含む方法であっても良い。
また、本発明は、コンピュータに、上述した情報処理装置においてなされる各処理の手順を実行させるためのコンピュータプログラムであっても良い。このコンピュータプログラムは、各種記録媒体、あるいはネットワークを介して流布させることが可能なものである。このコンピュータプログラムがＲＯＭなどの記憶装置を有するコンピュータにインストールされることで実行可能となり、上述の情報処理装置を実現する。
【００８６】
上記説明した実施形態は、本発明をより具体的に説明するためのものであり、本発明の範囲が、これらの例に限定されるものではない。
【図１】
2015191250.tif 000003
【図４】
2015191250.tif 000004
【図５】
2015191250.tif 000005
【図６】
2015191250.tif 000006
【図７】
2015191250.tif 000007
【図９】
2015191250.tif 000008
【図１０】
2015191250.tif 000009
【図２】
2015191250.tif 000010
【図３】
2015191250.tif 000011
【図８】
2015191250.tif 000012