(57)【要約】【課題】ユーザの意図しない操作を防止する入力装置を提供する。【解決手段】入力装置は、情報処理装置１００に設けられる。情報処理装置は、ユーザの指示を認識する操作領域で指示された位置を、一定の周期で取得する取得部１２１と、ユーザによる指示が終了したときに取得した位置を終点とし、この終点の所定時間前に取得部１２１が取得した位置を始点とするフリック操作ベクトルを特定する特定部１２２と、フリック操作ベクトルの向き及び速度に基づいて、ユーザの操作がフリック操作ベクトルの向きへのフリックか否かを判定する判定部１２４と、を備える。【選択図】図１
2015184996.tif 000002
【特許請求の範囲】
【請求項１】
ユーザの指示を認識する操作領域で指示された位置を、一定の周期で取得する取得手段と、
ユーザによる指示が終了したときに取得した位置を終点とし、この終点の所定時間前に前記取得手段で取得した位置を始点とする第１のベクトルを特定する特定手段と、
前記第１のベクトルの向き及び速度に基づいて、ユーザの操作がフリックか否かを判定する判定手段と、を備えることを特徴とする、
入力装置。
【請求項２】
前記特定手段は、前記第１のベクトルの前記始点を終点とし、この終点の所定時間前に取得した位置を始点とする第２のベクトルを特定し、
前記判定手段は、前記第１のベクトルと前記第２のベクトルとのなす角度に応じて、前記フリックであるか否かを判定することを特徴とする、
請求項１記載の入力装置。
【請求項３】
ユーザの操作がフリックであるか否かを判定するための基準となる閾値を設定する設定手段を更に備え、
前記判定手段は、前記第１のベクトルの始点から終点までの速度と前記閾値とに基づいて、前記フリックであるか否かを判定することを特徴とする、
請求項２記載の入力装置。
【請求項４】
前記設定手段は、前記第１のベクトルと前記第２のベクトルとの前記なす角度が所定の範囲内の角度であるか否かを判定し、所定の範囲内であれば、前記閾値を前記操作領域のサイズに応じて補正することを特徴とする、
請求項３記載の入力装置。
【請求項５】
前記設定手段は、前記第１のベクトルと前記第２のベクトルとの前記なす角度θが９０°≦θ≦２７０°であれば、前記閾値を前記操作領域のサイズに応じて補正することを特徴とする、
請求項４記載の入力装置。
【請求項６】
前記設定手段は、前記閾値を元の値よりも小さい値に補正することを特徴とする、
請求項４又は５記載の入力装置。
【請求項７】
前記判定手段は、前記第１のベクトルが前記操作領域の外側を向くときに、ユーザの操作がフリックではないと判定することを特徴とする、
請求項１〜６のいずれか１項記載の入力装置。
【請求項８】
前記判定手段は、前記第１のベクトルの終点から前記操作領域の縁部までの距離、及び前記第１のベクトルと前記操作領域の縁部とのなす角度に応じて、前記第１のベクトルが前記操作領域の外側を向くか否かを判定することを特徴とする、
請求項７記載の入力装置。
【請求項９】
前記判定手段は、前記第１のベクトルの終点から前記操作領域の縁部までが一定距離以内で、前記第１のベクトルと前記操作領域の縁部とが所定の角度の範囲内であれば、前記第１のベクトルが前記操作領域の外側を向いていると判定することを特徴とする、
請求項８記載の入力装置。
【請求項１０】
ユーザの指示を認識する操作領域を有するタッチパネルを備える入力装置により実行される方法であって、
前記操作領域で指示された位置を一定の周期で取得するステップと、
ユーザによる指示が終了したときに取得した位置を終点とし、この終点の所定時間前に取得した位置を始点とする第１のベクトルを特定するステップと、
前記第１のベクトルの向き及び速度に基づいて、ユーザの操作が前記第１のベクトルの向きへのフリックか否かを判定するステップと、を含むことを特徴とする、
操作判定方法。
【請求項１１】
ユーザの指示を認識する操作領域を有するタッチパネルを備えたコンピュータに、
前記操作領域で指示された位置を一定の周期で取得するステップ、
ユーザによる指示が終了したときに取得した位置を終点とし、この終点の所定時間前に取得した位置を始点とする第１のベクトルを特定するステップ、
前記第１のベクトルの向き及び速度に基づいて、ユーザの操作が前記第１のベクトルの向きへのフリックか否かを判定するステップ、
を実行させるためのコンピュータプログラム。
【請求項１２】
請求項１１記載のコンピュータプログラムを格納したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、タッチパネルのような入力装置を用いた入力制御技術に関する。
【背景技術】
【０００２】
一般に、マウスボタンを押し続けたままマウスカーソルの位置を移動することを「ドラッグ」といい、押し続けているマウスボタンを離すことを「リリース」という。同様に、指やスタイラス等でタッチパネルの任意の位置を触れたまま、触れている位置を移動することを「ドラッグ」といい、触れている指等をタッチパネルから離すことを「リリース」という。また、指等でタッチパネルの任意の位置を触れた後に払うように指等を離すことを「フリック」という。特許文献１には、指等で触れているタッチパネル上の位置の移動速度が所定の基準を満たす場合に、「フリック」があったと判定する技術が開示されている。また、フリックにより指等を払った方向に応じて、画面上に表示されたオブジェクトを慣性移動させる技術が知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許第７７６１８１４号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ドラッグ及びフリックを受け付けることが可能なタッチパネルにおいては、以下のような問題が生じる可能性がある。例えば、表示されているオブジェクトをドラッグ及びリリースにより所定の位置に移動させる場合、指のリリース時に、タッチパネルへの接触面が指の腹から指先に移動することがフリックと判定されることがある。これは、ユーザの意図しない操作であり、その結果、タッチパネルの使い勝手が悪くなる。
【０００５】
図１０は、ユーザの意図しないフリックの説明図である。図１０（ａ）は、ユーザが、タッチパネル２０４上で指２１０を軌跡１００１に示すように手前（図中左から右）に引いてドラッグする様子を表す。指２１０のリリース時には、図１０（ｂ）に示すように、タッチパネル２０４への接触面が指２１０の腹から指先に速度１００２で移動する。速度１００２がフリックを判定するための閾値を超過すると、図１０（ｃ）のように指２１０がリリースされた後に、ドラッグとは逆方向にフリックが行われたと判定される。
【０００６】
本発明は、上記の問題を解決するために、ユーザの意図しない操作を防止する入力装置を提供することを主たる課題とする。
【課題を解決するための手段】
【０００７】
上記課題を解決する本発明の入力装置は、ユーザの指示を認識する操作領域で指示された位置を、一定の周期で取得する取得手段と、ユーザによる指示が終了したときに取得した位置を終点とし、この終点の所定時間前に前記取得手段で取得した位置を始点とする第１のベクトルを特定する特定手段と、前記第１のベクトルの向き及び速度に基づいて、ユーザの操作がフリックか否かを判定する判定手段と、を備えることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、第１のベクトルの向きをフリックの判定に用いるために、ユーザの意図しない操作を防止することができる。
【図面の簡単な説明】
【０００９】
【図１】（ａ）、（ｂ）は、情報処理装置の構成図。
【図２】（ａ）はデジタルカメラの外観図、（ｂ）は操作領域の説明図。
【図３】（ａ）〜（ｊ）は、ドラッグからリリースまでの一連の動作を表す図。
【図４】（ａ）、（ｂ）は、ドラッグ操作ベクトル及びフリック操作ベクトルの説明図。
【図５】操作を判定する処理を表すフローチャート。
【図６】（ａ）、（ｂ）は、ドラッグからリリースまでの一連の動作を表す図。
【図７】操作を判定する処理を表すフローチャート。
【図８】ステップＳ７０１の処理の詳細なフローチャート。
【図９】（ａ）〜（ｃ）は、ドラッグからリリースまでの一連の動作を表す図。
【図１０】意図しないフリックの説明図。
【発明を実施するための形態】
【００１０】
以下、図面を参照して実施形態を詳細に説明する。ただし、本実施形態に記載されている構成要素はあくまでも例示であり、本発明の範囲をそれらのみに限定する趣旨のものではない。
【００１１】
［第１実施形態］
図１は、第１実施形態の情報処理装置の構成図である。図１（ａ）は、情報処理装置のハードウェア構成図である。情報処理装置１００には、記憶部１０７、入力部１０８、及び出力部１０９が接続される。
【００１２】
情報処理装置１００は、ＣＰＵ（Central Processing Unit）１０１、ＲＯＭ（Read Only Memory）１０２、ＲＡＭ（Random Access Memory）１０３を備える。ＣＰＵ１０１は、ＲＯＭ１０２に格納されたコンピュータプログラムを読み出してＲＡＭ１０３に展開し、実行することで各機能を実現する。ＲＯＭ１０２は、ＣＰＵ１０１によって実行されるコンピュータプログラムや、コンピュータプログラムに関連する各種データを格納する。ＲＡＭ１０３は、コンピュータプログラムを実行するためのワークエリアを提供する。
【００１３】
情報処理装置１００は、更に、入出力インタフェース（Ｉ／Ｆ）１０４、入力Ｉ／Ｆ１０５、出力Ｉ／Ｆ１０６を備える。入出力Ｉ／Ｆ１０４は、記憶部１０７に対して、各種処理の実行結果であるデータ等を出力するとともに、記憶部１０７に記憶されたデータ等を取得する。入力Ｉ／Ｆ１０５は、入力部１０８から出力される信号を取得する。出力Ｉ／Ｆ１０６は、出力部１０９に対して、各種処理の実行結果や画像を表す信号を出力する。
【００１４】
記憶部１０７は、ハードディスクドライブ等の大容量記憶装置であり、各種処理の実行結果として出力されるデータ等を記憶する。入力部１０８は、例えば、マウス、トラックボール、タッチパネル、キーボード、ボタン等のポインティングデバイスであり、ユーザによる入力操作を検知し、検知した操作に対応する信号を情報処理装置１００に出力する。入力部１０８には操作領域が設けられ、操作領域に、ポインティングデバイスにより移動させられるポインタが表示される。出力部１０９は、例えば液晶ディスプレイ等であり、各種処理の実行結果や画像を表す信号に応じた画像を表示する。なお、入力部１０８がタッチパネルである場合、入力部１０８と出力部１０９とは一体に構成される。
【００１５】
図１（ｂ）は、ＣＰＵ１０１がコンピュータプログラムを実行することで、情報処理装置１００で実現される機能を表す機能ブロック図である。情報処理装置１００には、取得部１２１、特定部１２２、設定部１２３、判定部１２４、制御部１２５、及び保持部１２６が実現される。
【００１６】
取得部１２１は、入力Ｉ／Ｆ１０５及びＣＰＵ１０１により形成され、入力部１０８から一定の周期で信号を取得し、特定部１２２に、取得した信号に応じた情報を出力する。特定部１２２に出力する「情報」は、例えば、ユーザ操作（ポインタによるポインティング操作）が検知された位置（ユーザによって指定された位置）を示す情報と、当該操作が検知されたタイミングを示す情報とのセット等である。
【００１７】
特定部１２２は、ＣＰＵ１０１により形成され、取得部１２１から出力された情報に基づいて、注目位置の移動量を算出し、ドラッグによる操作方向を表すドラッグ操作ベクトルと、フリックによる操作方向及び速度を表すフリック操作ベクトルとを特定する。「注目位置」とは、入力部１０８がタッチパネルである場合、タッチパネル上で指の接触が検知された位置である。つまり注目位置は、操作領域上のポインタが存在する位置である。「注目位置の移動量」とは、例えば、指等でタッチパネルをドラッグし、その後、指等をリリースしたときの移動距離である。つまり、注目位置の移動量は、ポインタの移動量である。ドラッグ操作ベクトル及びフリック操作ベクトルの詳細については後述する。
【００１８】
例えば、注目位置の移動量は、タッチパネルから通知される座標点により指等が移動した軌跡を特定し、その軌跡の長さとしてもよく、また、指等が触れた位置から指等を離した位置までの直線距離としてもよい。その他に、注目位置の移動量を、タッチパネルから通知される指等のタッチ位置が移動したことを表すイベントの通知回数により概算してもよい。
【００１９】
設定部１２３は、ＣＰＵ１０１により形成され、ユーザの操作をフリックと判定するための閾値を設定する。閾値は、注目位置の移動速度に対する基準の値となる。また、設定部１２３は、操作領域のサイズの縦方向の閾値と横方向の閾値とを設定する。
【００２０】
判定部１２４は、ＣＰＵ１０１により形成され、単位時間当たりの注目位置の移動量（移動速度）と設定部１２３によって設定された閾値とに基づいて、ユーザの操作がフリックか否かを判定する。「単位時間」は、例えば、触れた指をタッチパネルから離したときに最後に接触が検知された時刻と、その時刻よりも所定時間（例えば、２０ミリ秒）前の時刻によって定まる時間である。
【００２１】
制御部１２５は、ＣＰＵ１０１及び出力Ｉ／Ｆ１０６により形成され、判定部１２４による判定結果に基づく信号を、出力部１０９に出力する。
【００２２】
保持部１２６は、ＣＰＵ１０１及びＲＡＭ１０３により形成され、操作領域のサイズ（画面サイズ）を示す情報を保持する。「操作領域」は、タッチパネルそのもの、または、タッチパネルのうちユーザの指示を認識することができる領域である。「操作領域のサイズを示す情報」は、例えば、縦の幅が５００ピクセル、横の幅が９００ピクセルといった情報である。
【００２３】
図２（ａ）は、情報処理装置１００の一例であるデジタルカメラ２００の外観図である。デジタルカメラ２００は、電源ボタン２０１、シャッターボタン２０２、レンズ２０３、及びタッチパネル２０４を備える。ユーザは、指２１０によりタッチパネル２０４の操作を行うことができる。タッチパネル２０４は、入力部１０８及び出力部１０９に相当する。なお、情報処理装置１００には、デジタルカメラの他に、スマートフォンやタブレットＰＣ等のように、入力装置としてタッチパネルを備える電子機器を用いることができる。
【００２４】
図２（ｂ）は、タッチパネル２０４の操作領域の説明図である。本実施形態では、操作領域を、縦の幅が５００ピクセル、横の幅が９００ピクセルとする。ユーザは、操作領域上で指２１０により、位置２１１においてドラッグを開始し、位置２１２付近においてリリースする。
【００２５】
図３は、指２１０がドラッグを開始し、リリースするまでの一連の動作を表す図である。本実施形態では、デジタルカメラ２００の電源ボタン２０１が操作されて電源が投入されると、ＣＰＵ１０１が、一定の周期（例えば、２０ミリ秒間隔）でタッチパネル２０４に接触があるか否かを表す信号を取得する。タッチパネル２０４に接触がある場合、ＣＰＵ１０１は、タッチパネル２０４から接触が検知された位置（注目位置）を表す信号を取得する。以下の説明において、電源が投入された時刻を０秒とする（図３（ａ））。
【００２６】
電源の投入後、１０ミリ秒後に指２１０がタッチパネル２０４に接触してそのままタッチパネル２０４上を移動開始する（図３（ｂ））。タッチパネル２０４は、２０ミリ秒後に指２１０とタッチパネル２０４とが接触している位置を、注目位置として検知する（図３（ｃ））。ＣＰＵ１０１は、タッチパネル２０４から注目位置を表す信号を取得し、取得した時刻とともにＲＡＭ１０３に記憶する。ＲＡＭ１０３には、２０ミリ秒間隔で同様に注目位置の座標と時刻を示す情報とのセットが記憶される（図３（ｃ）〜図３（ｈ））。１３０ミリ秒後に、指２１０がタッチパネル２０４上を離れる（図３（ｉ））。タッチパネル２０４は、１４０ミリ秒後に、タッチパネル２０４に接触しているものがないと判定する（図３（ｊ））。つまり、指２１０とタッチパネル２０４との接触は、１０ミリ秒後から１３０ミリ秒後までの間生じているが、デジタルカメラ２００は、２０ミリ秒後から１２０ミリ秒後までの間接触が生じているものと判断する。注目位置の移動量は、接触が検知された位置の移動に応じた値であればよく、指２１０とタッチパネル２０４との接触を開始した位置と、指２１０とタッチパネル２０４との接触を終了した位置との間の距離に限るものではない。
【００２７】
図４は、ドラッグ操作ベクトル及びフリック操作ベクトルの説明図である。
【００２８】
図４（ａ）は、ユーザがタッチパネル２０４をドラッグ及びリリースする様子を示す。位置４０１は、ユーザがタッチパネル２０４に指２１０を接触開始させた位置であり、タッチパネル２０４は接触の開始を検知する。位置４０２は、ユーザがタッチパネル２０４から指２１０を離すことを意図した位置であり、タッチパネル２０４は接触（指示）を検知する。位置４０３は、ユーザの指２１０による接触（指示）が実際に終了した位置であり、タッチパネル２０４は接触の終了を検知する。特定部１２２は、位置４０２を、位置４０３の検出時刻から所定時間前に検出する。例えば、特定部１２２は、位置４０２を、位置４０３の検出時刻から４０ミリ秒前に検出する。ドラッグ操作ベクトル４０４は、位置４０１を始点、位置４０２を終点とするベクトルである。フリック操作ベクトル４０５は、位置４０２を始点、位置４０３を終点とするベクトルである。
【００２９】
図４（ｂ）は、ドラッグ操作ベクトル４０４とフリック操作ベクトル４０５とのなす角度θの説明図である。特定部１２２は、ドラッグ操作ベクトル４０４とフリック操作ベクトル４０５とのなす角度θを特定する。角度θは、例えば、ドラッグ操作ベクトル４０４とフリック操作ベクトル４０５との内積から余弦で算出される。
【００３０】
図５は、ユーザによる操作を判定する処理を表すフローチャートである。この操作判定処理は、ユーザがタッチパネル２０４から指等をリリースしたことにより開始される。図５の処理では、例えば図４（ａ）の位置４０２から位置４０３までの指２１０の移動が、フリックであるか否かの判断を行う。
【００３１】
取得部１２１は、ポインタによるポインティングのリリースを表す信号を取得する（Ｓ５０１）。ポインタによるポインティングのリリースを表す信号とは、例えば、タッチパネル２０４に接触しているものが存在する状態から、接触しているものが無くなったと判定したことを表す信号であり、ユーザによる指示の終了を表す。
【００３２】
特定部１２２は、フリック操作ベクトル４０５を特定し（Ｓ５０２）、フリック操作ベクトル４０５の速度を特定する（Ｓ５０３）。特定部１２２は、ドラッグ操作ベクトル４０４とフリック操作ベクトル４０５とのなす角度θを特定する（Ｓ５０４）。設定部１２３は、特定した角度θが所定の範囲内の角度（例えば、９０°≦θ≦２７０°）であるか否かを判定する（Ｓ５０５）。つまり、フリック操作ベクトル４０５の方向がドラッグ操作ベクトル４０４の方向とは逆方向の成分を含むか否かを判定する。
【００３３】
角度θが所定の範囲内である場合（Ｓ５０５：Y）、設定部１２３は、保持部１２６に保持された情報に基づいて、操作領域のサイズを特定する（Ｓ５０６）。設定部１２３は、特定された操作領域のサイズに応じて、縦方向の速度の閾値及び横方向の速度の閾値を補正する（Ｓ５０７）。例えば、設定部１２３は、補正により縦方向の速度の閾値を、元の値よりも小さい値に補正する。具体的には、例えば、操作領域のサイズが縦の幅５００ピクセル、横の幅９００ピクセルである場合、設定部１２３は、縦方向の速度の閾値を５００／９００倍に変更する。
【００３４】
角度θが所定の範囲外である場合（Ｓ５０５：N）、又は縦方向の速度の閾値及び横方向の速度の閾値を補正後に、判定部１２４は、フリック操作ベクトル４０５の速度と閾値とを比較する（Ｓ５０８）。判定部１２４は、フリック操作ベクトル４０５の縦方向成分が縦方向の閾値を超過しているか、又はフリック操作ベクトル４０５の速度の横方向成分が横方向の閾値を超過しているかを判断する。
【００３５】
フリック操作ベクトル４０５の縦方向成分の速度が縦方向の速度又は横方向成分の速度が閾値を超過している場合（Ｓ５０８：Y）、判定部１２４は、制御部１２５にフリックを有効にする信号を出力し（Ｓ５０９）、ＣＰＵ１０１は一連の処理を終了する。フリック操作ベクトル４０５の縦方向成分の速度及び横方向成分の速度が閾値を超過していないと判断された場合（Ｓ５０８：N）、ＣＰＵ１０１は一連の処理を終了する。
【００３６】
図６は、指２１０がタッチパネル２０４にドラッグし、リリースするまでの一連の操作を表す図である。
【００３７】
図６（ａ）は、指２１０がタッチパネル２０４に位置６０１で接触し始め、位置６０２でユーザが指２１０の接触を終了することを意図し、位置６０３において実際に接触が終了する様子を表す。位置６０２は、リリース前に最後に検知された点より所定時間（例えば、４０ミリ秒）前に接触が検知された位置である。図６（ａ）では、ドラッグ操作ベクトル４０４とフリック操作ベクトル４０５とのなす角度θを１２０°とする。また、フリックと判定するための縦方向の速度の閾値が１０ピクセル／ミリ秒、横方向の速度の閾値が２０ピクセル／ミリ秒とする。操作領域のサイズが、縦の幅５００ピクセル、横の幅９００ピクセルとする。位置６０３において実際に接触が終了したときに図５の処理を実行することで、以下のようにユーザの操作が判定される。
【００３８】
特定部１２２は、フリック操作ベクトル４０５の速度を特定する（Ｓ５０３）。ここでは、フリック操作ベクトル４０５の速度を３ピクセル／ミリ秒とする。設定部１２３は、ドラッグ操作ベクトル４０４とフリック操作ベクトル４０５とのなす角度θが、所定の角度範囲内であると判定する（Ｓ５０５：Y）。設定部１２３は、フリックと判定するための縦方向の閾値を５ピクセル／ミリ秒、横方向の閾値を１０ピクセル／ミリ秒に設定する（Ｓ５０７）。判定部１２４は、フリック操作ベクトル４０５の速度の縦方向の成分及び横方向の成分が、各々閾値を超過していないと判定する（Ｓ５０８：N）。判定部１２４は、制御部１２５にフリックを有効にする信号を出力せず、処理が終了する。このように図６（ａ）に示す一連の操作は、フリックとは判断されず、例えばドラッグアンドリリースと判断される。
【００３９】
図６（ｂ）は、指２１０がタッチパネル２０４に位置６１１で接触し始め、位置６１２でユーザが指２１０の接触を終了することを意図し、位置６１３において実際に接触が終了する様子を表す。位置６１２は、リリース前に最後に検知された点より所定時間（例えば、４０ミリ秒）前に接触が検知された位置である。図６（ｂ）では、ドラッグ操作ベクトル４０４とフリック操作ベクトル４０５とのなす角度θを６０°とする。また、フリックと判定するための縦方向の速度の閾値が５ピクセル／ミリ秒、横方向の速度の閾値が１０ピクセル／ミリ秒とする。操作領域のサイズが、縦の幅５００ピクセル、横の幅９００ピクセルとする。位置６１３において実際に接触が終了したときに図５の処理を実行することで、以下のようにユーザの操作が判定される。
【００４０】
特定部１２２は、フリック操作ベクトル４０５の速度を特定する（Ｓ５０３）。ここでは、フリック操作ベクトル４０５の速度を１５ピクセル／ミリ秒とする。設定部１２３は、ドラッグ操作ベクトル４０４とフリック操作ベクトル４０５とのなす角度θが、所定の角度範囲外であると判定する（Ｓ５０５：N）。判定部１２４は、フリック操作ベクトル４０５の速度の縦方向成分が縦方向の速度の閾値を超過、又は横方向成分が横方向の速度の閾値を超過していると判断する（Ｓ５０８：Y）。判定部１２４は、制御部１２５にフリックを有効にする信号を出力して（Ｓ５０９）、処理が終了する。このように図６（ｂ）に示す一連の操作は、フリックと判断される。
【００４１】
以上のように、リリースの際に接触面が指の腹から指先に移動する方向とリリース前の指の移動方向との角度に応じて、フリックを判断するための閾値を変更する。これにより、例えば、リリース時にドラッグの方向と逆向きに発生した検知位置の移動を無意味な操作と見なすことができ、ドラッグをフリックと誤認識することを防止することができる。タッチパネル（操作領域）の縦幅及び横幅に合うように、ユーザの操作をフリックと判定する処理が可能となる。また、操作領域のサイズが変わる場合があっても、それぞれの縦幅と横幅に合うようにユーザの操作をフリックと判定することが可能となる。従って、ユーザの操作性が向上する。
【００４２】
［第２実施形態］
第１実施形態では、リリース時にドラッグの方向と逆向きに発生したフリックを、指を離したときの無意識の操作と見なすことで、ユーザの意図しない操作を防止している。しかし、この意図しない操作はドラッグの方向と逆向きの方向以外でも発生することがある。逆向きの方向以外に発生する場合、第１実施形態では、フリックと判定されてしまってユーザの意図した結果にならない。第２実施形態では、操作領域の縁部で操作領域の外側へのフリックを検知した場合は，ユーザの意図しないフリックと判定して、無効なフリックとする。操作領域の縁部近くで操作領域の外側にフリックするケースは少ないため、操作領域の縁部近くにおける操作領域の外側へのフリックは意図しないフリックと見なすことができる。
【００４３】
第２実施形態の情報処理装置の構成は、第１実施形態の情報処理装置の構成（図１参照）と同様であるので、説明を省略する。図７は、第２実施形態の、ユーザによる操作を判定する処理を表すフローチャートである。この操作判定処理は、第１実施形態の処理（図５参照）同様に、ユーザがタッチパネル２０４から指等をリリースしたことにより開始される。図７の処理は、図５の処理にステップＳ７０１の処理を追加したことで異なり、他の処理は同様である。同様な処理には同じステップ番号を付している。同様な処理についての説明は省略する。
【００４４】
特定部１２２でフリック操作ベクトル４０５を特定すると（Ｓ５０２）、情報処理装置１００のＣＰＵ１０１は、特定したフリック操作ベクトル４０５が操作領域の外側を向いているか否かを判断する（Ｓ７０１）。フリック操作ベクトル４０５が操作領域の外側を向いている場合（Ｓ７０１：Y）、ＣＰＵ１０１は、ステップＳ５０３以降の処理を実行する。フリック操作ベクトル４０５が操作領域の外側を向いていない場合（Ｓ７０１：N）、ＣＰＵ１０１は、一連の処理を終了する。
【００４５】
図８は、ステップＳ７０１の処理の詳細なフローチャートである。
【００４６】
特定部１２２でフリック操作ベクトル４０５が特定されると、設定部１２３は、保持部１２６により操作領域のサイズを特定する（Ｓ８０１）。設定部１２３は、特定した操作領域のサイズに応じて、操作領域端（縁部）を表す閾値を設定する（Ｓ８０２）。「操作領域端の閾値」とは、例えば、タッチパネル２０４の端部から一定距離（例えば、上端と下端はＹ軸方向に２０ピクセル、右端と左端はＸ軸方向に２０ピクセル）以内のポインタを操作領域端にあるとみなすための値である。ここで、操作領域は矩形であり、左右方向がＸ軸、上下方向がＹ軸である。
【００４７】
特定部１２２は、フリック操作ベクトル４０５の方向を特定する（Ｓ８０３）。フリック操作ベクトル４０５の方向は、例えばＸ軸となす角度で表される。具体的には、フリック操作ベクトル４０５の方向を、フリック操作ベクトル４０５とＸ軸の単位ベクトルとの内積から余弦で特定する。
【００４８】
判定部１２４は、フリック操作ベクトル４０５の終点が操作領域の端部のどの位置にあるかを判定する（Ｓ８０４）。判定部１２４は、フリック操作ベクトル４０５の終点がステップＳ８０２で設定された閾値内にあるか否かにより、終点が端部のどの位置にあるかを判定する。
【００４９】
終点が操作領域の右側端部の閾値内である場合（Ｓ８０４：右側端部の閾値内）、判定部１２４は、フリック操作ベクトル４０５の方向がＸ軸に対して「＋ｓ°〜−ｓ°」の範囲内にあるか否かを判定する（Ｓ８０５）。「ｓ」は９０°未満の任意の角度であり、予め定められる。フリック操作ベクトル４０５の方向が「＋ｓ°〜−ｓ°」の範囲内であれば（Ｓ８０５：Y）、判定部１２４は、フリック操作ベクトル４０５が操作領域の外側を向いていると判定して、ステップＳ７０１の処理を終了する（Ｓ８１０）。フリック操作ベクトル４０５の方向が「＋ｓ°〜−ｓ°」の範囲外であれば（Ｓ８０５：N）、判定部１２４は、フリック操作ベクトル４０５が操作領域の外側を向いていないと判定して、ステップＳ７０１の処理を終了する（Ｓ８０９）。
【００５０】
終点が操作領域の上側端部の閾値内である場合（Ｓ８０４：上側端部の閾値内）、判定部１２４は、フリック操作ベクトル４０５の方向がＸ軸に対して「（９０＋ｓ）°〜（９０−ｓ）°」の範囲内にあるか否かを判定する（Ｓ８０６）。フリック操作ベクトル４０５の方向が「（９０＋ｓ）°〜（９０−ｓ）°」の範囲内であれば（Ｓ８０６：Y）、判定部１２４は、フリック操作ベクトル４０５が操作領域の外側を向いていると判定して、ステップＳ７０１の処理を終了する（Ｓ８１０）。フリック操作ベクトル４０５の方向が「（９０＋ｓ）°〜（９０−ｓ）°」の範囲外であれば（Ｓ８０６：N）、判定部１２４は、フリック操作ベクトル４０５が操作領域の外側を向いていないと判定して、ステップＳ７０１の処理を終了する（Ｓ８０９）。
【００５１】
終点が操作領域の左側端部の閾値内である場合（Ｓ８０４：左側端部の閾値内）、判定部１２４は、フリック操作ベクトル４０５の方向がＸ軸に対して「（１８０＋ｓ）°〜（１８０−ｓ）°」の範囲内にあるか否かを判定する（Ｓ８０７）。フリック操作ベクトル４０５の方向が「（１８０＋ｓ）°〜（１８０−ｓ）°」の範囲内であれば（Ｓ８０７：Y）、判定部１２４は、フリック操作ベクトル４０５が操作領域の外側を向いていると判定して、ステップＳ７０１の処理を終了する（Ｓ８１０）。フリック操作ベクトル４０５の方向が「（１８０＋ｓ）°〜（１８０−ｓ）°」の範囲外であれば（Ｓ８０７：N）、判定部１２４は、フリック操作ベクトル４０５が操作領域の外側を向いていないと判定して、ステップＳ７０１の処理を終了する（Ｓ８０９）。
【００５２】
終点が操作領域の下側端部の閾値内である場合（Ｓ８０４：下側端部の閾値内）、判定部１２４は、フリック操作ベクトル４０５の方向がＸ軸に対して「（２７０＋ｓ）°〜（２７０−ｓ）°」の範囲内にあるか否かを判定する（Ｓ８０８）。フリック操作ベクトル４０５の方向が「（２７０＋ｓ）°〜（２７０−ｓ）°」の範囲内であれば（Ｓ８０８：Y）、判定部１２４は、フリック操作ベクトル４０５が操作領域の外側を向いていると判定して、ステップＳ７０１の処理を終了する（Ｓ８１０）。フリック操作ベクトル４０５の方向が「（２７０＋ｓ）°〜（２７０−ｓ）°」の範囲外であれば（Ｓ８０８：N）、判定部１２４は、フリック操作ベクトル４０５が操作領域の外側を向いていないと判定して、ステップＳ７０１の処理を終了する（Ｓ８０９）。
【００５３】
終点が操作領域の各端部の閾値外である場合（Ｓ８０４：N）、判定部１２４は、フリック操作ベクトル４０５が操作領域の外側を向いていないと判定して、ステップＳ７０１の処理を終了する（Ｓ８０９）。このように、フリック操作ベクトル４０５の終点から操作領域の縁部までの距離、及びフリック操作ベクトル４０５と操作領域の縁部とのなす角度に応じて、フリック操作ベクトル４０５が操作領域の外側を向いているか否かが判定される。つまり、フリック操作ベクトル４０５の終点から操作領域の縁部までが一定距離以内であり、フリック操作ベクトル４０５と操作領域の縁部とが所定の角度の範囲内であれば、フリック操作ベクトル４０５が操作領域の外側を向いていると判定される。
【００５４】
図９は、指２１０がタッチパネル２０４をドラッグしてリリースするまでの一連の様子を表す図である。
【００５５】
図９（ａ）は、指２１０が、タッチパネル２０４に位置９０１において接触し始め、操作領域端を表す閾値９０４を超過する位置９０２に移動し、位置９０３において接触を終了する様子を表す。閾値９０４は、タッチパネル２０４の上縁部から一定距離（例えば、２０ピクセル）に設定される。位置９０２は、リリース前に最後に検知される位置より所定時間（例えば、４０ミリ秒）前に接触が検知された位置である。位置９０３で接触が終了したときに、図７、図８の処理が実行される。
【００５６】
図９（ａ）では、位置９０２を始点、位置９０３を終点とするフリック操作ベクトル４０５の終点が、操作領域上側端部の閾値９０４内である。そのために、図８の処理において、ステップＳ８０６の処理が実行される。
【００５７】
フリック操作ベクトル４０５のＸ軸に対する角度は、６０°に特定される（Ｓ８０３）。Ｘ軸に対する所定の角度範囲が１３５°〜４５°（ｓ＝４５）であるとすると、フリック操作ベクトル４０５の角度は、この角度範囲内であると判定される（Ｓ８０６：Y）。そのために、図９（ａ）の操作では、フリックが操作領域外に向いて行われていると判定され（Ｓ８１０）、判定部１２４は、制御部１２５にフリックを有効にする信号を出力せずに処理を終了する。つまり図９（ａ）に示す一連の操作は、フリックとは判断されず、例えばドラッグアンドリリースと判断される。
【００５８】
図９（ｂ）は、指２１０が、タッチパネル２０４に位置５１１において接触し始め、閾値９０４を超過しない位置９１２に移動し、位置９１３において接触を終了する様子を表す。位置９１２は、リリース前に最後に検知される位置より所定時間（例えば、４０ミリ秒）前に接触が検知された位置である。位置９１３で接触が終了したときに、図７、図８の処理が実行される。
【００５９】
図９（ｂ）では、位置９１２を始点、位置９１３を終点とするフリック操作ベクトル４０５の終点が、閾値９０４外である。そのために、図８の処理において、図９（ｂ）の操作では、フリックが操作領域外に向いて行われていないと判定される（Ｓ８０４：N、Ｓ８０９）。その結果、図７のステップＳ５０３以降の処理が行われる。ステップＳ５０３以降の処理については図６（ｂ）で説明したために、省略する。ステップＳ５０３以降の処理の結果、判定部１２４は、制御部１２５にフリックを有効にする信号を出力する。つまり図９（ｂ）に示す一連の操作は、フリックと判断される。
【００６０】
図９（ｃ）は、指２１０が、タッチパネル２０４に位置５１１において接触し始め、閾値９０４を超過する位置９２２に移動し、位置９２３において接触が終了する様子を表す。位置９２２は、リリース前に最後に検知される位置より所定時間（例えば、４０ミリ秒）前に接触が検知された位置である。位置９２３で接触が終了したときに、図７、図８の処理が実行される。
【００６１】
図９（ｃ）では、位置９２２を始点、位置９２３を終点とするフリック操作ベクトル４０５の終点が、操作領域上側端部の閾値９０４内である。そのために、図８の処理において、ステップＳ８０６の処理が実行される。
【００６２】
フリック操作ベクトル４０５のＸ軸に対する角度は、３０°に特定される（Ｓ８０３）。Ｘ軸に対する所定の角度範囲が４５°〜１３５°（Ｓ＝４５）であるとすると、フリック操作ベクトル４０５の角度は、この角度範囲外であると判定される（Ｓ８０６：N）。そのために、図９（ｃ）の操作では、フリックが操作領域外に向いて行われていないと判定される（Ｓ８０９）。その結果、図７のステップＳ５０３以降の処理が行われる。ステップＳ５０３以降の処理については図６（ｂ）で説明したために、省略する。ステップＳ５０３以降の処理の結果、判定部１２４は、制御部１２５にフリックを有効にする信号を出力する。つまり図９（ｃ）に示す一連の操作は、フリックと判断される。
【００６３】
第２実施形態によれば、ユーザが操作領域の縁部でリリースを行ったときに、接触面が指の腹から指先に移動したことによりドラッグをフリックと誤認識することを防ぐことができる。また、ドラッグと逆向きの方向に無意識によるフリックが発生した場合でも、ドラッグをフリックと誤認識することを防ぐことができる。第１実施形態と第２実施形態とを組み合わせることで、操作領域の全体でユーザの意図してない操作についての判定を行うことができる。
【００６４】
［その他の実施形態］
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又はコンピュータ読み取り可能な各種記録媒体を介してシステム或いは装置に供給する。そのシステム或いは装置のコンピュータ（またはＣＰＵ、ＭＰＵ等）は、プログラムを読み出して実行することで上述した実施形態の機能を実現する。
【図１】
2015184996.tif 000003
【図２】
2015184996.tif 000004
【図３】
2015184996.tif 000005
【図４】
2015184996.tif 000006
【図５】
2015184996.tif 000007
【図６】
2015184996.tif 000008
【図７】
2015184996.tif 000009
【図８】
2015184996.tif 000010
【図９】
2015184996.tif 000011
【図１０】
2015184996.tif 000012