(57)【要約】【課題】処理を簡易にすることができる情報処理装置を提供する。【解決手段】情報処理装置は、第１および第２の物体の各々によりタッチされている、タッチパネル上の第１および第２のタッチ位置を検出することが可能な検出部と、第１および第２のタッチ位置を記憶する記憶部であって、タッチがリリースされた後は、最後のタッチ位置をタッチ位置として保持する記憶部と、記憶部で記憶された、第１および第２のタッチ位置から所定の規則で求められる位置を算出する算出部と、算出部で算出された位置の移動の有無、移動の速度、または移動の量に基づいて、タッチパネルで行われた操作が、タッチパネルに表示されている表示内容を移動させる操作であるか、またはタッチパネルに表示されている表示内容を回転もしくはサイズ変更させる操作であるかを判定する判定部とを備える。【選択図】図１４
2014106853.tif 000002
【特許請求の範囲】
【請求項１】
第１の物体と第２の物体との各々によりタッチされている、タッチパネル上の第１のタッチ位置と第２のタッチ位置とを検出することが可能な検出部と、
前記検出部で検出されている前記第１のタッチ位置と前記第２のタッチ位置とを記憶する記憶手段であって、前記第１の物体によるタッチがリリースされた後は、前記第１の物体による最後のタッチ位置を前記第１のタッチ位置として保持し、前記第２の物体によるタッチがリリースされた後は、前記第２の物体による最後のタッチ位置を前記第２のタッチ位置として保持する記憶手段と、
前記記憶手段で記憶された、前記第１のタッチ位置および前記第２のタッチ位置から所定の規則で求められる位置を算出する算出手段と、
前記算出手段で算出された位置の移動の有無、移動の速度、または移動の量に基づいて、前記タッチパネルで行われた操作が、前記タッチパネルに表示されている表示内容を移動させる操作であるか、または前記タッチパネルに表示されている表示内容を回転もしくはサイズ変更させる操作であるかを判定する判定手段とを備えた、情報処理装置。
【請求項２】
前記算出手段が算出する位置は、前記タッチパネルに表示されている表示内容を移動させる操作が行われたときに移動する位置であり、
前記タッチパネルに表示されている表示内容を移動させる操作が行われたときに、前記算出手段が算出する位置は、前記タッチパネルに表示されている表示内容を回転またはサイズ変更させる操作が行われたときよりも大きく移動する、請求項１に記載の情報処理装置。
【請求項３】
前記算出手段は、前記第１のタッチ位置と前記第２のタッチ位置との中点を算出する、請求項１または２に記載の情報処理装置。
【請求項４】
前記検出部は、第３の物体によりタッチされている、タッチパネル上の第３のタッチ位置を検出することが可能であり、
前記記憶手段は、前記検出部で検出されている前記第３のタッチ位置を記憶し、前記第３の物体によるタッチがリリースされた後は、前記第３の物体による最後のタッチ位置を前記第３のタッチ位置として保持し、
前記算出手段は、前記第１のタッチ位置、前記第２のタッチ位置、および前記第３のタッチ位置から、前記第１のタッチ位置、前記第２のタッチ位置、および前記第３のタッチ位置の重心を算出する、請求項１または２に記載の情報処理装置。
【請求項５】
前記判定手段は、前記算出手段で算出された位置が移動しないとき、移動の速度がしきい値より小さいとき、または移動の量がしきい値より小さいとき、前記タッチパネルで行われた操作が、前記タッチパネルに表示されている表示内容を回転またはサイズ変更させる操作であると判断する、請求項１から４のいずれかに記載の情報処理装置。
【請求項６】
前記判定手段は、前記算出手段で算出された位置が移動したとき、移動の速度がしきい値以上であるとき、または移動の量がしきい値以上であるとき、前記タッチパネルで行われた操作が、前記タッチパネルに表示されている表示内容を移動させる操作であると判断する、請求項１から５のいずれかに記載の情報処理装置。
【請求項７】
前記判定手段は、前記算出手段で算出された位置が移動しないとき、移動の速度がしきい値より小さいとき、または移動の量がしきい値より小さいときにおいて、前記第１のタッチ位置と前記第２のタッチ位置とが移動したときは、前記タッチパネルで行われた操作が、前記タッチパネルに表示されている表示内容を回転またはサイズ変更させる操作であると判断する、請求項１から６のいずれかに記載の情報処理装置。
【請求項８】
前記第１のタッチ位置および前記第２のタッチ位置の両者が移動したときと、片方が移動したときとで、前記しきい値の値を変更する、請求項５から７のいずれかに記載の情報処理装置。
【請求項９】
前記第１のタッチ位置および前記第２のタッチ位置の両者が移動したときは、片方が移動したときと比較して、前記しきい値の値を大きくする、請求項８に記載の情報処理装置。
【請求項１０】
前記しきい値は、前記判定手段による前回の判定結果に基づいて変更される、請求項５から９のいずれかに記載の情報処理装置。
【請求項１１】
前記判定手段の前回の判定結果が表示内容を回転もしくはサイズ変更させる操作であったときに、その操作開始からの前記第１のタッチ位置と前記第２のタッチ位置の移動量に基づいて、前記しきい値を増加させる、請求項５から１０のいずれかに記載の情報処理装置。
【請求項１２】
前記判定手段の前回の判定結果が表示内容を回転させる操作であったときに、その操作開始から所定の角度の回転が行われるまでの間、前記しきい値を増加させる、請求項５から１１のいずれかに記載の情報処理装置。
【請求項１３】
前記判定手段の前回の判定結果が表示内容を回転またはサイズ変更させる操作であったときに、前記しきい値を大きくし、
前記判定手段の前回の判定結果が表示内容を移動させる操作であったときに、前記しきい値を小さくする、請求項５から１２のいずれかに記載の情報処理装置。
【請求項１４】
前記算出手段は、前記第１のタッチ位置および前記第２のタッチ位置を同じ重み付けで演算する、請求項１から１３のいずれかに記載の情報処理装置。
【請求項１５】
前記算出手段は、定期的に算出を行ない、
前記判定手段は、過去に前記算出手段で算出された結果と、新しく算出された結果とを用いて、前記算出手段で算出された位置の移動の有無、移動の速度、または移動の量を判定する、請求項１から１４のいずれかに記載の情報処理装置。
【請求項１６】
前記記憶手段は、タッチが行われる前は、前記第１のタッチ位置と前記第２のタッチ位置として初期値を記憶し、
タッチが行われることで前記初期値が実際のタッチ位置に変更されたとき、前記判定手段は、前記タッチパネルで行われた操作が、前記タッチパネルに表示されている表示内容を移動させる操作であるとは判定しない、請求項１から１５のいずれかに記載の情報処理装置。
【請求項１７】
前記タッチパネルに、複数ページからなる画像の少なくとも１ページの画像を表示する表示手段をさらに備え、
前記判定手段により、前記タッチパネルで行われた操作が、前記タッチパネルに表示されている表示内容を移動させる操作であると判定されたときに、前記表示手段に表示される画像を次または前のページの画像に変更する、請求項１から１６のいずれかに記載の情報処理装置。
【請求項１８】
前記タッチパネルに表示されている表示内容を移動させる操作は、スクロール操作またはドラッグ操作であり、
前記タッチパネルに表示されている表示内容をサイズ変更させる操作は、ピンチイン操作またはピンチアウト操作である、請求項１から１７のいずれかに記載の情報処理装置。
【請求項１９】
第１の物体と第２の物体との各々によりタッチされている、タッチパネル上の第１のタッチ位置と第２のタッチ位置とを検出することが可能な検出部と、
前記第１の物体と前記第２の物体との各々により前記タッチパネルがタッチされている状態において、前記第１のタッチ位置および前記第２のタッチ位置の少なくとも一方が移動したときに、前記タッチパネルに表示されている表示内容を回転もしくはサイズ変更させず、前記タッチパネルに表示されている表示内容を移動させることが可能である、情報処理装置。
【請求項２０】
第１の物体と第２の物体との各々によりタッチされている、タッチパネル上の第１のタッチ位置と第２のタッチ位置とを検出することが可能な検出部を備えた情報処理装置の制御方法であって、
前記検出部で検出されている前記第１のタッチ位置と前記第２のタッチ位置とを記憶する記憶ステップであって、前記第１の物体によるタッチがリリースされた後は、前記第１の物体による最後のタッチ位置を前記第１のタッチ位置として保持し、前記第２の物体によるタッチがリリースされた後は、前記第２の物体による最後のタッチ位置を前記第２のタッチ位置として保持する記憶ステップと、
前記記憶ステップで記憶された、前記第１のタッチ位置および前記第２のタッチ位置から所定の規則で求められる位置を算出する算出ステップと、
前記算出ステップで算出された位置の移動の有無、移動の速度、または移動の量に基づいて、前記タッチパネルで行われた操作が、前記タッチパネルに表示されている表示内容を移動させる操作であるか、または前記タッチパネルに表示されている表示内容を回転もしくはサイズ変更させる操作であるかを判定する判定ステップとを備えた、情報処理装置の制御方法。
【請求項２１】
第１の物体と第２の物体との各々によりタッチされている、タッチパネル上の第１のタッチ位置と第２のタッチ位置とを検出することが可能な検出部を備えた情報処理装置の制御プログラムであって、
前記検出部で検出されている前記第１のタッチ位置と前記第２のタッチ位置とを記憶する記憶ステップであって、前記第１の物体によるタッチがリリースされた後は、前記第１の物体による最後のタッチ位置を前記第１のタッチ位置として保持し、前記第２の物体によるタッチがリリースされた後は、前記第２の物体による最後のタッチ位置を前記第２のタッチ位置として保持する記憶ステップと、
前記記憶ステップで記憶された、前記第１のタッチ位置および前記第２のタッチ位置から所定の規則で求められる位置を算出する算出ステップと、
前記算出ステップで算出された位置の移動の有無、移動の速度、または移動の量に基づいて、前記タッチパネルで行われた操作が、前記タッチパネルに表示されている表示内容を移動させる操作であるか、または前記タッチパネルに表示されている表示内容を回転もしくはサイズ変更させる操作であるかを判定する判定ステップとをコンピュータに実行させる、情報処理装置の制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、情報処理装置、情報処理装置の制御方法、及び情報処理装置の制御プログラムに関し、特に、ユーザインターフェースとしてタッチパネルを搭載した情報処理装置、情報処理装置の制御方法、及び情報処理装置の制御プログラムに関する。
【背景技術】
【０００２】
画像形成装置（スキャナ機能、ファクシミリ機能、複写機能、プリンタとしての機能、データ通信機能、及びサーバ機能を備えたＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）、ファクシミリ装置、複写機、プリンタなど）は、画像データの処理を行う装置であるため画像処理装置とも呼ばれ、ユーザによる装置の操作情報やユーザへ表示する情報の処理を行う情報処理装置を搭載している。
【０００３】
情報処理装置は、画像形成装置に搭載される以外にも、スマートフォン、タブレット端末、ＰＣ（パーソナルコンピュータ）、家電製品、オフィス機器、制御機械などに、ユーザインターフェースとして搭載されている。情報処理装置として、液晶表示装置などの表示デバイスの上に透明なタッチパネルを積層し、タッチパネルの操作と同期させて表示デバイスの表示内容を変化させるものが一般に知られている。
【０００４】
例えば、スマートフォンやタブレット端末などの表示デバイスは、シングルタッチ操作やマルチタッチ操作など、ユーザによって行われる複雑なジェスチャー操作を検知することができるようになっている（下記特許文献１，２参照）。
【０００５】
下記特許文献１には、表示デバイスのマルチタッチ感知エリアに対してジェスチャーセットを定義しておき、マルチタッチ感知エリアにおいて操作が検知されると、そのジェスチャーセットに含まれる１又はそれ以上のジェスチャーイベントを特定するデバイスが開示されている。
【０００６】
下記特許文献２には、表示デバイスの領域に対してマルチタッチフラグを設定しておくことにより、その領域に対してユーザがマルチタッチ操作を行えるようにした技術が開示されている。
【０００７】
下記特許文献３では、タッチパネルへのユーザの入力が、１箇所のタッチであればスクロール入力、２箇所以上のタッチであればジェスチャー入力と判断する方法が開示されている。
【０００８】
近年では、ネットワークプリンタやＭＦＰなどの画像形成装置においても、ユーザによって行われる複雑なジェスチャー操作を検知してジョブの設定操作などを行えるようにしたものが普及しつつある。そのため、ユーザは、画像形成装置の操作パネルに対し、シングルタップやダブルタップ、ロングタップ、スクロール（フリック）、ドラッグ、ピンチイン、ピンチアウト、ローテートといった様々なジェスチャー操作を行うことにより、ジョブの設定操作や画像データの確認操作などを効率的に行うことができるようになってきている。
【０００９】
ここに、「シングルタップ」とは、指先で画面（操作パネルに含まれるタッチパネル）上の一点をタッチした直後に素早く指先を画面上からリリースする操作である。
【００１０】
「ダブルタップ」とは、シングルタップ操作と同様の操作を所定時間内に２回行う操作である。
【００１１】
「ロングタップ」とは、画面上の一点をタッチした状態のまま、そのタッチ位置を移動させることなく一定時間以上タッチ状態を保持し続ける操作である。
【００１２】
「スクロール」とは、指先で画面上の一点をタッチした状態のままそのタッチ位置をスクロール移動方向に素早く移動させながら画面上からリリースする操作である。スクロールは、「フリック」とも呼ばれる。
【００１３】
「ドラッグ」とは、スクロールと同様に、指先で画面上の一点をタッチした状態のままそのタッチ位置を移動させて別の位置でリリースする操作であるが、移動方向は直線方向でなくても良く、また移動速度も比較的遅い速度であっても良い操作である。ドラッグ操作をアイコン画像に対して行うことにより、そのアイコン画像の表示位置を任意の位置に移動させることができる。
【００１４】
「ピンチイン」とは、画面の２点を２本の指先でタッチした状態でそれら２点間の距離を縮めるように移動させる操作である。このようなピンチイン操作により、表示される画像が縮小表示されるようになる。
【００１５】
「ピンチアウト」とは、画面の２点を２本の指先でタッチした状態でそれら２点間の距離を拡大していくように移動させる操作である。このようなピンチアウト操作により、表示される画像が拡大表示されるようになる。「ピンチイン」および「ピンチアウト」をまとめて、「ピンチ操作」と呼ぶ。
【００１６】
「ローテート」とは、画面の２点を２本の指先でタッチした状態でそれら２点間の位置を回転させるように移動させる操作である。このような回転操作により、表示される画像が回転表示されるようになる。
【００１７】
なお「タッチ」とは、画面と指先とが触れている状態を示す。「タッチのリリース」とは、タッチ後に指先が画面から離れることをいう。タッチは指で行われる以外にも、ペンなどで行われることもある。
【００１８】
上記のような情報処理装置は、ユーザによって行われるジェスチャー操作を正確に検知する必要があるため、シングルタップ、ダブルタップ、ロングタップ、スクロール（フリック）、ドラッグ、ピンチイン、ピンチアウト、ローテートといった検知対象となる操作イベントごとに、複数の操作イベント判定ルーチンを予め搭載している。そして操作パネルに対するユーザの入力操作が検知されると、それら複数の操作イベント判定ルーチンを順に全て起動していくことにより、ユーザによって行われた入力操作に対応する操作イベントを特定し、その操作イベントに対応する処理を行うように構成されている。
【先行技術文献】
【特許文献】
【００１９】
【特許文献１】特表２００９−５２５５３８号公報
【特許文献２】特開２００９−２１１７０４号公報
【特許文献３】米国特許第７８４４９１５号
【発明の概要】
【発明が解決しようとする課題】
【００２０】
従来の機器において、ユーザにより為されたジェスチャー操作が何であるかの判断は、複数の操作イベント判定ルーチンにより、概略以下のように行われていた。
【００２１】
例えば、シングルタップ、ダブルタップ、およびロングタップは、指による画面のタッチ後にタッチ位置が変わらないまま、画面から指が離される（リリースされる）操作であるため、それ以外のスクロール、ドラッグ、ピンチイン、ピンチアウト、およびローテートの群からなる操作とは明確に区別することができる。画面タッチ後にタッチ位置が変わらないまま、画面から指が離される操作（タップ操作）が行われたとき、タップの回数や画面に指先が触れていた時間を判定することで、シングルタップ、ダブルタップ、ロングタップのいずれの操作がなされたかを判定することができる。
【００２２】
スクロール、ドラッグ、ピンチイン、ピンチアウト、およびローテートについては、画面がタッチされた状態でタッチ位置が変更される操作であるため、それ以外のシングルタップ、ダブルタップ、およびロングタップの群からなる操作とは明確に区別することができる。
【００２３】
スクロールとドラッグは、タッチパネルに表示されている表示内容を移動させる操作であり、ピンチインとピンチアウトは、タッチパネルに表示されている内容をサイズ変更させる操作であり、ローテートは、タッチパネルに表示されている内容を回転させる操作である。スクロールとドラッグは、指１本の操作で行われる。これに対して、ピンチイン、ピンチアウト、およびローテートは、指２本の操作で行われる。
【００２４】
すなわちピンチイン、またはピンチアウトでは、画面の２点がタッチされる。この２点間の距離が縮められるか拡大されるかにより、ピンチイン、またはピンチアウトのいずれの操作が行われたかが判断される。タッチされている２点間の中点が、サイズ変更の中心（画像の拡大、縮小の中心（基準点））となる。
【００２５】
ローテートでは、画面上の２点がタッチされる。この２点が、その中点付近を回転中心として所定方向（時計回り方向または反時計回り方向）に回転することで、ローテートの操作が行われたことが判断される。タッチされている２点間の中点が、画像の回転中心となる。
【００２６】
上述のように、スクロールとドラッグは、指１本の操作で行われ、ピンチイン、ピンチアウト、およびローテートは、指２本の操作で行われるため、従来のジェスチャー操作の検知は、以下のように行われていた。
【００２７】
すなわち、先ず画面上の１点がタッチされているのか、２点がタッチされているのかが判断される。１点がタッチされていると判断されたときに、タッチ位置が移動すると、スクロールまたはドラッグ操作がなされたと判定する。
【００２８】
２点がタッチされていると判断されたとき、タッチ位置が移動すると、ピンチイン、ピンチアウト、またはローテート操作がなされたと判定する。
【００２９】
図２４は、従来技術におけるジェスチャーの判定処理の一部を示すフローチャートである。
【００３０】
図２４のフローチャートでの処理は、所定の時間間隔（例えば２０ミリ秒）ごとに繰り返し実行される。
【００３１】
図を参照して、ステップＳ２０１において、画面のタッチ／リリース状態に変化があったかを判定する。ここでは、
【００３２】
（Ａ）タッチが行われていない状態から、１箇所以上のタッチが行われる状態となった、
【００３３】
（Ｂ）１箇所以上のタッチが行われている状態から、タッチが行われない状態となった、または
【００３４】
（Ｃ）タッチの箇所の数に変化があった、
【００３５】
ときに、ＹＥＳと判断するものである。
【００３６】
ステップＳ２０１でＮＯであれば、ステップＳ２０３において、画面上のタッチ座標（タッチ位置）の検出が行われる。複数箇所のタッチが行われている場合は、全ての座標が検出される。
【００３７】
ステップＳ２０５において、検出されたタッチ座標が前回の検出から変化したかが判定される。ＹＥＳであれば、ステップＳ２０７において、画面上のタッチ箇所の数が検出される。ステップＳ２０９において、タッチ箇所の数が１以下であれば、ステップＳ２１１においてタッチ座標の検出が行われ、ステップＳ２１３において、スクロールまたはドラッグ操作に応じた描画処理が行われる。
【００３８】
一方、ステップＳ２０９でタッチ箇所の数が２以上であれば、ステップＳ２１５でタッチ座標の検出が行われる。ステップＳ２１７で、タッチ箇所の中点の座標が計算される。ステップＳ２１９で、中点の座標を基準とした、ピンチ操作またはローテート操作に応じた描画処理が行われる。
【００３９】
なお、ステップＳ２０１でＹＥＳであれば、処理はステップＳ２０７へ進む。ステップＳ２０５でＮＯであれば、フローチャートでの処理を終了する。
【００４０】
以上説明した従来の方法には、以下のような問題点があった。
【００４１】
例えば、スクロールを行うためにユーザが指を画面上でスライドさせた時を想定する。このとき、所定の時間間隔（例えば２０ミリ秒）ごとにタッチ箇所の数の取得が行われる（図２４のステップＳ２０７）。また所定の時間間隔（例えば２０ミリ秒）ごとに、タッチ箇所の数（１点のタッチであるか２点以上のタッチであるか）の判定処理が行われ（ステップＳ２０９）、更にその後、指の動きを特定する処理（ステップＳ２１１、Ｓ２１３）を行う必要があった。
【００４２】
また、ユーザがピンチ操作を行った時は、所定の時間間隔（例えば２０ミリ秒）ごとにタッチ箇所の数の取得が行われる（図２４のステップＳ２０７）。また所定の時間間隔（例えば２０ミリ秒）ごとに、タッチ箇所の数（１点のタッチであるか２点以上のタッチであるか）の判定処理が行われ（ステップＳ２０９）、更にその後、指の動きを特定する処理（ステップＳ２１５〜Ｓ２１９）を行う必要があった。
【００４３】
指の動きは、リアルタイムで検出して表示にフィードバックする必要がある。従来の技術では、非常に短い間隔でタッチ箇所の数（１点のタッチであるか２点以上のタッチであるか）の判定処理などを行う必要があり、処理時間が長くかかってしまう。そのため、スクロールやピンチ操作をリアルタイムで表示に反映する為には、高性能なＣＰＵを機器に搭載する必要があった。
【００４４】
また、図２４のステップＳ２０９に示されるように、画面のタッチ箇所の数が２以上であればステップＳ２０９でＹＥＳと判定され、ピンチ操作またはローテート操作しか受け付けられない。これにより従来の技術では、ユーザの操作性が悪いという問題があった。
【００４５】
この発明はそのような問題点を解決するためになされたものであり、処理を簡易にすることができる情報処理装置、情報処理装置の制御方法、及び情報処理装置の制御プログラムを提供することを目的の１つとしており、また、ユーザの操作性がよい情報処理装置、情報処理装置の制御方法、及び情報処理装置の制御プログラムを提供することを目的の１つとしている。
【課題を解決するための手段】
【００４６】
上記目的を達成するためこの発明のある局面に従うと、情報処理装置は、第１の物体と第２の物体との各々によりタッチされている、タッチパネル上の第１のタッチ位置と第２のタッチ位置とを検出することが可能な検出部と、前記検出部で検出されている前記第１のタッチ位置と前記第２のタッチ位置とを記憶する記憶手段であって、前記第１の物体によるタッチがリリースされた後は、前記第１の物体による最後のタッチ位置を前記第１のタッチ位置として保持し、前記第２の物体によるタッチがリリースされた後は、前記第２の物体による最後のタッチ位置を前記第２のタッチ位置として保持する記憶手段と、前記記憶手段で記憶された、前記第１のタッチ位置および前記第２のタッチ位置から所定の規則で求められる位置を算出する算出手段と、前記算出手段で算出された位置の移動の有無、移動の速度、または移動の量に基づいて、前記タッチパネルで行われた操作が、前記タッチパネルに表示されている表示内容を移動させる操作であるか、または前記タッチパネルに表示されている表示内容を回転もしくはサイズ変更させる操作であるかを判定する判定手段とを備える。
【００４７】
好ましくは前記算出手段が算出する位置は、前記タッチパネルに表示されている表示内容を移動させる操作が行われたときに移動する位置であり、前記タッチパネルに表示されている表示内容を移動させる操作が行われたときに、前記算出手段が算出する位置は、前記タッチパネルに表示されている表示内容を回転またはサイズ変更させる操作が行われたときよりも大きく移動する。
【００４８】
好ましくは前記算出手段は、前記第１のタッチ位置と前記第２のタッチ位置との中点を算出する。
【００４９】
好ましくは前記検出部は、第３の物体によりタッチされている、タッチパネル上の第３のタッチ位置を検出することが可能であり、前記記憶手段は、前記検出部で検出されている前記第３のタッチ位置を記憶し、前記第３の物体によるタッチがリリースされた後は、前記第３の物体による最後のタッチ位置を前記第３のタッチ位置として保持し、前記算出手段は、前記第１のタッチ位置、前記第２のタッチ位置、および前記第３のタッチ位置から、前記第１のタッチ位置、前記第２のタッチ位置、および前記第３のタッチ位置の重心を算出する。
【００５０】
好ましくは前記判定手段は、前記算出手段で算出された位置が移動しないとき、移動の速度がしきい値より小さいとき、または移動の量がしきい値より小さいとき、前記タッチパネルで行われた操作が、前記タッチパネルに表示されている表示内容を回転またはサイズ変更させる操作であると判断する。
【００５１】
好ましくは前記判定手段は、前記算出手段で算出された位置が移動したとき、移動の速度がしきい値以上であるとき、または移動の量がしきい値以上であるとき、前記タッチパネルで行われた操作が、前記タッチパネルに表示されている表示内容を移動させる操作であると判断する。
【００５２】
好ましくは前記判定手段は、前記算出手段で算出された位置が移動しないとき、移動の速度がしきい値より小さいとき、または移動の量がしきい値より小さい場合において、前記第１のタッチ位置と前記第２のタッチ位置とが移動したときは、前記タッチパネルで行われた操作が、前記タッチパネルに表示されている表示内容を回転もしくはサイズ変更させる操作であると判断する。
【００５３】
好ましくは情報処理装置は、前記第１のタッチ位置および前記第２のタッチ位置の両者が移動したときと、片方が移動したときとで、前記しきい値の値を変更する。
【００５４】
好ましくは情報処理装置は、前記第１のタッチ位置および前記第２のタッチ位置の両者が移動したときは、片方が移動したときと比較して、前記しきい値の値を大きくする。
【００５５】
好ましくは前記しきい値は、前記判定手段による前回の判定結果に基づいて変更される。
【００５６】
好ましくは情報処理装置は、前記判定手段の前回の判定結果が表示内容を回転もしくはサイズ変更させる操作であったときに、その操作開始からの前記第１のタッチ位置と前記第２のタッチ位置の移動量に基づいて、前記しきい値を増加させる。
【００５７】
好ましくは情報処理装置は、前記判定手段の前回の判定結果が表示内容を回転させる操作であったときに、その操作開始から所定の角度の回転が行われるまでの間、前記しきい値を増加させる。
【００５８】
好ましくは情報処理装置は、前記判定手段の前回の判定結果が表示内容を回転もしくはサイズ変更させる操作であったときに、前記しきい値を大きくし、前記判定手段の前回の判定結果が表示内容を移動させる操作であったときに、前記しきい値を小さくする。
【００５９】
好ましくは前記算出手段は、前記第１のタッチ位置および前記第２のタッチ位置を同じ重み付けで演算する。
【００６０】
好ましくは前記算出手段は、定期的に算出を行ない、前記判定手段は、過去に前記算出手段で算出された結果と、新しく算出された結果とを用いて、前記算出手段で算出された位置の移動の有無、移動の速度、または移動の量を判定する。
【００６１】
好ましくは前記記憶手段は、タッチが行われる前は、前記第１のタッチ位置と前記第２のタッチ位置として初期値を記憶し、タッチが行われることで前記初期値が実際のタッチ位置に変更されたとき、前記判定手段は、前記タッチパネルで行われた操作が、前記タッチパネルに表示されている表示内容を移動させる操作であるとは判定しない。
【００６２】
好ましくは情報処理装置は、前記タッチパネルに、複数ページからなる画像の少なくとも１ページの画像を表示する表示手段をさらに備え、前記判定手段により、前記タッチパネルで行われた操作が、前記タッチパネルに表示されている表示内容を移動させる操作であると判定されたときに、前記表示手段に表示される画像を次または前のページの画像に変更する。
【００６３】
好ましくは前記タッチパネルに表示されている表示内容を移動させる操作は、スクロール操作またはドラッグ操作であり、前記タッチパネルに表示されている表示内容をサイズ変更させる操作は、ピンチイン操作またはピンチアウト操作である。
【００６４】
この発明の他の局面に従うと情報処理装置は、第１の物体と第２の物体との各々によりタッチされている、タッチパネル上の第１のタッチ位置と第２のタッチ位置とを検出することが可能な検出部と、前記第１の物体と前記第２の物体との各々により前記タッチパネルがタッチされている状態において、前記第１のタッチ位置および前記第２のタッチ位置の少なくとも一方が移動したときに、前記タッチパネルに表示されている表示内容を回転もしくはサイズ変更させず、前記タッチパネルに表示されている表示内容を移動させることが可能である。
【００６５】
この発明のさらに他の局面に従うと、第１の物体と第２の物体との各々によりタッチされている、タッチパネル上の第１のタッチ位置と第２のタッチ位置とを検出することが可能な検出部を備えた情報処理装置の制御方法は、前記検出部で検出されている前記第１のタッチ位置と前記第２のタッチ位置とを記憶する記憶ステップであって、前記第１の物体によるタッチがリリースされた後は、前記第１の物体による最後のタッチ位置を前記第１のタッチ位置として保持し、前記第２の物体によるタッチがリリースされた後は、前記第２の物体による最後のタッチ位置を前記第２のタッチ位置として保持する記憶ステップと、前記記憶ステップで記憶された、前記第１のタッチ位置および前記第２のタッチ位置から所定の規則で求められる位置を算出する算出ステップと、前記算出ステップで算出された位置の移動の有無、移動の速度、または移動の量に基づいて、前記タッチパネルで行われた操作が、前記タッチパネルに表示されている表示内容を移動させる操作であるか、または前記タッチパネルに表示されている表示内容を回転もしくはサイズ変更させる操作であるかを判定する判定ステップとを備える。
【００６６】
この発明のさらに他の局面に従うと、第１の物体と第２の物体との各々によりタッチされている、タッチパネル上の第１のタッチ位置と第２のタッチ位置とを検出することが可能な検出部を備えた情報処理装置の制御プログラムは、前記検出部で検出されている前記第１のタッチ位置と前記第２のタッチ位置とを記憶する記憶ステップであって、前記第１の物体によるタッチがリリースされた後は、前記第１の物体による最後のタッチ位置を前記第１のタッチ位置として保持し、前記第２の物体によるタッチがリリースされた後は、前記第２の物体による最後のタッチ位置を前記第２のタッチ位置として保持する記憶ステップと、前記記憶ステップで記憶された、前記第１のタッチ位置および前記第２のタッチ位置から所定の規則で求められる位置を算出する算出ステップと、前記算出ステップで算出された位置の移動の有無、移動の速度、または移動の量に基づいて、前記タッチパネルで行われた操作が、前記タッチパネルに表示されている表示内容を移動させる操作であるか、または前記タッチパネルに表示されている表示内容を回転もしくはサイズ変更させる操作であるかを判定する判定ステップとをコンピュータに実行させる。
【発明の効果】
【００６７】
これらの発明に従うと、処理を簡易にすることができる情報処理装置、情報処理装置の制御方法、及び情報処理装置の制御プログラムを提供することができ、また、ユーザの操作性がよい情報処理装置などを提供することができる。
【図面の簡単な説明】
【００６８】
【図１】本発明の第１の実施の形態における画像処理装置１の外観構成の一例を示す図である。
【図２】画像処理装置１のハードウェア構成の一例を示すブロック図である。
【図３】ＣＰＵ１１によって実行されるプログラム１３の概念的構成を示す図である。
【図４】ＣＰＵ１１がメインプログラム１３ａを起動することによって実現される機能ブロックの一例を示す図である。
【図５】画像処理装置１のＣＰＵ１１によって行われる処理手順の一例を示すフローチャートである。
【図６】画像のプレビュー表示を行うプレビュー画像表示画面Ｇ１５の一例を示す図である。
【図７】上述した各表示画面と、各表示画面において受付可能な操作イベントとの関係を示す図である。
【図８】ＳＲＡＭ１４に記憶されるタッチパネル（タッチセンサ６ａ）上のタッチ位置を説明するための図である。
【図９】第１の実施の形態における情報処理装置のＣＰＵ１１が実行する処理を示すフローチャートである。
【図１０】タッチ／リリース状態に変化があったときの従来技術（図２４）における処理を示すフローチャートである。
【図１１】タッチ／リリース状態に変化があったときの第１の実施の形態（図９）における処理を示すフローチャートである。
【図１２】タッチ／リリース状態に変化がなかったときの従来技術（図２４）における処理を示すフローチャートである。
【図１３】タッチ／リリース状態に変化がなかったときの第１の実施の形態（図９）における処理を示すフローチャートである。
【図１４】第１の実施の形態におけるタッチ位置と中点との関係を時系列で説明するための図である。
【図１５】第２の実施の形態における情報処理装置のＣＰＵ１１が実行する処理を示すフローチャートである。
【図１６】第３の実施の形態における情報処理装置のＣＰＵ１１が実行する処理を示すフローチャートである。
【図１７】第３の実施の形態における情報処理装置のタッチパネルの表示内容の具体例を示す図である。
【図１８】第４の実施の形態における情報処理装置のＣＰＵ１１が実行する処理を示すフローチャートである。
【図１９】第５の実施の形態における情報処理装置のＣＰＵ１１が実行する処理を示すフローチャートである。
【図２０】第６の実施の形態における情報処理装置のＣＰＵ１１が実行する処理を示すフローチャートである。
【図２１】第７の実施の形態における情報処理装置のＣＰＵ１１が実行する処理を示すフローチャートである。
【図２２】第８の実施の形態における情報処理装置のＣＰＵ１１が実行する処理を示すフローチャートである。
【図２３】第９の実施の形態における情報処理装置のＣＰＵ１１が実行する処理を示すフローチャートである。
【図２４】従来技術におけるジェスチャーの判定処理の一部を示すフローチャートである。
【発明を実施するための形態】
【００６９】
［第１の実施の形態］
【００７０】
図１は、本発明の第１の実施の形態における画像処理装置１の外観構成の一例を示す図である。
【００７１】
この画像処理装置１は、ＭＦＰ（Multifunction Peripheral）によって構成され、スキャン機能やプリント機能、コピー機能、ＦＡＸ機能、ネットワーク機能、電子メール送受信機能などの様々な機能を備えており、ユーザによって指定されたジョブを実行する。この画像処理装置１は、装置本体の上部に、スキャンジョブを実行するときに動作するスキャナ部２を備えている。スキャナ部２は、原稿の画像を光学的に読み取る画像読取部２ａと、画像読取部２ａに対して原稿を１枚ずつ自動搬送する原稿搬送部２ｂとを備えて構成され、ユーザによってセットされた原稿を読み取って画像データを生成する。また画像処理装置１は、装置本体の中央下部に、プリントジョブを実行するときに動作するプリンタ部３を備えている。プリンタ部３は、入力する画像データに基づいて電子写真方式などによる画像形成を行って出力する画像形成部３ａと、その画像形成部３ａに対して印刷用紙などのシート材を１枚ずつ給紙搬送する給紙搬送部３ｂとを備えて構成され、ユーザによって指定された画像データに基づいて印刷出力を行う。
【００７２】
また画像処理装置１の正面側には、ユーザが画像処理装置１を使用する際にユーザインターフェースとして機能する操作パネル４が設けられている。この操作パネル４は、ユーザに対して各種情報を表示する表示部５と、ユーザが操作入力を行うための操作部６とを備えている。表示部５は、例えば所定の画面サイズを有するカラー液晶ディスプレイなどで構成され、様々な画像を表示することができる。操作部６は、表示部５の画面上に配置されるタッチセンサ（タッチパネル）６ａと、表示部５の画面周囲に配置される複数の押しボタン式の操作キー６ｂとを備えて構成される。したがって、ユーザは、表示部５に表示される表示画面を参照しながら、操作部６に対して様々な入力操作を行うことにより、画像処理装置１に対してジョブの実行のための設定操作を行ったり、或いはジョブの実行を指示したりすることができる。
【００７３】
表示部５の画面上に配置されるタッチセンサ６ａは、ユーザによるシングルタッチ操作だけでなく、マルチタッチ操作も検知することができるものである。シングルタッチ操作とは、表示部５の表示画面上の１点をタッチする操作であり、例えばシングルタップやダブルタップ、ロングタップ、スクロール、ドラッグなどの操作が含まれる。マルチタッチ操作は、表示部５の表示画面上の複数点を同時にタッチする操作であり、例えばピンチインやピントアウト、回転などのピンチ操作が含まれる。このタッチセンサ６ａは、表示部５の表示画面上における少なくとも１点がタッチされると、そのタッチ位置を特定することができると共に、その後、そのタッチ状態のリリースや、タッチ位置の移動を検知することができるようになっている。そのため、ユーザは、表示部５の表示画面に対して様々なジェスチャー操作を行いながらジョブの設定などを行うことが可能である。
【００７４】
尚、表示部５の画面周囲に配置される操作キー６ｂは、０から９の数字が付されたテンキーなどで構成される。それらの操作キー６ｂは、単にユーザによる押し込み操作だけを検知するものである。
【００７５】
図２は、画像処理装置１のハードウェア構成の一例を示すブロック図である。
【００７６】
画像処理装置１は、上述したスキャナ部２、プリンタ部３、操作パネル４の他、図２に示すように、制御部１０と、ＦＡＸ部２０と、ネットワークインターフェース２１と、無線インターフェース２２と、記憶装置２３とを備えており、それら各部がデータバス１９を介して相互にデータの入出力を行うことができる構成である。
【００７７】
制御部１０は、図２に示す操作パネル４、スキャナ部２、プリンタ部３、ＦＡＸ部２０、ネットワークインターフェース２１、無線インターフェース２２および記憶装置２３のそれぞれを統括的に制御するものである。ＦＡＸ部２０は、図示を省略する公衆電話回線を介してＦＡＸデータの送受信を行うものである。ネットワークインターフェース２１は、画像処理装置１をＬＡＮ（Local Area Network）などのネットワークに接続するためのインターフェースである。無線インターフェース２２は、外部の装置とＮＦＣ（Near Field Communication）などによる無線通信を行うためのインターフェースである。記憶装置２３は、例えばハードディスクドライブ（ＨＤＤ）やソリッドステートドライブ（ＳＳＤ）などで構成される不揮発性の記憶手段であり、ネットワークを介して受信する画像データや、スキャナ部２によって生成された画像データなどを一時的に保存しておくことができる。
【００７８】
また図２に示すように、制御部１０は、ＣＰＵ１１と、ＲＯＭ１２と、ＳＲＡＭ１４と、ＮＶＲＡＭ１５と、ＲＴＣ１７とを備えて構成される。ＣＰＵ１１は、画像処理装置１に電源が投入されることに伴い、ＲＯＭ１２に格納されているプログラム１３を読み出して実行する。これにより、制御部１０は、上述したように各部の制御動作を開始する。特に、ＣＰＵ１１は、画像処理装置１における動作を制御する主要部であり、ジョブの実行動作だけでなく、ユーザインターフェースとして機能する操作パネル４の動作も制御する。すなわち、ＣＰＵ１１は、操作パネル４の表示部５に表示する表示画面を切り替える制御を行うと共に、タッチセンサ６ａ及び操作キー６ｂによってユーザの入力操作が検知された場合に、その入力操作がどのような操作イベントであるかを特定し、その特定した操作イベントに対応する制御を実行する。操作イベントとは、ユーザの入力操作によって発生するイベントであり、例えばタッチセンサ６ａに対する入力操作ではシングルタップ、ダブルタップ、ロングタップ、スクロール、ドラッグ、ピンチといった複数の操作イベントが存在する。また操作イベントに対応する制御には、例えば表示画面を切り替える制御や、ジョブの実行を開始する制御、ジョブの実行を停止する制御などが含まれる。尚、このようなＣＰＵ１１の動作については後に詳しく説明する。
【００７９】
ＳＲＡＭ１４は、ＣＰＵ１１による作業用の記憶領域を提供するメモリであり、例えばＣＰＵ１１がプログラム１３を実行することによって発生する一時的なデータなどを記憶する。
【００８０】
ＮＶＲＡＭ１５は、バッテリバックアップされた不揮発性メモリであり、画像処理装置１における各種設定値や情報などを記憶しておくものである。このＮＶＲＡＭ１５には、図２に示すように画面情報１６が予め記憶されている。画面情報１６は、操作パネル４の表示部５に表示する複数の表示画面に関する情報から成る。各表示画面の画面情報１６には、ユーザがタップ操作可能なアイコン画像やボタン画像など、様々な画像が含まれており、ユーザがジェスチャー操作を行うことができる画面構成が定義されている。表示部５に表示される複数の表示画面はそれぞれ画面構成が異なるため、ユーザがタッチセンサ６ａに対してジェスチャー操作を行った場合でも受付可能な操作イベントはそれぞれ異なったものとなっている。
【００８１】
ＲＴＣ１７は、リアルタイムクロックであり、時刻をカウントし続ける時計回路である。
【００８２】
図３は、ＣＰＵ１１によって実行されるプログラム１３の概念的構成を示す図である。
【００８３】
プログラム１３は、画像処理装置１への電源投入時にＣＰＵ１１によって自動的に読み出されて起動されるメインプログラム１３ａと、そのメインプログラム１３ａのサブルーチンとして予め用意されている複数の操作イベント判定ルーチン１３ｂ，１３ｃ，１３ｄ，１３ｅとを備えて構成される。複数の操作イベント判定ルーチン１３ｂ〜１３ｅは、タッチセンサ６ａがユーザによる入力操作（ジェスチャー操作）を検知した場合に、その入力操作がシングルタップであるか、ダブルタップであるか、ロングタップであるか、またはスクロール（フリック）、ドラッグ、ピンチおよびローテートのいずれかであるかを特定するためのサブルーチンであり、特定対象となる操作イベントごとに具体的な判定処理の中身又は手順が異なるため、個別のサブルーチンとして予め用意されている。そして本実施形態では、タッチセンサ６ａがユーザによる入力操作を検知すると、ＣＰＵ１１が複数の操作イベント判定ルーチン１３ｂ〜１３ｅの中から必要な操作イベント判定ルーチンだけを起動することにより、入力操作に対応する操作イベントを効率的に特定するように構成される。以下、このようなＣＰＵ１１の具体的な処理内容について説明する。
【００８４】
図４は、ＣＰＵ１１がメインプログラム１３ａを起動することによって実現される機能ブロックの一例を示す図である。
【００８５】
図４に示すように、ＣＰＵ１１は、メインプログラム１３ａを実行することにより、設定部３１、表示制御部３２、操作イベント判定部３３、制御実行部３４及びジョブ実行部３５として機能する。
【００８６】
設定部３１は、表示部５に表示する表示画面ごとに、複数の操作イベントの中から、ユーザの入力操作に基づいて検知対象となる操作イベントを関連付けて設定する処理部である。すなわち、設定部３１は、ＮＶＲＡＭ１５に格納されている画面情報１６を読み出して解析することにより、各表示画面において受付可能な操作イベントを特定し、その特定した操作イベントを各表示画面に予め関連付ける。例えば設定部３１は、各表示画面の画面情報１６に対して特定した操作イベントに関する情報を付加することにより、各表示画面に対して操作イベントを関連付けて設定する。尚、設定部３１は、１つの表示画面に対し、シングルタップ、ダブルタップ、ロングタップ、スクロール、ドラッグ及びピンチといった複数の操作イベントのうちの少なくとも１つを関連付けるようになっており、例えば全ての操作イベントを受付可能な表示画面の場合には複数の操作イベントの全てを関連付ける。
【００８７】
操作イベントを関連付けた情報は、画像処理装置１の出荷時においてＮＶＲＡＭ１５に画面情報１６が格納されるタイミングで予め付加されるようにしても良い。しかし、ＮＶＲＡＭ１５に格納された画面情報１６は、画像処理装置１の出荷後においてもオプション機能の追加や、新たなアプリケーションプログラムのインストール、表示画面のカスタマイズなどによって更新されることもある。画面情報１６が更新されると、各表示画面の画面構成が変化するため、それ以前においては受付可能でなかった操作イベントが、画面情報１６の更新後に受付可能となることもある。そのため、設定部３１は、ＣＰＵ１１がメインプログラム１３ａを起動することに伴ってはじめに機能し、画像処理装置１の起動処理が行われている間に、各表示画面に対し、複数の操作イベントの中からユーザの入力操作に基づいて検知対象となる操作イベントを関連付けて設定する。
【００８８】
表示制御部３２は、ＮＶＲＡＭ１５に格納されている画面情報１６を読み出し、複数の表示画面の中から一の表示画面を選択して表示部５へ出力することにより、その選択した表示画面を表示部５に表示するものである。この表示制御部３２は、画像処理装置１の起動処理が完了すると、複数の表示画面の中から初期画面を選択して表示部５に表示する。その後、表示制御部３２は、制御実行部３４からの画面更新指示に基づいて表示部５の表示画面を逐次更新していく。
【００８９】
操作イベント判定部３３は、操作パネル４のタッチセンサ６ａが表示画面に対するユーザの入力操作を検知した場合に、その入力操作に対応する操作イベントを特定する処理部である。この操作イベント判定部３３は、メインプログラム１３ａによって実現される機能の１つであり、タッチセンサ６ａによってユーザの入力操作が検知されると、そのタイミングで表示部５に表示中である表示画面に対して予め関連付けられている操作イベントを特定し、その特定した操作イベントに対応する操作イベント判定ルーチンだけを起動することにより、ユーザの入力操作に対応する操作イベントを特定する。すなわち、表示画面に対するユーザの入力操作が検知されると、その表示画面で受付可能な操作イベントだけを判定するために、複数の操作イベント判定ルーチン１３ｂ〜１３ｅの中から、設定部３１によってその表示画面に関連付けられている操作イベントに対応した操作イベント判定ルーチンだけを起動するのである。このとき、表示画面に対して複数の操作イベントが関連付けられていることもある。例えば、表示部５に表示されている表示画面がシングルタップ、ダブルタップ、スクロールの３つの操作イベントを受付可能な場合である。そのような場合、操作イベント判定部３３は、各操作イベントに対応する操作イベント判定ルーチンを順次起動していくことにより、ユーザの入力操作に対応する操作イベントを特定する。このように操作イベント判定部３３は、ユーザによってタッチセンサ６ａに対する何らかの入力操作が行われた場合、毎回全ての操作イベント判定ルーチン１３ｂ〜１３ｅを起動するのではなく、そのタイミングで表示部５に表示されている表示画面が受付可能な操作イベントに対応する操作イベント判定ルーチンだけを起動することにより、無駄な判定ルーチンを起動することなく、効率的にユーザの入力操作に対応する操作イベントを特定できるように構成されている。
【００９０】
そして操作イベント判定部３３は、必要な操作イベント判定ルーチンだけを起動することにより、ユーザの入力操作に対応する操作イベントを特定することができると、その特定した操作イベントを制御実行部３４へ出力する。一方、上記のように必要な操作イベント判定ルーチンだけを起動しても、ユーザの入力操作に対応する操作イベントを特定することができないこともある。例えば、シングルタップ、ダブルタップ、スクロールの３つの操作イベントを受付可能な表示画面に対してユーザがロングタップなどの操作を行った場合には、シングルタップ、ダブルタップ、スクロールの３つの操作イベントのそれぞれに対応する操作イベント判定ルーチン１３ｂ，１３ｃ，１３ｅを起動してもユーザの入力操作に対応する操作イベントを特定することができない。そのような場合、操作イベント判定部３３は、制御実行部３４に対する出力処理は行わない。
【００９１】
制御実行部３４は、ユーザが操作パネル４に対する操作を行った場合に、その操作に基づく制御を実行する処理部である。この制御実行部３４は、ユーザによってタッチセンサ６ａに対するジェスチャー操作が行われた場合には、上述した操作イベント判定部３３によって特定された操作イベントを入力し、その操作イベントに基づく制御を実行する。これに対し、ユーザによって操作キー６ｂに対する操作が行われた場合には、制御実行部３４がその操作キー６ｂから直接操作信号を受信し、その操作信号に基づいてユーザによって行われた操作（操作イベント）を特定し、その操作に基づく制御を実行する。制御実行部３４がユーザによる入力操作に基づいて実行する制御には、例えば表示部５に表示している表示画面を更新する制御や、ジョブの実行開始や停止の制御などがある。そのため、制御実行部３４は、図４に示すように、表示制御部３２とジョブ実行部３５とを制御するようになっている。すなわち、制御実行部３４は、ユーザによる入力操作に基づいて表示画面を更新するときには表示制御部３２に画面更新を指示し、ジョブの実行開始や停止を行うときにはジョブ実行部３５にジョブの実行開始又は停止を指示する。これにより、表示制御部３２は、表示部５に表示している表示画面を制御実行部３４からの指示に基づいて更新するようになる。またジョブ実行部３５は、制御実行部３４からの指示に基づいてジョブの実行を開始したり、或いは既に実行中のジョブを停止したりする。ただし、制御実行部３４が実行する制御には、上記以外の制御が含まれていても構わない。
【００９２】
ジョブ実行部３５は、画像処理装置１に設けられた各部の動作を制御することにより、ユーザによって指定されたジョブの実行を制御する。このジョブ実行部３５は、画像処理装置１においてジョブの実行が行われている間、ＣＰＵ１１に常駐して各部の動作を統括的に制御するようになっている。
【００９３】
次に上記のような機能構成を有するＣＰＵ１１において行われる具体的な処理手順について説明する。
【００９４】
図５は、画像処理装置１のＣＰＵ１１によって行われる処理手順の一例を示すフローチャートである。
【００９５】
この処理は、画像処理装置１に電源が投入され、ＣＰＵ１１がプログラム１３に含まれるメインプログラム１３ａを起動することによって開始される処理である。
【００９６】
まずＣＰＵ１１は、メインプログラム１３ａを起動すると、画面情報１６を読み出し（ステップＳ１）、その画面情報１６に基づいて各表示画面に対する操作イベントの関連付けを行う（ステップＳ２）。そして各表示画面に対する操作イベントの関連付けが全て完了すると、ＣＰＵ１１は、操作パネル４の表示部５に、初期画面を表示する（ステップＳ３）。このようにして表示部５に表示画面が表示されると、ＣＰＵ１１は、その表示画面に関連付けられている操作イベントに対応する操作イベント判定ルーチンをセットする（ステップＳ４）。これにより、表示部５において表示中の表示画面が受付可能な操作イベントに対応する操作イベント判定ルーチンが予め用意された状態となる。
【００９７】
そしてＣＰＵ１１は、タッチセンサ６ａ及び操作キー６ｂのいずれかによって入力操作が検知されるまで待機する状態となる（ステップＳ５）。そしてユーザによる入力操作が検知されると（ステップＳ５でＹＥＳ）、ＣＰＵ１１は、その入力操作がタッチセンサ６ａによって検知されたものであるか否かを判断し（ステップＳ６）、タッチセンサ６ａで検知されたものであれば（ステップＳ６でＹＥＳ）、ステップＳ４で予めセットされている操作イベント判定ルーチンを順次起動してユーザの入力操作に対応する操作イベントを特定するためのループ処理を実行する（ステップＳ７，Ｓ８，Ｓ９）。このループ処理（ステップＳ７，Ｓ８，Ｓ９）では、プログラム１３に含まれる全ての操作イベント判定ルーチン１３ｂ〜１３ｅが順に起動されるのではなく、ステップＳ４でセットされた操作イベント判定ルーチンであって、現在表示中の表示画面において受付可能な操作イベントに対応する操作イベント判定ルーチンだけが起動されるようになる。また複数の操作イベント判定ルーチンをループ処理で順次起動する場合は、いずれか１つの操作イベント判定ルーチンによってユーザの入力操作に対応する操作イベントが特定されると、そのタイミングでループ処理を終了する。つまり、このループ処理（ステップＳ７，Ｓ８，Ｓ９）では、ステップＳ４でセットされた複数の操作イベント判定ルーチンの全てを常に起動させるのではなく、全てを起動するまでに途中でユーザの入力操作に対応した操作イベントを特定することができれば、それ以降に起動が予定されている操作イベント判定ルーチンを起動することなく、ループ処理を終了する。
【００９８】
そしてループ処理（ステップＳ７，Ｓ８，Ｓ９）が終了すると、ＣＰＵ１１は、ループ処理（ステップＳ７，Ｓ８，Ｓ９）によって操作イベントが特定できたか否かを判断する（ステップＳ１０）。ユーザによって表示中の表示画面で受付可能でないジェスチャー操作が行われてしまうこともあるため、ステップＳ１０の判断が必要となる。そしてユーザの入力操作に対応する操作イベントを特定することができなかった場合（ステップＳ１０でＮＯ）、ＣＰＵ１１は、その後の処理（ステップＳ１１）へと進むことなく、再びユーザによる入力操作が検知されるまで待機する状態へと戻る（ステップＳ５）。これに対し、ループ処理（ステップＳ７，Ｓ８，Ｓ９）においてユーザの入力操作に対応する操作イベントを特定することができた場合（ステップＳ１０でＹＥＳ）、ＣＰＵ１１による処理は次のステップＳ１１へと進む。
【００９９】
また、ユーザによる入力操作が検知され（ステップＳ５でＹＥＳ）、その入力操作が操作キー６ｂによって検知されたものであった場合（ステップＳ６でＮＯ）も、ＣＰＵ１１による処理はステップＳ１１へと進む。すなわち、ユーザが操作キー６ｂを操作した場合には、その操作信号によって操作イベントを特定することができるため、操作イベントを特定できた場合の処理（ステップＳ１１）へと進む。
【０１００】
ＣＰＵ１１は、ユーザの入力操作に対応する操作イベントが特定されると、その入力操作に対応した制御を実行する（ステップＳ１１）。すなわち、上述したように、表示部５の表示画面を更新する制御、ジョブの実行制御、その他の制御などが行われる。そしてＣＰＵ１１は、ステップＳ１１の制御実行により、表示部５に表示される表示画面が更新されたか否かを判断する（ステップＳ１２）。その結果、表示画面が更新された場合（ステップＳ１２でＹＥＳ）、ＣＰＵ１１による処理は、ステップＳ４へと戻り、その更新後の表示画面に関連付けられている操作イベントに対応した操作イベント判定ルーチンをセットする（ステップＳ４）。これに対し、表示画面が更新されていない場合（ステップＳ１２でＮＯ）、ＣＰＵ１１による処理は、ステップＳ５に戻り、再びユーザによる入力操作が検知されるまで待機する状態となる（ステップＳ５）。そしてＣＰＵ１１は、その後、上述した処理を繰り返す。
【０１０１】
ＣＰＵ１１は上記のような処理を行うことにより、ユーザが操作パネル４に対する操作を行った場合にはその操作に対応した処理を行うことができる。特に上記のような処理はジョブの実行中に並行して行われることもあるが、ユーザによって表示画面に対するジェスチャー操作が行われたときには、その表示画面において受付可能な操作イベントだけを特定するために、必要最小限の操作イベント判定ルーチンだけを起動するようにしているため、ジョブの実行においても無駄な操作イベント判定ルーチンを起動することがなく、効率的にユーザのジェスチャー操作に対応する操作イベントを特定することが可能である。
【０１０２】
図６は、画像のプレビュー表示を行うプレビュー画像表示画面Ｇ１５の一例を示す図である。
【０１０３】
このプレビュー画像表示画面Ｇ１５は、操作パネル４の表示部５に表示され、ユーザによって選択された画像をプレビュー表示するためのプレビュー領域Ｒ３が含まれる画面構成となっている。このプレビュー画像表示画面Ｇ１５に対してユーザが行うことができる操作としては、プレビュー画像を縮小、または拡大するためのピンチ操作、回転するためのローテート操作がある。ピンチ操作には、プレビュー画像を縮小するためのピンチイン操作と、拡大するためのピンチアウト操作とが含まれる。ピンチイン操作は、図６（ａ）において矢印Ｆ５で示すように、プレビュー領域Ｒ３に表示されるプレビュー画像の２点を２本の指先でタッチした状態でそれら２点間の距離を縮めるように移動させる操作である。このようなピンチイン操作により、プレビュー領域Ｒ３に表示されるプレビュー画像が縮小表示されるようになる。またピンチアウト操作は、図６（ｂ）において矢印Ｆ６で示すように、プレビュー領域Ｒ３に表示されるプレビュー画像の２点を２本の指先でタッチした状態でそれら２点間の距離を拡大していくように移動させる操作である。このようなピンチアウト操作により、プレビュー領域Ｒ３に表示されるプレビュー画像が拡大表示されるようになる。さらにローテート（回転）操作は、図６（ｃ）において矢印Ｆ７で示すように、プレビュー領域Ｒ３に表示されるプレビュー画像の２点を２本の指先でタッチした状態でそれら２点間の位置を回転させていくように移動させる操作である。このような回転操作により、プレビュー領域Ｒ３に表示されるプレビュー画像が回転表示されるようになる。
【０１０４】
またプレビュー画像表示画面Ｇ１５では、ピンチアウト操作に限らず、プレビュー領域Ｒ３に表示されているプレビュー画像の１点に対してダブルタップ操作が行われた場合にも、その１点を中心にプレビュー画像を拡大して表示する処理が行われる。さらにプレビュー画像表示画面Ｇ１５では、プレビュー画像が拡大表示されており、その画像全体をプレビュー領域Ｒ３に表示できていないときにドラッグ操作を受け付け可能となっており、ドラッグ操作が行われると、拡大表示部分を移動させて表示する。さらにプレビュー画像表示画面Ｇ１５では、表示されている画像を次の（または前の）画像に切り換えるためのスクロール（フリック）操作が受付け可能となっている。
【０１０５】
このように、図６に示すプレビュー画像表示画面Ｇ１５は、スクロール（フリック）、ドラッグ、ダブルタップ、ピンチの４つの操作イベントを受付可能となっており、それ以外の操作イベントを受け付けない画面構成となっている。それ故、設定部３１は、図６に示すプレビュー画像表示画面Ｇ１５に対し、スクロール（フリック）、ドラッグ、ダブルタップ及びピンチの４つの操作イベントを関連付けて設定する。
【０１０６】
図７は、上述した各表示画面と、各表示画面において受付可能な操作イベントとの関係を示す図である。
【０１０７】
尚、図７では、各表示画面において受付可能な操作イベントには「ＹＥＳ」と表記され、受付可能でない操作イベントには斜線が施されている。図７に示すように、操作パネル４の表示部５に表示される表示画面には、様々な種類の表示画面があり、それぞれの表示画面ごとに受付可能な操作イベントが異なっている。そして上述したように設定部３１は、これらの表示画面ごとに、受付可能な操作イベントを特定してユーザの入力操作に基づいて検知対象となる操作イベントを関連付けて設定する。つまり、設定部３１によって各表示画面に関連付けられる操作イベントは、図７に示すものと同様である。
【０１０８】
また図７においては、プレビュー画像においてドラッグ操作が条件付きで受付可能となっている。すなわち、この表示画面では、ドラッグ操作は常に受付可能な操作イベントではなく、特定の条件が満たされたときに受付可能な操作イベントとなっている。例えば上述の図６（ｂ）に示したように、プレビュー画像表示画面Ｇ１５のプレビュー領域Ｒ３においてプレビュー画像が拡大表示されているとき、その拡大表示部分を移動させるためにドラッグ操作が受付可能となる。しかし、プレビュー画像が拡大表示されていないときには、拡大表示部分を移動させる必要がないため、そのような状態ではプレビュー画像表示画面Ｇ１５において拡大表示部分を移動させるためのドラッグ操作を受け付けない状態となる。
【０１０９】
図８は、ＳＲＡＭ１４に記憶されるタッチパネル（タッチセンサ６ａ）上のタッチ位置を説明するための図である。
【０１１０】
タッチパネル（タッチセンサ６ａ）上の第１の物体（例えば親指の指先）によるタッチ位置の座標Ｔ１（Ｘ１，Ｙ１）と、第２の物体（例えば人差し指の指先）によるタッチ位置の座標Ｔ２（Ｘ２，Ｙ２）とが、サンプリング周期ごとに（またはリアルタイムに）検出され、ＳＲＡＭ１４に記録される。なお、タッチが行われる前には、Ｔ１（Ｘ１，Ｙ１）と、Ｔ２（Ｘ２，Ｙ２）とには、初期座標値（Ａ，Ａ）が記憶されている。
【０１１１】
タッチが行われた状態で、第１、第２の物体がタッチパネル上を移動すると、座標Ｔ１（Ｘ１，Ｙ１）と、座標Ｔ２（Ｘ２，Ｙ２）とがサンプリング周期ごとに（またはリアルタイムに）変更される。
【０１１２】
第１の物体によるタッチがリリースされた後（第１の物体がタッチパネルから離れた後）は、第１の物体による最後のタッチ位置の座標が、Ｔ１（Ｘ１，Ｙ１）に保持される。同様に、第２の物体によるタッチがリリースされた後（第２の物体がタッチパネルから離れた後）は、第２の物体による最後のタッチ位置の座標が、Ｔ２（Ｘ２，Ｙ２）に保持される。
【０１１３】
ＣＰＵ１１は、座標Ｔ１（Ｘ１，Ｙ１）と、座標Ｔ２（Ｘ２，Ｙ２）とから所定の規則で求められる位置（座標）Ｉを算出する。ここでは所定の規則とは、座標Ｔ１（Ｘ１，Ｙ１）とＴ２（Ｘ２，Ｙ２）の中点を求めるものとする。すなわち、座標Ｉ＝（（Ｘ１＋Ｘ２）／２，（Ｙ１＋Ｙ２）／２）により計算される。
【０１１４】
なお所定の規則とは、座標Ｔ１（Ｘ１，Ｙ１）と、座標Ｔ２（Ｘ２，Ｙ２）とから定まる位置を求める規則であり、中点以外にも、以下のような計算式により座標Ｉを求めてもよい。
【０１１５】
（ア）座標Ｉ＝（（Ｘ１＋Ｘ２），（Ｙ１＋Ｙ２））
【０１１６】
（イ）座標Ｉ＝（（Ｘ１＋Ｘ２）×ａ，（Ｙ１＋Ｙ２）×ａ）  （ａは０ではない任意の数（重み付け係数））
【０１１７】
座標Ｉは、以下の特徴を有する点である。すなわち座標Ｉは、スクロール操作またはドラッグ操作が行われているときに移動する点である。また座標Ｉは、スクロール操作またはドラッグ操作が行われているときに、その移動の速度、または所定時間内のその移動の量がしきい値以上となる点である。一方で、ピンチイン操作、ピンチアウト操作またはローテート操作が行われているときには、座標Ｉは理論的には移動しない（または誤差を考えても、ピンチイン操作、ピンチアウト操作またはローテート操作が行われているときには、座標Ｉの移動の速度、所定時間内の移動の量はしきい値より小さくなる）。図８においてしきい値は、「ｒ」で示されている。座標Ｉの移動の速度ベクトル、または所定時間内の移動の量が点線の円の内にあれば、ピンチイン操作、ピンチアウト操作またはローテート操作が行われていると判断でき、座標Ｉの移動の速度ベクトル、または所定時間内の移動の量が点線の円上または円の外にあれば、スクロール操作またはドラッグ操作が行われていると判断できる。
【０１１８】
このような座標Ｉの特徴を利用して、本実施の形態における情報処理装置は、座標Ｉの移動に基づいて、ユーザによる操作が、スクロール操作もしくはドラッグ操作であるか、または、ピンチイン操作、ピンチアウト操作、もしくはローテート操作であるかを判定することとしている。
【０１１９】
また、本実施の形態によると、第１の物体によるタッチがリリースされた後は、第１の物体による最後のタッチ位置の座標が、Ｔ１（Ｘ１，Ｙ１）に保持され、第２の物体によるタッチがリリースされた後は、第２の物体による最後のタッチ位置の座標が、Ｔ２（Ｘ２，Ｙ２）に保持される。これにより、指１本によるタッチが行われている状態においても座標Ｉを算出することができ、座標Ｉの移動の状態に基づいてスクロール操作またはドラッグ操作が行われていることを判定することが可能である。
【０１２０】
図９は、第１の実施の形態における情報処理装置のＣＰＵ１１が実行する処理を示すフローチャートである。
【０１２１】
この処理は、図３の操作イベント判定ルーチン（スクロール、ドラッグ、ピンチ、ローテート判定用）１３ｅのプログラムをＣＰＵ１１が実行することで実現される。図９のフローチャートでの処理は、所定の時間間隔（例えば２０ミリ秒）ごとに繰り返し実行される。この所定の時間間隔が、タッチ座標のサンプリング周期となり、座標Ｉの算出周期となる。
【０１２２】
図９を参照して、ステップＳ１０１において、タッチパネルのタッチ／リリース状態に変化があったかを判定する。ここでは、
【０１２３】
（Ａ）タッチが行われていない状態から、１箇所以上のタッチが行われる状態となった、
【０１２４】
（Ｂ）１箇所以上のタッチが行われている状態から、タッチが行われない状態となった、または
【０１２５】
（Ｃ）タッチの箇所の数に変化があった、
【０１２６】
ときに、ＹＥＳと判断するものである。
【０１２７】
ステップＳ１０１でＹＥＳであれば、今回の周期における処理を終了する。ステップＳ１０１でＮＯであれば、ステップＳ１０３において、タッチパネル上のタッチ座標（位置）の検出が行われる。複数箇所のタッチが行われていた場合には、全てのタッチ座標が検出される。タッチ座標はＳＲＡＭ１４に記憶される。また図８を用いて説明したように、タッチがリリースされた後は、最後のタッチ座標が保持される。
【０１２８】
ステップＳ１０５において、タッチ座標に前回の周期から何らかの変化があったかが判定される。これは、タッチ位置のいずれかが移動したか否かを判定するものである。
【０１２９】
ステップＳ１０５においてＮＯであれば、今回の周期における処理を終了する。ステップＳ１０５でＹＥＳであれば、ステップＳ１０７で座標Ｉ（例えば中点）の算出が行われる。
【０１３０】
ステップＳ１０９において、座標Ｉの移動速度がしきい値以上であるかが判定される。なおステップＳ１０９では、座標Ｉが移動したか、または、座標Ｉの所定時間内（例えば前回のサンプリング周期から現在まで）の移動の量がしきい値以上かを判定してもよい。
【０１３１】
ステップＳ１０９においてＹＥＳであれば、ステップＳ１１１において、ユーザによる操作が、スクロール操作またはドラッグ操作であると判断し、スクロール操作またはドラッグ操作に応じた画面の描画処理が行われる。なお、スクロール操作であるかドラッグ操作であるかの判断は、画面の表示内容、タッチ位置における表示内容、タッチが行われてからタッチ位置が移動するまでの時間間隔などに基づいて判断することができる。
【０１３２】
ステップＳ１０９においてＮＯであれば、ステップＳ１１３において、ユーザによる操作が、ピンチイン操作、ピンチアウト操作またはローテート操作であると判断し、ピンチイン操作、ピンチアウト操作またはローテート操作に応じた画面の描画処理が行われる。なお、ローテート操作であるか、ピンチイン操作であるか、ピンチアウト操作であるかは、タッチ位置の移動方向に基づいて判断される。すなわち２個所のタッチ位置が中点を中心として所定方向に回転する場合、ローテート操作であると判断され、２個所のタッチ位置が中点に近づく方向に移動する場合、ピンチイン操作であると判断され、２個所のタッチ位置が中点から遠ざかる方向に移動する場合、ピンチアウト操作であると判断される。
【０１３３】
次に、本実施の形態における効果を説明する。
【０１３４】
図１０は、タッチ／リリース状態に変化があったときの従来技術（図２４）における処理を示すフローチャートである。
【０１３５】
図２４で説明したように、タッチ／リリース状態に変化があったときにはステップＳ２０１でＹＥＳと判断され、ステップＳ２０７からの処理が実行される。このため、実質的には図１０のように、タッチ数の取得（Ｓ２０７）が行われ、タッチ数が１点か２点かが判定され（Ｓ２０９）、その後、タッチ座標の検出（Ｓ２１１、Ｓ２１５）とタッチ数に応じた描画処理（Ｓ２１３、Ｓ２１９）が行われる。また、ピンチ操作やローテート操作においては、２個所のタッチ位置の中点を計算する処理（Ｓ２１７）が行われる。
【０１３６】
図１１は、タッチ／リリース状態に変化があったときの第１の実施の形態（図９）における処理を示すフローチャートである。
【０１３７】
図９で説明したように、タッチ／リリース状態に変化があったときにはステップＳ１０１でＹＥＳと判断され、処理が終了する。このため、図１１のように実質的な処理を行う必要がない。以上のように、本実施の形態においては、タッチ／リリース状態に変化があったときの処理を大幅に削減することができる。
【０１３８】
図１２は、タッチ／リリース状態に変化がなかったときの従来技術（図２４）における処理を示すフローチャートである。
【０１３９】
図２４で説明したように、タッチ／リリース状態に変化がなかったときには、ステップＳ２０１でＮＯと判断され、ステップＳ２０３からの処理が実行される。このため、実質的には図１２のようにタッチ座標の検出が行われ（Ｓ２０３）、座標に変化があったときに、タッチ数の取得（Ｓ２０７）が行われる。タッチ数が１点か２点かが判定され（Ｓ２０９）、その後、タッチ座標の検出（Ｓ２１１、Ｓ２１５）とタッチ数に応じた描画処理（Ｓ２１３、Ｓ２１９）が行われる。また、ピンチ操作やローテート操作においては、２個所のタッチ位置の中点を計算する処理（Ｓ２１７）が行われる。
【０１４０】
図１３は、タッチ／リリース状態に変化がなかったときの第１の実施の形態（図９）における処理を示すフローチャートである。
【０１４１】
図９で説明したように、タッチ／リリース状態に変化がなかったときにはステップＳ１０１でＮＯと判断され、ステップＳ１０３からの処理が実行される。すなわちタッチ座標が検出され（Ｓ１０３）、タッチ座標に変化があったときに（Ｓ１０５でＹＥＳ）、中点（図８の座標Ｉ）が計算される（Ｓ１０７）。座標Ｉの移動の状態に基づいて（Ｓ１０９）、スクロール操作またはドラッグ操作に応じた画面の描画処理（Ｓ１１１）、またはピンチイン操作、ピンチアウト操作、もしくはローテート操作に応じた画面の描画処理（Ｓ１１３）が行われる。
【０１４２】
図１３においてはタッチ数の取得、判断の処理（図１２のＳ２０７、Ｓ２０９）をなくすことができ、また、ピンチイン操作、ピンチアウト操作、またはローテート操作の場合に取得する必要がある中点（座標Ｉ）の値を用いて、ステップＳ１０９での判定を行うことができる。これにより、本実施の形態においては、タッチ／リリース状態に変化がなかったときの処理を大幅に削減することができる。
【０１４３】
図１４は、第１の実施の形態におけるタッチ位置と中点との関係を時系列で説明するための図である。
【０１４４】
図１４を参照して、時刻ｔ１において、タッチパネル上でタッチが行われておらず、座標Ｔ１（Ｘ１，Ｙ１）（図中のａｄｄｒｅｓｓ：０）および座標Ｔ２（Ｘ２，Ｙ２）（図中のａｄｄｒｅｓｓ：１）の双方には、初期値として（Ａ，Ａ）の座標が記録されている。なお、この実施の形態においては１点または２点のタッチを検出するものであるため、図中のａｄｄｒｅｓｓ：０とａｄｄｒｅｓｓ：１のみを用いているが、３点以上のタッチを検出する場合には、図中のａｄｄｒｅｓｓ：２以降に座標Ｔ３（Ｘ３，Ｙ３）（３点目のタッチ位置）以降の座標が記録される。時刻ｔ１においては、座標Ｔ１と座標Ｔ２の中点として、座標（（Ａ＋Ａ）／２，（Ａ＋Ａ）／２）が記録される。
【０１４５】
なお図１４中、ａｄｄｒｅｓｓ：０とａｄｄｒｅｓｓ：１の欄において、先頭に「０」が記載されている場合、その座標のタッチがなされていない状態を示し、先頭に「１」が記載されている場合、その座標のタッチがなされている状態を示す。
【０１４６】
時刻ｔ２において、タッチパネルの１点のみがタッチされた場合を想定する。このとき、座標Ｔ１（図中のａｄｄｒｅｓｓ：０）には、タッチ位置の座標である（Ｘ１，Ｙ１）が記録される。座標Ｔ２（図中のａｄｄｒｅｓｓ：１）は、初期値（Ａ，Ａ）のままである。時刻ｔ２においては、座標Ｔ１と座標Ｔ２の中点として、座標（（Ｘ１＋Ａ）／２，（Ｙ１＋Ａ）／２）が記録される。
【０１４７】
また、時刻ｔ２においては、前回の時刻と比較して、タッチ／リリースの変化があるため、図９のステップＳ１０１ではＹＥＳと判断され、図９のフローチャートでの実質的な処理は行われない。すなわちスクロール、ドラッグ、ピンチ、ローテートのいずれの処理も行われず、フローチャートでは図示しないタップに関する処理が行われる。従って、初期値（Ａ，Ａ）が現実のタッチ座標（Ｘ１，Ｙ１）に変更されることで中点座標が大きく変動しても、それがスクロール操作やドラッグ操作によるものと誤って判断されることはない。
【０１４８】
時刻ｔ３において、タッチされた１点が移動した場合を想定する。このとき、座標Ｔ１（図中のａｄｄｒｅｓｓ：０）には、移動後の座標である（Ｘ１１，Ｙ１１）が記録される。座標Ｔ２（図中のａｄｄｒｅｓｓ：１）は、初期値（Ａ，Ａ）のままである。時刻ｔ３においては、座標Ｔ１と座標Ｔ２の中点として、座標（（Ｘ１１＋Ａ）／２，（Ｙ１１＋Ａ）／２）が記録される。
【０１４９】
また、時刻ｔ３においては、前回の時刻と比較して、タッチ／リリースの変化がないため、図９のステップＳ１０１ではＮＯと判断され、座標Ｔ１と座標Ｔ２の中点の移動速度に基づいて、操作を判定する処理（Ｓ１０９〜Ｓ１１３）が行われる。移動速度の判断においては、例えば図８の座標Ｉ（中点）が、前回の検出タイミングからしきい値ｒより大きい距離を移動したかが判断される。ＹＥＳであれば図９のステップＳ１１１において、スクロール操作またはドラッグ操作に応じた描画処理が行われ、ＮＯであればステップＳ１１３においてピンチ操作またはローテート操作に応じた描画処理が行われる。図１４では、中点の移動速度が速く（中点の移動があり）、スクロール操作に応じた描画処理が行われたものとする。
【０１５０】
なお図８のしきい値ｒは、ピンチ操作においてユーザが親指と人差し指との距離を近づけたり遠ざけたりするときの手ぶれによる座標Ｉの移動量より大きい値とすることが望ましい。これにより、指を閉じたり開いたりしているときの中点のぶれがあっても、それをしきい値以下とすることができ、手ぶれがあっても誤ってピンチ操作がスクロール操作またはドラッグ操作と判別されることがなくなる。なお、好ましいしきい値ｒの値は、タッチパネル上の５ｍｍ以上２０ｍｍ以下の距離である。
【０１５１】
時刻ｔ４において、タッチパネルの１点がさらにタッチされた場合（合計２点のタッチが行われている状態）を想定する。このとき、座標Ｔ１（図中のａｄｄｒｅｓｓ：０）には、タッチ位置の座標である（Ｘ１１，Ｙ１１）が記録される。座標Ｔ２（図中のａｄｄｒｅｓｓ：１）には、タッチ位置の座標である（Ｘ２，Ｙ２）が記録される。時刻ｔ４においては、座標Ｔ１と座標Ｔ２の中点として、座標（（Ｘ１１＋Ｘ２）／２，（Ｙ１１＋Ｙ２）／２）が記録される。
【０１５２】
また、時刻ｔ４においては、前回の時刻と比較して、タッチ／リリースの変化があるため、図９のステップＳ１０１ではＹＥＳと判断され、図９のフローチャートでの実質的な処理は行われない。すなわちスクロール、ドラッグ、ピンチ、ローテートのいずれの処理も行われず、フローチャートでは図示しないタップに関する処理が行われる。
【０１５３】
時刻ｔ５において、タッチされた２点の双方が移動した場合を想定する。このとき、座標Ｔ１（図中のａｄｄｒｅｓｓ：０）には、移動後の座標である（Ｘ１１１，Ｙ１１１）が記録される。座標Ｔ２（図中のａｄｄｒｅｓｓ：１）には、移動後の座標である（Ｘ２２，Ｙ２２）が記録される。時刻ｔ５においては、座標Ｔ１と座標Ｔ２の中点として、座標（（Ｘ１１１＋Ｘ２２）／２，（Ｙ１１１＋Ｙ２２）／２）が記録される。
【０１５４】
また、時刻ｔ５においては、前回の時刻と比較して、タッチ／リリースの変化がないため、図９のステップＳ１０１ではＮＯと判断され、座標Ｔ１と座標Ｔ２の中点の移動速度に基づいて、操作を判定する処理（Ｓ１０９〜Ｓ１１３）が行われる。図１４では、中点の移動速度が遅く（または移動速度が０であり）、ピンチアウトに応じた描画処理が行われたものとする。
【０１５５】
時刻ｔ６において、タッチパネルの座標Ｔ１のタッチがリリースされた場合（合計１点のタッチが行われている状態）を想定する。このとき、座標Ｔ１（図中のａｄｄｒｅｓｓ：０）には、最後のタッチ位置の座標である（Ｘ１１１，Ｙ１１１）が保持される。座標Ｔ２（図中のａｄｄｒｅｓｓ：１）には、タッチ位置の座標である（Ｘ２２，Ｙ２２）が記録される。時刻ｔ６においては、座標Ｔ１と座標Ｔ２の中点として、座標（（Ｘ１１１＋Ｘ２２）／２，（Ｙ１１１＋Ｙ２２）／２）が記録される。
【０１５６】
なお、図１４のｔ６においてはａｄｄｒｅｓｓ：０のタッチ状態がリリースされているため、その欄の先頭が「０」に変化している。
【０１５７】
また、時刻ｔ６においては、前回の時刻と比較して、タッチ／リリースの変化があるため、図９のステップＳ１０１ではＹＥＳと判断され、図９のフローチャートでの実質的な処理は行われない。すなわちスクロール、ドラッグ、ピンチ、ローテートのいずれの処理も行われず、フローチャートでは図示しないタップに関する処理が行われる。
【０１５８】
時刻ｔ７において、タッチ座標Ｔ２が移動した場合を想定する。このとき、座標Ｔ１（図中のａｄｄｒｅｓｓ：０）には、最後のタッチ位置の座標である（Ｘ１１１，Ｙ１１１）が保持される。座標Ｔ２（図中のａｄｄｒｅｓｓ：１）には、移動後の座標である（Ｘ２２２，Ｙ２２２）が記録される。時刻ｔ７においては、座標Ｔ１と座標Ｔ２の中点として、座標（（Ｘ１１１＋Ｘ２２２）／２，（Ｙ１１１＋Ｙ２２２）／２）が記録される。
【０１５９】
また、時刻ｔ７においては、前回の時刻と比較してタッチ／リリースの変化がないため、図９のステップＳ１０１ではＮＯと判断され、座標Ｔ１と座標Ｔ２の中点の移動速度に基づいて、操作を判定する処理（Ｓ１０９〜Ｓ１１３）が行われる。図１４では、中点の移動速度が速く（中点の移動があり）、スクロールに応じた描画処理が行われたものとする。
【０１６０】
時刻ｔ８において、タッチパネルの座標Ｔ１のタッチが再度行われた場合（合計２点のタッチが行われている状態）を想定する。このとき、座標Ｔ１（図中のａｄｄｒｅｓｓ：０）には、タッチ位置の座標である（Ｘ３，Ｙ３）が保持される。座標Ｔ２（図中のａｄｄｒｅｓｓ：１）には、タッチ位置の座標である（Ｘ２２２，Ｙ２２２）が記録される。時刻ｔ８においては、座標Ｔ１と座標Ｔ２の中点として、座標（（Ｘ３＋Ｘ２２２）／２，（Ｙ３＋Ｙ２２２）／２）が記録される。
【０１６１】
なお、図１４のｔ８においてはａｄｄｒｅｓｓ：０のタッチがなされているため、その欄の先頭が「１」に変化している。
【０１６２】
また、時刻ｔ８においては、前回の時刻と比較して、タッチ／リリースの変化があるため、図９のステップＳ１０１ではＹＥＳと判断され、図９のフローチャートでの実質的な処理は行われない。すなわちスクロール、ドラッグ、ピンチ、ローテートのいずれの処理も行われず、フローチャートでは図示しないタップに関する処理が行われる。
【０１６３】
時刻ｔ９において、タッチされた２点の双方が移動した場合を想定する。このとき、座標Ｔ１（図中のａｄｄｒｅｓｓ：０）には、移動後の座標である（Ｘ３３，Ｙ３３）が記録される。座標Ｔ２（図中のａｄｄｒｅｓｓ：１）には、移動後の座標である（Ｘ２２２２，Ｙ２２２２）が記録される。時刻ｔ９においては、座標Ｔ１と座標Ｔ２の中点として、座標（（Ｘ３３＋Ｘ２２２２）／２，（Ｙ３３＋Ｙ２２２２）／２）が記録される。
【０１６４】
また、時刻ｔ９においては、前回の時刻と比較して、タッチ／リリースの変化がないため、図９のステップＳ１０１ではＮＯと判断され、座標Ｔ１と座標Ｔ２の中点の移動速度に基づいて、操作を判定する処理（Ｓ１０９〜Ｓ１１３）が行われる。図１４では、中点の移動速度が遅く（または移動速度が０であり）、ピンチアウトに応じた描画処理が行われたものとする。
【０１６５】
時刻ｔ１０において、タッチ座標Ｔ２が移動した場合を想定する。このとき、座標Ｔ１（図中のａｄｄｒｅｓｓ：０）には、タッチ位置の座標である（Ｘ３３，Ｙ３３）が保持される。座標Ｔ２（図中のａｄｄｒｅｓｓ：１）には、移動後の座標である（Ｘ２２２２２，Ｙ２２２２２）が記録される。時刻ｔ１０においては、座標Ｔ１と座標Ｔ２の中点として、座標（（Ｘ３３＋Ｘ２２２２２）／２，（Ｙ３３＋Ｙ２２２２２）／２）が記録される。
【０１６６】
また、時刻ｔ１０においては、前回の時刻と比較して、タッチ／リリースの変化がないため、図９のステップＳ１０１ではＮＯと判断され、座標Ｔ１と座標Ｔ２の中点の移動速度に基づいて、操作を判定する処理（Ｓ１０９〜Ｓ１１３）が行われる。図１４では、中点の移動速度が速く（中点の移動があり）、スクロールに応じた描画処理が行われたものとする。
【０１６７】
以上のようにして、第１の実施の形態ではタッチ位置から中点が求められ、その移動の状態に基づいてユーザによる操作が判定される。判定結果に基づいて描画処理が行われる。
【０１６８】
［第２の実施の形態］
【０１６９】
図１５は、第２の実施の形態における情報処理装置のＣＰＵ１１が実行する処理を示すフローチャートである。
【０１７０】
第２の実施の形態における情報処理装置は、図９のフローチャートでの処理に代えて図１５のフローチャートで示される処理を実行する。また、第２の実施の形態における情報処理装置は、図１４において、３点目以降のタッチ位置を「ａｄｄｒｅｓｓ：２」以降の欄に記録し、中点に代えて複数のタッチ位置の重心位置を計算する。重心位置の移動に基づいて、ユーザの操作が判定される。
【０１７１】
図１５のフローチャートでの処理は、所定の時間間隔（例えば２０ミリ秒）ごとに繰り返し実行される。
【０１７２】
図１５のステップＳ３０１〜３０５での処理は、図９のステップＳ１０１〜１０５での処理と同じであるため、ここでの説明を繰り返さない。
【０１７３】
ステップＳ３０５でＹＥＳであれば、ステップＳ３０７で座標Ｉとして複数のタッチ位置の重心位置の算出が行われる。
【０１７４】
ステップＳ３０９において、座標Ｉの移動速度がしきい値以上であるかが判定される。なおステップＳ３０９では、座標Ｉが移動したか、または所定時間内の移動の量がしきい値以上かを判定してもよい。
【０１７５】
ステップＳ３０９においてＹＥＳであれば、ステップＳ３１１において、ユーザによる操作が、スクロール操作またはドラッグ操作であると判断し、スクロール操作またはドラッグ操作に応じた画面の描画処理が行われる。なお、スクロール操作であるかドラッグ操作であるかの判断は、画面の表示内容、タッチ位置の表示内容、タッチが行われてからタッチ位置が移動するまでの時間間隔などに基づいて判断することができる。
【０１７６】
ステップＳ３０９においてＮＯであれば、ステップＳ３１３において、ユーザによる操作が、ピンチイン操作、ピンチアウト操作、もしくはローテート操作であると判断し、ピンチイン操作、ピンチアウト操作、またはローテート操作に応じた画面の描画処理が行われる。なお、ピンチイン操作であるか、ピンチアウト操作であるか、ローテート操作であるかは、タッチ位置の移動方向に基づいて判断される。すなわち２個所以上のタッチ位置が中点を中心として所定方向に回転する場合、ローテート操作であると判断され、２個所以上のタッチ位置が中点に近づく方向に移動する場合、ピンチイン操作であると判断され、２個所以上のタッチ位置が中点から遠ざかる方向に移動する場合、ピンチアウト操作であると判断される。
【０１７７】
第２の実施の形態においても第１の実施の形態と同様に、タッチ／リリース状態の変化の有無にかかわらず、処理を大幅に削減することができるという効果がある。
【０１７８】
［第３の実施の形態］
【０１７９】
図１６は、第３の実施の形態における情報処理装置のＣＰＵ１１が実行する処理を示すフローチャートである。
【０１８０】
図１６を参照してステップＳ４０１で、タッチパネルにてプレビュー表示中であるかが判定される。プレビュー表示とは、記憶装置２３に記憶された複数ページからなる画像（スキャンにより得た画像、外部から受信した画像）から少なくとも１ページの画像を縮小表示するものである。
【０１８１】
ステップＳ４０１でＮＯであればここでの処理を終了し、ＹＥＳであれば、ステップＳ４０３からの処理を実行する。ステップＳ４０３では、ユーザのジェスチャー操作検出のサブルーチンを実行する。このサブルーチンの処理は、図９のステップＳ１０１〜１０７、または図１５のステップＳ３０１〜Ｓ３０７の処理と同じである。
【０１８２】
ステップＳ４０５において、中点または重心の移動速度がしきい値以上かを判定することで、ユーザによってなされた操作がスクロール操作であるかを判定する。ＹＥＳであれば、ステップＳ４０７で別のページ（スクロール操作の方向に合わせ、前のページまたは次のページ）の画像がタッチパネルに表示される。
【０１８３】
図１７は、第３の実施の形態における情報処理装置のタッチパネルの表示内容の具体例を示す図である。
【０１８４】
画面中央にＤｎページ目の画像がプレビュー表示されている場合において、ユーザが画面をタッチし、タッチ位置を左に動かすと、グレーアウトされていた次のページ（Ｄ（ｎ＋１）ページ）の画像が画面中央に移動し、Ｄ（ｎ＋１）ページの画像がプレビュー表示の対象となる。また、画面中央にＤｎページ目の画像がプレビュー表示されている場合において、ユーザが画面をタッチし、タッチ位置を右に動かすと、グレーアウトされていた前のページ（Ｄ（ｎ−１）ページ）の画像が画面中央に移動し、Ｄ（ｎ−１）ページの画像がプレビュー表示の対象となる。
【０１８５】
［第４の実施の形態］
【０１８６】
図１８は、第４の実施の形態における情報処理装置のＣＰＵ１１が実行する処理を示すフローチャートである。
【０１８７】
第４の実施の形態における情報処理装置は、図９のフローチャートでの処理に代えて図１８のフローチャートで示される処理を実行する。
【０１８８】
図１８のフローチャートでの処理は、所定の時間間隔（例えば２０ミリ秒）ごとに繰り返し実行される。
【０１８９】
図１８のステップＳ５０１〜Ｓ５１１、Ｓ５１５での処理は、図９のステップＳ１０１〜Ｓ１１１、Ｓ１１３での処理と同じであるため、ここでの説明を繰り返さない。
【０１９０】
図１８においてはステップＳ５０９でＮＯであれば、ステップＳ５１３で２点のタッチ位置の双方が移動したかの判断が行われる。ステップＳ５１３でＹＥＳであるときに、ステップＳ５１５へ進み、ＮＯであればステップＳ５１１へ進む。
【０１９１】
第４の実施の形態においては、２点のタッチ位置の双方が移動したときにのみ、ピンチイン操作、ピンチアウト操作、またはローテート操作に対する処理が実行される。これにより、ユーザの意思に反した誤った処理が行われることが防止されるという効果がある。
【０１９２】
［第５の実施の形態］
【０１９３】
上述の第１〜第４の実施の形態では、中点（または重心）の移動に基づいてユーザの操作を判定するために固定のしきい値を用いたが、第５の実施の形態では、しきい値を状況に応じて変化させるものである。
【０１９４】
図１９は、第５の実施の形態における情報処理装置のＣＰＵ１１が実行する処理を示すフローチャートである。
【０１９５】
図１９のフローチャートは、しきい値を変更する処理を示すフローチャートであり、第１〜第４の実施の形態で示されたフローチャートでの処理と並行して、図１９に示される処理を実行させることができる。
【０１９６】
ステップＳ６０１において、タッチ位置が変化したときに、１点のタッチ位置のみ変化があったか、２点のタッチ位置双方が変化したかを判定する。１点のタッチ位置のみ変化しているのであれば、ステップＳ６０３においてしきい値を例えば１２ｄｏｔと小さくする。２点のタッチ位置双方が変化しているのであれば、ステップＳ６０５においてしきい値を例えば５０ｄｏｔと大きくする。
【０１９７】
１点のタッチ位置のみが変化している場合は、ユーザの操作がスクロール操作またはドラッグ操作である可能性が高い。このため、ステップＳ６０３ではしきい値を小さくし、スクロール操作またはドラッグ操作であると判定されやすくするものである。一方で、２点のタッチ位置双方が変化している場合は、ユーザの操作がピンチイン操作、ピンチアウト操作、またはローテート操作である可能性が高い。このため、ステップＳ６０５ではしきい値を大きくし、ピンチイン操作、ピンチアウト操作、もしくはローテート操作であると判定されやすくするものである。
【０１９８】
［第６の実施の形態］
【０１９９】
図２０は、第６の実施の形態における情報処理装置のＣＰＵ１１が実行する処理を示すフローチャートである。
【０２００】
第６の実施の形態における情報処理装置は、図９のフローチャートでの処理に代えて図２０のフローチャートで示される処理を実行する。
【０２０１】
図２０のフローチャートでの処理は、所定の時間間隔（例えば２０ミリ秒）ごとに繰り返し実行される。
【０２０２】
図２０のステップＳ７０１〜７０７での処理は、図９のステップＳ１０１〜１０７での処理と同じであるため、ここでの説明を繰り返さない。
【０２０３】
ステップＳ７０７での処理の後、ステップＳ７０９において、前回のユーザ操作の判定結果がピンチ操作またはローテート操作であったかが判定される。ＹＥＳであればステップＳ７１１において、しきい値に第１の値をセットする。ＮＯであればステップＳ７１３において、しきい値に第２の値をセットする。ここで第１の値＞第２の値の関係が成立する。その後、ステップＳ７１５からの処理が行われる。図２０のステップＳ７１５〜７１９での処理は、図９のステップＳ１０９〜１１３での処理と同じであるため、ここでの説明を繰り返さない。
【０２０４】
前回のユーザ操作の判定結果がピンチ操作またはローテート操作であった場合は、次の検出タイミングでのユーザの操作もピンチ操作またはローテート操作である可能性が高い。このため、ステップＳ７１１ではしきい値を大きくし、ピンチ操作またはローテート操作であると判定されやすくするものである。一方で、前回のユーザ操作の判定結果がスクロール操作またはドラッグ操作であった場合は、次の検出タイミングでのユーザの操作もスクロール操作またはドラッグ操作である可能性が高い。このため、ステップＳ７１３ではしきい値を小さくし、スクロール操作またはドラッグ操作であると判定されやすくするものである。
【０２０５】
［第７の実施の形態］
【０２０６】
図２１は、第７の実施の形態における情報処理装置のＣＰＵ１１が実行する処理を示すフローチャートである。
【０２０７】
第７の実施の形態における情報処理装置は、図９のフローチャートでの処理に代えて図２１のフローチャートで示される処理を実行する。
【０２０８】
図２１のフローチャートでの処理は、所定の時間間隔（例えば２０ミリ秒）ごとに繰り返し実行される。
【０２０９】
図２０のステップＳ８０１〜８１１での処理は、図９のステップＳ１０１〜１１１での処理と同じであるため、ここでの説明を繰り返さない。
【０２１０】
ステップＳ８０９でＮＯであれば、ステップＳ８１３において、前回のユーザ操作の判定結果がピンチ操作であったかが判定される。ＮＯであれば、ピンチ操作が始まったものとして、ステップＳ８１５において「ピンチ操作開始時からのタッチ位置の移動量」として「０」を記録する。その後ステップＳ８１７において、しきい値の初期値をセットする。ここでセットされるしきい値は、先にステップＳ８０９で用いたしきい値と同じであってもよいし、より大きいものであってもよい。より大きいしきい値とする場合、次回の周期におけるステップＳ８０９での判定において、ＮＯと判定されやすくなる。すなわち、一旦ステップＳ８０９でＮＯと判断された場合（操作がピンチであると判断された場合）に、次の周期における判定でもピンチ操作と判断されやすくするものである。
【０２１１】
ステップＳ８１９において、ピンチ操作に応じた描画処理が行われる。なお、ここではローテート処理の判別については省略する。
【０２１２】
ステップＳ８１３においてＹＥＳと判断されたのであれば、ステップＳ８２１において、「ピンチ操作開始時からのタッチ位置の移動量」に、前回からのタッチ位置の移動量を加える。ステップＳ８２３において、「ピンチ操作開始時からのタッチ位置の移動量」の値に基づいて、しきい値をセットする。ここでは、「ピンチ操作開始時からのタッチ位置の移動量」が大きいほど、大きなしきい値がセットされる。
【０２１３】
前回のユーザ操作の判定結果がピンチ操作であった場合は、次の検出タイミングでのユーザの操作もピンチ操作である可能性が高い。このため、ステップＳ８２３ではしきい値を大きくしていき、次回の判定においてもピンチ操作であると判定されやすくするものである。またここではピンチ操作が継続するほどに、しきい値を大きくすることとしている。
【０２１４】
［第８の実施の形態］
【０２１５】
図２２は、第８の実施の形態における情報処理装置のＣＰＵ１１が実行する処理を示すフローチャートである。
【０２１６】
第８の実施の形態における情報処理装置は、図２１のステップＳ８１３〜Ｓ８２３での処理に代えて、図２２のフローチャートで示される処理を実行する。
【０２１７】
すなわちステップＳ８０９（図２１）でＮＯであれば、ステップＳ９０１（図２２）において、前回のユーザ操作の判定結果がローテート操作であったかが判定される。ＮＯであれば、ローテート操作が始まったものとして、ステップＳ９０３においてローテート操作開始時の角度（ローテート操作開始時の、２点のタッチ位置を結んだ直線のなす角度）を記録する。その後ステップＳ９０５において、しきい値の初期値をセットする。ここでセットされるしきい値は、先にステップＳ８０９で用いたしきい値と同じであってもよいし、より大きいものであってもよい。より大きいしきい値とする場合、次回の周期におけるステップＳ８０９での判定において、ＮＯと判定されやすくなる。すなわち、一旦ステップＳ８０９でＮＯと判断された場合（操作がローテートであると判断された場合）に、次の周期における判定でもローテート操作と判断されやすくするものである。
【０２１８】
ステップＳ９０７において、ローテート操作に応じた描画処理が行われる。なお、ここではピンチ処理の判別については省略する。
【０２１９】
ステップＳ９０１においてＹＥＳと判断されたのであれば、ステップＳ９０９において、現在の２点のタッチ位置を結んだ直線のなす角度と、ステップＳ９０３で記録されたローテート操作開始時の角度とを比較する。ステップＳ９１１において、比較結果が所定角度（例えば３０°）以上であるかを判定する。ＹＥＳであれば、ステップＳ９１３において、しきい値を初期値よりも小さな値にセットし、ステップＳ９０７へ進む。ＮＯであればそのままステップＳ９０７へ進む。
【０２２０】
ローテート操作は３０°程度で終了する可能性が高い。このため、ステップＳ９１１で初期角度から３０°以上回転が行われたのであれば、ステップＳ９１３において、しきい値を小さくし、次回の判定においてはスクロール操作またはドラッグ操作であると判定されやすくするものである。
【０２２１】
［第９の実施の形態］
【０２２２】
図２３は、第９の実施の形態における情報処理装置のＣＰＵ１１が実行する処理を示すフローチャートである。
【０２２３】
第９の実施の形態における情報処理装置は、図９のフローチャートでの処理に代えて図２３のフローチャートで示される処理を実行する。
【０２２４】
図２３のフローチャートでの処理は、所定の時間間隔（例えば２０ミリ秒）ごとに繰り返し実行される。
【０２２５】
図２３のステップＳ１００１〜１００９での処理は、図９のステップＳ１０１〜１０９での処理と同じであるため、ここでの説明を繰り返さない。
【０２２６】
ステップＳ１００９でＹＥＳであれば、ステップＳ１０１１において、前回のユーザ操作の判定結果がスクロール操作であったかが判定される。ＮＯであれば、スクロール操作が始まったものとして、ステップＳ１０１５においてしきい値として初期値をセットする。ここでセットされるしきい値は、先にステップＳ１００９で用いたしきい値と同じであってもよいし、より小さいものであってもよい。より小さいしきい値とする場合、次回の周期におけるステップＳ１００９での判定において、ＹＥＳと判定されやすくなる。すなわち、一旦ステップＳ１００９でＹＥＳと判断された場合（操作がスクロールであると判断された場合）に、次の周期における判定でもスクロール操作と判断されやすくするものである。
【０２２７】
ステップＳ１０１１においてＹＥＳであれば、ステップＳ１０１３においてしきい値をより小さな値に変更する。より小さいしきい値とする場合、次回の周期におけるステップＳ１００９での判定において、さらにＹＥＳと判定されやすくなる。ステップＳ１０１７においては、スクロール操作に応じた描画処理が行われる。なお、ここではドラッグ処理の判別については省略する。
【０２２８】
ステップＳ１００９でＮＯであれば、ステップＳ１０１９において、前回のユーザ操作の判定結果がピンチ操作であったかが判定される。ＮＯであれば、ピンチ操作が始まったものとして、ステップＳ１０２１においてしきい値として初期値をセットする。ここでセットされるしきい値は、先にステップＳ１００９で用いたしきい値と同じであってもよいし、より大きいものであってもよい。より大きいしきい値とする場合、次回の周期におけるステップＳ１００９での判定において、ＮＯと判定されやすくなる。すなわち、一旦ステップＳ１００９でＮＯと判断された場合（操作がピンチであると判断された場合）に、次の周期における判定でもピンチ操作と判断されやすくするものである。
【０２２９】
ステップＳ１０１９においてＹＥＳであれば、ステップＳ１０２３においてしきい値をより大きな値に変更する。より大きいしきい値とする場合、次回の周期におけるステップＳ１００９での判定において、さらにＮＯと判定されやすくなる。ステップＳ１０２５においては、ピンチ操作に応じた描画処理が行われる。なお、ここではローテート処理の判別については省略する。
【０２３０】
［実施の形態における効果］
【０２３１】
以上に述べた実施の形態によると、２点以上検出可能なタッチパネルを搭載した情報処理装置において、タッチ状態かリリース状態かにかかわらず、常に２点以上の座標が検出される。座標は、実測値（現在の現実のタッチ位置）である場合と、格納されている値（最後のタッチ位置）である場合とがある。この２点以上の座標から、所定の規則で求められる位置（例えば中点）が算出される。求められた位置の変動に基づき、ユーザの操作が判定される。
【０２３２】
本実施の形態における処理はＣＰＵの処理上、例えばシフト処理を行うのみで済み、例えば処理時間が少なくて済む座標の中点を常に検出する事で、スクロール（フリック）時は中点が大きく移動し、ピンチ時は中点が殆ど移動しないという特性を用いて、検出した中点からユーザ操作を判断することができる。すなわち、簡単な処理でジェスチャー操作の判別処理を実現することができる。
【０２３３】
また以上に述べた実施の形態によると、タッチパネル上の２点以上がタッチされている場合においても、タッチ位置が早く動かされることにより中点（または重心）座標が早く移動すると、スクロール操作またはドラッグ操作に応じた処理が行われる。このため、ユーザの操作性がよいという効果がある。
【０２３４】
［その他］
【０２３５】
上述の実施の形態では、画像形成装置（または画像処理装置）に搭載される情報処理装置を例に挙げて説明を行ったが、本発明は、スマートフォン、タブレット端末、ＰＣ（パーソナルコンピュータ）、家電製品、オフィス機器、制御機械などにユーザインターフェースとして搭載される情報処理装置に適用することも可能である。
【０２３６】
画像形成装置としては、モノクロ／カラーの複写機、プリンタ、ファクシミリ装置やこれらの複合機（ＭＦＰ）などいずれであってもよい。電子写真方式により画像を形成するものに限られず、例えばいわゆるインクジェット方式により画像を形成するものであってもよい。
【０２３７】
上述の実施の形態における処理は、ソフトウェアによって行っても、ハードウェア回路を用いて行ってもよい。
【０２３８】
上述の実施の形態における処理を実行するプログラムを提供することもできるし、そのプログラムをＣＤ−ＲＯＭ、フレキシブルディスク、ハードディスク、ＲＯＭ、ＲＡＭ、メモリカードなどの記録媒体に記録してユーザに提供することにしてもよい。プログラムはインターネットなどの通信回線を介して、装置にダウンロードするようにしてもよい。上記のフローチャートで文章で説明された処理は、そのプログラムに従ってＣＰＵなどにより実行される。
【０２３９】
上記実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０２４０】
１  画像処理装置
４  操作パネル
５  表示部（表示手段）
６ａ  タッチセンサ
１１  ＣＰＵ
１３  プログラム
３１  設定部
３２  表示制御部
３３  操作イベント判定部
３４  制御実行部（制御手段）
Ｔ１，Ｔ２  タッチ位置（座標）
Ｉ  中点座標
【図１】
2014106853.tif 000003
【図２】
2014106853.tif 000004
【図３】
2014106853.tif 000005
【図４】
2014106853.tif 000006
【図５】
2014106853.tif 000007
【図６】
2014106853.tif 000008
【図７】
2014106853.tif 000009
【図８】
2014106853.tif 000010
【図９】
2014106853.tif 000011
【図１０】
2014106853.tif 000012
【図１１】
2014106853.tif 000013
【図１２】
2014106853.tif 000014
【図１３】
2014106853.tif 000015
【図１４】
2014106853.tif 000016
【図１５】
2014106853.tif 000017
【図１６】
2014106853.tif 000018
【図１７】
2014106853.tif 000019
【図１８】
2014106853.tif 000020
【図１９】
2014106853.tif 000021
【図２０】
2014106853.tif 000022
【図２１】
2014106853.tif 000023
【図２２】
2014106853.tif 000024
【図２３】
2014106853.tif 000025
【図２４】
2014106853.tif 000026