以下に、本願に開示するコンピュータプログラム、入力装置及び入力方法を、タッチパネルを備えた電気機器を例とした各実施形態を示す図面に基づいて詳述する。本願に開示するコンピュータプログラムは、ユーザインタフェース用のミドルウェアであるUIミドルウェアとして各電気機器に提供される。しかし、本願に開示するコンピュータプログラムは、このような構成には限られず、例えば、Windows(登録商標)、Linux等のOS(Operating System)ソフトウェアに組み込まれる形で提供されてもよい。また、本願に開示するコンピュータプログラムは、計算機ソフトウェア又はメーラー等のアプリケーションソフトウェアに組み込まれる形で提供されてもよい。
本願に開示する入力装置は、本願に開示するコンピュータプログラムを、タッチパネルを備えた電気機器に読み取らせて実行させることによって実現される。
なお、タッチパネルを備えた電気機器としては、例えば、公知のタブレット型のパーソナルコンピュータ、クラウドコンピューティングシステムを利用する際に用いる端末装置等がある。また、タッチパネルを備えた電気機器としては、携帯電話機、PHS(Personal Handy-phone System)、PDA(Personal Digital Assistants)、携帯ゲーム機等の携帯端末がある。更に、タッチパネルを備えた電気機器としては、コピー機、プリンタ、ファクシミリ装置、複合機、カーナビゲーション装置、デジタルカメラ等の機器がある。
また、コンビニエンスストア等に設置され、各種のデータのダウンロードが可能なマルチメディアステーション装置、銀行に設置された現金自動預け払い機(ATM(Automatic Teller Machine)装置)等も、本願の入力装置を実現できる。更に、各種の自動販売機及び自動券売機、各種の案内板、レストランに設置された注文システム、図書館に設置された貸し出しシステム等も、本願の入力装置を実現できる。
(実施形態1)
以下に、実施形態1に係る電気機器について説明する。図1は実施形態1の電気機器の構成例を示すブロック図である。本実施形態1の電気機器10は、例えばパーソナルコンピュータであり、制御部1、ROM(Read Only Memory)2、RAM(Random Access Memory)3、記憶部4、各種処理部5、タッチパネル6等を備える。これらのハードウェア各部はそれぞれバス1aを介して相互に接続される。
本実施形態1の電気機器10は、本願に開示するコンピュータプログラムをROM2又は記憶部4に予め格納しており、制御部1がこのコンピュータプログラムを実行することによって本願に開示する入力装置としての動作を実現する。なお、本願に開示するコンピュータプログラムがUIミドルウェアとしてROM2に格納されている場合には、制御部1は、OSソフトウェアを実行させた後、OS上でUIミドルウェアを実行させる。
また、本願に開示するコンピュータプログラムがOSソフトウェアに組み込まれてROM2に格納されている場合には、制御部1は、OSソフトウェアの実行の際に、本願に開示するコンピュータプログラムも実行させる。また、本願に開示するコンピュータプログラムがアプリケーションソフトウェアに組み込まれてROM2又は記憶部4に格納されている場合には、制御部1は、アプリケーションソフトウェアの実行の際に、本願に開示するコンピュータプログラムも実行させる。
制御部1は、CPU(Central Processing Unit)又はMPU(Micro Processor Unit)等であり、所定のタイミングに従って、ROM2又は記憶部4に予め格納してある制御プログラムを適宜RAM3に読み出して実行する。また制御部1は、上述したハードウェア各部の動作を制御する。ROM2は、電気機器10として動作するために必要な種々の制御プログラムを予め格納している。RAM3はSRAM又はフラッシュメモリ等であり、制御部1による制御プログラムの実行時に発生する種々のデータを一時的に記憶する。
記憶部4は、例えばハードディスクドライブ又はフラッシュメモリ等である。記憶部4は、電気機器10として動作するために必要な種々の制御プログラムを予め格納している。また、記憶部4は、図2に示すような補正値データベース(以下、補正値DBという)4aを格納している。補正値DB4aの詳細については後述する。
各種処理部5は、制御部1からの指示に従って各種の処理を実行する。なお、各種の処理とは、電気機器10が実行可能な処理であり、電気機器10がパーソナルコンピュータであればパーソナルコンピュータとして実行可能な処理である。また、電気機器10が携帯電話機であれば、各種処理部5は、例えば、音声データを送受信する通話処理、電子メールを送受信するデータ通信処理等の処理を行なう。
タッチパネル6は、表示部60及びタッチセンサ61を備える。表示部60及びタッチセンサ61はそれぞれバス1aに接続されている。
表示部60は、例えば液晶ディスプレイであり、制御部1からの指示に従って、電気機器10の動作状態、ユーザに対して通知すべき情報等を表示する。また、表示部60は、電気機器10がタッチパネル6を介して受け付けるべき各種の情報に対応付けられた各種のボタン及びメニュー等を表示する。
タッチセンサ61は、ユーザがタッチパネル6をタッチ操作(接触操作)したか否かを検出する。具体的には、タッチセンサ61は、例えば、押下された圧力を検出する圧力センサ、押下された箇所における静電容量の変化を検出する静電容量式センサ等である。タッチセンサ61は、ユーザがタッチパネル6をタッチ操作することによって変化する検出信号を制御部1へ送出する。なお、タッチセンサ61は、タッチパネル6上の接触箇所を赤外線又は超音波等を用いて検出する各種のセンサであってもよい。また、タッチパネル6の表面をカメラによって撮像し、得られた画像に基づいて、タッチパネル6上の接触箇所を検出する画像処理センサを用いてもよい。
図2は実施形態1の補正値DB4aの格納内容を示す模式図である。図2に示すように、補正値DB4aには、接触領域の面積に対応させて補正値がそれぞれ格納されている。接触領域の面積は、ユーザがタッチパネル6をタッチ操作する際にユーザがタッチパネル6に接触している領域の面積である。補正値は、ユーザがタッチパネル6をタッチ操作している場合に表示されるカーソル(操作対象指示子)の表示態様を決定する際に用いる数値である。補正値DB4aには、各接触領域の面積に対して最適な補正値が予め格納される。なお、図2に示す補正値DB4aでは、接触領域の面積を示す数値として適宜の範囲が設定されているが、1pixel2 毎に補正値を設定してもよい。
以下に、本実施形態1の電気機器10において、制御部1が、ROM2又は記憶部4に格納されている制御プログラムを実行することによって実現する機能について説明する。図3は実施形態1の電気機器10の機能構成例を示す機能ブロック図、図4は実施形態1の表示画面例を示す模式図である。
図4(a)は、計算機ソフトを電気機器10で実行させた場合にタッチパネル6に表示される画面例を示し、ユーザが自身の指yでタッチパネル6をタッチ操作している状態を示す。なお、図4(a)には矢印形状のカーソルcが図示されているが、ユーザの指yがタッチパネルに接触する前にはカーソルcはタッチパネル6に表示されない。図4(b)は、図4(a)に示した画面例においてユーザがタッチ操作している箇所の拡大図である。なお、図4(b)中の黒丸はユーザの指yがタッチパネル6に接触している接触点を模式的に示す。
本実施形態1の電気機器10において、制御部1は、ROM2又は記憶部4に格納されている制御プログラムを実行することによって、接触点検出部11、接触領域算出部12、表示態様決定部13、カーソル表示指示部14、操作対象特定部15、入力情報受付部16、タッチ終了検知部17等の機能を実現する。
接触点検出部11は、タッチセンサ61から出力される検出信号を取得する。接触点検出部11は、タッチセンサ61からの検出信号に基づいて、タッチパネル6においてユーザがタッチ操作している箇所を検出する。具体的には、接触点検出部11は、タッチセンサ61からの検出信号に基づいて、ユーザがタッチ操作している箇所(接触点)を、所定の基準点を基準とした座標の情報(座標値)として取得する。
図4に示す状況では、接触点検出部11は、図4(b)に黒丸で示した各接触点の座標値を取得する。接触点検出部11は、検出した全ての接触点の座標値を接触領域算出部12及びタッチ終了検知部17へ送出する。なお、基準点(0,0)は、例えば、タッチパネル6の表示領域の左上の点であり、各接触点の座標値は、基準点(0,0)から右方向をx座標軸とし、下方向をy座標軸とした座標値(x,y)で表される。また、タッチパネル6の表示領域の右上の点、左下の点又は右下の点を基準点としてもよい。
接触領域算出部12は、接触点検出部11から全ての接触点の座標値を取得する。接触領域算出部(領域取得手段)12は、全ての接触点の座標値に基づいて、全ての接触点を含み、最小サイズとなる矩形の領域(接触領域)を特定し、特定した接触領域の面積を算出する。図4(b)に示す状況では、接触領域算出部12は、全ての黒丸を含み、最小サイズとなる接触領域R0を特定し、特定した接触領域R0の面積を算出する。接触領域算出部12は、特定した接触領域R0の形状及び面積を表示態様決定部13に通知する。
なお、接触領域R0の形状は、例えば、接触領域R0の各頂点の座標値を用いて通知される。また、接触点検出部11から1つの接触点の座標値しか取得しなかった場合、接触領域算出部12は、接触点検出部11から取得した接触点の座標値を接触領域R0の形状として表示態様決定部13に通知する。
表示態様決定部13は、接触領域算出部12から通知された接触領域R0の形状及び面積を取得する。表示態様決定部(決定手段)13は、取得した接触領域R0の形状及び面積に基づいて、表示部60に表示させるカーソルの表示態様を決定する。なお、表示態様決定部13は、カーソルの表示態様として、カーソルの先端の位置の座標値と、カーソルが指し示す方向とを決定する。
表示態様決定部13は、まず、補正値DB4aの格納内容に基づいて、取得した接触領域R0の面積に応じた補正値を特定する。具体的には、表示態様決定部13は、補正値DB4aに格納されている接触領域の面積から、接触領域R0の面積を含む範囲を特定し、特定した範囲に対応する補正値を補正値DB4aから読み出す。
ここで、図2に示す補正値DB4aには、接触領域の面積「1」に対応する補正値が格納されていない。よって、接触領域R0の面積として「1」を接触領域算出部12から通知された場合、表示態様決定部13は、補正値DB4aに格納されている接触領域の面積から、接触領域R0の面積を含む範囲を特定できない。
従って、表示態様決定部13は、接触領域R0の形状及び面積を取得した場合、まず、取得した面積が、補正値DB4aに格納されている接触領域の面積の最小値(図2では「2」)未満であるか否かを判断する。取得した面積が、補正値DB4aに格納されている接触領域の面積の最小値未満であると判断した場合、表示態様決定部13は、接触領域R0の形状として接触領域算出部12から通知された接触点の座標値を操作対象特定部15に通知する。
なお、補正値DB4aの格納内容は図2に示した例に限られず、補正値DB4aに格納される接触領域の面積の最小値も「2」に限られない。例えば、補正値DB4aに格納される接触領域の面積の最小値が「4」であるとする。この場合、表示態様決定部13は、接触領域算出部12から通知された接触領域R0の面積が1〜3であれば、接触領域算出部12から通知された接触領域R0の形状を操作対象特定部15に通知する。なお、表示態様決定部13は、接触領域R0の形状として、接触領域算出部12から通知された各接触点の座標値を操作対象特定部15に通知する。
取得した面積が、補正値DB4aに格納されている接触領域の面積の最小値以上であると判断した場合、表示態様決定部13は、取得した接触領域R0の面積に応じた補正値を補正値DB4aから読み出す。
次に表示態様決定部13は、接触領域算出部12から通知された接触領域R0の形状に基づいて、接触領域R0の上方の長辺の中央位置の座標値を算出する。表示態様決定部13は、接触領域R0の上方の長辺の中央位置から、この長辺に垂直な方向に、補正値DB4aから読み出した補正値だけ隔てた位置の座標値を算出する。なお、接触領域R0の上方の長辺の中央位置から補正値だけ隔てた位置が、矢印形状のカーソルの先端位置となる。
表示態様決定部13は、カーソルの先端位置の座標値と、接触領域R0の上方の長辺の中央位置の座標値とをカーソル表示指示部14に通知する。なお、カーソルの先端位置と、接触領域R0の長辺の中央位置とを接続した直線の方向が、カーソルが指し示す方向となる。また、表示態様決定部13は、カーソルの先端位置の座標値を操作対象特定部15に通知する。
カーソル表示指示部14は、カーソルの先端位置の座標値と、接触領域R0の長辺の中央位置の座標値とを表示態様決定部13から取得する。カーソル表示指示部14(出力手段)は、表示態様決定部13から通知された表示態様でカーソルを表示させるための表示指示を表示部60へ出力する。具体的には、カーソル表示指示部14は、通知されたカーソルの先端位置の座標値をカーソルの先端位置の座標値とし、カーソルの先端位置と接触領域R0の長辺の中央位置とを接続した直線上にカーソルを配置させる表示指示を表示部60へ出力する。
これにより、表示部60は、図4(b)に示すように、ユーザの指yの接触領域R0から、接触領域R0の面積に応じた補正値hを隔てた位置を先端位置としたカーソルCを表示できる。
なお、カーソルCの長さ及び先端の形状等の情報は予めROM2又は記憶部4に格納されている。従って、カーソル表示指示部14は、ROM2又は記憶部4に格納されているカーソルの情報を読み出し、読み出した情報が示す形状のカーソルCの表示指示を表示部60へ出力する。
接触点検出部11、接触領域算出部12、表示態様決定部13及びカーソル表示指示部14は、タッチセンサ61から検出信号が出力されている間、上述した各処理を行なう。これにより、ユーザがタッチ操作する際の接触領域R0の面積及び位置に応じて適切なカーソルCが表示される。
操作対象特定部15は、表示態様決定部13から接触領域R0の形状として接触点の座標値を通知された場合、通知された接触点の座標値に基づいて、この接触点に対応する操作対象を特定する。
なお、タッチパネル6に表示される操作ボタン及びメニュー等の操作対象の表示位置及び表示サイズ等の情報は、アプリケーションプログラム内で設定されている。各操作対象の表示位置の情報は、例えば、操作対象の表示領域の左上の点の座標値であり、基準点(0,0)から右方向をx座標軸とし、下方向をy座標軸とした座標値(x,y)で表される。なお、基準点(0,0)は、例えば、タッチパネル6の表示領域の左上の点であるが、タッチパネル6の表示領域の右上の点、左下の点又は右下の点を基準点としてもよい。
従って、操作対象特定部15は、各操作対象の表示位置の情報を取得し、取得した情報と、表示態様決定部13から通知された接触点の座標値とに基づいて、この接触点を表示領域に含む操作対象を特定する。操作対象特定部15は、表示態様決定部13から通知された接触点を表示領域に含む操作対象を特定した場合、特定した操作対象を入力情報受付部16に通知する。なお、ユーザが操作対象の表示領域ではない箇所をタッチ操作している場合には、表示態様決定部13から通知された接触点を表示領域に含む操作対象は特定できない。従って、操作対象を特定できない場合は、操作対象特定部15は、何も行なわない。
入力情報受付部16は、操作対象特定部15から通知された操作対象に対応する情報を特定し、特定した情報を入力情報として受け付ける。なお、各操作対象に対応する情報もアプリケーションプログラム内で設定されている。これにより、ユーザによってタッチ操作された接触領域R0の面積が、補正値DB4aに格納された接触領域の面積の最小値未満の面積であれば、接触領域R0に対応する位置に表示されていた操作対象が操作されたと特定される。
タッチ終了検知部17は、接触点検出部11から取得する接触点の座標値に基づいて、ユーザによるタッチ操作が終了したか否かを判断する。具体的には、タッチ終了検知部17は、接触点検出部11から接触点の座標値の通知が終了した場合、ユーザによるタッチ操作が終了したことを検知する。タッチ終了検知部17は、ユーザによるタッチ操作が終了したことを検知した場合、タッチ操作が終了した旨を操作対象特定部15に通知する。
操作対象特定部15は、上述したように、表示態様決定部13からカーソルの先端位置の座標値を通知されている。操作対象特定部15は、カーソルの先端位置の座標値を通知されている状況で、タッチ終了検知部17からタッチ操作の終了を通知された場合、通知されたカーソルの先端位置の座標値に基づいて、この先端位置に対応する操作対象を特定する。
具体的には、操作対象特定部15は、各操作対象の表示位置の情報と、表示態様決定部13から通知されたカーソルの先端位置の座標値とに基づいて、カーソルの先端位置を表示領域に含む操作対象を特定する。操作対象特定部15は、カーソルの先端位置を表示領域に含む操作対象を特定した場合、特定した操作対象を入力情報受付部16に通知する。なお、操作対象の表示領域ではない箇所をカーソルが指し示している状態でユーザがタッチ操作を終了した場合には、カーソルの先端位置を表示領域に含む操作対象は特定できない。従って、操作対象を特定できない場合は、操作対象特定部15は、何も行なわない。
入力情報受付部16は、操作対象特定部15から通知された操作対象に対応する情報を特定し、特定した情報を入力情報として受け付ける。これにより、ユーザによるタッチ操作が終了した時点でカーソルCが指し示す位置に表示されていた操作対象が操作されたと特定される。
以下に、本実施形態1の電気機器10において、ユーザがタッチ操作している際に、制御部1が行なう処理についてフローチャートに基づいて説明する。なお、ユーザがタッチ操作している際に制御部1が行なう処理は、カーソルを表示させる処理、タッチ操作による入力情報を受け付ける処理である。図5及び図6は実施形態1の入力情報受付処理の手順を示すフローチャートである。以下の処理は、電気機器10のROM2又は記憶部4に格納されている制御プログラムに従って制御部1によって実行される。
制御部1は、タッチセンサ61からの検出信号に基づいて、ユーザによってタッチパネル6をタッチ操作されたか否かを検出しており(S1)、タッチ操作されたことを検出していない場合(S1:NO)、他の処理を行ないつつ待機する。タッチ操作されたことを検出した場合(S1:YES)、制御部1は、ユーザがタッチ操作している接触点の座標値を取得する(S2)。
制御部1は、取得した接触点の座標値に基づいて、全ての接触点を含み、最小サイズとなる矩形の接触領域R0を特定する(S3)。制御部1は、特定した接触領域R0の面積を算出する(S4)。制御部1は、算出した面積が、補正値DB4aに格納されている接触領域の面積の最小値未満であるか否かを判断する(S5)。算出した面積が最小値未満であると判断した場合(S5:YES)、制御部1は、ステップS3で特定した接触領域R0に対応する操作対象を特定し、対応する操作対象を特定できたか否かを判断する(S6)。具体的には、制御部1は、接触領域R0を表示領域に含む操作対象を特定し、特定できたか否かを判断する。
制御部1は、操作対象を特定できなかったと判断した場合(S6:NO)、ステップS1に処理を戻す。操作対象を特定できたと判断した場合(S6:YES)、制御部1は、特定した操作対象に対応する入力情報を受け付け(S7)、処理を終了する。
ステップS4で算出された面積が最小値以上であると判断した場合(S5:NO)、制御部1は、算出した面積に応じた補正値を補正値DB4aから読み出す(S8)。制御部1は、ステップS3で特定した接触領域R0の形状と、補正値DB4aから読み出した補正値とに基づいて、タッチパネル6に表示すべきカーソルCの表示態様を決定する(S9)。具体的には、制御部1は、接触領域R0の上方の長辺の中央位置の座標値と、接触領域R0の上方の長辺の中央位置から、この長辺に垂直な方向に、補正値DB4aから読み出した補正値だけ隔てた位置の座標値とを算出する。
制御部1は、ステップS9で決定した表示態様でカーソルCを表示させるための表示指示を表示部60へ出力し、カーソルCを表示部60に表示させる(S10)。制御部1は、タッチセンサ61からの検出信号に基づいて、ユーザによるタッチ操作が終了されたか否かを検出しており(S11)、タッチ操作が終了されたことを検出していない場合(S11:NO)、ステップS1に処理を戻す。
制御部1は、タッチ操作が終了されたことを検出するまで、ステップS1からS10の処理を繰り返す。タッチ操作が終了されたことを検出した場合(S11:YES)、制御部1は、その時点で表示されていたカーソルCの先端位置の座標値を取得する(S12)。制御部1は、取得したカーソルCの先端位置に対応する操作対象を特定し、対応する操作対象を特定できたか否かを判断する(S13)。具体的には、制御部1は、カーソルCの先端位置を表示領域に含む操作対象を特定し、特定できたか否かを判断する。
制御部1は、操作対象を特定できなかったと判断した場合(S13:NO)、ステップS1に処理を戻す。操作対象を特定できたと判断した場合(S13:YES)、制御部1は、特定した操作対象に対応する入力情報を受け付け(S14)、処理を終了する。
上述したように、本実施形態1では、ユーザがタッチ操作している場合、ユーザがタッチパネル6に接触している接触領域の面積に応じた位置にカーソルが表示される。これにより、ユーザの指によって隠れる位置にカーソルが表示されることを防止しつつ、ユーザの指から離れた位置にカーソルが表示されることを防止できる。よって、タッチパネル6を操作する際の操作性を向上させることができる。
また、本実施形態1では、ユーザによる接触領域の面積が、補正値DB4aに格納された接触領域の面積の最小値未満である場合には、カーソルを表示させずに、ユーザがタッチ操作した箇所に表示されていた操作対象をそのまま選択する。これにより、例えば、ペン等のように先端が細いものでタッチ操作した場合には、タッチ操作された箇所に表示されていた操作対象がそのまま選択されるので、直感的な操作が可能である。
本実施形態1の制御部1は、ユーザによる接触領域R0の面積に応じた補正値を補正値DB4aに基づいて特定していた。このような構成に限られず、例えば、接触領域R0の面積に応じた補正値を算出するための計算式を予め設定しておき、制御部1が、計算式を用いて接触領域R0の面積に応じた補正値を算出してもよい。
(実施形態2)
以下に、実施形態2に係る電気機器について説明する。なお、本実施形態2の電気機器は、上述した実施形態1の電気機器10と同様の構成によって実現することができるので、同様の構成については同一の符号を付して説明を省略する。
上述した実施形態1では、ユーザがタッチパネル6に接触している接触領域の上方の長辺の中央位置から、補正値DB4aから特定した補正値だけ離れた位置をカーソルの先端位置としていた。本実施形態2では、接触領域の面積が所定値未満である場合に、接触領域の上方の長辺の中央位置から、補正値DB4aから特定した補正値だけ離れた位置をカーソルの先端位置とする。そして、接触領域の面積が所定値以上となった場合には、接触領域の上方の短辺の中央位置から、補正値DB4aから特定した補正値だけ離れた位置をカーソルの先端位置とする。
図7は実施形態2の表示画面例を示す模式図である。図7(a)は、計算機ソフトを電気機器10で実行させた場合にタッチパネル6に表示される画面例を示し、ユーザが自身の指yでタッチパネル6をタッチ操作している状態を示す。図7(b)は、図7(a)に示した画面例においてユーザがタッチ操作している箇所の拡大図である。なお、図7(b)中の黒丸はユーザの指yがタッチパネル6に接触している接触点を模式的に示す。
本実施形態2の表示態様決定部13は、上述の実施形態1の表示態様決定部13と同様に、接触領域算出部12によって算出された接触領域R0の形状及び面積を取得する。本実施形態2の表示態様決定部13は、まず、取得した接触領域R0の面積が、補正値DB4aに格納された接触領域の面積の最小値未満であるか否かを判断する。取得した面積が最小値未満であると判断した場合、表示態様決定部13は、接触領域R0の形状として接触領域算出部12から通知された接触点の座標値を操作対象特定部15に通知する。
取得した面積が最小値以上であると判断した場合、表示態様決定部13は、取得した接触領域R0の面積に応じた補正値を補正値DB4aから読み出す。次に表示態様決定部13は、取得した接触領域R0の面積が所定値以上であるか否かを判断する。なお、所定値はROM2又は記憶部4に予め格納されており、例えば30pixel2 である。なお、この所定値は、ユーザによって変更可能としてもよい。
取得した面積が所定値以上であると判断した場合、表示態様決定部13は、接触領域算出部12から通知された接触領域R0の形状に基づいて、接触領域R0の上方の短辺の中央位置の座標値を算出する。表示態様決定部13は、接触領域R0の上方の短辺の中央位置から、この短辺に垂直な方向に、補正値DB4aから読み出した補正値だけ隔てた位置の座標値を算出する。なお、接触領域R0の上方の短辺の中央位置から補正値だけ隔てた位置が、この場合のカーソルの先端位置となる。
表示態様決定部13は、カーソルの先端位置の座標値と、接触領域R0の上方の短辺の中央位置の座標値とをカーソル表示指示部14に通知する。なお、カーソルの先端位置と、接触領域R0の短辺の中央位置とを接続した直線の方向が、カーソルが指し示す方向となる。また、表示態様決定部13は、カーソルの先端位置の座標値を操作対象特定部15に通知する。
一方、取得した面積が所定値(例えば30pixel2)未満であると判断した場合、表示態様決定部13は、接触領域算出部12から通知された接触領域R0の形状に基づいて、接触領域R0の上方の長辺の中央位置の座標値を算出する。表示態様決定部13は、接触領域R0の上方の長辺の中央位置から、この長辺に垂直な方向に、補正値DB4aから読み出した補正値だけ隔てた位置の座標値を算出する。なお、接触領域R0の上方の長辺の中央位置から補正値だけ隔てた位置が、この場合のカーソルの先端位置となる。
表示態様決定部13は、カーソルの先端位置の座標値と、接触領域R0の上方の長辺の中央位置の座標値とをカーソル表示指示部14に通知する。なお、カーソルの先端位置と、接触領域R0の長辺の中央位置とを接続した直線の方向が、カーソルが指し示す方向となる。また、表示態様決定部13は、カーソルの先端位置の座標値を操作対象特定部15に通知する。
本実施形態2のカーソル表示指示部14は、カーソルの先端位置の座標値と、接触領域R0の短辺(又は長辺)の中央位置の座標値とを表示態様決定部13から取得する。カーソル表示指示部14は、通知されたカーソルの先端位置の座標値をカーソルの先端位置の座標値とし、カーソルの先端位置と接触領域R0の短辺(又は長辺)の中央位置とを接続した直線上にカーソルを配置させる表示指示を表示部60へ出力する。
これにより、ユーザの指yの接触領域R0の面積が所定値(30pixel2 )以上である場合には、図7(b)に示すように、接触領域R0の上方の短辺から補正値hを隔てた位置を先端位置としたカーソルCが表示される。また、ユーザの指yの接触領域R0の面積が所定値未満である場合には、図4(b)に示すように、接触領域R0の上方の長辺から補正値hを隔てた位置を先端位置としたカーソルCが表示される。
ユーザが指yでタッチ操作を行なっている場合、接触領域R0の面積が所定値以上であれば、指の腹の広い箇所を用いてタッチ操作を行なっている可能性が高い。また、接触領域R0の面積が所定値未満であれば、指先でタッチ操作を行なっている可能性が高い。従って、接触領域R0の面積が所定値以上であるか否かに応じて、接触領域R0の上方の短辺又は長辺から垂直方向にカーソルCを表示させることによって、指yのどの部分でタッチ操作した場合であっても、指yの方向とカーソルCの方向を一致させることができる。よって、ユーザの指yの状態に応じてより見易いカーソルCを表示させることができる。
なお、本実施形態2の表示態様決定部13以外の各部は、上述の実施形態1で説明した処理と同一の処理を行なう。
以下に、本実施形態2の電気機器10において、ユーザがタッチ操作している際に制御部1が行なう処理についてフローチャートに基づいて説明する。図8及び図9は実施形態2の入力情報受付処理の手順を示すフローチャートである。以下の処理は、電気機器10のROM2又は記憶部4に格納されている制御プログラムに従って制御部1によって実行される。
制御部1は、タッチセンサ61からの検出信号に基づいて、ユーザによってタッチパネル6をタッチ操作されたか否かを検出しており(S21)、タッチ操作されたことを検出していない場合(S21:NO)、他の処理を行ないつつ待機する。タッチ操作されたことを検出した場合(S21:YES)、制御部1は、ユーザがタッチ操作している接触点の座標値を取得する(S22)。
制御部1は、取得した接触点の座標値に基づいて、全ての接触点を含み、最小サイズとなる矩形の接触領域R0を特定する(S23)。制御部1は、特定した接触領域R0の面積を算出する(S24)。制御部1は、算出した面積が、補正値DB4aに格納されている接触領域の面積の最小値未満であるか否かを判断する(S25)。算出した面積が最小値未満であると判断した場合(S25:YES)、制御部1は、ステップS23で特定した接触領域R0に対応する操作対象を特定し、対応する操作対象を特定できたか否かを判断する(S26)。具体的には、制御部1は、接触領域R0を表示領域に含む操作対象を特定し、特定できたか否かを判断する。
制御部1は、操作対象を特定できなかったと判断した場合(S26:NO)、ステップS21に処理を戻す。操作対象を特定できたと判断した場合(S26:YES)、制御部1は、特定した操作対象に対応する入力情報を受け付け(S27)、処理を終了する。
ステップS24で算出された面積が最小値以上であると判断した場合(S25:NO)、制御部1は、算出した面積に応じた補正値を補正値DB4aから読み出す(S28)。制御部1は、ステップS24で算出された面積が所定値(例えば30pixel2)以上であるか否かを判断する(S29)。
面積が所定値以上であると判断した場合(S29:YES)、制御部1は、ステップS23で特定した接触領域R0の形状と、補正値DB4aから読み出した補正値とに基づいて、接触領域R0の短辺を基準としたカーソルCの表示態様を決定する(S30)。具体的には、制御部1は、接触領域R0の上方の短辺の中央位置の座標値と、接触領域R0の上方の短辺の中央位置から、この短辺に垂直な方向に、補正値DB4aから読み出した補正値だけ隔てた位置の座標値とを算出する。
面積が所定値未満であると判断した場合(S29:NO)、制御部1は、ステップS23で特定した接触領域R0の形状と、補正値DB4aから読み出した補正値とに基づいて、接触領域R0の長辺を基準としたカーソルCの表示態様を決定する(S31)。具体的には、制御部1は、接触領域R0の上方の長辺の中央位置の座標値と、接触領域R0の上方の長辺の中央位置から、この長辺に垂直な方向に、補正値DB4aから読み出した補正値だけ隔てた位置の座標値とを算出する。
制御部1は、ステップS30又はS31で決定した表示態様でカーソルCを表示させるための表示指示を表示部60へ出力し、カーソルCを表示部60に表示させる(S32)。制御部1は、タッチセンサ61からの検出信号に基づいて、ユーザによるタッチ操作が終了されたか否かを検出しており(S33)、タッチ操作が終了されたことを検出していない場合(S33:NO)、ステップS21に処理を戻す。
制御部1は、タッチ操作が終了されたことを検出するまで、ステップS21からS32の処理を繰り返す。タッチ操作が終了されたことを検出した場合(S33:YES)、制御部1は、その時点で表示されていたカーソルCの先端位置の座標値を取得する(S34)。制御部1は、取得したカーソルCの先端位置に対応する操作対象を特定し、対応する操作対象を特定できたか否かを判断する(S35)。具体的には、制御部1は、カーソルCの先端位置を表示領域に含む操作対象を特定し、特定できたか否かを判断する。
制御部1は、操作対象を特定できなかったと判断した場合(S35:NO)、ステップS21に処理を戻す。操作対象を特定できたと判断した場合(S35:YES)、制御部1は、特定した操作対象に対応する入力情報を受け付け(S36)、処理を終了する。
上述したように、本実施形態2では、ユーザがタッチ操作する場合、ユーザがタッチパネル6に接触している接触領域の面積に応じた位置にカーソルが表示される。これにより、ユーザの指によって隠れる位置にカーソルが表示されることを防止しつつ、ユーザの指から離れた位置にカーソルが表示されることを防止できる。また、ユーザの接触領域の面積が所定値以上であるか否かに応じて、カーソルの表示箇所が接触領域の短辺側又は長辺側に変更される。これにより、ユーザの指の使用状況に応じた方向にカーソルを表示できるので、ユーザがより確認し易いカーソルの表示が可能となる。
(実施形態3)
以下に、実施形態3に係る電気機器について説明する。なお、本実施形態3の電気機器は、上述した実施形態1の電気機器10と同様の構成によって実現することができるので、同様の構成については同一の符号を付して説明を省略する。
上述した実施形態1では、ユーザがタッチパネル6に接触している接触領域の面積が、補正値DB4aに格納された接触領域の面積の最小値未満であれば、カーソルを表示させずに、接触領域を表示領域に含む操作対象が操作されたとしていた。即ち、接触領域の面積が最小値未満であれば、接触領域を表示領域に含む操作対象に対応する情報を入力情報として受け付けていた。
本実施形態3の電気機器10は、タッチパネル6に表示される操作対象(操作ボタン及びメニュー)の最小サイズを検出し、検出した最小サイズに応じて、カーソルを表示させるか否かの基準となる接触領域の面積の最小値を変更させる。
本実施形態3の電気機器10は、図1に示したハードウェア各部のほかに、記憶部4に、図10に示すような下限値データベース(以下、下限値DBという)4bを格納している。図10は下限値DB4bの格納内容を示す模式図である。図10に示すように、下限値DB4bには、操作対象の最小サイズに対応させて接触領域の面積の下限値がそれぞれ格納されている。
操作対象の最小サイズは、例えば、タッチパネル6に表示される操作ボタン及びメニュー等の各操作対象の縦方向の最小サイズである。なお、操作対象の最小サイズの情報は、アプリケーションプログラム内で設定されている。下限値は、タッチ操作された際にカーソルを表示させずに接触領域に対応する操作対象が操作されたとする接触領域の面積の最小値を示す。下限値DB4bには、操作対象の最小サイズに対して適切な下限値が予め格納される。なお、図10に示す下限値DB4bでは、操作対象の最小サイズを示す数値として適宜の範囲が設定されているが、1pixel毎に下限値を設定してもよい。また、操作対象の最小サイズに応じた下限値を算出するための計算式を予め設定しておき、制御部1が、計算式を用いて操作対象の最小サイズに応じた下限値を算出してもよい。
図11は実施形態3の電気機器10の機能構成例を示す機能ブロック図である。本実施形態3の電気機器10において、制御部1は、ROM2又は記憶部4に格納されている制御プログラムを実行することによって、図3に示した各機能のほかに、操作対象管理部18の機能を実現する。
操作対象管理部18は、タッチパネル6に表示される操作ボタン及びメニュー等の操作対象の表示位置及び表示サイズ等の情報をアプリケーションプログラム中から取得する。なお、操作対象の表示位置及び表示サイズの情報は、アプリケーションプログラム内で設定されていてもよいし、電気機器10のシステム情報として予めROM2又は記憶部4に格納されていてもよい。操作対象管理部18は、取得した操作対象の表示サイズのうちの最小値(最小サイズ)を表示態様決定部13に通知する。なお、操作対象の最小サイズは、操作対象の縦方向の最小サイズとするが、操作対象の横方向の最小サイズであってもよいし、操作対象の表示領域の最小面積でもよい。
本実施形態3の表示態様決定部13は、上述の実施形態1の表示態様決定部13と同様に、接触領域算出部12によって算出された接触領域R0の形状及び面積を取得し、操作対象管理部18から操作対象の最小サイズを取得する。本実施形態3の表示態様決定部13は、まず、操作対象管理部18から取得した操作対象の最小サイズに対応する下限値を下限値DB4bから読み出す。そして、表示態様決定部13は、接触領域算出部12から取得した接触領域R0の面積が、下限値DB4bから読み出した下限値未満であるか否かを判断する。
取得した面積が下限値未満であると判断した場合、表示態様決定部13は、接触領域R0の形状として接触領域算出部12から通知された接触点の座標値を操作対象特定部15に通知する。取得した面積が下限値以上であると判断した場合、表示態様決定部13は、取得した接触領域R0の面積に応じた補正値を補正値DB4aから読み出す。
そして、表示態様決定部13は、接触領域算出部12から通知された接触領域R0の形状に基づいて、接触領域R0の上方の長辺の中央位置の座標値を算出する。表示態様決定部13は、接触領域R0の上方の長辺の中央位置から、この長辺に垂直な方向に、補正値DB4aから読み出した補正値だけ隔てた位置の座標値を算出する。なお、接触領域R0の上方の長辺の中央位置から補正値だけ隔てた位置が、矢印形状のカーソルの先端位置となる。
表示態様決定部13は、カーソルの先端位置の座標値と、接触領域R0の上方の長辺の中央位置の座標値とをカーソル表示指示部14に通知する。なお、カーソルの先端位置と、接触領域R0の長辺の中央位置とを接続した直線の方向が、カーソルが指し示す方向となる。また、表示態様決定部13は、カーソルの先端位置の座標値を操作対象特定部15に通知する。
なお、本実施形態3の表示態様決定部13及び操作対象管理部18以外の各部は、上述の実施形態1で説明した処理と同一の処理を行なう。
以下に、本実施形態3の電気機器10において、ユーザがタッチ操作している際に制御部1が行なう処理についてフローチャートに基づいて説明する。図12及び図13は実施形態3の入力情報受付処理の手順を示すフローチャートである。以下の処理は、電気機器10のROM2又は記憶部4に格納されている制御プログラムに従って制御部1によって実行される。
制御部1は、タッチセンサ61からの検出信号に基づいて、ユーザによってタッチパネル6をタッチ操作されたか否かを検出しており(S41)、タッチ操作されたことを検出していない場合(S41:NO)、他の処理を行ないつつ待機する。タッチ操作されたことを検出した場合(S41:YES)、制御部1は、ユーザがタッチ操作している接触点の座標値を取得する(S42)。
制御部1は、取得した接触点の座標値に基づいて、全ての接触点を含み、最小サイズとなる矩形の接触領域R0を特定する(S43)。制御部1は、特定した接触領域R0の面積を算出する(S44)。制御部1は、タッチパネル6に表示される操作ボタン及びメニュー等の操作対象の最小サイズを取得し(S45)、取得した最小サイズに対応する下限値を下限値DB4bから読み出す(S46)。
制御部1は、ステップS44で算出した面積が、下限値DB4bから読み出した下限値未満であるか否かを判断する(S47)。算出した面積が下限値未満であると判断した場合(S47:YES)、制御部1は、ステップS43で特定した接触領域R0に対応する操作対象を特定し、対応する操作対象を特定できたか否かを判断する(S48)。具体的には、制御部1は、接触領域R0を表示領域に含む操作対象を特定し、特定できたか否かを判断する。
制御部1は、操作対象を特定できなかったと判断した場合(S48:NO)、ステップS41に処理を戻す。操作対象を特定できたと判断した場合(S48:YES)、制御部1は、特定した操作対象に対応する入力情報を受け付け(S49)、処理を終了する。
ステップS44で算出された面積が下限値以上であると判断した場合(S47:NO)、制御部1は、算出した面積に応じた補正値を補正値DB4aから読み出す(S50)。制御部1は、ステップS43で特定した接触領域R0の形状と、補正値DB4aから読み出した補正値とに基づいて、タッチパネル6に表示すべきカーソルCの表示態様を決定する(S51)。具体的には、制御部1は、接触領域R0の上方の長辺の中央位置の座標値と、接触領域R0の上方の長辺の中央位置から、この長辺に垂直な方向に、補正値DB4aから読み出した補正値だけ隔てた位置の座標値とを算出する。
制御部1は、ステップS51で決定した表示態様でカーソルCを表示させるための表示指示を表示部60へ出力し、カーソルCを表示部60に表示させる(S52)。制御部1は、タッチセンサ61からの検出信号に基づいて、ユーザによるタッチ操作が終了されたか否かを検出しており(S53)、タッチ操作が終了されたことを検出していない場合(S53:NO)、ステップS41に処理を戻す。
制御部1は、タッチ操作が終了されたことを検出するまで、ステップS41からS52の処理を繰り返す。タッチ操作が終了されたことを検出した場合(S53:YES)、制御部1は、その時点で表示されていたカーソルCの先端位置の座標値を取得する(S54)。制御部1は、取得したカーソルCの先端位置に対応する操作対象を特定し、対応する操作対象を特定できたか否かを判断する(S55)。具体的には、制御部1は、カーソルCの先端位置を表示領域に含む操作対象を特定し、特定できたか否かを判断する。
制御部1は、操作対象を特定できなかったと判断した場合(S55:NO)、ステップS41に処理を戻す。操作対象を特定できたと判断した場合(S55:YES)、制御部1は、特定した操作対象に対応する入力情報を受け付け(S56)、処理を終了する。
上述したように、本実施形態3では、ユーザがタッチ操作する場合にカーソルを表示させるか、又は、カーソルを表示させずに接触領域に対応した操作対象をそのまま入力情報とするか否かの判断基準を動的に設定していた。即ち、タッチパネル6に表示される操作対象(操作ボタン及びメニュー)の最小サイズを検出し、検出した最小サイズに応じて、カーソルを表示させるか否かの基準となる接触領域の面積の最小値を変更させていた。
例えば、操作対象の表示サイズが大きい画面においては、ユーザがタッチ操作する際の接触領域が多少大きい場合であっても、接触箇所に対応する操作対象が選択されたとしても問題はない。これは、操作対象の表示サイズが大きい画面では、接触箇所に対応する操作対象を1つに特定できる可能性が高いからである。しかし、操作対象の表示サイズが小さい画面においては、ユーザがタッチ操作する際の接触領域が大きい場合には接触領域が複数の操作対象に亘る可能性が高く、接触領域に対応する操作対象を1つに特定できない可能性がある。
従って、操作対象の表示サイズに応じて、カーソルを表示させるか否かの判断基準を変更させることにより、操作対象の表示サイズが大きい画面では、操作対象に対応する入力情報を効率よく取得できる。また、操作対象の表示サイズが小さい画面では、操作対象に対応する入力情報を効率よく取得できると共に、カーソルを表示させることによって入力操作の操作性を向上できる。
本実施形態3は、上述した実施形態1の変形例として説明したが、上述した実施形態2の構成にも適用することができる。
(実施形態4)
以下に、実施形態4に係る電気機器について説明する。なお、本実施形態4の電気機器は、上述した実施形態1の電気機器10と同様の構成によって実現することができるので、同様の構成については同一の符号を付して説明を省略する。
上述した実施形態1では、ユーザがタッチ操作している際の接触領域からカーソルの先端位置までの距離を、接触領域の面積に応じて変更させていた。本実施形態4の電気機器10は、ユーザがタッチ操作している際の接触領域からカーソルの先端位置までの距離を、接触領域の面積及びユーザがタッチ操作する際の押下圧力(操作状況)に応じて変更させる。
本実施形態4の電気機器10は、図1に示したハードウェア各部を備える。なお、本実施形態4の記憶部4には、図14に示すような補正値DB4aが格納されている。図14は実施形態4の補正値DB4aの格納内容を示す模式図である。図14に示すように、本実施形態4の補正値DB4aには、接触領域の面積及び押下圧力に対応させて補正値がそれぞれ格納されている。押下圧力は、ユーザがタッチ操作する際にタッチセンサ61によって検出された圧力であり、所定値未満を「弱」、所定値以上を「強」として補正値DB4aに格納されている。なお、ここでの所定値はタッチセンサ61の精度等を考慮して適宜変更可能である。
補正値DB4aには、各接触領域の面積及び押下圧力に対して最適な補正値が予め格納される。なお、図14に示す補正値DB4aでは、接触領域の面積を示す数値として適宜の範囲が設定されているが、1pixel2 毎に補正値を設定してもよい。また、図14に示す補正値DB4aでは、押下圧力を示す情報として「弱」及び「強」の2段階が設定されているが、押下圧力を3段階以上に分割し、段階毎に補正値を設定してもよい。更に、接触領域の面積及び押下圧力に応じた補正値を算出するための計算式を予め設定しておき、制御部1が、計算式を用いて接触領域の面積及び押下圧力に応じた補正値を算出してもよい。
図15は実施形態4の電気機器10の機能構成例を示す機能ブロック図である。本実施形態4の電気機器10において、制御部1は、ROM2又は記憶部4に格納されている制御プログラムを実行することによって、図3に示した各機能のほかに、操作状況取得部19の機能を実現する。
操作状況取得部19は、タッチセンサ61から出力される検出信号を取得する。タッチセンサ61が詳細な圧力を検出できるセンサであれば、操作状況取得部19は、タッチセンサ61からの検出信号に基づいて、ユーザがタッチ操作する際の押下圧力を検出する。そして、操作状況取得部19は、検出した押下圧力が所定値以上であるか否かを判定し、判定結果(強又は弱)を表示態様決定部13に通知する。なお、タッチセンサ61が詳細な圧力を検出できないセンサであれば、操作状況取得部19は、タッチセンサ61からの検出信号が示す数値に基づいて、ユーザがタッチ操作する際の押下圧力が所定値以上であるか否かを判定する。そして、操作状況取得部19は、判定結果(強又は弱)を表示態様決定部13に通知する。
本実施形態4の表示態様決定部13は、上述の実施形態1の表示態様決定部13と同様に、接触領域算出部12によって算出された接触領域R0の形状及び面積を取得する。また、本実施形態4の表示態様決定部13は、ユーザがタッチ操作する際の圧力が所定値以上であるか否かを示す判定結果を操作状況取得部19から取得する。
本実施形態4の表示態様決定部13は、まず、接触領域算出部12から取得した接触領域R0の面積が、補正値DB4aに格納されている接触領域の面積の最小値未満であるか否かを判断する。取得した面積が最小値未満であると判断した場合、表示態様決定部13は、接触領域R0の形状として接触領域算出部12から通知された接触点の座標値を操作対象特定部15に通知する。
取得した面積が最小値以上であると判断した場合、表示態様決定部13は、取得した接触領域R0の面積と、操作状況取得部19から通知された判定結果とに応じた補正値を補正値DB4aから読み出す。次に表示態様決定部13は、接触領域算出部12から通知された接触領域R0の形状に基づいて、接触領域R0の上方の長辺の中央位置の座標値を算出する。表示態様決定部13は、接触領域R0の上方の長辺の中央位置から、この長辺に垂直な方向に、補正値DB4aから読み出した補正値だけ隔てた位置の座標値を算出する。なお、接触領域R0の上方の長辺の中央位置から補正値だけ隔てた位置が、矢印形状のカーソルの先端位置となる。
表示態様決定部13は、カーソルの先端位置の座標値と、接触領域R0の上方の長辺の中央位置の座標値とをカーソル表示指示部14に通知する。なお、カーソルの先端位置と、接触領域R0の長辺の中央位置とを接続した直線の方向が、カーソルが指し示す方向となる。また、表示態様決定部13は、カーソルの先端位置の座標値を操作対象特定部15に通知する。
なお、本実施形態4の表示態様決定部13及び操作状況取得部19以外の各部は、上述の実施形態1で説明した処理と同一の処理を行なう。
以下に、本実施形態4の電気機器10において、ユーザがタッチ操作する場合に、制御部1が行なう処理についてフローチャートに基づいて説明する。図16及び図17は実施形態4の入力情報受付処理の手順を示すフローチャートである。以下の処理は、電気機器10のROM2又は記憶部4に格納されている制御プログラムに従って制御部1によって実行される。
制御部1は、タッチセンサ61からの検出信号に基づいて、ユーザによってタッチパネル6をタッチ操作されたか否かを検出しており(S61)、タッチ操作されたことを検出していない場合(S61:NO)、他の処理を行ないつつ待機する。タッチ操作されたことを検出した場合(S61:YES)、制御部1は、ユーザがタッチ操作している接触点の座標値を取得する(S62)。
制御部1は、取得した接触点の座標値に基づいて、全ての接触点を含み、最小サイズとなる矩形の接触領域R0を特定する(S63)。制御部1は、特定した接触領域R0の面積を算出する(S64)。制御部1は、算出した面積が、補正値DB4aに格納されている接触領域の面積の最小値未満であるか否かを判断する(S65)。算出した面積が最小値未満であると判断した場合(S65:YES)、制御部1は、ステップS63で特定した接触領域R0に対応する操作対象を特定し、対応する操作対象を特定できたか否かを判断する(S66)。具体的には、制御部1は、接触領域R0を表示領域に含む操作対象を特定し、特定できたか否かを判断する。
制御部1は、操作対象を特定できなかったと判断した場合(S66:NO)、ステップS61に処理を戻す。操作対象を特定できたと判断した場合(S66:YES)、制御部1は、特定した操作対象に対応する入力情報を受け付け(S67)、処理を終了する。
ステップS64で算出された面積が最小値以上であると判断した場合(S65:NO)、制御部1は、電気機器10の操作状況を取得する(S68)。具体的には、制御部1は、タッチセンサ61からの検出信号に基づいて、ユーザがタッチ操作する際の押下圧力が所定値以上であるか否かを判定する。制御部1は、ステップS64で算出した面積及びステップS68で取得した操作状況に応じた補正値を補正値DB4aから読み出す(S69)。
制御部1は、ステップS63で特定した接触領域R0の形状と、補正値DB4aから読み出した補正値とに基づいて、タッチパネル6に表示すべきカーソルCの表示態様を決定する(S70)。具体的には、制御部1は、接触領域R0の上方の長辺の中央位置の座標値と、接触領域R0の上方の長辺の中央位置から、この長辺に垂直な方向に、補正値DB4aから読み出した補正値だけ隔てた位置の座標値とを算出する。
制御部1は、ステップS70で決定した表示態様でカーソルCを表示させるための表示指示を表示部60へ出力し、カーソルCを表示部60に表示させる(S71)。制御部1は、タッチセンサ61からの検出信号に基づいて、ユーザによるタッチ操作が終了されたか否かを検出しており(S72)、タッチ操作が終了されたことを検出していない場合(S72:NO)、ステップS61に処理を戻す。
制御部1は、タッチ操作が終了されたことを検出するまで、ステップS61からS71の処理を繰り返す。タッチ操作が終了されたことを検出した場合(S72:YES)、制御部1は、その時点で表示されていたカーソルCの先端位置の座標値を取得する(S73)。制御部1は、取得したカーソルCの先端位置に対応する操作対象を特定し、対応する操作対象を特定できたか否かを判断する(S74)。具体的には、制御部1は、カーソルCの先端位置を表示領域に含む操作対象を特定し、特定できたか否かを判断する。
制御部1は、操作対象を特定できなかったと判断した場合(S74:NO)、ステップS61に処理を戻す。操作対象を特定できたと判断した場合(S74:YES)、制御部1は、特定した操作対象に対応する入力情報を受け付け(S75)、処理を終了する。
上述したように、本実施形態4の電気機器10は、ユーザによってタッチ操作された場合に、接触領域の面積、押下圧力が強いか弱いか等の操作状況を判定できる。押下圧力が強く接触領域が大きい場合には、強い力でタッチ操作を行なうことによって接触領域が大きくなったと推測できる。よって、押下圧力が強い場合には接触領域の面積が大きいほど、接触領域からカーソルの先端位置までの距離である補正値を大きい値とすることにより、適切な位置にカーソルを表示させることができる。
上述したように、本実施形態4では、補正値DB4aにおいて、押下圧力が強い場合及び弱い場合においてそれぞれ、接触領域の面積が大きいほど、接触領域からカーソルの先端位置までの距離である補正値に大きい値が設定されていた。また、接触領域の面積が同じ場合には、押下圧力が強いほど補正値に大きい値が設定されていた。これにより、接触領域が大きいほどユーザの指からある程度の距離を隔てた位置にカーソルを表示させることができるので、ユーザが見易い位置にカーソルを表示させることができる。
しかし、接触領域の面積及び押下圧力と、補正値との関係は、このような例に限られない。例えば、押下圧力が強い場合に、接触領域の面積が大きいほど補正値に小さい値が設定されてもよい。このような設定によれば、強い力でタッチ操作されている場合には、接触領域が大きいほどユーザの指のより近傍にカーソルを表示させることができるので、カーソルの操作が容易となる。
また、接触領域の面積が同じ場合に、押下圧力が強いほど補正値に小さい値が設定されてもよい。このような設定によれば、例えば、より強い力でタッチ操作されている場合にユーザの指のより近傍にカーソルを表示させることができるので、カーソルの操作が容易となる。
本実施形態4は、上述した実施形態1の変形例として説明したが、上述した実施形態2,3の構成にも適用することができる。
(実施形態5)
以下に、実施形態5に係る電気機器について説明する。なお、本実施形態5の電気機器は、上述した実施形態1,4の電気機器10と同様の構成によって実現することができるので、同様の構成については同一の符号を付して説明を省略する。
上述した実施形態4では、ユーザがタッチ操作する際の接触領域からカーソルの先端位置までの距離を、接触領域の面積及びユーザがタッチ操作する際の押下圧力(操作状況)に応じて変更させていた。本実施形態5の電気機器10は、自身の傾きを検出し、ユーザがタッチ操作する際の接触領域からカーソルの先端位置までの距離を、接触領域の面積及びユーザがタッチ操作する際の電気機器10の傾き(操作状況)に応じて変更させる。
図18は実施形態5の電気機器10の外観を示す模式図である。図18(a)は電気機器10の斜視図、図18(b)は図18(a)に示した電気機器10を矢符Aの方向から見た図である。本実施形態5の電気機器10は板状を成し、一側面の中央にタッチパネル6が設けられている。本実施形態5の電気機器10は、ユーザによって使用される場合に、図18に示すように傾けられる可能性が高い。特に、タッチパネル6を斜め上方向に向けて使用される可能性が高い。
よって、本実施形態5の電気機器10は、図18(b)に示す傾き角度を検出する。そして、電気機器10は、ユーザがタッチ操作する際の接触領域からカーソルの先端位置までの距離を、接触領域の面積及び検出した傾き角度に応じて変更させる。
図19は実施形態5の電気機器10の構成例を示すブロック図である。本実施形態5の電気機器10は、図1に示したハードウェア各部のほかに、センサ7を備える。本実施形態5のセンサ7は、例えば加速度センサである。センサ7は、電気機器10に加わる重力加速度を検出しており、検出した重力加速度に基づいて、図18(b)に示した電気機器10の傾き角度を検出できる。
また、本実施形態5の記憶部4には、図20に示すような補正値DB4aが格納されている。図20は実施形態5の補正値DB4aの格納内容を示す模式図である。図20に示すように、本実施形態5の補正値DB4aには、接触領域の面積及び傾き角度に対応させて補正値がそれぞれ格納されている。傾き角度は、図18(b)に示したように電気機器10に加えられた角度であり、所定値未満を「小」、所定値以上を「大」として補正値DB4aに格納されている。なお、ここでの所定値はセンサ7の精度等を考慮して適宜変更可能である。
補正値DB4aには、各接触領域の面積及び傾き角度に対して最適な補正値が予め格納される。なお、図20に示す補正値DB4aでは、接触領域の面積を示す数値として適宜の範囲が設定されているが、1pixel2 毎に補正値を設定してもよい。また、図20に示す補正値DB4aでは、傾き角度を示す情報として「小」及び「大」の2段階が設定されているが、傾き角度を3段階以上に分割し、段階毎に補正値を設定してもよい。更に、接触領域の面積及び傾き角度に応じた補正値を算出するための計算式を予め設定しておき、制御部1が、計算式を用いて接触領域の面積及び傾き角度に応じた補正値を算出してもよい。
本実施形態5の電気機器10において、制御部1は、ROM2又は記憶部4に格納されている制御プログラムを実行することによって、図15に示した各機能と同様の機能を実現する。なお、本実施形態5の操作状況取得部19は、タッチセンサ61から出力される検出信号ではなく、センサ7から出力される検出信号を取得する。センサ7が詳細な傾き角度を検出できるセンサであれば、操作状況取得部19は、センサ7からの検出信号に基づいて、ユーザがタッチ操作する際の電気機器10の傾き角度を検出する。
そして、操作状況取得部19は、検出した傾き角度が所定値以上であるか否かを判定し、判定結果(大又は小)を表示態様決定部13に通知する。なお、センサ7が詳細な傾き角度を検出できないセンサであれば、操作状況取得部19は、センサ7からの検出信号が示す数値に基づいて、ユーザがタッチ操作する際の電気機器10の傾き角度が所定値以上であるか否かを判定する。そして、操作状況取得部19は、判定結果(大又は小)を表示態様決定部13に通知する。
本実施形態5の表示態様決定部13は、上述の実施形態1の表示態様決定部13と同様に、接触領域算出部12によって算出された接触領域R0の形状及び面積を取得する。また、本実施形態5の表示態様決定部13は、ユーザがタッチ操作する際の電気機器10の傾き角度が所定値以上であるか否かを示す判定結果を操作状況取得部19から取得する。
本実施形態5の表示態様決定部13は、まず、接触領域算出部12から取得した接触領域R0の面積が、補正値DB4aに格納されている接触領域の面積の最小値未満であるか否かを判断する。取得した面積が最小値未満であると判断した場合、表示態様決定部13は、接触領域R0の形状として接触領域算出部12から通知された接触点の座標値を操作対象特定部15に通知する。
取得した面積が最小値以上であると判断した場合、表示態様決定部13は、取得した接触領域R0の面積と、操作状況取得部19から通知された判定結果とに応じた補正値を補正値DB4aから読み出す。次に表示態様決定部13は、接触領域算出部12から通知された接触領域R0の形状に基づいて、接触領域R0の上方の長辺の中央位置の座標値を算出する。表示態様決定部13は、接触領域R0の上方の長辺の中央位置から、この長辺に垂直な方向に、補正値DB4aから読み出した補正値だけ隔てた位置の座標値を算出する。なお、接触領域R0の上方の長辺の中央位置から補正値だけ隔てた位置が、矢印形状のカーソルの先端位置となる。
表示態様決定部13は、カーソルの先端位置の座標値と、接触領域R0の上方の長辺の中央位置の座標値とをカーソル表示指示部14に通知する。なお、カーソルの先端位置と、接触領域R0の長辺の中央位置とを接続した直線の方向が、カーソルが指し示す方向となる。また、表示態様決定部13は、カーソルの先端位置の座標値を操作対象特定部15に通知する。
なお、本実施形態5の表示態様決定部13及び操作状況取得部19以外の各部は、上述の実施形態1,4で説明した処理と同一の処理を行なう。
本実施形態5の電気機器10において、ユーザがタッチ操作する際に制御部1が行なう処理は、図16及び図17で示した実施形態4の入力情報受付処理と同様であるので説明を省略する。
なお、本実施形態5の制御部1は、図17中のステップS68において、センサ7からの検出信号に基づいて、ユーザがタッチ操作する際の電気機器10の傾き角度が所定値以上であるか否かを判定する。
上述したように、本実施形態5の電気機器10は、ユーザによってタッチ操作された場合に、接触領域の面積、電気機器10の傾き角度が大きいか小さいか等の操作状況を判定できる。このように電気機器10の傾き角度を検出することにより、傾き角度の大きさに応じて生じる視差の影響の大きさを判定できる。
上述したように、本実施形態5では、補正値DB4aにおいて、傾き角度が大きい場合及び小さい場合においてそれぞれ、接触領域の面積が大きいほど、接触領域からカーソルの先端位置までの距離である補正値に大きい値が設定されていた。また、接触領域の面積が同じ場合には、傾き角度が大きいほど補正値に大きい値が設定されていた。これにより、傾き角度が大きいほどユーザの指からある程度の距離を隔てた位置にカーソルを表示させることができるので、適切な位置にカーソルを表示させることができる。例えば、ユーザの指によってカーソルが隠れることを防止できる。
しかし、接触領域の面積及び傾き角度と、補正値との関係は、このような例に限られない。例えば、傾き角度が大きい場合に、接触領域の面積が大きいほど補正値に小さい値が設定されてもよい。また、接触領域の面積が同じ場合に、押下圧力が強いほど補正値に小さい値が設定されてもよい。
本実施形態5では、電気機器10に加わる傾き角度として、図18(b)に示すように、電気機器10の上側面が、タッチパネル6が設けられた面の裏面側に傾けられた角度を用いていた。しかし、この角度に限られず、例えば、電気機器10に対して左右方向に傾けられた角度、矩形のタッチパネル6の対角線を軸として回転された際の角度等を用いてもよい。具体的には、ジャイロセンサ及び加速度センサ等を含む3次元のモーションセンサを用いて計測可能な角度を用いてもよい。
上述した実施形態4では、電気機器10の操作状況としてタッチセンサ61によって検出される押下圧力を検出していた。また、本実施形態5では、電気機器10の操作状況として加速度センサによって検出される電気機器10の傾き角度を検出していた。しかし、電気機器10の操作状況としてはこれらの情報に限られず、操作状況を示す情報を検出するためのセンサはこれらのセンサに限られない。
操作状況を示す情報を検出するセンサとしては、例えば、電気機器10とユーザとの距離を検出するための近接センサ、タッチパネル6の表面の温度を検出するための温度センサ、タッチパネル6の表面の照度を検出するための照度センサ等がある。また、タッチパネル6の表面の画像を撮影し、得られた画像データを画像処理することによって電気機器10における各種の状況を検出する画像センサも利用できる。なお、これらのセンサ以外のものを用いてもよいことは勿論であり、これらのセンサのいずれかを組み合わせて用いてもよい。
(実施形態6)
以下に、実施形態6に係る電気機器について説明する。なお、本実施形態6の電気機器は、上述した実施形態1の制御システムと同様の構成によって実現することができるので、同様の構成については同一の符号を付して説明を省略する。
上述した実施形態1〜5では、ユーザがタッチ操作する際の接触領域を、全ての接触点を含む領域としていた。本実施形態6の電気機器10は、ユーザがタッチ操作している場合の接触点に対してクラスタリング処理を行なうことによって、複数の領域(クラスタ)に分類し、分類した領域のうちの1つを接触領域とする。
本実施形態6の電気機器10は、図1に示したハードウェア各部を備える。
図21は実施形態6の電気機器10の機能構成例を示す機能ブロック図、図22はクラスタリング処理を説明するための模式図である。図22は、図4と同様に、計算機ソフトを電気機器10で実行させた場合にタッチパネル6に表示される画面例を示している。なお、図22(a),(b)中の黒丸はユーザがタッチパネル6に接触している接触点を模式的に示す。また、図22は、ユーザが指先又はペンでタッチ操作する際に手のひらがタッチパネル6に接触した状況を示しており、領域C1,R1が指先又はペンの接触領域であり、領域C2,R2が手のひらの接触領域である。
本実施形態6の電気機器10において、制御部1は、ROM2又は記憶部4に格納されている制御プログラムを実行することによって、図3に示した各機能のほかに、クラスタリング処理部20の機能を実現する。
本実施形態6の接触点検出部11は、上述した実施形態1の接触点検出部11と同様に、タッチセンサ61からの検出信号に基づいて、ユーザがタッチ操作する接触点の座標値を取得する。図22(a)に示す状況では、接触点検出部11は、図22(a)に黒丸で示した各接触点の座標値を取得する。接触点検出部11は、検出した全ての接触点の座標値をタッチ終了検知部17及びクラスタリング処理部20へ送出する。
クラスタリング処理部20は、接触点検出部11から全ての接触点の座標値を取得する。クラスタリング処理部20は、取得した各接触点の座標値に対して、K平均法(K-means法)又はウォード法(Ward’s method)等のアルゴリズムを用いたクラスタリング処理を行なう。クラスタリング処理部20は、クラスタリング処理によって、各接触点を複数のクラスタに分類し、分類されたクラスタ毎に、各接触点の座標値を接触領域算出部12へ送出する。
図22(a)に示す状況では、クラスタリング処理部20は、各接触点を2つのクラスタC1,C2にそれぞれ分類する。なお、クラスタリング処理のアルゴリズムは、例えば、各接触点が所定距離よりも近い位置に隣り合っているか否か等の所定の条件に従って各接触点を分類できるアルゴリズムであれば、K平均法及びウォード法には限られない。
本実施形態6の接触領域算出部12は、クラスタリング処理部20によって分類されたクラスタ毎に、各接触点の座標値を取得する。本実施形態6の接触領域算出部12は、クラスタ毎に、各接触点の座標値に基づいて、各接触点を含み、最小サイズとなる矩形の領域(接触領域)を特定する。接触領域算出部12は、クラスタ毎に、特定した接触領域の面積を算出する。
図22(b)に示す状況では、接触領域算出部12は、各クラスタに対応する接触領域R1,R2をそれぞれ特定し、特定した接触領域R1,R2の面積をそれぞれ算出する。接触領域算出部12は、算出した接触領域R1,R2の面積のうちで小さい方の接触領域R1(又はR2)を特定する。接触領域算出部12は、特定した接触領域R1(又はR2)の形状及び面積を表示態様決定部13に通知する。これにより、面積が大きい方の接触領域R2(又はR1)に含まれる接触点は、タッチ操作に必要のない接触点として排除される。よって、例えば、タッチ操作中にタッチパネル6に手のひらが接触した場合には、その影響を排除して適切な位置にカーソルを表示できる。
なお、接触領域R1(又はR2)の形状は、例えば、接触領域R1(又はR2)の各頂点の座標値を用いて通知される。また、接触領域R1(又はR2)に1つの接触点しか含まれない場合、接触領域算出部12は、接触領域R1(又はR2)に含まれる接触点の座標値を接触領域R1(又はR2)の形状として表示態様決定部13に通知する。
なお、本実施形態6の接触点検出部11、接触領域算出部12及びクラスタリング処理部20以外の各部は、上述の実施形態1で説明した処理と同一の処理を行なう。
以下に、本実施形態6の電気機器10において、ユーザがタッチ操作する際に制御部1が行なう処理についてフローチャートに基づいて説明する。図23及び図24は実施形態6の入力情報受付処理の手順を示すフローチャートである。以下の処理は、電気機器10のROM2又は記憶部4に格納されている制御プログラムに従って制御部1によって実行される。
制御部1は、タッチセンサ61からの検出信号に基づいて、ユーザによってタッチパネル6をタッチ操作されたか否かを検出しており(S81)、タッチ操作されたことを検出していない場合(S81:NO)、他の処理を行ないつつ待機する。タッチ操作されたことを検出した場合(S81:YES)、制御部1は、ユーザがタッチ操作している接触点の座標値を取得する(S82)。
制御部1は、取得した接触点の座標値に対してクラスタリング処理を実行し(S83)、各接触点を複数のクラスタに分類する。制御部1は、クラスタ毎に、各クラスタに分類された全ての接触点を含み、最小サイズとなる矩形の接触領域R1,R2を特定する(S84)。制御部1は、特定した接触領域R1,R2の面積をそれぞれ算出する(S85)。制御部1は、算出した接触領域R1,R2の面積のうちで最小の面積の接触領域R1(又はR2)を特定する(S86)。
制御部1は、特定した接触領域R1(又はR2)の面積が、補正値DB4aに格納されている接触領域の面積の最小値未満であるか否かを判断する(S87)。特定した接触領域R1(又はR2)の面積が最小値未満であると判断した場合(S87:YES)、制御部1は、ステップS86で特定した接触領域R1(又はR2)に対応する操作対象を特定し、対応する操作対象を特定できたか否かを判断する(S88)。具体的には、制御部1は、接触領域R1(又はR2)を表示領域に含む操作対象を特定し、特定できたか否かを判断する。
制御部1は、操作対象を特定できなかったと判断した場合(S88:NO)、ステップS81に処理を戻す。操作対象を特定できたと判断した場合(S88:YES)、制御部1は、特定した操作対象に対応する入力情報を受け付け(S89)、処理を終了する。
ステップS86で特定された接触領域R1(又はR2)の面積が最小値以上であると判断した場合(S87:NO)、制御部1は、接触領域R1(又はR2)の面積に応じた補正値を補正値DB4aから読み出す(S90)。制御部1は、ステップS86で特定した接触領域R1(又はR2)の形状と、補正値DB4aから読み出した補正値とに基づいて、タッチパネル6に表示すべきカーソルCの表示態様を決定する(S91)。具体的には、制御部1は、接触領域R1(又はR2)の上方の長辺の中央位置の座標値と、接触領域R1(又はR2)の上方の長辺の中央位置から、この長辺に垂直な方向に、補正値DB4aから読み出した補正値だけ隔てた位置の座標値とを算出する。
制御部1は、ステップS91で決定した表示態様でカーソルCを表示させるための表示指示を表示部60へ出力し、カーソルCを表示部60に表示させる(S92)。制御部1は、タッチセンサ61からの検出信号に基づいて、ユーザによるタッチ操作が終了されたか否かを検出しており(S93)、タッチ操作が終了されたことを検出していない場合(S93:NO)、ステップS81に処理を戻す。
制御部1は、タッチ操作が終了されたことを検出するまで、ステップS81からS92の処理を繰り返す。タッチ操作が終了されたことを検出した場合(S93:YES)、制御部1は、その時点で表示されていたカーソルCの先端位置の座標値を取得する(S94)。制御部1は、取得したカーソルCの先端位置に対応する操作対象を特定し、対応する操作対象を特定できたか否かを判断する(S95)。具体的には、制御部1は、カーソルCの先端位置を表示領域に含む操作対象を特定し、特定できたか否かを判断する。
制御部1は、操作対象を特定できなかったと判断した場合(S95:NO)、ステップS81に処理を戻す。操作対象を特定できたと判断した場合(S95:YES)、制御部1は、特定した操作対象に対応する入力情報を受け付け(S96)、処理を終了する。
上述したように、本実施形態6では、ユーザがタッチ操作している際の接触点をクラスタリング処理によって複数のクラスタに分類し、分類したクラスタから、タッチ操作のための接触点を含むクラスタを1つ特定する。これにより、タッチ操作に必要のない接触点を排除できるので、タッチ操作された操作対象の判定精度が向上する。
本実施形態6では、クラスタリング処理部20によって分類されたクラスタ毎に、各接触点を含む接触領域が特定され、特定された各接触領域の面積が小さい接触領域が、タッチ操作に必要な接触領域とされていた。しかし、例えば、特定された各接触領域の面積が大きい接触領域が、タッチ操作に必要な接触領域とされてもよい。この場合、例えば、タッチパネル6上に微小のゴミが付着していた場合に、このゴミの付着箇所をタッチ操作に必要な接触領域としないことにより、タッチ操作の精度を向上させることができる。
本実施形態6は、上述した実施形態1の変形例として説明したが、上述した実施形態2〜5のような構成にも適用することができる。
(実施形態7)
以下に、実施形態7に係る電気機器について説明する。なお、本実施形態7の電気機器は、上述した実施形態1の電気機器10と同様の構成によって実現することができるので、同様の構成については同一の符号を付して説明を省略する。
本実施形態7の電気機器10は、実施形態1の電気機器10と同様の処理を行ないつつ、補正値DB4aの更新処理も行なう。
本実施形態7の電気機器10は、図1に示したハードウェア各部を備える。
図25は実施形態7の電気機器10の機能構成例を示す機能ブロック図、図26及び図27は補正値DB4aの更新処理を説明するための模式図である。図26は、メーラーを電気機器10で実行させた場合にタッチパネル6に表示される画面例を示している。
図26(a)は、ユーザがタッチ操作を開始した際の画面の状態を示しており、図26(b)は、ユーザがタッチ操作を終了した直後の画面例を示している。即ち、ユーザがタッチ操作を開始した時点では図26(a)に示す位置にカーソルC(カーソルS)が表示され、ユーザがタッチ操作を終了した時点では図26(b)に示す位置にカーソルC(カーソルE)が表示されていた。図27には、図26(a),(b)で示したようなタッチ操作開始時のカーソルSと、タッチ操作終了時のカーソルEと、タッチ操作開始時の接触領域R0とを抽出して示す。
本実施形態7の電気機器10において、制御部1は、ROM2又は記憶部4に格納されている制御プログラムを実行することによって、図3に示した各機能のほかに、補正値DB更新部21の機能を実現する。
本実施形態7の表示態様決定部13は、上述の実施形態1の表示態様決定部13と同様に、ユーザがタッチ操作している際の接触領域R0の形状及び面積を接触領域算出部12から取得する。本実施形態7の表示態様決定部13は、まず、取得した接触領域R0の面積が、補正値DB4aに格納された接触領域の面積の最小値未満であるか否かを判断する。取得した面積が最小値未満であると判断した場合、表示態様決定部13は、接触領域R0の形状として接触領域算出部12から通知された接触点の座標値を操作対象特定部15に通知する。
取得した面積が最小値以上であると判断した場合、表示態様決定部13は、取得した接触領域R0の面積に応じた補正値を補正値DB4aから読み出す。次に表示態様決定部13は、接触領域算出部12から通知された接触領域R0の形状に基づいて、接触領域R0の上方の長辺の中央位置の座標値を算出する。表示態様決定部13は、接触領域R0の上方の長辺の中央位置から、この長辺に垂直な方向に、補正値DB4aから読み出した補正値だけ隔てた位置の座標値を算出する。なお、接触領域R0の上方の長辺の中央位置から補正値だけ隔てた位置が、矢印形状のカーソルの先端位置となる。
表示態様決定部13は、カーソルの先端位置の座標値と、接触領域R0の上方の長辺の中央位置の座標値とをカーソル表示指示部14に通知する。なお、カーソルの先端位置と、接触領域R0の長辺の中央位置とを接続した直線の方向が、カーソルが指し示す方向となる。また、表示態様決定部13は、カーソルの先端位置の座標値を操作対象特定部15に通知する。
本実施形態7の表示態様決定部13は、接触領域算出部12から通知された接触領域R0の形状に基づいて算出した、接触領域R0の上方の長辺の中央位置の座標値を補正値DB更新部21に通知する。また、本実施形態7の表示態様決定部13は、逐次算出するカーソルの先端位置の座標値を補正値DB更新部21に通知する。なお、接触領域R0の上方の長辺の中央位置を、接触領域R0の基準点とする。
本実施形態7のタッチ終了検知部17は、接触点検出部11から取得する接触点の座標値に基づいて、ユーザによるタッチ操作が終了したか否かを判断する。タッチ終了検知部17は、ユーザによるタッチ操作が終了したことを検知した場合、タッチ操作が終了した旨を操作対象特定部15及び補正値DB更新部21に通知する。
補正値DB更新部21は、ユーザがタッチ操作している際の接触領域R0の上方の長辺の中央位置(接触領域R0の基準点)の座標値と、カーソルの先端位置の座標値とを表示態様決定部13から取得する。また、補正値DB更新部21は、ユーザによるタッチ操作が終了した場合、タッチ操作が終了した旨をタッチ終了検知部17から通知される。
補正値DB更新部21は、表示態様決定部13から取得する接触領域R0の基準点の座標値と、カーソルの先端位置の座標値とから、ユーザのタッチ操作開始時点での接触領域R0の基準点の座標値とカーソルSの先端位置の座標値とを取得する。なお、ユーザのタッチ操作開始時点での接触領域R0の基準点は、図27中の点O(Xo,Yo)であり、ユーザのタッチ操作開始時点でのカーソルSの先端位置は、図27中の点S(Xs,Ys)である。
また、補正値DB更新部21は、タッチ終了検知部17からタッチ操作の終了を通知されたタイミングに基づいて、表示態様決定部13から取得するカーソルの先端位置の座標値から、ユーザのタッチ操作終了時点でのカーソルEの先端位置の座標値を取得する。なお、ユーザのタッチ操作終了時点でのカーソルEの先端位置は、図27中の点E(Xe,Ye)である。
補正値DB更新部21は、接触領域R0の基準点O(Xo,Yo)と、カーソルSの先端位置S(Xs,Ys)と、カーソルEの先端位置E(Xe,Ye)とに基づいて、カーソルSからカーソルEへの移動量を算出する。補正値DB更新部21は、例えば、図27(b)に示すように、線分SOとx=Xeとの交点A(X,Y)を算出する。そして、補正値DB更新部21は、線分SAの長さを算出し、算出した長さを移動量とする。
なお、移動量の算出方法は、図27(b)に示した例に限られない。例えば、図27(c)に示すように、補正値DB更新部21は、線分SOとy=Yeとの交点A1(X,Y)を算出し、線分SA1の長さを算出し、算出した長さを移動量としてもよい。また、図27(d)に示すように、補正値DB更新部21は、カーソルEの先端位置E(Xe,Ye)を通り、線分SOに直交する関数を求める。そして、補正値DB更新部21は、求めた関数と線分SOとの交点A2(X,Y)を算出し、線分SA2の長さを算出し、算出した長さを移動量としてもよい。
補正値DB更新部21は、このように算出した移動量を接触領域の面積毎に、例えばRAM3又は記憶部4に蓄積する。接触領域の面積毎に所定数(例えば20個)の移動量が蓄積された場合、補正値DB更新部21は、蓄積された移動量に基づいて、補正値DB4aに格納されている補正値に対して更新すべき値を算出する。
具体的には、補正値DB更新部21は、所定数の移動量が蓄積された接触領域の面積に対応して補正値DB4aに格納されている補正値を読み出す。即ち、補正値DB更新部21は、更新すべき補正値を補正値DB4aから読み出しておく。
そして、補正値DB更新部21は、接触領域の面積毎に蓄積した移動量から異常値を排除する。例えば、補正値DB更新部21は、蓄積した移動量の平均値を算出し、算出した平均値から所定範囲内に入らない移動量を異常値として排除する。
補正値DB更新部21は、異常値を排除した移動量の平均値を算出し、算出した平均値を、補正値DB4aから予め読み出していた更新すべき補正値から差し引く。ここで得られた数値は、図27(b)〜(d)に示した線分OAの平均値となり、更新後の補正値となる。なお、図27で示した例では、線分AOの長さは線分SOの長さよりも短いが、線分AOの長さが線分SOの長さよりも長い場合、補正値DB更新部21は、算出した平均値を、補正値DB4aから予め読み出していた更新すべき補正値に加算する。
補正値DB更新部21は、所定数の移動量が蓄積された接触領域の面積に対応して補正値DB4aに格納されている補正値を、更新後の補正値として算出した値に更新する。また、補正値DB更新部21は、更新後の補正値を算出するためにRAM3又は記憶部4に蓄積していた移動量を削除する。これにより、不要な移動量の蓄積を防止し、RAM3又は記憶部4の有効利用が可能となる。
なお、本実施形態7の表示態様決定部13、タッチ終了検知部17及び補正値DB更新部21以外の各部は、上述の実施形態1で説明した処理と同一の処理を行なう。
以下に、本実施形態7の電気機器10において、ユーザがタッチ操作する際に制御部1が行なう処理についてフローチャートに基づいて説明する。図28乃至図30は実施形態7の入力情報受付処理の手順を示すフローチャートである。以下の処理は、電気機器10のROM2又は記憶部4に格納されている制御プログラムに従って制御部1によって実行される。
制御部1は、タッチセンサ61からの検出信号に基づいて、ユーザによってタッチパネル6をタッチ操作されたか否かを検出している(S101)。制御部1は、タッチ操作されたことを検出していない場合(S101:NO)、ステップS113へ処理を移行する。タッチ操作されたことを検出した場合(S101:YES)、制御部1は、ユーザがタッチ操作している接触点の座標値を取得する(S102)。
制御部1は、取得した接触点の座標値に基づいて、全ての接触点を含み、最小サイズとなる矩形の接触領域R0を特定する(S103)。制御部1は、特定した接触領域R0の基準点の座標値を取得する(S104)。具体的には、制御部1は、接触領域R0の上方の長辺の中央位置の座標値を取得する。また制御部1は、特定した接触領域R0の面積を算出する(S105)。
制御部1は、算出した面積が、補正値DB4aに格納されている接触領域の面積の最小値未満であるか否かを判断する(S106)。算出した面積が最小値未満であると判断した場合(S106:YES)、制御部1は、ステップS103で特定した接触領域R0に対応する操作対象を特定し、対応する操作対象を特定できたか否かを判断する(S107)。具体的には、制御部1は、接触領域R0を表示領域に含む操作対象を特定し、特定できたか否かを判断する。
制御部1は、操作対象を特定できなかったと判断した場合(S107:NO)、ステップS101に処理を戻す。操作対象を特定できたと判断した場合(S107:YES)、制御部1は、特定した操作対象に対応する入力情報を受け付け(S108)、処理を終了する。
ステップS105で算出された面積が最小値以上であると判断した場合(S106:NO)、制御部1は、算出した面積に応じた補正値を補正値DB4aから読み出す(S109)。制御部1は、ステップS103で特定した接触領域R0の形状と、補正値DB4aから読み出した補正値とに基づいて、タッチパネル6に表示すべきカーソルCの表示態様を決定する(S110)。具体的には、制御部1は、接触領域R0の上方の長辺の中央位置の座標値と、接触領域R0の上方の長辺の中央位置から、この長辺に垂直な方向に、補正値DB4aから読み出した補正値だけ隔てた位置の座標値とを算出する。
制御部1は、ステップS110で決定した表示態様でカーソルCを表示させるための表示指示を表示部60へ出力し、カーソルCを表示部60に表示させる(S111)。制御部1は、この時点(タッチ操作開始時点)でのカーソルSの先端位置の座標値を取得する(S112)。
制御部1は、タッチセンサ61からの検出信号に基づいて、ユーザによるタッチ操作が終了されたか否かを検出しており(S113)、タッチ操作が終了されたことを検出していない場合(S113:NO)、ステップS101に処理を戻す。
制御部1は、タッチ操作が終了されたことを検出するまで、ステップS101からS112の処理を繰り返す。タッチ操作が終了されたことを検出した場合(S113:YES)、制御部1は、その時点(タッチ操作終了時点)で表示されていたカーソルEの先端位置の座標値を取得する(S114)。制御部1は、取得したカーソルEの先端位置に対応する操作対象を特定し、対応する操作対象を特定できたか否かを判断する(S115)。具体的には、制御部1は、カーソルEの先端位置を表示領域に含む操作対象を特定し、特定できたか否かを判断する。
制御部1は、操作対象を特定できなかったと判断した場合(S115:NO)、ステップS101に処理を戻す。操作対象を特定できたと判断した場合(S115:YES)、制御部1は、特定した操作対象に対応する入力情報を受け付ける(S116)。
制御部1は、ステップS104で取得した接触領域R0の基準点の座標値と、ステップS112で取得したカーソルSの先端位置の座標値と、ステップS114で取得したカーソルEの先端位置の座標値とに基づいて、カーソルSからカーソルEへの移動量を算出する。制御部1は、算出した移動量を、接触領域R0の面積に対応付けてRAM3又は記憶部4に格納する(S117)。制御部1は、格納した移動量に対応する面積に対して、所定数の移動量を格納しているか否かを判断する(S118)。
所定数の移動量を格納していないと判断した場合(S118:NO)、制御部1は、ステップS101に処理を戻す。所定数の移動量を格納していると判断した場合(S118:YES)、制御部1は、格納された移動量から異常値を除去する(S119)。制御部1は、異常値を除去した移動量に基づいて、補正値DB4aに格納されている補正値に対する更新後の補正値を算出し、補正値DB4aに格納されている補正値を、算出した更新後の補正値に更新する(S120)。
具体的には、制御部1は、異常値を排除した移動量の平均値を算出し、算出した平均値と、この時点で補正値DB4aに格納されている補正値とに基づいて、更新後の補正値を算出する。
制御部1は、ステップS120で更新後の補正値を算出するためにRAM3又は記憶部4に格納されていた移動量を削除し(S121)、処理を終了する。
上述したように、本実施形態7では、タッチ操作開始時点からタッチ操作終了時点までのカーソルの移動量に基づいて、補正値DB4aに格納されている補正量が動的に更新される。よって、ユーザがカーソルを実際に移動させる移動量に応じた補正量を補正値DB4aに設定できるので、ユーザの使用状態に適した補正量を設定できる。これにより、ユーザのタッチ操作開始時点で表示されるカーソルの位置を、ユーザの使用状況に応じて最適化でき、ユーザがタッチ操作によってカーソルを移動させる移動距離が短縮されるので操作性が向上する。
本実施形態7は、上述した実施形態1の変形例として説明したが、上述した実施形態2〜6のような構成にも適用することができる。
(実施形態8)
以下に、実施形態8に係る電気機器について説明する。図31は実施形態8の電気機器10の構成例を示すブロック図である。本実施形態8の電気機器は、図1に示したハードウェア各部のほかに、外部記憶装置8を備える。外部記憶装置8は、例えば、CD−ROMドライバ又はDVDドライバ等であり、CD−ROM又はDVD−ROM等である記録媒体8aから、記録媒体8aに格納されたデータを読み出す。
記録媒体8aは、上述の各実施形態で説明した電気機器10として動作するために必要な制御プログラムを記録している。外部記憶装置8は、記録媒体8aから制御プログラムを読み出して記憶部4に格納させる。制御部1は、記憶部4に格納された制御プログラムをRAM3に読み出して順次実行し、これにより、本実施形態8の電気機器10は、上述の各実施形態で説明した電気機器10と同様の動作を行なう。
なお、上述の各実施形態の電気機器10がユーザによるタッチパネル6のタッチ操作の検出及びカーソルの表示等を行なうための制御プログラムは、例えば、ユーザインタフェース用のミドルウェアであるUIミドルウェアである。また、このような制御プログラムは、OSソフトウェアに組み込まれてもよく、OSソフトウェアに組み込まれている場合は、OSソフトウェアとして記録媒体8aに格納される。更に、このような制御プログラムは、アプリケーションソフトウェアに組み込まれてもよく、アプリケーションソフトウェアに組み込まれている場合は、アプリケーションソフトウェアとして記録媒体8aに格納される。
記録媒体8aとしては、CD−ROM又はDVD−ROMのほかに、フレキシブルディスク、メモリカード、USB(Universal Serial Bus)メモリ等、各種の記録媒体を用いることができる。
なお、電気機器10は、インターネット又はLAN(Local Area Network)等のネットワークに接続するための通信部を有してもよい。この場合、電気機器10は、上述の各実施形態で説明した電気機器10として動作するために必要な制御プログラムを、ネットワークを介してダウンロードして記憶部4に格納させればよい。
上述した各実施形態では、電気機器10がタッチパネル6を備え、電気機器10の制御部1が、ユーザによるタッチパネル6のタッチ操作の検出及びカーソルの表示等を行なっていた。しかし、例えば、タッチパネル6を備えた端末装置で、サーバで提供されているカーソル表示補正機能を利用する形態にも本願を適用できる。この場合、端末装置が、ユーザによるタッチパネル6のタッチ操作を検出し、サーバが端末装置に対してカーソルの表示を指示する。
より具体的には、端末装置が、ユーザによるタッチパネル6のタッチ操作を検出し、検出結果をサーバへ送信する。そして、サーバが、端末装置から取得した検出結果に基づいて、カーソルの表示態様を決定し、決定した表示態様を端末装置へ送信する。端末装置は、サーバから受信した表示態様に従って、自身のタッチパネル6にカーソルを表示させる。これにより、ネットワークを介してサーバを利用する際に用いる端末装置においても、上述した各実施形態の電気機器10と同様の効果が得られる。
上述した各実施形態では、タッチパネル6のタッチセンサ61が、ユーザがタッチ操作する際のタッチパネル6との接触点を検出していた。しかし、タッチパネル6を操作するための専用のペンが、自身のペン先とタッチパネル6との接触点及び接触領域の情報を取得してもよい。例えば、専用のペンが、タッチパネル6又は記録紙上の所定のパターンを検出し、自身のペン先がタッチパネル6又は記録紙上のどの箇所と接触しているかを検出するセンサを備えてもよい。このようなペンで、所定のパターンが形成されたタッチパネル6又は記録紙上をタッチ操作した場合、ペンによって検出された接触点の情報を電気機器10が取得することにより、上述の各実施形態の電気機器10と同様の処理が可能となる。
上述した各実施形態では、ユーザがタッチ操作している際の接触領域の面積が、補正値DB4aに格納されている接触領域の面積の最小値未満である場合にのみ、カーソルを表示させずに、接触領域を表示領域に含む操作対象が選択されたとしていた。このような構成のほかに、ユーザがタッチ操作している時間を計測し、計測した時間が所定時間(例えば1秒間)未満である場合にもカーソルを表示させずに、接触領域を表示領域に含む操作対象が選択されたとしてもよい。即ち、ユーザがタッチ操作している時間が所定時間(例えば1秒間)以上となった場合に、接触領域の面積に応じた位置へのカーソルの表示を開始してもよい。
上述した各実施形態では、ユーザがタッチ操作している際の接触領域の面積に応じた位置にカーソルを表示させていた。このような構成に更に、例えばユーザが指でタッチ操作している場合に、接触領域から指の先端までの長さを検出するセンサを備えてもよい。即ち、タッチパネル6には接触していない指先部分の長さを検出してもよい。この場合、少なくとも検出した長さを接触領域から隔てた位置にカーソルを表示させることにより、カーソルが指によって隠れる位置に表示されることを確実に防止できる。
上述した各実施形態では、ユーザがタッチ操作している際の接触領域の面積に応じて、接触領域からカーソルの始点までの距離を決定していたが、接触領域の面積に応じて、接触領域を始点とするカーソルの長さを決定するようにしてもよい。この場合、補正値DB4aの補正値の欄には、接触領域からカーソルの始点までの距離ではなく、接触領域の面積に対応付けて、接触領域を始点とするカーソルの長さが格納される。カーソルの長さは、接触領域の周辺の指で隠れる領域を考慮して、最低の長さを基準として、補正値と同様に、接触領域の面積に応じて、長さを長くしておく。この構成により、上述の各実施形態と同様の効果が得られる。
上述した各実施形態では、ユーザがタッチ操作している際の接触領域の面積に応じて、接触領域からカーソルの始点までの距離を決定していたが、接触領域の面積に応じて、接触領域を始点とするカーソルの長さを決定するようにしてもよい。この場合、補正値DB4aの補正値の欄には、接触領域からカーソルの始点までの距離ではなく、接触領域の面積に対応付けて、接触領域を始点とするカーソルの長さが格納される。カーソルの長さは、接触領域の周辺の指で隠れる領域を考慮して、最低の長さを基準として、補正値と同様に、接触領域の面積に応じて、長さを長くしておく。この構成により、上述の各実施形態と同様の効果が得られる。
本出願は、さらに下記の付記を開示する。
(付記1)
コンピュータの制御部に、所定の接触対象に対する接触操作による入力情報を受け付けさせるコンピュータプログラムにおいて、
コンピュータの制御部に、
前記接触対象に対して接触操作された接触領域の情報をタッチセンサより取得させる領域取得ステップと、
該領域取得ステップで取得した接触領域の情報に基づいて、記憶部に記憶された情報を参照し、接触操作に連動して表示される操作対象指示子の表示態様を決定させる決定ステップと、
該決定ステップで決定した表示態様で前記操作対象指示子を表示部に表示させる表示指示を出力させる出力ステップと、
前記接触領域の移動に連動して、前記表示された操作対象指示子を移動させる移動ステップと、
接触操作が終了した時点の前記操作対象指示子の表示位置に対応する入力情報を受け付けさせる受付ステップと
を含むコンピュータプログラム。
(付記2)
前記接触領域の情報は、面積である付記1に記載のコンピュータプログラム。
(付記3)
前記表示態様は、前記操作対象指示子のサイズである付記1または2に記載のコンピュータプログラム。
(付記4)
前記表示態様は、前記操作対象指示子の始点から前記接触領域の端部までの距離を含む付記3に記載のコンピュータプログラム。
(付記5)
前記接触領域の情報は、面積及び矩形を示す情報であり、
前記決定ステップは、面積に応じて前記操作対象指示子の始点とすべき矩形上の位置を決定する付記1〜4のいずれか1つに記載のコンピュータプログラム。
(付記6)
前記決定ステップは、前記接触領域の面積が所定の閾値以下である場合、前記操作対象指示子の表示を抑止し、
前記受付ステップは、前記接触操作が終了した時点の前記接触領域に対応する入力情報を受け付けさせる付記1〜5のいずれか1つに記載のコンピュータプログラム。
(付記7)
前記操作対象指示子が指し示す操作対象の大きさに応じて、前記所定の閾値を設定させる設定ステップを含む付記6に記載のコンピュータプログラム。
(付記8)
前記接触対象を含む機器の操作状況を示す情報を取得させる状況取得ステップを含み、
前記決定ステップは、前記状況取得ステップで取得した情報及び前記領域取得ステップで取得した接触領域の情報に基づいて、操作対象指示子の表示態様を決定する付記1〜7のいずれか1つに記載のコンピュータプログラム。
(付記9)
前記操作状況を示す情報は、前記機器の操作状況を検出する検出回路から出力される検出信号に基づく情報である付記8に記載のコンピュータプログラム。
(付記10)
前記検出回路は、前記接触対象に対する接触操作による接触圧力を検出する回路である付記9に記載のコンピュータプログラム。
(付記11)
前記検出回路は、前記機器に加えられた傾きを検出する回路である付記9に記載のコンピュータプログラム。
(付記12)
前記領域取得ステップにて取得された接触領域の情報に基づいて、所定の条件に従って複数の接触領域に分類させる領域分類ステップを含み、
前記領域取得ステップは、前記領域分類ステップで分類された複数の接触領域のそれぞれの面積に応じて選択された1つの接触領域の情報を取得する付記1〜11のいずれか1つに記載のコンピュータプログラム。
(付記13)
前記接触対象に対する接触操作の終了位置を検出する終了検出ステップと、
前記領域取得ステップで取得した接触領域の情報、前記決定ステップで決定した表示態様及び前記終了検出ステップで検出した終了位置に基づいて、前記操作対象指示子の表示態様を決定するための情報を特定する特定ステップとを含み、
前記決定ステップは、前記特定ステップで特定した情報及び前記領域取得ステップで取得した接触領域の情報に基づいて、操作対象指示子の表示態様を決定する付記1〜12のいずれか1つに記載のコンピュータプログラム。
(付記14)
所定の接触対象に対する接触操作による入力情報を受け付ける入力装置において、
表示部と、
タッチセンサと、
記憶部と、
前記接触対象に対して接触操作された接触領域の情報を前記タッチセンサより取得する領域取得手段と、
該領域取得手段が取得した接触領域の情報に基づいて、前記記憶部に記憶された情報を参照し、接触操作に連動して表示される操作対象指示子の表示態様を決定する決定手段と、
該決定手段が決定した表示態様で前記操作対象指示子を前記表示部に表示させる表示指示を出力する出力手段と、
前記接触操作が終了したことに応じて、接触操作が終了した時点の前記操作対象指示子の表示位置に基づいて、操作対象を特定する特定手段と、
前記特定した操作対象に対して、接触操作による入力情報を通知する通知手段と、
前記接触領域の移動に連動して、前記表示された操作対象指示子を移動させる移動手段と、
接触操作が終了した時点の前記操作対象指示子の表示位置に対応する入力情報を受け付ける受付手段と
を備える入力装置。
(付記15)
前記接触対象に対して接触操作された箇所を検出する接触検出手段を備え、
前記領域取得手段は、前記接触検出手段が検出した箇所に基づいて前記接触領域の情報を取得する付記14に記載の入力装置。