(57)【要約】【課題】同一のジェスチャー操作によって実行可能な機能を増やすことで、タッチパネル制御装置の操作性を向上させる。【解決手段】タッチパネル制御装置であるデジタルカメラ２００は、タッチパネル２０９へのタッチを検出し、検出したタッチの移動方向と移動量を算出し、移動方向と移動量が所定の条件を満たした場合には特定のジェスチャーであると判定し、判定した特定のジェスチャーに割り当てられた機能を実行するとともに、単位時間当たりの移動量が閾値を上回った場合、１点タッチから２点タッチへの変化または２点タッチから１点タッチへの変化が発生したと判定し、１点タッチから２点タッチへの変化または２点タッチから１点タッチへの変化が発生したと判定した場合、ジェスチャー判定に用いる所定の条件および特定のジェスチャーに割り当てられた機能を変更する。【選択図】図１
2014120052.tif 000002
【特許請求の範囲】
【請求項１】
タッチパネルと、
前記タッチパネルへのタッチを検出する検出手段と、
前記検出手段で検出したタッチの移動方向と移動量を算出する算出手段と、
前記算出手段での算出の結果に基づいて、特定の軌跡パターンであるかを判定するジェスチャー判定手段と、
前記ジェスチャー判定手段が判定した前記特定の軌跡パターンに割り当てられた機能を実行する実行手段と、
前記タッチパネルに対して、１点がタッチされているか、または、異なる２点がタッチされているかを判定する判定手段と、
前記判定手段により２点がタッチされていると判定された場合、前記軌跡パターンに割り当てられる機能を変更する変更手段と、
を備えることを特徴とするタッチパネル制御装置。
【請求項２】
前記実行手段により実行される機能が割り当てられている前記軌跡パターンは、複数の移動方向への移動を含む軌跡パターンであることを特徴とする請求項１に記載のタッチパネル制御装置。
【請求項３】
前記ジェスチャー判定手段は、前記算出手段で算出した移動方向と移動量が所定の条件を満たした場合に、前記特定の軌跡パターンを有する特定のジェスチャーであると判定し、
前記変更手段は、前記判定手段により２点がタッチされていると判定された場合、前記ジェスチャー判定手段が前記特定の軌跡パターンを有する前記特定のジェスチャーの判定に用いる前記所定の条件を変更することを特徴とする請求項１または２に記載のタッチパネル制御装置。
【請求項４】
前記判定手段は、前記算出手段で算出した単位時間当たりのタッチの移動量が閾値を上回った場合、１点タッチから２点タッチへの変化または２点タッチから１点タッチへの変化が発生したと判定することを特徴とする請求項３に記載のタッチパネル制御装置。
【請求項５】
前記変更手段は、前記実行手段が実行する機能の設定を変更することを特徴とする請求項３に記載のタッチパネル制御装置。
【請求項６】
前記変更手段は、前記判定手段で１点タッチから２点タッチへ切り換えが発生したと判定した場合、前記ジェスチャー判定手段が判定に用いる所定の条件である移動量を半分に変更し、前記判定手段で２点から１点タッチへ切り換えが発生したと判定した場合、前記ジェスチャー判定手段が判定に用いる所定の条件である移動量を２倍に変更することを特徴とする請求項５に記載のタッチパネル制御装置。
【請求項７】
前記ジェスチャー判定手段は、前記タッチパネルへの１点目のタッチが第１の方向へ所定の移動量を超えて移動した後、第１の方向とは異なる第２の方向へ所定の移動量を超えて移動した場合に、前記特定のジェスチャーであると判定することを特徴とする請求項３に記載のタッチパネル制御装置。
【請求項８】
前記判定手段が１点タッチから２点タッチへ切り換えが発生したと判定した場合に、２点目のタッチ位置が特定のジェスチャーにおけるタッチの第２の方向への移動を阻害するか否かを判定するジェスチャー阻害判定手段を更に有し、
前記ジェスチャー阻害判定手段が１点目のタッチの第２の方向への移動を阻害すると判定した場合には、前記変更手段は、第１の方向への所定の移動量を、２点目のタッチ位置が特定のジェスチャーにおける第２の方向への移動を阻害しない値に変更することを特徴とする請求項７に記載のタッチパネル制御装置。
【請求項９】
タッチ位置の移動方向と移動量が所定の条件を満たすような移動先の位置に特定のジェスチャーのガイド表示を行う表示手段と、
前記判定手段で１点タッチから２点タッチへ切り換えが発生したと判定した場合、２点目のタッチ位置が特定のジェスチャーにおける前記ガイド表示への移動を阻害するか否かを判定するガイド表示阻害判定手段と、
前記ガイド表示阻害判定手段で阻害すると判定した場合、２点目のタッチ位置が特定のジェスチャーにおける前記ガイド表示への移動を阻害しない位置へガイド表示位置を変更する表示変更手段と、
をさらに備えることを特徴とする請求項７または８に記載のタッチパネル制御装置。
【請求項１０】
タッチパネルへのタッチを検出するステップと、
検出したタッチの移動方向と移動量を算出するステップと、
タッチの移動方向と移動量の算出の結果に基づいて、特定の軌跡パターンであるかを判定するステップと、
前記特定の軌跡パターンに割り当てられた機能を実行するステップと、
前記タッチパネルに対して、１点がタッチされているか、または、異なる２点がタッチされているかを判定するステップと、
２点がタッチされていると判定された場合、前記軌跡パターンに割り当てられる機能を変更するステップと、
を有することを特徴とするタッチパネル制御装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、タッチパネル制御装置とタッチパネル制御装置の制御方法に関するものである。特にタッチパネルへのジェスチャー操作入力のための制御装置とその制御方法に関するものである。
【背景技術】
【０００２】
近年、表示部にタッチパネルを備え、直感的な操作が可能な機器が登場している。このような機器は、表示部に表示したボタンアイコン上のタッチパネルがタッチされると、タッチされたボタンアイコンに対応する機能を実行する。また、このような機器は、ジェスチャー判定による機能実行では、タッチパネルに対するタッチ軌跡が所定の軌跡パターンに該当した場合に、軌跡パターンに予め割り当てられた機能を実行する。そして、軌跡パターンに対しては、様々な機能を割り当てることが可能である。このため、利用頻度の高い機能を割り当てておけば、ユーザーは、ジェスチャー判定によって素早く機能を実行できる。したがって、機器の操作性が向上する。例えば特許文献１には、予め登録されたジェスチャーと機能の対応テーブルを参照して入力されたジェスチャーに対応する機能を実行するだけでなく、ユーザーが好みのジェスチャーを作成して対応テーブルを任意に拡張する手段が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０００−１３７５５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に開示された従来技術では、実行可能な機能が増えると、ユーザーが事前に覚えておかなければならないジェスチャー数も増えてしまうという煩わしさがあった。また、各ジェスチャーの差異は明確に認識できる必要があるため、各ジェスチャーの差別化を図りながら数を増やすと、ジェスチャーの軌跡が複雑になり、かえって操作しづらくなるといった課題がある。
そこで、本発明は上記課題を解決するために成されたものである。本発明の目的は、同一のジェスチャー操作によって実行可能な機能を増やすことで、操作性を向上させたタッチパネル制御装置を提供することである。
【課題を解決するための手段】
【０００５】
上記目的を達成するために、本発明は、タッチパネルと、前記タッチパネルへのタッチを検出する検出手段と、前記検出手段で検出したタッチの移動方向と移動量を算出する算出手段と、前記算出手段での算出の結果に基づいて、特定の軌跡パターンであるかを判定するジェスチャー判定手段と、前記ジェスチャー判定手段が判定した前記特定の軌跡パターンに割り当てられた機能を実行する実行手段と、前記タッチパネルに対して、１点がタッチされているか、または、異なる２点がタッチされているかを判定する判定手段と、前記判定手段により２点がタッチされていると判定された場合、前記軌跡パターンに割り当てられる機能を変更する変更手段と、を備えることを特徴とする。
【発明の効果】
【０００６】
本発明によれば、同一のジェスチャー操作によって実行可能な機能を増やすことで、操作性を向上させたタッチパネル制御装置を提供することができる。
【図面の簡単な説明】
【０００７】
【図１】第１の実施形態におけるデジタルカメラのブロック図である。
【図２】第１の実施形態における抵抗膜式タッチパネルの構成図である。
【図３】第１の実施形態におけるジェスチャー判定パターンと機能の対応表である。
【図４】第１の実施形態における１点タッチジェスチャーと２点タッチジェスチャーの違いを模式的に示す図である。
【図５】第１の実施形態におけるジェスチャー判定処理のフローチャートである。
【図６】第１の実施形態におけるジェスチャー機能ガイド表示の例を模式的に示す図である。
【図７】第１の実施形態における１点・２点タッチ切り換え処理のフローチャートである。
【図８】第２の実施形態におけるジェスチャー機能ガイド表示の例を模式的に示す図である。
【図９】第３の実施形態におけるジェスチャー阻害領域を模式的に示す図である。
【図１０】第３の実施形態におけるガイド表示阻害領域を模式的に示す図である。
【発明を実施するための形態】
【０００８】
以下に、本発明の好ましい実施の形態を、添付の図面に基づいて詳細に説明する。以下に示す本発明の各実施形態においては、タッチパネル制御装置として、タッチパネルを有するデジタルカメラを示す。ただし、本発明が適用できるタッチパネル制御装置は、デジタルカメラに限定されるものではない。本発明は、タッチパネルを有する各種装置に適用できる。
【０００９】
（第１の実施形態）
まず、本発明の第１の実施形態について説明する。
図１は、本発明の第１の実施形態にかかるタッチパネル制御装置の一例としてのデジタルカメラ２００の構成を模式的に示すブロック図である。
２０１はＣＰＵ（中央処理装置）である。ＣＰＵ２０１は、各種プログラムにしたがって所定の演算処理を行う。また、ＣＰＵ２０１は、各種プログラムを実行することによって、内部バス２０２を通じてデジタルカメラ２００の各部の制御（システム制御）を行う。
２０３はＲＯＭである。ＲＯＭ２０３には、ＣＰＵ２０１が実行する各種プログラムが格納される。
２０４はＲＡＭである。ＲＡＭ２０４は、ＣＰＵ２０１の演算処理用ワークメモリとして使用される。
２０５は記憶媒体ドライブである。２０６は外部記憶媒体である。２０７は撮像部である。記憶媒体ドライブ２０５は外部記憶媒体２０６に対してデータの読み出し、書き込みを行う装置である。外部記憶媒体２０６は、フラッシュメモリ等で構成される。撮像部２０７が撮像した画像は、記憶媒体ドライブ２０５を通じて外部記憶媒体２０６に記憶される。
２０８は表示部である。表示部２０８は、液晶表示装置（ＬＣＤ）等で構成される。そして、表示部２０８は、ＣＰＵ２０１による制御にしたがって、画像や操作ボタンアイコン等の表示アイテムを表示する。
２０９はタッチパネルである。２１０は入力部である。タッチパネル２０９は、表示部２０８の画面上に設けられる。タッチパネル２０９には、たとえば、透明の抵抗膜式タッチパネルが適用される。ユーザーはタッチパネル２０９の任意の位置をタッチすることで、デジタルカメラ２００に指示を入力することができる。入力部２１０はタッチパネル２０９のタッチ位置を検出し、タッチ位置の位置情報をＣＰＵ２０１に通知する。
【００１０】
図２は、タッチパネル２０９の構成を模式的に示す図である。図２を用いて、デジタルカメラ２００の位置座標の検出動作を説明する。この検出動作を実行するためのコンピュータプログラムは、あらかじめＲＯＭ２０３に格納されている。そして、ＣＰＵ２０１がこのコンピュータプログラムをＲＯＭ２０３から読み出し、ＲＡＭ２０４に展開して実行する。そして、タッチパネル２０９や入力部２１０は、ＣＰＵ２０１の制御にしたがって動作する。これにより、この検出動作が実現する。
３００は抵抗膜の上シートである。３０１は抵抗膜の下シートである。タッチパネル２０９は、所定の抵抗値を有する２枚の抵抗膜である上シート３００と下シート３０１が微少な間隙を介して配置されるという構成を有する。
３０２は電極Ｘ＋である。３０３は電極Ｘ−である。それぞれ下シート３０１の右辺、左辺に配置されている。
３０４は電極Ｙ＋、３０５は電極Ｙ−であり、それぞれ上シート３００の上辺、下辺に配置されている。
【００１１】
上シート３００上の任意の位置がタッチされると、上シート３００と下シート３０１がタッチ位置で電気的に接続する。この際、ＣＰＵ２０１が電極Ｘ＋３０２と電極Ｘ−３０３の間に基準電圧を印加すると、入力部２１０は、タッチ位置で分圧した電圧値を、上シート３００を介して検出することができる。入力部２１０（またはＣＰＵ２０１）は、タッチパネル２０９の左下端を原点、横方向をＸ軸、縦方向をＹ軸として座標系３０６を設ける。そして、入力部２１０は、基準電圧と検出電圧の分圧比と下シート３０１の横方向長さから、タッチ位置のＸ座標を算出する。また、電極Ｙ＋３０４と電極Ｙ−３０５の間に基準電圧が印加されると、入力部２１０は、タッチ位置で分圧した電圧値を、下シート３０１を介して検出することができる。そして、入力部２１０は、基準電圧と検出電圧の分圧比と、上シート３００の縦方向長さから、タッチ位置のＹ座標を算出する。
以上のように、入力部２１０は、例えば１点Ａがタッチされると、座標（Ｘａ，Ｙａ）を検出し、１点Ｂがタッチされると、座標（Ｘｂ，Ｙｂ）を検出する。
一方、２点の両方がタッチされた場合、上シート３００と下シート３０１が２点において並列に接続し、ＸおよびＹ方向の抵抗値が減少する。この結果、検出電圧から算出される座標は、２点を結ぶ直線の中点となる。例えば、１点Ａがタッチされた状態でさらに点Ｂがタッチされると、入力部２１０は、点Ａと点Ｂを結ぶ直線の中点である点Ｃの座標（Ｘｃ，Ｙｃ）を検出する。
そして、入力部２１０は、ＣＰＵ２０１の制御にしたがって、単位時間毎に上記の検出動作を繰り返して実行し、算出した座標をＣＰＵ２０１に通知する。ＣＰＵ２０１は、通知された座標に基づいて、ユーザーがタッチパネル２０９を指やペンでタッチする（以下タッチダウンと称する）、離す（以下タッチアップと称する）、タッチしたまま移動する（以下ドラッグと称する）といった動作を検出する。また、ＣＰＵ２０１は、入力部２１０から通知された座標から、ドラッグの移動方向と移動量を算出する。
【００１２】
また、ＣＰＵ２０１がコンピュータプログラムを実行することにより、１点タッチと２点タッチの切り換え発生を検出することができる。１点タッチの状態でドラッグされた場合、入力部２１０により検出される座標の単位時間当たりの移動量は小さく、所定の値を超えない連続した座標変化となる。一方、１点タッチから２点タッチ、２点タッチから１点タッチに切り換わった場合、検出される座標の単位時間当たりの移動量は大きく、所定の値を超える瞬間的な座標変化となる。例えば、１点Ａがタッチされた状態でさらに点Ｂがタッチされると、入力部２１０は、座標（Ｘａ，Ｙａ）から座標（Ｘｃ，Ｙｃ）への瞬間的な座標変化を検出することになる。そこで、ＣＰＵ２０１は、単位時間当たりの移動量が所定の値を超えたかどうか判定することで、１点タッチと２点タッチの切り換え発生を検出する。
【００１３】
図３（ａ）（ｂ）は、本実施形態におけるジェスチャー判定パターンと割り当て機能の対応の例を示す表である。
ＣＰＵ２０１は、タッチダウンの検出から所定の距離を超えてのドラッグを経てタッチアップを検出したときに、ジェスチャー操作されたと判断する。そして、ＣＰＵ２０１は、ジェスチャー操作の軌跡パターンが、予め登録されている特定のジェスチャー判定パターンに該当するかどうかの判定（ジェスチャー判定）を行う。図３（ａ）（ｂ）に示すように、登録されている特定のジェスチャー判定パターンは、第１の方向に所定の移動量を超えて移動した後、第２の方向に所定の移動量を超えて移動する軌跡パターンである。第１の方向をＹ方向とし、第１の方向における所定の移動量を閾値Ａ１（＞０）およびＡ２（＜０）で定義する。また、第２の方向をＸ方向とし、第２の方向における所定の移動量を閾値Ｄ１（＞０）およびＤ２（＜０）で定義する。
このようにＣＰＵ２０１は、ユーザーによるドラッグの移動方向と移動距離が所定の条件を満たす場合には、ユーザーによる操作が特定のジェスチャーであると判定するジェスチャー判定を行う。
ＣＰＵ２０１は、いずれかのジェスチャー判定パターンに該当すると判定した場合には、該当した特定のジェスチャーに割り当てられている機能を実行する。これらの機能を実行するためのコンピュータプログラムは、あらかじめＲＯＭ２０３に格納されており、ＣＰＵ２０１はこのプログラムを読み出して実行する。これにより、それぞれの特定のジェスチャーに割り当てられている機能が実行される。なお、機能の割り当てはユーザーによって任意に変更可能である。利用頻度の高い機能はユーザー毎に異なる。また、機能実行までにいくつかの操作と画面遷移を必要とする機能もある。これらの機能を割り当てておけば、ユーザーは、ジェスチャー判定によって素早く機能を実行できる。
【００１４】
図３（ａ）は、１点タッチによる４つのジェスチャー判定パターンと割り当て機能の例を示す。
ジェスチャーＮｏ．１の機能は分類指定である。ＣＰＵ２０１は、この機能を実行すると、表示部２０８の表示画面を分類指定画面に遷移させ、表示中の画像を人物／風景／行事といった予め用意されたカテゴリに分類する。
ジェスチャーＮｏ．２の機能は色調変更である。ＣＰＵ２０１は、この機能を実行すると、表示部２０８の表示画面を色調変更画面に遷移させ、表示中の画像に対して白黒／青強調／赤強調といった色調変更を行う。
ジェスチャーＮｏ．３の機能はリサイズである。ＣＰＵ２０１は、この機能を実行すると、表示部２０８の表示画面をリサイズ画面に遷移させ、表示中の画像を現状より小さな画素数に変更する。
ジェスチャーＮｏ．４の機能は絞込み表示である。ＣＰＵ２０１は、この機能を実行すると、表示部２０８の表示画面を絞込み表示画面に遷移させ、分類別／日付別／静止画別／動画別といった画像を属性別に表示するモードへ移行する。
【００１５】
図３（ｂ）は２点タッチによる４つのジェスチャー判定パターンと割り当て機能の例を示す。
ジェスチャーＮｏ．５の機能は消去である。ＣＰＵ２０１は、この機能を実行すると、表示部２０８の画面に表示中の画像を消去する。
ジェスチャーＮｏ．６の機能は保護である。ＣＰＵ２０１は、この機能を実行すると、表示部２０８に表示中の画像の保護または保護解除を行う。保護された画像は、保護解除されるまで消去できない。
ジェスチャーＮｏ．７の機能は回転である。ＣＰＵ２０１は、この機能を実行すると、表示部２０８に表示中の画像の向きを回転させる。
ジェスチャーＮｏ．８の機能はスライドショーである。ＣＰＵ２０１は、この機能を実行すると、表示部２０８の表示画面をスライドショー画面に遷移させ、記憶されている画像を１枚ずつ順次自動的に表示していく。
【００１６】
ここで、図４を用いて、１点タッチジェスチャーと２点タッチジェスチャーの違いを説明する。
１点タッチジェスチャーとは、１点のみをタッチして行うジェスチャー操作を指す。例えばドラッグして軌跡５００のようなジェスチャー判定パターンを描く操作である。ＣＰＵ２０１と入力部２１０は、座標検出動作において軌跡５００を検出し、ジェスチャー判定に用いる。
一方、２点タッチジェスチャーとは、１点タッチジェスチャーの途中で２点目を追加してタッチし、２点目のタッチ位置を固定したまま１点目で行うジェスチャー操作である。例えば、軌跡５００を描く途中で点Ａを追加してタッチし、点Ａをタッチしたまま引き続きドラッグして軌跡５００のようなジェスチャー判定パターンを描く操作である。実際にドラッグして描く軌跡は軌跡５００であるが、２点タッチでは、入力部２１０は、タッチされた２点間を結ぶ直線の中点の座標をタッチ位置として検出する。このため、ＣＰＵ２０１と入力部２１０の座標検出動作によって検出される軌跡は、軌跡５０１ａになる。２点タッチジェスチャーの軌跡５０１ａのＸ方向およびＹ方向の移動量は、１点タッチジェスチャーの軌跡５００の半分（１／２）である。固定する２点目は、軌跡５００上を除く任意の位置で構わない。例えばユーザーが点Ａではなく点Ｂをタッチした場合、ＣＰＵ２０１と入力部２１０は、座標検出動作によって軌跡５０１ｂを検出する。そしてＣＰＵ２０１は、検出した軌跡をジェスチャー判定に用いる。２点タッチジェスチャーの軌跡５０１ｂのＸ方向およびＹ方向の移動量は、１点タッチジェスチャーの軌跡５００の半分（１／２）であり、軌跡５０１ａと軌跡５０１ｂの移動量は一致する。ＣＰＵ２０１は、ジェスチャー判定を、移動量の判定によって行う。このため、点Ａと点Ｂのいずれがタッチされた場合でも、ＣＰＵ２０１は、同様の判定ができる。
【００１７】
上記の違いより、図３に示すように、ＣＰＵ２０１は、２点タッチジェスチャーにおけるジェスチャー判定パターンの移動量閾値を、１点タッチジェスチャーにおける閾値の１／２に変更する。すなわち、移動量の閾値Ａ１、Ａ２、Ｄ１、Ｄ２は、１点タッチジェスチャーにおいてそれぞれ定数ａ１、ａ２、ｄ１、ｄ２で表すと、２点タッチジェスチャーにおいてはそれぞれ（ａ１）／２、（ａ２）／２、（ｄ１）／２、（ｄ２）／２で表せる。この移動量閾値変更によって、１点タッチジェスチャーと２点タッチジェスチャーを同一のジェスチャー操作にできる。例えば、ジェスチャーＮｏ．５は、ジェスチャーＮｏ．１と同一の軌跡を描く操作である。このため、ユーザーは、ジェスチャーＮｏ．１の途中で２点目をタッチするだけで、ジェスチャーＮｏ．５を実行できる。ジェスチャーＮＯ．２〜４とジェスチャーＮｏ．６〜８の関係性についても同様である。仮に、移動量閾値を変更しない場合、ＣＰＵ２０１は、２点タッチジェスチャーを、１点タッチジェスチャーと同様の移動量判定値で判定する。入力部２１０により検出される軌跡は、実際にユーザーによりドラッグして描かれる軌跡の半分である。このため、ユーザーは、ジェスチャー確定のために、１点タッチジェスチャーの２倍の距離をドラッグする必要がある。このように、ＣＰＵ２０１が移動量閾値を変更しない場合には、１点タッチジェスチャーと同一のジェスチャー操作で２点タッチジェスチャーを実行することが不可能になる。
【００１８】
図５は、ジェスチャー判定処理を示すフローチャートである。図５を用いてジェスチャー判定処理の手順を説明する。このジェスチャー判定処理を実行するためのコンピュータプログラムは、あらかじめＲＯＭ２０３に格納されている。そして、ＣＰＵ２０１がこのコンピュータプログラムをＲＯＭ２０３から読出し、ＲＡＭ２０４に展開して実行する。これにより、このジェスチャー判定処理が実現する。ＣＰＵ２０１は、外部記憶媒体２０６に格納されている画像が表示部２０８に表示されている状態において、ユーザーによるタッチパネル２０９のタッチを検出すると、図５に示すフローを開始する。
【００１９】
Ｓ５０１は変数初期化のステップである。このステップでは、ＣＰＵ２０１は、ジェスチャー判定処理に関わる全ての変数を初期化する。このステップで初期化される変数とその初期値を以下に示す。各変数の詳細については後述する。
１点・２点タッチ判定ｆｌａｇ  ：  ０
現在座標（Ｘ１，Ｙ１）  ：  （０，０）
前回座標（Ｘ０，Ｙ０）  ：  （０，０）
単位時間当たりの移動量（Ｓｘ＿ｖ，Ｓｙ＿ｖ）  ：  （０，０）
前回移動量（Ｓｘ０，Ｓｙ０）  ：  （０，０）
現在移動量（Ｓｘ１，Ｓｙ１）  ：  （０，０）
第１の方向（Ｙ方向）の閾値Ａ１  ：  定数ａ１（＞０）
第１の方向（Ｙ方向）の閾値Ａ２  ：  定数ａ２（＜０）
第２の方向（Ｘ方向）の閾値Ｄ１  ：  定数ｄ１（＞０）
第２の方向（Ｘ方向）の閾値Ｄ２  ：  定数ｄ２（＜０）
移動量最大値（Ｓｘ＿ｍａｘ，Ｓｙ＿ｍａｘ）  ：  （０，０）
移動量最小値（Ｓｘ＿ｍｉｎ，Ｓｙ＿ｍｉｎ）  ：  （０，０）
【００２０】
Ｓ５０２は現在座標（Ｘ１，Ｙ１）更新のステップである。このステップでは、入力部２１０はタッチ位置の座標検出動作を行い、ＣＰＵ２０１に座標を通知する。ＣＰＵ２０１は、通知された座標を現在座標（Ｘ１，Ｙ１）としてＲＡＭ２０４に記憶する。
【００２１】
Ｓ５０３はＷａｉｔのステップである。入力部２１０はＷａｉｔによって規定される周期毎に座標検出動作を繰り返す。
【００２２】
Ｓ５０４はタッチアップ判定のステップである。このステップでは、ＣＰＵ２０１は、タッチアップが行われたか否かを判定する。ＣＰＵ２０１は、タッチアップが行われたと判定した場合、ジェスチャー判定処理を終了する。タッチアップでないと判定した場合、Ｓ５０５へ進む。
【００２３】
Ｓ５０５は、前回座標（Ｘ０，Ｙ０）更新のステップである。ＣＰＵ２０１は、現在座標（Ｘ１，Ｙ１）を前回座標（Ｘ０，Ｙ０）としてＲＡＭ２０４に記憶する。
【００２４】
Ｓ５０６は現在座標（Ｘ１，Ｙ１）更新である。Ｓ５０２と同様の処理を行う。
【００２５】
Ｓ５０７は移動量判定のステップである。このステップでは、ＣＰＵ２０１は、単位時間当たりの移動量（Ｓｘ＿ｖ，Ｓｙ＿ｖ）のＸ成分およびＹ成分の絶対値がそれぞれ閾値Ｖｘ（＞０）、Ｖｙ（＞０）を上回ったか否かを判定する。
上述したように、この判定において、ＣＰＵ２０１は、１点タッチジェスチャーと２点タッチジェスチャーの切り換え発生を検出する。閾値Ｖｘ、Ｖｙは、あらかじめ、ドラッグによる座標変化と１点タッチジェスチャーと２点タッチジェスチャーの切り換えによる座標変化の切り分けが可能な所定の値に設定される。Ｓ５０３のＷａｉｔによって規定される座標検出動作の１周期を単位時間として定義すると、単位時間当たりの移動量のＸ成分Ｓｘ＿ｖおよびＹ成分Ｓｙ＿ｖは式（１）（２）で算出される。
単位時間当たりの移動量Ｓｘ＿ｖ＝現在座標Ｘ１−前回座標Ｘ０      （１）
単位時間当たりの移動量Ｓｙ＿ｖ＝現在座標Ｙ１−前回座標Ｙ０      （２）
式（１）で算出されるＳｘ＿ｖがＶｘを上回った、または式（２）で算出されるＳｙ＿ｖがＶｙを上回ったと判定された場合、ＣＰＵ２０１は、１点タッチジェスチャーと２点タッチジェスチャーの切り換えが発生したと判定する。そしてこの場合にはＳ５２５へ進む。Ｓ５２５〜Ｓ５２７については後述する。
式（１）で算出されるＳｘ＿ｖがＶｘを以下であり、かつ式（２）で算出されるＳｙ＿ｖがＶｙ以下であったと判定された場合、ＣＰＵ２０１は、タッチパネル２０９に触れているユーザーの指等が静止しているか、またはドラッグが行われたと判断する。そしてこの場合には、Ｓ５０８へ進む。
なお、本実施形態では、Ｓ５０３のＷａｉｔによって規定される座標検出動作の１周期を単位時間として定義したが、数周期をまとめて単位時間として定義しても良い。この場合、単位時間当たりの移動量は数周期分の移動量として算出される。
【００２６】
Ｓ５０８は前回移動量（Ｓｘ０，Ｓｙ０）更新のステップである。移動量は、タッチ開始後の座標移動の累計値である。ＣＰＵ２０１は、座標検出の度に、Ｘ成分とＹ成分ごとに移動量を加算していく。そして、ＣＰＵ２０１は、現在移動量（Ｓｘ１，Ｓｙ１）を前回移動量（Ｓｘ０，Ｓｙ０）としてＲＡＭ２０４に記憶する。
【００２７】
Ｓ５０９は現在移動量（Ｓｘ１，Ｓｙ１）更新のステップである。ＣＰＵ２０１は、現在移動量（Ｓｘ１，Ｓｙ１）を、式（３）（４）に示す計算式を用いて算出し、ＲＡＭ２０４に記憶する。
現在移動量Ｓｘ１＝前回移動量Ｓｘ０＋（現在座標Ｘ１−前回座標Ｘ０）      （３）
現在移動量Ｓｙ１＝前回移動量Ｓｙ０＋（現在座標Ｙ１−前回座標Ｙ０）      （４）
【００２８】
Ｓ５１０は第１の方向が確定済みであるか否かの判定のステップである。図３に示すように、ジェスチャー判定パターンは、タッチ位置が第１の方向（Ｙ方向）に所定の移動量を超えて移動した後、第１の方向と垂直な第２の方向（Ｘ方向）に所定の移動量を超えて移動する軌跡パターンである。すなわち、第１の方向および第２の方向の確定条件は式（５）〜（８）で定義される。
現在移動量Ｓｙ１＞閾値Ａ１ならば
第１の方向としてＹ方向にＡ１（＞０）を上回る距離を移動した      （５）
現在移動量Ｓｙ１＜閾値Ａ２  ならば
第１の方向としてＹ方向にＡ２（＜０）を下回る距離を移動した      （６）
現在移動量Ｓｘ１＞閾値Ｄ１  ならば
第２の方向としてＹ方向にＤ１（＞０）を上回る距離を移動した      （７）
現在移動量Ｓｘ１＜閾値Ｄ２  ならば
第２の方向としてＹ方向にＤ２（＜０）を下回る距離を移動した      （８）
第１の方向が確定済みであると判定された場合、Ｓ５１７へ進む。Ｓ５１７〜Ｓ５２４については後述する。第１の方向が確定済みでないと判定された場合、Ｓ５１１へ進む。
【００２９】
Ｓ５１１は第１の方向の現在移動量の判定のステップである。このステップでは、ＣＰＵ２０１は、現在移動量Ｓｘ１（絶対値）が閾値Ｂ１を上回ったか否かを判定する。第１の方向が確定する前にＸ方向へのドラッグが所定の移動量を超えて行われた場合、ＣＰＵ２０１は、ジェスチャー操作ではなく画像送り操作が行われたと判断する。このＸ方向における所定の移動量を閾値Ｂ１で定義する。画像送りは、現在の表示画像を外部記憶媒体２０６に格納されている他の画像の表示へ切り換える機能である。ＣＰＵ２０１は、現在移動量Ｓｘ１（絶対値）が閾値Ｂ１を上回ったと判定した場合、ジェスチャー判定処理を終了して画像送り機能を実行する。ＣＰＵ２０１は、ひとたび画像送りの実行を開始すると、入力部２１０によりタッチアップが検出されて再度タッチダウンが検出されるまでは、ジェスチャー判定処理を再開しない。また、現在移動量Ｓｘ１（絶対値）が閾値Ｂ１以下と判定された場合、Ｓ５１２へ進む。
【００３０】
Ｓ５１２は第２の方向の現在移動量の判定のステップである。ＣＰＵ２０１は、現在移動量Ｓｙ１が閾値Ａ１を上回ったか否かを判定する。現在移動量Ｓｙ１が閾値Ａ１を上回ったと判定された場合、Ｓ５１３へ進む。現在移動量Ｓｙ１が閾値Ａ１以下であると判定された場合、Ｓ５１４へ進む。
【００３１】
Ｓ５１３は第１の方向確定（Ｓｙ１＞Ａ１）のステップである。ＣＰＵ２０１は式（５）が成立したことをＲＡＭ２０４に記憶する。
【００３２】
Ｓ５１４は現在移動量の判定のステップである。このステップでは、ＣＰＵ２０１は、現在移動量Ｓｙ１が閾値Ａ２を下回ったか否かを判定する。現在移動量Ｓｙ１が閾値Ａ２を下回ったと判定された場合、Ｓ５１５へ進む。現在移動量Ｓｙ１が閾値Ａ２を上回ったと判定された場合、式（５）または式（６）が成立せず第１の方向が確定していないため、Ｓ５０３へ戻って再び座標検出動作を繰り返す。
【００３３】
Ｓ５１５は第１の方向確定（Ｓｙ１＜Ａ２）のステップである。このステップでは、ＣＰＵ２０１は、式（６）が成立したことをＲＡＭ２０４に記憶する。
【００３４】
Ｓ５１６はジェスチャー機能ガイド表示のステップである。Ｓ５１３またはＳ５１５で第１の方向が確定すると、ＣＰＵ２０１は、表示部２０８に、以降のドラッグによって第２の方向を確定させた場合に実行可能なジェスチャー機能のガイド表示を行わせる。
【００３５】
図６に、ジェスチャー機能ガイド表示の例を示す。
図６（ａ）は１点タッチジェスチャーで第１の方向（Ｓｙ１＞Ａ１）が確定した場合のガイド表示である。この場合には、以降のドラッグによって判定可能なジェスチャーは、ジェスチャーＮｏ．１とＮｏ．２に限定される。この時点で判定不可能なジェスチャーＮｏ．３〜８を表示する必要はないため、ＣＰＵ２０１は表示部２０８に、ジェスチャーＮｏ．１とＮｏ．２の機能のみガイド表示させる。
図６（ａ）の７０１ａ、７０２ａは、それぞれジェスチャーＮｏ．１とＮｏ．２の機能名のガイド表示である。７０１ｂ、７０２ｂは、それぞれジェスチャーＮｏ．１とＮｏ．２の機能を実行するためにドラッグすべき方向（ドラッグの移動先）を示すガイド表示である。ＣＰＵ２０１は表示部２０８に、表示されている画像に重畳してガイド表示７０１、７０２を表示させる。
表示部２０８は、ＣＰＵ２０１の制御にしたがって、ガイド表示７０１、７０２を、ジェスチャー機能実行のためにタッチすべき位置に表示する。ジェスチャーＮｏ．１は、Ｙ方向にＡ１（上方向）の距離を移動後、Ｘ方向にＤ１（右方向）の距離を移動するジェスチャーである。このため、最終的なタッチ位置は、表示部２０８右上になる。この移動を促すため、表示部２０８は、ジェスチャーＮｏ．１のガイド表示７０１を、右上領域（Ｘ座標が画面中央より右側で、Ｙ座標が画面中央より上側の領域）に表示する。同様の理由によって、表示部２０８は、ジェスチャーＮｏ．２のガイド表示７０２を、左上領域（Ｘ座標が画面中央より左側で、Ｙ座標が画面中央より上側の領域）に表示する。ユーザーは、ガイド表示７０１にしたがって方向７０１ｂにドラッグすることによってジェスチャーＮｏ．１が判定されて分類指定が実行できることが分かる。また、ユーザーは、ガイド表示７０２にしたがって方向７０２ｂにドラッグすればジェスチャーＮｏ．２が判定されて色調変更が実行できることが分かる。
【００３６】
その他のジェスチャーＮｏ．３〜８のガイド表示を、図６（ｂ）（ｃ）（ｄ）に示す。図６（ｂ）は、１点タッチジェスチャーで第１の方向（Ｓｙ１＜Ａ２）が確定した場合のガイド表示である。図６（ｃ）は、２点タッチジェスチャーで第１の方向（Ｓｙ１＞Ａ１）が確定した場合のガイド表示である。図６（ｄ）は２点タッチジェスチャーで第１の方向（Ｓｙ１＜Ａ２）が確定した場合のガイド表示である。７０３ａ〜７０８ａは、それぞれジェスチャーＮｏ．３〜８の機能名を示すガイド表示である。７０３ｂ〜７０８ｂは、それぞれジェスチャー３〜８の機能を実行するためにドラッグすべき方向を示すガイド表示である。
【００３７】
また、第１の方向が確定した時点でタッチ位置が画面端部付近にあり、第２の方向を確定させるための距離をドラッグできない場合がある。図６（ｅ）は、その場合の一例を示す。軌跡７１０は、画面左下端部から開始したジェスチャーの軌跡である。軌跡７１０では、Ｙ方向にＡ１（＞０）移動した後、Ｘ方向にＤ１（＞０）移動は可能であるがＤ２（＜０）移動は不可能である。つまり、ジェスチャーＮｏ．１の機能は実行可能であるが、ジェスチャーＮｏ．２の機能は実行不可能である。そこで、ＣＰＵ２０１は、第１の方向が確定した時点でのタッチ位置に基づき、実行不可能な機能を認定する。そして、ＣＰＵ２０１は、表示部２０８に、予め実行不可能と判断できる機能についてのガイド表示を行わせない。あるいは、ＣＰＵ２０１は、表示部２０８に、実行不可能な機能のガイド表示に対してのみ色や形状などの表示形態を変更して、実行可能な機能のガイド表示と区別して表示させてもよい。ユーザーは、このようなガイド表示によって、ジェスチャー操作中に機能が実行可能か否かを判断できる。
【００３８】
Ｓ５１７は移動量最大値（Ｓｘ＿ｍａｘ，Ｓｙ＿ｍａｘ）および移動量最小値（Ｓｘ＿ｍｉｎ，Ｓｙ＿ｍｉｎ）更新のステップである。このステップでは、ＣＰＵ２０１は、現在移動量（Ｓｘ１，Ｓｙ１）を用いて、式（９）〜（１２）に示す処理を行う。そして、ＣＰＵ２０１は、移動量最大値（Ｓｘ＿ｍａｘ，Ｓｙ＿ｍａｘ）と移動量最小値（Ｓｘ＿ｍｉｎ，Ｓｙ＿ｍｉｎ）をＲＡＭ２０４に記憶する。
Ｓｘ１＞Ｓｘ＿ｍａｘ  ならば  Ｓｘ＿ｍａｘにＳｘ１を代入      （９）
Ｓｙ１＞Ｓｙ＿ｍａｘ  ならば  Ｓｙ＿ｍａｘにＳｙ１を代入      （１０）
Ｓｘ１＜Ｓｘ＿ｍｉｎ  ならば  Ｓｘ＿ｍｉｎにＳｘ１を代入      （１１）
Ｓｙ１＜Ｓｙ＿ｍｉｎ  ならば  Ｓｙ＿ｍｉｎにＳｙ１を代入      （１２）
【００３９】
Ｓ５１８は移動方向の判定のステップである。このステップでは、ＣＰＵ２０１は、Ｙ方向においてジェスチャー判定パターンに対する逆方向に移動したか否かを判定する。第１の方向（Ｓｙ１＞Ａ１）が確定した場合、Ｙ方向において正の方向への移動が順方向、負の方向への移動が逆方向である。この場合、次の式（１３）（１４）が成立する。
Ｓｙ１＞Ａ１の時  Ｓｙ１＝Ｓｙ＿ｍａｘ  ならば  順方向に移動した      （１３）
Ｓｙ１＞Ａ１の時  Ｓｙ１＜Ｓｙ＿ｍａｘ  ならば  逆方向に移動した      （１４）
一方、第１の方向（Ｓｙ１＜Ａ２）が確定した場合、Ｙ方向において負の方向への移動が順方向、正の方向への移動が逆方向である。この場合、次の式（１５）（１６）が成立する。
Ｓｙ１＜Ａ２の時  Ｓｙ１＝Ｓｙ＿ｍｉｎ  ならば  順方向に移動した      （１５）
Ｓｙ１＜Ａ２の時  Ｓｙ１＞Ｓｙ＿ｍｉｎ  ならば  逆方向に移動した      （１６）
ＣＰＵ２０１は、式（１３）〜（１６）による判定を行い、Ｙ方向において逆方向に移動したと判定した場合、ジェスチャー判定処理を終了する。Ｙ方向において順方向に移動したと判定した場合、Ｓ５１９へ進む。
【００４０】
Ｓ５１９は移動方向の判定のステップである。このステップでは、ＣＰＵ２０１は、Ｘ方向について、ジェスチャー判定パターンに対する逆方向に移動したか否かを判定する。第１の方向確定後、ユーザーがＸ方向において正・負どちらの方向へ移動しようとしているか判断するための閾値をＣ１（＞０）、Ｃ２（＜０）とする。Ｓｘ１＞Ｃ１である場合、ユーザーはＸ方向において正の方向へ移動しようとしていると判断し、正の方向を順方向と定義する。この場合、次の式（１７）（１８）が成立する。
Ｓｘ１＞Ｃ１の場合  Ｓｘ１＝Ｓｘ＿ｍａｘ  ならば  順方向に移動した      （１７）
Ｓｘ１＞Ｃ１の場合  Ｓｘ１＜Ｓｘ＿ｍａｘ  ならば  逆方向に移動した      （１８）
一方、Ｓｘ１＜Ｃ２である場合、ユーザーはＸ方向において負の方向へ移動しようとしていると判断し、負の方向を順方向と定義する。この場合、次の式（１９）（２０）が成立する。
Ｓｘ１＜Ｃ２の場合  Ｓｘ１＝Ｓｘ＿ｍｉｎ  ならば  順方向に移動した      （１９）
Ｓｘ１＜Ｃ２の場合  Ｓｘ１＞Ｓｘ＿ｍｉｎ  ならば  逆方向に移動した      （２０）
ＣＰＵ２０１は、式（１７）〜（２０）による判定を行い、Ｘ方向について逆方向に移動したと判定した場合、ジェスチャー判定処理を終了する。Ｘ方向において順方向に移動したと判定した場合、Ｓ５２０へ進む。また、Ｃ２＜Ｓｘ１＜Ｃ１であれば判定を行わずにそのままＳ５２０へ進む。
なお、式（１３）の判定条件においては、Ｓｙ＿ｍａｘ−α＜Ｓｙ１＜Ｓｙ＿ｍａｘ＋αのように、マージンα（＞０）をもたせてもよい。指などによる操作では、ユーザーはタッチ位置を静止しているつもりでもわずかに動いてしまう場合がある。マージンαをもたせることで、この微小な動きを許容して、逆方向に移動したと誤判定することを防止できる。式（１５）（１７）（１９）についても同様な理由からマージンαをもたせてもよい。
【００４１】
Ｓ５２０は現在移動量の判定のステップである。このステップでは、ＣＰＵ２０１は、現在移動量Ｓｘ１が閾値Ｄ１を上回ったか否かを判定する。現在移動量Ｓｘ１が閾値Ｄ１を上回ったと判定された場合、Ｓ５２１へ進む。現在移動量Ｓｘ１が閾値Ｄ１以下であると判定された場合、Ｓ５２２へ進む。
【００４２】
Ｓ５２１は第２の方向確定（Ｓｘ１＞Ｄ１）のステップである。このステップでは、ＣＰＵ２０１は、式（７）が成立したことをＲＡＭ２０４に記憶する。
【００４３】
Ｓ５２２は現在移動量の判定のステップである。このステップでは、ＣＰＵ２０１は、現在移動量Ｓｘ１が閾値Ｄ２を下回ったか否かを判定する。現在移動量Ｓｘ１が閾値Ｄ２を下回ったと判定された場合、Ｓ５２３へ進む。現在移動量Ｓｘ１が閾値Ｄ２を上回ったと判定された場合、式（７）または式（８）が成立せず第２の方向が確定していないため、Ｓ５０３へ戻って再び座標検出動作を繰り返す。
【００４４】
Ｓ５２３は第２の方向確定（Ｓｘ１＜Ｄ２）のステップである。このステップでは、ＣＰＵ２０１は式（８）が成立したことをＲＡＭ２０４に記憶する。
【００４５】
Ｓ５２４はジェスチャー機能実行のステップである。ＣＰＵ２０１はＲＡＭ２０４に記憶した第１の方向と第２の方向を読み取り、該当するジェスチャー判定パターンを確定する。そして、ＣＰＵ２０１は、確定したジェスチャー判定パターンに割り当てられた機能を実行する。その後、ジェスチャー判定処理を終了する。
【００４６】
ここで、Ｓ５０７の説明に戻る。Ｓ５０７で１点タッチジェスチャーと２点タッチジェスチャーの切り換え発生が検出されてＳ５２５〜Ｓ５２７に進んだ場合の処理について説明する。
Ｓ５２５は１点タッチジェスチャーと２点タッチジェスチャーの切り換え処理のステップである。図７を用いてこの処理の手順を説明する。
Ｓ７０１は１点・２点タッチ判定ｆｌａｇの判定のステップである。このステップでは、ＣＰＵ２０１は、１点・２点タッチ判定ｆｌａｇ＝０であるか否かを判定する。１点・２点タッチ判定ｆｌａｇは１点タッチ状態で０、２点タッチ状態で１の値をとる変数である。また、１点・２点タッチ判定ｆｌａｇは、Ｓ５０１で初期値０に設定される。ＣＰＵ２０１は、１点・２点タッチ判定ｆｌａｇ＝０であると判定した場合、１点タッチ状態で１点・２点タッチ切り換えが発生して２点タッチ状態になったと判断する。そして、Ｓ７０２へ進む。
【００４７】
Ｓ７０２は２点タッチ確定のステップである。ＣＰＵ２０１は、１点・２点タッチ判定ｆｌａｇ＝１にセットし、１点タッチから２点タッチへ切り換わったことを確定させる。
【００４８】
Ｓ７０３は、２点目座標（Ｘ２，Ｙ２）算出のステップである。１点タッチから２点タッチへ切り換わった場合、１点目のタッチ位置は前回座標（Ｘ０，Ｙ０）である。２点目のタッチ位置を座標（Ｘ２，Ｙ２）とすると、現在座標（Ｘ１，Ｙ１）は１点目と２点目のタッチ位置を結ぶ直線の中点と一致する。したがって式（２１）（２２）が成立する。
Ｘ１＝（Ｘ０＋Ｘ２）／２      （２１）
Ｙ１＝（Ｙ０＋Ｙ２）／２      （２２）
このステップでは、ＣＰＵ２０１は、式（２１）（２２）によって２点目座標（Ｘ２，Ｙ２）を算出してＲＡＭ２０４に記憶する。
【００４９】
Ｓ７０４は固定ガイド表示のステップである。２点タッチジェスチャーとは、１点タッチジェスチャーの途中で２点目を追加してタッチし、２点目のタッチ位置を固定したまま１点目で行うジェスチャー操作である。そこで、ＣＰＵ２０１は、表示部２０８に、２点目座標（Ｘ２，Ｙ２）にタッチ位置の固定を促すガイドを表示させる。固定ガイド表示の一例を、図６（ｃ）（ｄ）の７０９に示す。固定ガイド表示７０９は、ユーザーに、２点目座標（Ｘ２，Ｙ２）を指示するものである。ユーザーは、固定ガイド表示７０９によって固定するタッチ位置を認識できる。このため、２点目のタッチ位置をずらしてしまうことで発生する誤動作を防止できる。
【００５０】
Ｓ７０５は１点タッチから２点タッチへの切り換えに伴う移動量閾値変更のステップである。このステップでは、ＣＰＵ２０１は、図３（ｂ）に示すように、移動量閾値Ａ１、Ａ２、Ｄ１、Ｄ２を、それぞれ（ａ１）／２、（ａ２）／２、（ｄ１）／２、（ｄ２）／２に変更する。
【００５１】
Ｓ７０６は１点タッチから２点タッチへの切り換えに伴うジェスチャー機能変更のステップである。ＣＰＵ２０１は、ジェスチャー判定パターンの確定時に実行する機能を、図４（ｂ）に示すジェスチャーＮｏ．５〜８の機能に変更する。
【００５２】
Ｓ７０７は１点タッチから２点タッチへの切り換えに伴う現在移動量（Ｓｘ１，Ｓｙ１）更新のステップである。２点タッチジェスチャーで検出されるドラッグの軌跡の移動量は１点タッチジェスチャーで検出される軌跡の移動量の半分（１／２）である。したがって、切り換え前の１点タッチジェスチャーで算出された移動量を、２点タッチジェスチャーによる移動量にスケール変換する必要がある。ＣＰＵ２０１は、現在移動量（Ｓｘ１，Ｓｙ１）を、次の式（２３）（２４）で算出し、ＲＡＭ２０４に記憶する。
現在移動量Ｓｘ１＝前回移動量Ｓｘ０／２      （２３）
現在移動量Ｓｙ１＝前回移動量Ｓｙ０／２      （２４）
これによって、切り換え前の１点タッチジェスチャーにおける移動量を損なわずに済み、１点タッチジェスチャーの途中で２点タッチジェスチャーに切り換えることが可能になる。なお、式（１）（２）に示した１点タッチから２点タッチへの切り換えに伴う移動量は、１点目で行うジェスチャー操作に伴う移動量ではないため、現在移動量（Ｓｘ１，Ｓｙ１）に加算されない。Ｓ７０７の実行後、１点・２点タッチ切り換え処理を終了する。
【００５３】
ここでＳ７０１の説明に戻る。Ｓ７０１で１点・２点タッチ判定ｆｌａｇ＝１であると判定された場合、ＣＰＵ２０１は、２点タッチ状態で１点・２点タッチ切り換えが発生して１点タッチ状態になったと判断する。そしてＳ７０８へ進む。
【００５４】
Ｓ７０８は１点タッチ確定のステップである。ＣＰＵ２０１は、１点・２点タッチ判定ｆｌａｇ＝０にセットして２点タッチから１点タッチへ切り換わったことを確定させる。
【００５５】
Ｓ７０９は現在座標の判定のステップである。このステップでは、ＣＰＵ２０１は、現在座標（Ｘ１，Ｙ１）＝２点目座標（Ｘ２，Ｙ２）であるか否かを判定する。２点タッチから１点タッチへの切り換えは２通りのケースがある。
第１のケースは、ユーザーが固定している２点目を維持し、ジェスチャー操作している１点目を離すケースであり、ジェスチャーを中止する操作である。現在座標（Ｘ１，Ｙ１）＝２点目座標（Ｘ２，Ｙ２）であると判定された場合、第１のケースと判断してジェスチャー判定処理を終了する。
第２のケースは、ユーザーがジェスチャー操作している１点目を維持し、固定している２点目を離すケースであり、２点タッチジェスチャーから１点タッチジェスチャーに切り換える操作である。現在座標（Ｘ１，Ｙ１）＝２点目座標（Ｘ２，Ｙ２）でないと判定された場合、第２のケースと判断してＳ７１０へ進む。
【００５６】
Ｓ７１０は固定ガイド消去のステップである。ＣＰＵ２０１は、表示部２０８に、２点タッチジェスチャー中に表示されていた固定ガイド７０９を消去させる。
【００５７】
Ｓ７１１は２点タッチから１点タッチへの切り換えに伴う移動量閾値変更のステップである。このステップでは、ＣＰＵ２０１は、図３（ａ）に示すように、移動量閾値Ａ１、Ａ２、Ｄ１、Ｄ２をそれぞれａ１、ａ２、ｄ１、ｄ２に変更する。
【００５８】
Ｓ７１２は２点タッチから１点タッチへの切り換えに伴うジェスチャー機能変更のステップであるこのステップでは、ＣＰＵ２０１は、ジェスチャー判定パターンの確定時に実行する機能を、図４（ａ）に示すジェスチャーＮｏ．１〜４の機能に変更する。
【００５９】
Ｓ７１３は２点タッチから１点タッチへの切り換えに伴う現在移動量（Ｓｘ１，Ｓｙ１）更新のステップである。１点タッチジェスチャーで検出されるドラッグの軌跡の移動量は、２点タッチジェスチャーで検出される軌跡の移動量の２倍である。したがって、切り換え前の２点タッチジェスチャーで算出された移動量を１点タッチジェスチャーによる移動量にスケール変換する必要がある。ＣＰＵ２０１は、現在移動量（Ｓｘ１，Ｓｙ１）を、次の式（２５）（２６）で算出し、ＲＡＭ２０４に記憶する。
現在移動量Ｓｘ１＝前回移動量Ｓｘ０×２      （２５）
現在移動量Ｓｙ１＝前回移動量Ｓｙ０×２      （２６）
これによって、切り換え前の２点タッチジェスチャーにおける移動量を損なわずに済み、２点タッチジェスチャーの途中で１点タッチジェスチャーに切り換えることが可能になる。なお、式（１）（２）に示した２点タッチから１点タッチへの切り換えに伴う移動量は、１点目で行うジェスチャー操作に伴う移動量ではない。このため、ＣＰＵ２０１は、この移動量を現在移動量（Ｓｘ１，Ｓｙ１）に加算しない。Ｓ７１３の実行後、１点・２点タッチ切り換え処理を終了する。そして、ＣＰＵ２０１は、図５に示す１点・２点タッチ切り換えステップＳ５２５を実行する。その後、Ｓ５２６へ進む。
【００６０】
Ｓ５２６は第１の方向が確定済みであるか否かの判定のステップである。このステップでは、ＣＰＵ２０１は、第１の方向が確定済みでないと判定した場合、Ｓ５０３へ戻って再び座標検出動作を繰り返す。第１の方向が確定済みであると判定した場合、Ｓ５２７へ進む。
【００６１】
Ｓ５２７はジェスチャー機能ガイド変更のステップである。第１の方向が確定済みである場合には、Ｓ５１６においてジェスチャー機能ガイドが表示された状態である。Ｓ７０６またはＳ７１２において、ＣＰＵ２０１は、実行可能なジェスチャー機能を変更している。そこで、ＣＰＵ２０１は、表示部２０８に、変更した機能に合わせてガイド表示を変更させる。すなわち、第１の方向（Ｓｙ１＞Ａ１）が確定している場合、ＣＰＵ２０１は、１点タッチでは図６（ａ）に示すガイド表示、２点タッチでは図６（ｃ）に示すガイド表示に変更させる。また、第１の方向（Ｓｙ１＜Ａ２）が確定している場合、１点タッチでは図６（ｂ）に示すガイド表示、２点タッチでは図６（ｄ）に示すガイド表示に変更させる。Ｓ５２７の実行後、Ｓ５０３へ戻って再び座標検出動作を繰り返す。
【００６２】
以上のように本発明の第１の実施形態によれば、１点タッチジェスチャーと２点タッチジェスチャーを、同一のジェスチャー操作にすることができる。このため、覚えておかなければならないジェスチャー数を抑えたまま、実行可能な機能を増やすことができる。また、ジェスチャー判定処理中はジェスチャー判定パターン確定前であれば何回でも１点タッチジェスチャーと２点タッチジェスチャーを切り換えることができるため、切り換え操作が容易である。さらに、第１の方向確定後は１点タッチジェスチャーと２点タッチジェスチャーを切り換える度にジェスチャー機能ガイド表示も切り換わる。このため、ユーザーは、１点タッチジェスチャーと２点タッチジェスチャーの違いが視覚的に分かりやすく操作しやすい。
【００６３】
（第２の実施形態）
以下、本発明の第２の実施形態について説明する。
本発明の第１の実施形態は、１点タッチジェスチャーと２点タッチジェスチャーの切り換えに伴ってジェスチャー機能自体を変更する形態である。これに対して、第２の実施形態は、１点タッチジェスチャーと２点タッチジェスチャーの切り換えに伴ってジェスチャー機能の設定を変更する形態である。ここでは、第１の実施形態と、同様に図３（ａ）に示す機能が割り当てられているものとし、図５と図７のフローチャートを用いて説明する。なお、図３（ｂ）に示す機能の割り当ては行われていないものとする。
【００６４】
図８に、第２の実施形態におけるジェスチャー機能ガイド表示の一例を示す。図８（ａ）に示すように、Ｓ５１３で第１の方向（Ｓｙ１＞Ａ１）が確定すると、Ｓ５１６でＣＰＵ２０１は、表示部２０８に、ジェスチャー機能ガイドを表示させる。８０１ａ、８０２ａは、それぞれ、ジェスチャーＮｏ．１とＮｏ．２機能の現在の設定を示すガイド表示である。８０１ａは人物、８０２ａは白黒の設定であることを示している。第１の実施形態では、ＣＰＵ２０１がジェスチャーＮｏ．１の機能を実行した場合、ＣＰＵ２０１が表示部２０８の表示を分類指定画面に遷移させた後、ユーザーは表示中の画像を人物／風景／行事のカテゴリに分類できた。また、ＣＰＵ２０１がジェスチャーＮｏ．２の機能を実行した場合、ＣＰＵ２０１が表示部２０８の表示を色調変更画面に遷移させた後、ユーザーは表示中の画像に対して白黒／青強調／赤強調の色調変更を行うことができた。第２の実施形態では、ＣＰＵ２０１は、ジェスチャー機能を実行した場合、表示部２０８の表示を機能の設定画面に遷移させず、機能設定ガイド表示８０１ａ、８０２ａの設定で機能をただちに実行する。すなわち、表示部２０８の表示が図８（ａ）に示すガイド表示の場合、ＣＰＵ２０１は、Ｓ５２４においてジェスチャーＮｏ．１の機能を実行した場合、表示中の画像を人物のカテゴリに分類指定する。また、ＣＰＵ２０１は、ジェスチャーＮｏ．２の機能を実行した場合、表示中の画像を白黒に色調変更する。
ＣＰＵ２０１は、このジェスチャー機能の設定を、１点タッチジェスチャーと２点タッチジェスチャーの切り換えに伴って変更する。ＣＰＵ２０１は、図８（ａ）に示す機能設定の場合に、１点タッチジェスチャーから２点タッチジェスチャーへ切り換えを検出すると、Ｓ７０６（ジェスチャー機能変更）において機能自体の変更ではなく機能の設定を変更する。図８（ｂ）の８０１ｂは風景、８０２ｂは青強調の設定に変更されたことを示している。さらに、ＣＰＵ２０１は、図８（ｂ）に示す機能設定の場合に、２点タッチジェスチャーから１点タッチジェスチャーへの切り換えを検出すると、Ｓ７１１（ジェスチャー機能変更）において機能自体の変更ではなく機能の設定を変更する。図８（ｃ）の８０１ｃは行事、８０２ｃは赤強調の設定に変更されたことを示している。さらに、ＣＰＵ２０１は、図８（ｃ）に示す機能設定の場合に、１点タッチジェスチャーから２点タッチジェスチャーへの切り換えを検出すると、再びＳ７０６において、機能の設定を変更し、図８（ａ）に示す機能設定に戻す。このようにして、ＣＰＵ２０１は、１点タッチジェスチャーと２点タッチジェスチャーの切り換えを検出するたびに、ジェスチャー機能の設定を変更する。同様にして、ＣＰＵ２０１は、ジェスチャーＮｏ．３とＮｏ．４についても、機能の設定変更を行うことが可能である。また、例に挙げた分類指定と色調変更に限らず、その他の機能を割り当てた場合、その機能の設定数に応じた変更が可能である。
以上のように、本発明の第２の実施形態によれば、ＣＰＵ２０１は、１点タッチジェスチャーと２点タッチジェスチャーの切り換えに伴って、ジェスチャー機能の設定画面に遷移することなく設定を直接変更する。このため、ユーザーは、操作の短縮およびスピードアップが可能となる。
【００６５】
（第３の実施形態）
以下、本発明の第３の実施形態について説明する。
本発明の第３の実施形態では、２点タッチジェスチャーにおける２点目のタッチ位置がジェスチャー軌跡パターンを妨げる位置（以下ジェスチャー阻害領域と称する）にある場合、ＣＰＵ２０１は移動量閾値を変更する。ここでは、２点目のタッチ位置が、１点目のタッチのドラッグの移動先に位置する場合が該当する。また、２点タッチジェスチャーにおける２点目のタッチ位置がジェスチャー機能ガイド表示を妨げる位置（以下、ガイド表示阻害領域）にある場合、ＣＰＵ２０１は表示部２０８に、ジェスチャー機能ガイド表示の位置を変更させる。ここでは、ジェスチャー機能として、第１の実施形態と同様に、図３に示す機能が割り当てられているとし、図５と図７のフローチャートを用いて説明する。
【００６６】
図９に、第３の実施形態におけるジェスチャー阻害領域の例を示す。図９（ａ）は、ジェスチャーＮｏ．５とＮｏ．６に対するジェスチャー阻害領域９００ａ（図中の薄いグレーの領域）を示す。図９（ｂ）は、ジェスチャーＮｏ．７とＮＯ．８に対するジェスチャー阻害領域９００ｂ（図中の薄いグレーの領域）を示す。２点目のタッチ位置がジェスチャー阻害領域９００ａ，９００ｂ（１点目のドラッグの移動先）にある場合、第１の方向確定後に、ユーザーはタッチパネル２０９をタッチしている指等を、第２の方向へ移動できなくなる可能性がある。第３の実施形態では、ＣＰＵ２０１は、Ｓ５０２においてタッチダウン直後の現在座標（Ｘ１，Ｙ１）を検出した場合に、現在座標（Ｘ１，Ｙ１）をタッチ開始座標（Ｘｓ，Ｙｓ）としてＲＡＭ２０４に記憶する。タッチ開始座標（Ｘｓ，Ｙｓ）に対して、ジェスチャー阻害領域９００ａはＹ座標がＹｓ＋ａ１以上の領域、ジェスチャー阻害領域９００ｂはＹ座標がＹｓ＋ａ２以下の領域である。
【００６７】
そして、Ｓ７０５において、ＣＰＵ２０１は、２点目座標（Ｘ２，Ｙ２）がジェスチャー阻害領域９００ａ，９００ｂにあるか否かを判定するジェスチャー阻害判定を行う。そして、１点タッチジェスチャーから２点タッチジェスチャーへの切り換えに伴う移動量閾値変更を実行する。ＣＰＵ２０１は、ジェスチャー阻害判定において、２点目座標（Ｘ２，Ｙ２）がジェスチャー阻害領域９００ａ，９００ｂにあると判定した場合、Ｙ方向の移動量閾値Ａ１またはＡ２に対してのみ、第１の実施形態で説明した変更と異なる処理を実行する。これによって、図９（ａ）（ｂ）に示すように、ジェスチャー可能領域９０１ａ、９０１ｂ（図中の濃いグレーで示す領域）ができる。このため、ユーザーは、この領域を利用することで、２点目のタッチ位置を避けてジェスチャー操作をすることができる。ジェスチャー可能領域９０１ａ、９０１ｂをつくるための所定の値を閾値変更量β（＞０）として、この変更処理を式（２７）（２８）に示す。
Ｙ２−Ｙｓ≧ａ１  ならば  Ａ１＝（ａ１−β）／２      （２７）
Ｙ２−Ｙｓ≦ａ２  ならば  Ａ２＝（ａ２＋β）／２      （２８）
【００６８】
図１０に第３の実施形態におけるガイド表示阻害領域の例を示す。図１０（ａ）はジェスチャーＮｏ．５とＮｏ．６に対するガイド表示阻害領域１０００ａ（図中のグレーで示す領域）の例を示す。ガイド表示最下部のＹ座標をＹｇ１と定義すると、ガイド表示阻害領域１０００ａはＹ座標がＹｇ１以上の領域である。図１０（ｂ）は、ジェスチャーＮｏ．７とＮｏ．８に対するガイド表示阻害領域１０００ｂ（図中のグレーで示す領域）の例を示す。ガイド表示最上部のＹ座標をＹｇ２と定義すると、ガイド表示阻害領域１０００ｂはＹ座標がＹｇ２以下の領域である。２点目のタッチ位置がガイド表示阻害領域１０００ａ，１０００ｂにある場合、２点目のタッチでガイド表示が隠れてしまい視認できなくなるケースや、２点目の移動の妨げになってガイド表示上まで移動できないケースが起こりうる。２点タッチジェスチャー中のＳ５１６およびＳ５２７において、ＣＰＵ２０１は、２点目座標（Ｘ２，Ｙ２）がガイド表示阻害領域１０００ａ，１０００ｂにあるか否かを判定するガイド表示阻害判定を行う。そして、ＣＰＵ２０１は、ガイド表示阻害判定の結果に基づいて表示変更の処理を行い、表示部２０８は、この表示変更の処理にしたがって、ジェスチャー機能ガイドを表示させる。すなわち、ＣＰＵ２０１は、ガイド表示阻害判定において２点目座標（Ｘ２，Ｙ２）がガイド表示阻害領域１０００ａ，１０００ｂにあると判定した場合には、表示部２０８に、ジェスチャー機能ガイド表示の位置をガイド表示阻害領域の外側へ変更させる。この変更処理を式（２９）（３０）に示す。
Ｙ２≧Ｙｇ１  ならば  ガイド表示位置をＹｇ１より下へ変更する      （２９）
Ｙ２≦Ｙｇ２  ならば  ガイド表示位置をＹｇ２より上へ変更する      （３０）
この表示変更によって、図１０（ａ）（ｂ）に示すように、ジェスチャー機能のガイド表示７０６，７０７が、ガイド表示１００１またはガイド表示１００２の位置に変更される。このため、２点目のタッチでガイド表示が隠れてしまい、ユーザーが視認できなくなるケースを回避できる。さらに、２点目の移動の妨げになってガイド表示上まで移動できないケースを回避できる。
【００６９】
以上のように本発明の第３の実施形態によれば、２点タッチジェスチャーにおける２点目のタッチ位置がジェスチャー阻害領域にある場合、ＣＰＵ２０１は、移動量閾値を変更する。これによって、ユーザーは、２点目のタッチ位置を避けてジェスチャー操作をすることができる。また、２点タッチジェスチャーにおける２点目のタッチ位置がガイド表示阻害領域１０００ａ，１０００ｂにある場合、ＣＰＵ２０１は、ジェスチャー機能ガイド表示位置を変更する。これによって、２点目のタッチでガイド表示が隠れてしまい、ユーザーがガイド表示を視認できなくなるケースを回避できる。さらに、２点目の移動の妨げになってガイド表示上まで移動できないケースを回避できる。
【００７０】
以上、本発明の好ましい実施形態について説明したが、本発明はこれらの実施形態に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。
上述した各実施形態においては、本発明をデジタルカメラに適用した場合を例にして説明したが、これはこの例に限定されない。本発明は、タッチパネルを有する装置であれば適用可能である。すなわち、本発明は、パーソナルコンピュータ、ＰＤＡ、携帯電話端末、携帯型の画像ビューワ、ディスプレイを備えるプリンタ装置、デジタルフォトフレーム、音楽プレーヤー、ゲーム機、電子ブックリーダーなどに適用可能である。
【００７１】
（他の実施形態）
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）をネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムコードを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
【産業上の利用可能性】
【００７２】
本発明は、タッチパネル制御装置とその制御方法に好適な技術である。そして、本発明によれば、同一のジェスチャー操作によって実行可能な機能を増やすことで、操作性を向上させたタッチパネル制御装置とその制御方法を提供することができる。
【符号の説明】
【００７３】
２０８：表示部
２０９：タッチパネル
２１０：入力部
５００：１点タッチジェスチャーの検出軌跡
５０１：２点タッチジェスチャーの検出軌跡
７０１：ジェスチャー１の機能ガイド表示
７０２：ジェスチャー２の機能ガイド表示
７０３：ジェスチャー３の機能ガイド表示
７０４：ジェスチャー４の機能ガイド表示
７０５：ジェスチャー５の機能ガイド表示
７０６：ジェスチャー６の機能ガイド表示
７０７：ジェスチャー７の機能ガイド表示
７０８：ジェスチャー８の機能ガイド表示
８０１：ジェスチャー１の機能設定ガイド表示
８０２：ジェスチャー２の機能設定ガイド表示
９００：ジェスチャー阻害領域
９０１：ジェスチャー可能領域
１０００：ガイド表示阻害領域
１００１：ガイド表示阻害領域の外側へ位置変更したガイド表示
１００２：ガイド表示阻害領域の外側へ位置変更したガイド表示
【図１】
2014120052.tif 000003
【図２】
2014120052.tif 000004
【図３】
2014120052.tif 000005
【図４】
2014120052.tif 000006
【図５】
2014120052.tif 000007
【図６】
2014120052.tif 000008
【図７】
2014120052.tif 000009
【図８】
2014120052.tif 000010
【図９】
2014120052.tif 000011
【図１０】
2014120052.tif 000012