以下、本発明の実施の形態を図面を参照して説明する。まず、発明の概要について説明し、その後、具体的な内容を説明する。
図1は、発明の概要を示す図である。
座標検出装置10は、座標入力面20に検出装置21を介して接続する。
座標入力面20の外枠には、座標入力面20の上面(利用者が操作を行う面)に光を投光する投光部とその光を受光する受光部の対が、縦方向及び横方向に等間隔で配列されている。一対の投光部と受光部は、座標入力面20を挟んで対向して配置される。一対の投光部と受光部とを結ぶ光路上に遮光物が何もないときは、投光部が投光した光を受光部で検出することができる。ところが、光路上に人の指などを含む遮光物があるときは、投光部が投光した光は遮断され、受光部で検出することができない。検出装置21は、所定の周期で受光部の受光状態をスキャンし、受光状態を表した遮断情報を生成する。投光部と受光部の対は等間隔で縦方向及び横方向に配列されているので、遮断情報に基づいて座標入力面20上の遮光物の位置を特定することができる。すなわち、座標入力面20の辺に配列される何番目の受光部で遮断が検出されたかに基づいて、遮光物の位置を座標として表すことができる。
座標検出装置10は、遮断軸情報が格納される遮断軸情報記憶手段11、遮断情報を取得して遮断軸を検出する遮断軸検出手段12、判別遮断軸を特定する判別遮断軸特定手段13及び有効座標を特定する有効座標特定手段14を有する。なお、各処理手段は、コンピュータが、座標検出処理プログラムを実行することにより、その処理機能を実現する。
遮断軸情報記憶手段11には、検出された縦方向及び横方向の遮断軸と、特定された有効軸及びその有効座標と、を含む遮断軸に関する情報が、これらの情報が算出された周期に応じた時間情報に関連付けられ、遮断軸情報として格納されている。ここで、遮断軸は、光路の遮断を検出した受光部の位置に対応する座標入力面20の座標領域を指し、遮断軸検出手段12によって特定される。詳細は後述するが、遮断軸は、縦方向と、横方向それぞれに特定される。有効軸は、遮断軸のうち、指示が入力されたタッチ点の座標が含まれると可能性が最も高いとして有効と判定された遮断軸である。有効座標は、その有効軸の領域内の所定の有効地点の位置を示す座標であり、例えば、有効軸の中心座標である。有効軸及び有効座標は、有効座標特定手段14によって特定される。
遮断軸検出手段12は、所定の周期で、検出装置21から座標入力面20について検出された受光部の受光状態を表した遮断情報を取得する。そして、取得した遮断情報を解析し、遮断軸を特定する。取得した遮断情報に基づいて、光が遮断されたことを検出した受光部に対応する遮断軸を、縦方向及び横方向について検出する。
判別遮断軸特定手段13は、遮断軸情報記憶手段11から前回の周期に対応する遮断軸情報(以下、前回遮断軸情報とする)を抽出する。そして、前回遮断軸情報に登録される前回周期の遮断軸の幅と、遮断軸検出手段12が検出した今回周期の遮断軸の幅とを比較して、同じ遮断軸かを特定するとともに、前回遮断軸情報に登録される前回周期の遮断軸と(以下、前回遮断軸とする)、今回周期で特定された遮断軸(以下、今回遮断軸とする)と、を比較し、前回から今回までに変化のあった遮断軸を判別遮断軸として特定する。このとき、新たに増えた遮断軸のみを判別遮断軸として抽出するようにしてもよい。
有効座標特定手段14は、判別遮断軸の個数と、前回遮断軸情報に登録される前回有効軸とに基づいて、有効軸を特定する。なお、有効軸の特定には、有効軸が検出されない場合も含まれる。まず、判別遮断軸が検出されないときは、座標入力面20に新たに遮光物が接触していないという状態である。そこで、前回有効軸の座標が今回の遮断軸の座標の一部に含まれていれば、前回有効軸及び有効座標が継続されていると見なし、この遮断軸を有効軸とする。有効軸は、縦方向及び横方向にそれぞれ1つずつ設定される。そして、有効軸の領域の任意の点、例えば、縦方向及び横方向の遮断軸が重なる中心座標を算出し、有効座標とする。判別遮断軸が縦方向及び横方向にそれぞれ1つずつ検出されたときは、新たに、遮光物が接触されたという状態である。そこで、前回有効軸を無効にし、判別遮断軸を有効軸にする。有効座標は、新たに設定される有効軸の座標になる。判別遮断軸が縦方向または横方向のいずれか一方のみに検出されたときは、スキャンのタイミングで一方の方向でのみ遮断が検出された、あるいは、検出されない他方の遮断軸が前回の遮断軸と同じという状態である。そこで、前回設定された有効軸が今回の遮断軸にあれば、この有効軸及び有効座標を継続させる。判別遮断軸が縦方向または横方向のいずれかに複数検出されたときは、多点に同時に遮光物が接触されたという状態である。そこで、有効軸無とし、多点エラーを発生させる。特定された有効軸及び有効座標と、遮断軸検出手段12によって検出された今回遮断軸と、を周期に応じた時間情報に関連付けた今回の遮断軸情報を生成し、遮断軸情報記憶手段11に格納する。
このような構成の座標検出装置10の動作及び座標検出方法について説明する。
遮断軸検出手段12は、所定の周期で検出装置21から遮断情報を取得する。そして、遮断情報に基づき、縦方向及び横方向の遮断軸を検出する。なお、同一方向に複数の遮断軸が検出される場合は、すべての遮断軸を検出する。続いて、判別遮断軸特定手段13は、遮断軸情報記憶手段11から、前回遮断軸情報を抽出する。そして、前回遮断軸情報に登録される前回遮断軸と、遮断軸検出手段12が検出した遮断軸を基に判別遮断軸特定手段13より特定された今回遮断軸とを比較し、変化のあった遮断軸を判別遮断軸として特定する。なお、検出するのは、今回新たに検出された遮断軸のみとしてもよい。有効座標特定手段14は、こうして特定された判別遮断軸として特定された数と、前回遮断軸情報に登録される前回有効軸とに基づいて、有効軸があるかどうか、及び有効軸がある場合にはどれが有効軸になるのかを決定する。判別遮断軸が検出されないときは、状態変化無と判定し、前回設定された有効軸及び有効座標を継続させる。前回の有効軸及び有効座標がないときは、「有効座標無」を継続する。判別遮断軸が縦方向及び横方向にそれぞれ1つずつ検出されたときは、前回有効軸を無効にし、この判別遮断軸を有効軸にする。有効座標は、新たに設定される有効軸の領域に含まれる座標になる。判別遮断軸が縦方向または横方向のいずれか一方のみに検出されたときは、前回設定された有効軸が今回の遮断軸にあれば、この有効軸及び有効座標を継続させる。判別遮断軸が縦方向または横方向のいずれかに複数検出されたときは、多点に同時に遮光物が接触されたという状態である。そこで、有効軸無とし、多点エラーを発生させる。そして、有効軸、有効座標及び今回遮断軸を周期に応じた時間情報に関連付け、遮断軸情報を生成し、遮断軸情報記憶手段11に格納する。
このように、単に検出された遮断軸に基づいて有効座標を決めるのではなく、過去の有効座標も参照し、利用者が行う一連の操作に応じて変化が検出された判別遮断軸を特定し、現時の有効座標を決定することができる。これにより、過去に特定された有効座標、もしくは無効座標に追従性を持たせ、有効座標を検出することができるようになる。この結果、従来判別できなかった有効座標も検出できるようになり、エラーの発生頻度を下げ、利用者の利便性を向上させることができる。
以下、実施の形態を、光学式タッチパネルを搭載したタッチパネル搭載情報装置に適用した場合を例に図面を参照して詳細に説明する。
図2は、タッチパネルシステムを構成する座標検出装置の構成を示した図である。
座標検出装置100は、タッチパネル200とタッチパネルコントローラ201を介して接続するとともに、液晶ディスプレイ(Liquid Crystal Display;以下、LCDとする)300と図示しないLCDコントローラを介して接続する。LCD300は、操作キーや、案内などが表示される表示画面である。タッチパネル200は、LCD300に対応する座標入力面を形成する。タッチパネルコントローラ201は、タッチパネル200の上面に利用者が触れた位置を検出するため、タッチパネル周辺に配列される受光部の受光状態をスキャンし、遮断情報を生成する。
座標検出装置100内部は、CPU(Central Processing Unit)101によって全体が制御されている。CPU101には、内部バス106を介してRAM(Random Access Memory)102、ROM(Read Only Memory)103、通信インタフェース104及びグラフィック処理部105が接続されている。
RAM102には、CPU101による処理に必要な各種データが格納される。ROM103には、座標検出装置100の処理機能を実行するためのプログラムが格納される。通信インタフェース104は、I/O基板107を介して接続するタッチパネルコントローラ201との間で遮断情報などのデータの送受信を行う。グラフィック処理部105には、I/O基板108を介してLCD300が接続されており、CPU101からの命令に従って画面データをLCD300の表示処理を行うLCDコントローラに送る。
このようなハードウェア構成によって、座標検出装置100の処理機能を実現することができる。
タッチパネル200の上面に触れた遮光物の位置検出方法について説明する。
図3は、タッチパネルの概略構成を示した図である。
タッチパネル200は、表示画面に対応する座標入力面(以下、タッチパネル面とする)210の辺に沿って、タッチパネル面210に光を投光する投光部2210,2220と、投光された光を検出する受光部2310,2320と、が等間隔に配列されている。ここで、タッチパネル面210の水平方向をX軸方向、垂直方向をY軸方向とすると、X軸方向の上辺には投光部2210、Y軸方向の左辺には投光部2220が等間隔で複数配置されている。これに対向するX軸方向の下辺には受光部2310、Y軸方向の右辺には受光部2320が等間隔で複数配置されている。投光部2210,2220から投光された光は、対辺に対向して配列されている受光部2310,2320で受光される。例えば、X軸方向の左端の投光部2211によって投光された光B2210は、対辺の左端の受光部2311により受光される。同様に、Y軸方向の最上部の投光部2221によって投光された光B2220は、対辺の最上部の受光部2321によって受光される。
ここで、X軸方向に並ぶ受光部2310の位置を左端から順にX0,X1,X2,・・・,Xnとする。同様に、Y軸方向に並ぶ受光部2320の位置を最上部から順にY0,Y1,Y2,・・・,Ymとする。
タッチパネルコントローラ201からは、X軸方向の受光状態と、Y軸方向の受光状態が遮断情報として生成される。例えば、T1に遮光物があると、X2に位置する受光部と、Y1に位置する受光部とで光が検出されなくなる。X軸方向に関し「X0−X1が受光、X2が未受光(遮断)、X3−Xnが受光」、Y軸方向に関し「Y0が受光、Y1が未受光、Y2−Ymが受光」という遮断情報が生成される。なお、実際には、受光部2310,2320が一斉にスキャンされることはない。例えば、X軸方向の受光部2310を順次スキャンし、終了後にY軸方向の受光部2320を順次スキャンするという処理が行われる。このため、スキャン途中で操作が行われたときは、X軸側では検出されていないがY軸側では検出されるというケースが発生する。逆のケースもある。このように、一方向のみでスキャンされた状態を片側タッチと呼ぶ。
次に、座標検出装置100の座標検出機能について説明する。図4は、座標検出装置の処理機能を示したブロック図である。図2と同じものには同じ番号を付す。
座標検出装置100は、遮断軸情報データベース(以下、DBとする)110、遮断軸検出部120、判別遮断軸特定部130及び有効座標特定部140を有する。なお、座標検出装置100の各処理部は、コンピュータが座標検出処理プログラムを実行することにより、その処理機能が実現する。
遮断軸情報DB110には、遮断情報を取得し座標を検出する処理を行う周期ごとに生成される遮断軸情報が、周期に応じた時間情報に関連付けて格納される。遮断軸情報には、その周期の処理において遮断情報より検出されたX軸方向及びY軸方向の遮断軸、決定された有効軸及び有効座標などが登録される。詳細は後述する。
遮断軸検出部120は、所定の周期で、タッチパネルコントローラ201が管理する遮断情報を取得する。そして、取得した遮断情報に基づいてX軸方向及びY軸方向の遮断軸を検出する。遮断軸は、遮断を検出した受光部の位置に応じた座標で表される。なお、所定の周期は、タッチパネルコントローラ201が受光部のスキャンを行う周期と同様の周期であり、スキャン終了とほぼ同時に座標検出処理が行われるとする。そこで、以下の説明では、座標検出処理の開始時をスキャン時とする。
判別遮断軸特定部130は、遮断軸属性特定部131と、判別遮断軸検出部132とを有する。遮断軸属性特定部131は、前回スキャン時に検出された遮断軸と、今回スキャン時に検出された遮断軸とが同じ遮光物のものであるかどうかを特定する。これを同属性と呼び、今回スキャン時の遮断軸の座標範囲(以下、遮断軸幅とする)が、前回スキャン時の遮断軸幅と重なる部分があれば、同属性の遮断軸と判断し、同じ遮断軸名を設定する。なお、予めマージンを設定しておき、今回スキャン時の遮断軸幅と、前回スキャン時の遮断軸幅との距離が所定のマージン内であれば、同属性としてもよい。判別遮断軸検出部132は、遮断軸検出部120が検出した遮断軸を基に遮断軸属性特定部131より特定された今回遮断軸と、遮断軸情報DB110から読み出した前回遮断軸とを比較し、変化のあった遮断軸を判別遮断軸とする。ここでは、今回新たに検出された遮断軸のみを検出し、判別遮断軸とする。
有効座標特定部140は、同時押し処理部141、片側タッチ処理部142、順押し処理部143及び状態継続処理部144を有し、利用者が指示入力のため、タッチしたタッチ点と見なすことができる有効座標を特定する。ここでは、判別遮断軸の個数に応じて、同時押し処理部141、片側タッチ処理部142、順押し処理部143、または状態継続処理部144のいずれかが有効座標を決定する処理を行う。同時押し処理部141は、判別遮断軸が複数検出されたとき、すなわち、スキャン時に複数点の入力が確認された同時押しの場合の有効座標決定処理を行う。片側タッチ処理部142は、判別遮断軸がX軸方向またはY軸方向のいずれか一方に1のみ検出されたとき、片側座標でのみタッチが検出された場合の有効座標決定処理を行う。順押し処理部143は、判別遮断軸がX軸方向及びY軸方向にそれぞれ1ずつ検出されたとき、すなわち、順に正しく操作されており今回のタッチ点が検出できる場合の有効座標決定処理を行う。状態継続処理部144は、判別遮断軸が検出されないとき、すなわち、入力状態に変化のない場合の有効座標検定処理を行う。なお、ここでは、判別遮断軸は新たに検出された遮断軸としているので、前回検出されたタッチ点から指などが離れたときも、「判別遮断軸無」になる。そこで、状態継続処理部144では、タッチ点がなくなったときの処理も行う。それぞれの処理の詳細は後述する。
以上のような構成の座標検出装置100により、タッチパネル面210に遮光物がタッチされたとき、そのタッチ点の座標を検出する処理が行われる。
次に、遮断軸情報DB110に格納される遮断軸情報について説明する。図5は、遮断軸情報テーブルの一例を示した図である。
遮断軸情報テーブル1100は、各スキャン周期の遮断軸情報を有するテーブルであり、時系列1101、検出遮断軸1102、有効軸1103及び有効座標1104の各項目が設定される。
時系列1101には、スキャン周期に応じた時間情報であり、スキャン順に割り振られた番号が登録される。nを最新のスキャン時とすると、前回スキャン時はn−1、その前はn−2と表すことができる。
検出遮断軸1102には、時系列1101によって表されるスキャン時に遮断軸検出部120によって検出された遮断軸幅と、遮断軸幅に基づいて遮断軸属性特定部131によって特定された遮断軸には、XはX軸方向の遮断軸の属性が付与される。なおXの遮断軸の属性には、遮断軸の幅を示すX軸方向の遮断軸幅における最小の座標値、(X)min、X軸方向の遮断軸幅における最大の座標値、(X)maxが含まれている。Y軸方向も同様に、Yの遮断軸の属性が付与される。なおYの遮断軸の属性には、Y軸方向の遮断軸幅における最小の座標値(Y)min、Y軸方向の遮断軸幅における最大の座標値(Y)maxが含まれる。例えば、図5の例においてスキャン(n−2)では、X軸方向のXa遮断軸とY軸方向のYa遮断軸という遮断軸がある。
この場合Xaには、[(Xa)min,(Xa)max]と、Yaには[(Ya)min,(Ya)max]が含まれているものとする(以下、検出遮断軸については、遮断軸幅の最小値および最大値が含まれているものとする)。
有効軸1103には、時系列1101によって表されるスキャン時に有効座標特定部140が決定した有効軸が登録される。なお、nullは、有効軸が存在しないことを示し、前回の有効座標がタッチアップする。
有効座標1104には、タッチ点を表す有効座標として、有効軸1103の中心の座標が登録される。例えば、Xaの遮断軸幅が最小の座標値(Xa)minと、最大の座標値(Xa)maxとし、Yaの遮断軸幅が最小の座標値(Ya)minと、最大の座標値(Ya)maxとすると、有効座標(x,y)は、
x= {(Xa)min+(Xa)max}/2
y= {(Ya)min+(Ya)max}/2 ・・・(1)
によって算出することができる。なお、nullは、有効座標が存在しないことを表す。
さらに、必要に応じて、タッチ点の状態を遮断軸情報テーブル1100に保存しておくとしてもよい。
以下、座標検出装置100の動作及び座標検出方法について、詳細に説明する。
遮断軸検出部120は、スキャン周期で遮断情報を取得し、遮断軸幅を検出する。遮断軸の遮断軸幅は、連続して遮断を検出した受光部の個数に応じ、X軸方向は、最小座標(遮断部分で最も左側に近い受光部)と、最大座標(遮断部分で最も右側に近い受光部)によって決まる。また、Y軸方向は、最小座標(遮断部分で最上位の受光部)と、最大座標(遮断部分で最下位の受光部)と、によって決まる。検出された遮断軸幅は、判別遮断軸特定部130に送られる。
判別遮断軸特定部130では、遮断軸属性特定部131が、今回スキャン周期のスキャン(n)の遮断軸が、前回スキャン周期のスキャン(n−1)における遮断軸と同属性であるかどうかを判定する。スキャン(n)の遮断軸幅+マージンαと、スキャン(n−1)の遮断軸幅+マージンαとを比較し、一致する座標が含まれているかどうかを判定する。
例えば、マージンαを0とし、スキャン(n−1)の遮断軸が{Xa(3−8),Ya(2−4)}であり、スキャン(n)の遮断軸が{X(4−9),X(11−22),Y(1−2),Y(7−10)}であるとする。この場合、X(4−9)は、スキャン(n−1)のXa(3−8)と重なるので、この遮断軸は同属、すなわちXaであると判定する。同様に、Y(1−2)は、Yaと判定される。結果、新たに検出された遮断軸をXb,Ybとし、スキャン(n)での遮断軸は、{Xa(4−9),Xb(11−22),Ya(1−2),Yb(7−10)}となる。
また、マージンαを1とし、スキャン(n−1)の遮断軸が{Xa(3−8),Ya(2−4)}、スキャン(n)の遮断軸が{X(10−11),Y(1−2)}であるとする。この場合、X軸方向について、スキャン(n−1)の遮断軸Xaは、最小座標X3(−1)、最大座標X8(+1)とし、Xa(2−9)と見なすことができる。同様に、スキャン(n)のX軸方向は、X(9−12)と見なすことができる。したがって、遮断軸幅が重なるため、X(10−11)は、Xaであると判定される。Y軸方向の処理は省略する。結果、スキャン(n)の遮断軸は、{Xa(10−11),Ya(2−4)}となる。
こうして遮断軸の属性が特定された後、判別遮断軸検出部132が、判別遮断軸を検出する。判別遮断軸は、スキャン(n)の遮断軸−スキャン(n−1)の遮断軸で算出する。ただし、計算結果にスキャン(n−1)の座標が含まれている場合、これを除く。この結果、新たに検出された遮断軸が判別遮断軸として検出される。
例えば、スキャン(n−1)の遮断軸が{Xa,Ya}、スキャン(n)の遮断軸が{Xa,Xb,Ya,Yb}であれば、判別遮断軸は、{Xb,Yb}になる。また、スキャン(n−1)の遮断軸が{Xa,Ya}、スキャン(n)の遮断軸が{Xb,Yb}であれば、判別遮断軸は、{Xb,Yb}になる。検出されなくなった{Xa,Ya}は、判別遮断軸には含めない。こうして検出された判別遮断軸は、有効座標特定部140に送られる。
有効座標特定部140は、判別遮断軸を解析し、有効座標を特定する。スキャン(n−1)からスキャン(n)の間で変化する遮断軸のパターンには、同時押し、順押し、片側タッチ、離れたとき、状態継続の5パターンがある。それぞれのパターン、遮断軸の変化及び処理の概略について説明する。
図6は、同時押し、順押し及び片側タッチの例を示した図である。(1)は、同時押しの例、(2)は順押しの例、(3)は片側タッチの例を示している。図では、スキャン(n−1)のときのタッチパネル面をタッチパネル面(n−1)、スキャン(n)のときのタッチパネル面をタッチパネル面(n)とし、遮光物に順にa,b,c,・・・を割り当てる。
(1)同時押しの例を説明する。まず、スキャン(n−1)では、タッチパネル面(n−1)211に遮光物210aがタッチされ、遮断軸(Xa,Ya)が検出される。その後、スキャン(n)の時点では、タッチパネル面(n)212のように、遮光物210b,210cによって2点が同時に押されたため、遮断軸(Xb,Xc,Yb,Yc)が新たに検出されている。このように同時押しとは、スキャン時に複数点が新たにタッチされることが検出されたことをいう。同時押しが発生したときは、X軸方向またはY軸方向のいずれか一方、もしくは双方に判別遮断軸が複数検出される。同時押しが検出されたときは、有効軸の特定が困難であるので、有効軸無とし、多点エラーを発生させる。
(2)順押しの例を説明する。まず、スキャン(n−1)では、タッチパネル面(n−1)221に、遮光物220a,220bによって遮断軸(Xa,Xb,Ya,Yb)が検出される。次のスキャン周期のタッチパネル面(n)222では、さらに、遮光物230cによって1点が押され、遮断軸(Xc,Yc)が新たに検出されている。このように、順押しとは、スキャン時に1点が新たにタッチされることをいう。順押しが発生したときは、判別遮断軸がX軸方向と、Y軸方向に1ずつ検出される。こうして検出された判別遮断軸を有効軸として、有効座標を検出することができる。なお、図の例は、スキャン時の遮断座標のみによって有効座標を検出する従来の方法では、同時押しと処理されていた。
(3)片側タッチの例を説明する。まず、スキャン(n−1)では、タッチパネル面(n−1)231に、遮光物230a,230bによって遮断軸(Xa,Xb,Ya,Yb)が検出される。タッチパネルコントローラ201のスキャン処理の途中、例えば、X軸方向のスキャンが終了し、Y軸方向のスキャンが開始された後、遮光物230cによって一点が押されたとする。次のスキャン周期のタッチパネル面(n)232では、遮光物230cによる遮断軸(Yc)が新たに検出されている。タッチパネルコントローラ201の処理上、X軸方向のスキャンが終了してからY軸方向のスキャンを行うため、このようなケースが生じる。このように、片側タッチとは、X軸またはY軸のいずれか一方で遮断軸が検出された場合をいう。このように片側タッチが発生した場合は、スキャン(n)の有効軸は、スキャン(n−1)の有効軸で処理される。また、片側タッチであれば、次のスキャンタイミングでもう一方の座標も検出できるため、片側タッチが発生したことを記憶しておき、次のスキャンを待つ。次のスキャンタイミングでは、もう片側の遮断軸が検出されるので、スキャン(n−1)で検出された遮断軸と組み合わせ、有効軸を特定する。しかし、スキャン(n−1)で検出された遮断軸と同一方向の遮断軸上にタッチされたときに、片側タッチと同じ状態になる。スキャンタイミングによる片側タッチと異なり、次以降のスキャンにおいても片側タッチが解消されないことになる。そこで、片側タッチの状態が解消されないときは、同軸上にタッチされたと判定する。同軸上のタッチについては、後述する。
図7は、離れたとき及び状態継続の例を示した図である。(4)は離れたときの例、(5)は状態継続の例を示している。
(4)離れたときの例を説明する。スキャン(n−1)のタッチパネル面(n−1)241では、遮光物240a,240bによって遮断軸(Xa,Xb,Ya,Yb)が検出された。その後、スキャン(n)の時点では、遮光物240bが離れ、タッチパネル面(n)242では、遮断軸は(Xa,Ya)となっている。このように、離れたときとは、スキャン(n−1)で検出された遮断軸が検出されなかったことをいう。消えた遮断軸については、判別遮断軸とされないため、判別遮断軸無となる。
この時スキャン(n−1)の有効軸が(Xa,Ya)である場合は、タッチパネル面(n)242で残っている遮断軸(Xa,Ya)を有効遮断軸とする。
スキャン(n−1)の有効軸が(Xb,Yb)である場合は、タッチパネル面(n)242で残っている遮断軸が(Xa,Ya)であるため、スキャン(n−1)の有効軸(Xb,Yb)は消失しているため、有効軸がnullとなる。
なお、2つ以上の遮断軸が残っていた場合は、タッチパネル面(n−1)241で有効軸とされた遮断軸を有効軸にする。また、片側タッチ同様な現象が発生した場合は、片側タッチの処理と同等の処理を行う。
(5)状態継続の例を説明する。スキャン(n−1)のタッチパネル面(n−1)251では、遮光物250aによって遮断軸(Xa,Ya)が検出された。その後、スキャン(n)の時点でも、タッチパネル面(n)252の遮光物250aの位置に変化はなく、遮断軸(Xa,Ya)が検出される。このように、状態継続とは、遮断軸の状態が変化ないことをいう。判別遮断軸も検出されない。そこで、前回スキャン時に決定した有効軸を継続させる。
このように、判別遮断軸から予測される状態に応じて、有効軸を決定し、有効座標を算出する。ここで、同軸上のタッチについて説明する。図8は、同軸上のタッチを説明する図である。(6)は同軸(X軸上)の例、(7)は同軸(遮光物大)の例である。
(6)同軸(X軸上)の例を説明する。スキャン(n−2)のタッチパネル面(n−2)261では、遮光物260aによって、遮断軸(Xa,Ya)が検出された。次のスキャン(n−1)の時点では、同じX軸上に遮光物260bがタッチされ、タッチパネル面(n−1)262における遮断軸は(Xa,Ya,Yb)となる。このときは、片側タッチと同じであるが、同軸上のタッチの場合、次のスキャン時にも遮断軸は変化しない。すなわち、次のスキャン(n)におけるタッチパネル面(n)263でも、遮光物260a,260bによる遮断軸(Xa,Ya,Yb)が検出される。このように、片側タッチが検出された次のスキャン周期でも遮断軸に変化のない場合は、同軸上のスキャンと判定し、有効軸を(Xa,Yb)とする。Y軸上で同軸上のタッチがされた場合についても同様であるので、説明は省略する。
しかし、スキャン(n−2)の時点で検出された遮断軸幅が大きい場合、その幅を後から検出されるタッチ点の遮断軸とすると、誤差が大きくなる可能性がある。そのような場合の処理を説明する。
(7)同軸(遮光物大)の例を説明する。スキャン(n−2)のタッチパネル面(n−2)271で、遮断軸幅の広い遮光物270aによって、遮断軸(Xa,Ya)が検出される。次のスキャン(n−1)のタッチパネル面(n−1)272では、遮光物270bがタッチされるが、X軸方向の遮断軸が同軸であるため、遮断軸(Xa,Ya,Yb)が検出される。これは、片側タッチと判定される。次のスキャン(n)でも、状態に変化はなく、遮断軸(Xa,Ya,Yb)が検出されるため、同軸と判定する。このとき、遮光物270aの遮断軸幅(タッチパネル面の点線部分)が大きいと、X軸方向の遮光物270bの遮断軸を、遮光物270aの遮断軸幅で決定すると誤差が大きくなる。そこで遮光物270aの遮断軸幅が一定値(これを検知可能範囲とする)を超えているときは、誤差が大きいとして多点エラーとする。検知可能範囲内であれば、上記の(6)と同じ処理が行われる。
このように、前の状態に追従して有効軸を判定することにより、従来エラーとしていたケースでも有効座標を特定することが可能となる。これにより、エラーの発生頻度を抑えることができる。
次に、パターンAからパターンJまで、いくつかの具体例を挙げて座標検出処理を説明する。本例では、1点検知、2点検知、3点検知までの例を記載しているが、3点を超える場合も本例では包含している。
以下、最初に各パターンにおけるタッチパネル上の遮光物の動きについて説明し、続いてスキャンごとの遮断軸の座標上の変化をX軸とY軸について説明する。そして、最後に、生成される遮断軸情報について説明する。なお、以下の説明では、遮光物の大きさには制限が有り、ある基準値を超えて遮光物が大きい場合には有効座標を算出しないこととする。
1.パターンA
パターンAは、1点のみがタッチされるという例である。
図9は、パターンA(1点タッチ)のタッチパネル上の遮光物の動きを示した図である。(A−1)パターンAは、タッチパネル面210上に利用者の指401のみがタッチされたという1点タッチのパターンでの動きを示している。パターンAでは、タッチパネル面210に何もタッチされていない状態から、操作を指示するために利用者が所定の位置を指401でタッチするという動作が行われる。
図10は、パターンAの場合の座標の変化を示した図である。(A−2)はパターンAのX軸方向の遮断軸のスキャンごとの座標値、(A−3)はパターンAのY軸方向の遮断軸のスキャンごとの座標値を示している。どちらも横軸は座標値、縦軸はスキャン時を表している。図10の斜線部分は、遮断軸幅を示しており、その右隣もしくは左隣に隣接する括弧内の数値は、最小座標値(min)と最大座標値(max)を表している。なお、前のスキャン時と遮断軸幅が同じであれば、座標値の表記は省略している。遮断軸は、同属性の遮断軸に同一番号を振り、その幅を最小と最大の座標値で表す。X軸方向の遮断軸は、割り振られた番号をn、最小座標値(min)及び最大座標値(max)を用いて、Xn(min−max)と表す。同様に、Y軸方向は、mを割り振られた番号とし、Ym(min−max)で表す。また、矢印は遮断軸の中心の変化を示している。これらは、以下のすべてのパターンについても同様である。
(A−2)パターンAのX軸方向では、最も過去の時点のスキャン1では遮断軸は検出されていない。次のスキャン周期のスキャン2では、遮断軸X1(6−10)が検出されている。次のスキャン周期のスキャン3では、遮断軸X1(7−10)が検出される。これらの遮断軸は、前のスキャン時点の遮断軸幅と、今回のスキャン時点の遮断軸幅とで座標が重なっているので、同属性と判定されている。同様にして、スキャン4からスキャン8の間では、遮断軸X1(7−9)が検出されている。
(A−3)パターンAのY軸方向では、スキャン1では遮断軸は検出されていない。以降のスキャン2では遮断軸Y1(13−15)、スキャン3からスキャン7では遮断軸Y1(14−16)が検出されている。スキャン2からスキャン7までに検出された遮断軸が同属性であることは、X軸方向の場合と同様である。
図11は、パターンAの場合の遮断軸情報を示した図である。(A−4)は、パターンAでスキャンごとに生成される遮断軸情報を示している。図11の例では、図5に示した遮断軸情報テーブル1100の内容に加え、タッチパネル面210へのタッチ状態を示す情報も有している。タッチ状態には、タッチされていない「null」、有効座標が示すタッチ点を有効にした「ON」、及びタッチ点を無効にした「OFF」の状態がある。なお、タッチ状態に続く括弧内の記述は、現在のタッチパネル面の状態を示した説明であり、図には表記されない。
スキャン1では、遮断軸は検出されないため、タッチ状態も「null」である。
スキャン2では、遮断軸検出部120によって、図10に示したようにX軸方向の遮断軸(6−10)と、Y軸方向の遮断軸(13−15)が検出される。次に、判別遮断軸特定部130は、前回のスキャン1では遮断軸は検出されていないので、検出されたX軸方向の遮断軸(6−10)にX1、Y軸方向の遮断軸(13−15)にY1を割り当て、X1(6−10),Y1(13−15)とする。また、これらを判別遮断軸とする。有効座標特定部140は、判別遮断軸がX軸方向とY軸方向それぞれに1ずつ検出されたので、「順押し」と判定し、判別遮断軸X1(6−10),Y1(13−15)を有効軸にする。そして、有効軸の中心座標を式(1)を用いて算出する。ここでは、X1の中心座標が8=(6+10)/2、Y1の中心座標が14=(13+15)/2と算出される。算出された中心座標を組み合わせ、有効座標(8,14)が特定される。こうして特定された遮断軸X1,Y1は検出遮断軸1102a、有効軸X1,Y1は有効軸1103a、有効座標(8,14)は有効座標1104aのスキャン2に対応する欄に登録される。また、タッチ状態1105aには、1点がタッチされオンになったことを示す「ON(1点)」が登録される。なお、以降のスキャン周期で特定された各項目の情報は、スキャン周期に対応する欄に登録されるとし、登録処理の説明は省く。
スキャン3では、遮断軸検出部120によって、X軸方向の遮断軸(7−10)と、Y軸方向の遮断軸(14−16)が検出される。次に、判別遮断軸特定部130は、検出されたX軸方向の遮断軸(7−10)と、前回特定された遮断軸X1(6−10)の遮断軸幅を照合する。ここでは、遮断軸幅の座標が重なるので、遮断軸(7−10)をX1と特定する。同様にして、Y方向の遮断軸(14−16)もY1と特定される。次に、判別遮断軸特定部130は、判別遮断軸を検出する。遮断軸X1,Y1は、前回のスキャン2で既検出であるので、「判別遮断軸無」とする。有効座標特定部140は、「判別遮断軸無」であるので「状態継続」と判定する。また、前回の有効軸X1,Y1は、スキャン3においても検出されているので、今回検出された遮断軸X1(7−10),Y1(14−16)を有効軸にする。そして、上記と同様にして有効軸の中心座標を算出し、算出された(8.5,15)を有効座標とする。タッチ状態は、スキャン2の状態が継続される。
スキャン4からスキャン7までは、スキャン3と同様の処理が行われる。
スキャン8では、遮断軸検出部120によって、X軸方向の遮断軸(7−9)のみが検出される。該当領域のX軸方向のスキャンが終了してからY軸方向のスキャンまでの間に、タッチが解消された場合である。判別遮断軸特定部130は、検出されたX軸方向の遮断軸(7−9)と、前回特定された遮断軸X1(7−9)の領域が重なるので、遮断軸(7−9)をX1と特定する。Y軸方向の遮断軸はない。また、新たに検出された遮断軸はないので、「判別遮断軸無」とする。有効座標特定部140は、「判別遮断軸無」であるので「状態継続」と判定する。状態継続の場合、今回スキャン(スキャン8)の遮断軸に前回の有効軸が含まれているかどうかを判定する。スキャン8では、前回の有効軸Y1は検出されないので片側タッチと判定し、タッチ状態を「ON(片側)」とする。有効軸は、前回の遮断軸Y1(14−16)を用いて、遮断軸X1(7−9),Y1(14−16)とする。そして、有効軸の中心を有効座標(8,15)とする。
スキャン9では、遮断軸検出部120は遮断軸を検出することができず、判別遮断軸特定部130は「判別遮断軸無」とする。有効座標特定部140は、「判別遮断軸無」であるので「状態継続」と判定する。スキャン9では、前回のタッチ状態は「ON(片側)」であり、前回の有効軸X1は検出されないのでタッチ点は「OFF」されたと判定し、タッチ状態を「OFF」とする。有効軸及び有効座標はタッチ状態を「OFF」としたタッチ点の有効軸及び有効座標を設定する。すなわち、前回スキャン時の有効軸及び有効座標が設定される。
このような手順により、パターンAに示したような1点タッチが発生した場合、タッチされた有効座標を特定することができる。
パターンBからパターンDまでは、2点が順に押される2点順押しの例である。
2.パターンB
図12は、パターンB(2点順押しの第1例)のタッチパネル上の遮光物の動きを示した図である。パターンBは、タッチパネル面210に利用者の袖がタッチされてから、続いて利用者の指がタッチされるというパターンである。(B−1a)では、タッチパネル面210上に利用者の袖402がタッチされている。その後のスキャン周期の(B−1b)では、袖402に加え、指401が順押しされている。
図13は、パターンBの場合の座標の変化を示した図である。(B−2)はパターンBのX軸方向の遮断軸のスキャンごとの座標値、(B−3)はパターンBのY軸方向の遮断軸のスキャンごとの座標値を示している。
(B−2)パターンBのX軸方向では、遮断軸X2,X1の順に検出される。最初に、スキャン2で遮断軸X2(33−37)が検出される。遮断軸X2は、スキャン3でX2(34−37)、スキャン4からスキャン8でX2(34−36)として検出される。そして、スキャン9で消える。遮断軸X1は、スキャン5で新たに検出される。スキャン5からスキャン7まで、遮断軸X1(7−9)として継続して検出された後、スキャン8で消える。
(B−3)パターンBのY軸方向では、遮断軸Y2,Y1の順に検出される。最初に、スキャン2で遮断軸Y2(24−26)が検出される。遮断軸Y2は、スキャン3からスキャン7までY2(25−27)として継続して検出され、スキャン8で消える。遮断軸Y1は、スキャン4でY1(7−9)として新たに検出される。さらに、遮断軸Y1は、スキャン5及びスキャン6では、遮断軸Y1(8−10)として検出され、スキャン7で消える。
図14は、パターンBの場合の遮断軸情報を示した図である。
スキャン1では、遮断軸は検出されないため、タッチ状態も「null」である。
スキャン2では、遮断軸検出部120によって、X軸方向の遮断軸(33−37)と、Y軸方向の遮断軸(24−26)が検出され、判別遮断軸特定部130によって、遮断軸X2(33−37),Y2(24−26)と特定される。また、前回のスキャン1では遮断軸は検出されていないので、検出された遮断軸X2(33−37),Y2(24−26)が判別遮断軸となる。有効座標特定部140は、判別遮断軸がX軸方向とY軸方向それぞれに1ずつ検出されたので、「順押し」と判定し、判別遮断軸X2(33−37),Y2(24−26)を有効軸に設定する。そして、有効軸の中心座標をパターンAと同様に算出する。こうして、有効座標(35,25)が特定される。こうして特定された遮断軸X2,Y2は検出遮断軸1102b、有効軸X2,Y2は有効軸1103b、有効座標(35,25)は有効座標1104bのスキャン2に対応する欄に登録される。また、タッチ状態1105bには、1点がタッチされオンになったことを示す「ON(1点)」が登録される。なお、以降のスキャン周期で特定された各項目の情報は、スキャン周期に対応する欄に登録されるとし、登録処理の説明は省く。
スキャン3では、遮断軸検出部120によって、X軸方向の遮断軸(34−37)と、Y軸方向の遮断軸(25−27)が検出される。次に、判別遮断軸特定部130は、検出されたX軸方向の遮断軸(34−37)及びY軸方向の遮断軸(25−27)の属性を特定する。X軸方向の遮断軸(34−37)は、前回特定された遮断軸X2(33−37)の遮断軸と領域が重なるので、遮断軸X2と特定される。Y軸方向の遮断軸(25−27)は、前回特定された遮断軸Y2(24−26)の領域と重なるので、遮断軸Y2と特定する。いずれの遮断軸も既検出であるので、「判別遮断軸無」とする。有効座標特定部140は、「判別遮断軸無」であるので「状態継続」と判定する。前回の有効軸X2,Y2は、スキャン3においても検出されているので、遮断軸X2(34−37),Y2(25−27)を有効軸にする。そして、上記と同様にして有効軸の中心座標を算出し、算出された(35.5,26)を有効座標とする。タッチ状態は、スキャン2の状態を継続する。
スキャン4では、遮断軸検出部120によって、新たに、Y軸方向の遮断軸(7−9)が検出される。判別遮断軸特定部130は、新たなY軸方向の遮断軸(7−9)にY1を割り当て、遮断軸Y1(7−9)を判別遮断軸とする。また、前回の遮断軸X2,Y2も同様にして検出・特定される。有効座標特定部140は、判別遮断軸がY軸方向の1つだけであるので、「片側タッチ」と判定し、有効軸は前回周期と同じにする。ここでは、遮断軸X2(34−36),Y2(25−27)が有効軸になる。そして、有効軸の中心座標(35,26)を算出し、有効座標とする。タッチ状態は、新たに有効座標が特定されたので「ON(1点+Y軸片側タッチ)」が設定される。
スキャン5では、遮断軸検出部120によって、新たに、X軸方向の遮断軸(7−9)が検出される。判別遮断軸特定部130は、新たなX軸方向の遮断軸(7−9)にX1を割り当て、遮断軸X1(7−9)を判別遮断軸とする。また、前回の遮断軸X2,Y1,Y2も同様にして検出・特定される。有効座標特定部140は、判別遮断軸がX軸方向の1つだけであるので、「片側タッチ」と判定する。タッチ状態には、「Y軸片側タッチ」が設定されているので、前回の判別遮断軸Y1として特定された遮断軸Y1(8−10)と、今回の判別遮断軸X1(7−9)とを有効軸とすることができる。しかし、この例では、今回特定された有効軸X1(7−9),Y1(8−10)は、前回の有効軸X2(34−36),Y2(25−27)とは異なるので、このスキャン周期では、前の有効軸X2(34−36),Y2(25−27)をオフさせるイベントを発生させ、有効軸は前回周期と同じとする。この場合、有効軸はX2(34−36),Y2(25−27)、有効座標は(35,26)となる。タッチ状態は、タッチ点は2点検出されているが、前の有効座標(35,26)をオフさせたので、「OFF(2点)」としてタッチ状態1105bに登録する。「OFF」は発生させたオフイベント、「2点」は現在のタッチ点の数を示す。
次のスキャン6では、スキャン5と同じ遮断軸が検出されるので、有効軸を遮断軸X1(7−9),Y1(8−10)とし、有効軸の中心座標(8,9)を有効座標とする。タッチ状態は、今回新たに設定された有効座標(8,9)のオンイベントを発生させ、「ON(2点)」とする。
スキャン7では、遮断軸Y1が検出されなくなり、他の遮断軸X1(7−9),X2(34−36),Y2(25−27)は検出される。判別遮断軸特定部130は、「判別遮断軸無」とする。有効座標特定部140は、「判別遮断軸無」であるので「状態継続」と判定する。前回の有効軸Y1は、検出されないので片側タッチと判定し、タッチ状態を「ON(X軸片側タッチ+1点)」とする。有効軸は、前回の有効軸を継続し、遮断軸X1(7−9),Y1(8−10)とする。そして、有効軸の中心(8,9)を有効座標とする。
スキャン8では、遮断軸検出部120は遮断軸を検出することができず、判別遮断軸特定部130は「判別遮断軸無」と特定する。有効座標特定部140は、「判別遮断軸無」であるので「状態継続」と判定し、有効軸を継続させる。スキャン8では、前回のタッチ状態は「ON(片側)」であり、前回の有効軸X1も検出されないのでタッチ点はOFFされたと判定し、タッチ状態を「OFF(1点)」とする。
次のスキャン9では、遮断軸検出部120は、遮断軸を検出することができないので、残りのタッチ点もオフし、タッチ状態に「null」を登録する。
このような手順により、パターンBによるタッチパネル面210に袖、指の順にタッチされ、指、袖の順にタッチパネル面210から離される場合の有効座標が特定される。従来の座標検出では、スキャン5及びスキャン6では、複数点の入力となりエラーが発生していた。しかし、過去に特定された有効座標に追従性を持たせたことにより、スキャン5及びスキャン6において有効座標を特定することが可能となった。
なお、上記の説明では、スキャンごとにイベントを1つずつ発生させるために、当該タッチ点のイベントがオフになるまで前の有効軸を継続するとした。しかし、新たな有効軸が検出された時点、または、有効軸が消えた時点で複数のイベントを発生させ、有効軸及び有効座標を変えるとしてもよい。
3.パターンC
図15は、パターンC(2点順押しの第2例)のタッチパネル上の遮光物の動きを示した図である。パターンCは、利用者の袖がタッチされてから、利用者の指がタッチされ、その後、袖、指の順に離されるというパターンである。(C−1a)では、タッチパネル面210上に利用者の袖402がタッチされている。その後のスキャン周期の(C−1b)では、袖402に加え、指401が順押しされている。そして、続くスキャン周期の(C−1c)では、袖402が離され、指401が残っている。
図16は、パターンCの場合の座標の変化を示した図である。(C−2)はパターンCのX軸方向の遮断軸のスキャンごとの座標値、(C−3)はパターンCのY軸方向の遮断軸のスキャンごとの座標値を示している。
(C−2)パターンCのX軸方向では、遮断軸X2,X1の順に検出される。最初に、スキャン2で遮断軸X2(33−37)が検出される。遮断軸X2は、スキャン3でX2(34−37)、スキャン4からスキャン7でX2(34−36)として継続して検出された後、スキャン8で消える。遮断軸X1は、スキャン5でX1(7−9)として新たに検出される。スキャン6からスキャン9までX1(7−9)として継続して検出された後、スキャン10で消える。
(C−3)パターンCのY軸方向では、遮断軸Y2,Y1が順に検出される。最初に、スキャン2で遮断軸Y2(24−26)が検出される。遮断軸Y2は、スキャン3からスキャン7までY2(25−27)として継続して検出され、スキャン8で消える。遮断軸Y1は、スキャン4でY1(7−9)として新たに検出される。スキャン5からスキャン8では、Y1(8−10)として継続して検出され、スキャン9で消える。
図17は、パターンCの場合の遮断軸情報を示した図である。
スキャン1では、遮断軸は検出されず、タッチ状態も「null」である。
スキャン2では、遮断軸検出部120によって、X軸方向の遮断軸(33−37)と、Y軸方向の遮断軸(24−26)が検出される。この遮断軸は、判別遮断軸特定部130によって、遮断軸X2(33−37),Y2(24−26)と特定され、判別遮断軸となる。有効座標特定部140は、判別遮断軸がX軸方向とY軸方向それぞれに1ずつ検出されたので、「順押し」と判定し、判別遮断軸X2(33−37),Y2(24−26)を有効軸にする。そして、パターンAと同様の手法によって有効軸の中心座標を算出する。算出された中心座標(35,25)は、有効座標(35,25)とする。こうして特定された遮断軸X2,Y2は検出遮断軸1102c、有効軸X2,Y2は有効軸1103c、有効座標(35,25)は有効座標1104cのスキャン2に対応する欄に登録される。また、タッチ状態1105cには、「ON(1点)」が登録される。なお、以降のスキャン周期で特定された各項目の情報は、スキャン周期に対応する欄に登録されるとし、登録処理の説明は省く。
スキャン3では、遮断軸検出部120によって、X軸方向の遮断軸(34−37)と、Y軸方向の遮断軸(25−27)が検出される。判別遮断軸特定部130は、これらを遮断軸X2(34−37),Y2(25−27)と特定し、「判別遮断軸無」とする。有効座標特定部140は、「判別遮断軸無」であるので「状態継続」と判定し、前回の有効軸と同様に、遮断軸X2(34−37),Y2(25−27)を有効軸にする。そして、有効軸の中心座標(35.5,26)を有効座標とする。タッチ状態は、スキャン2の状態を継続する。
スキャン4では、遮断軸検出部120によって、新たに、Y軸方向の遮断軸(7−9)が検出される。判別遮断軸特定部130は、新たなY軸方向の遮断軸(7−9)にY1を割り当て、遮断軸Y1(7−9)を判別遮断軸とする。また、前回の遮断軸X2(34−36),Y2(25−27)も同様に検出・特定される。有効座標特定部140は、判別遮断軸がY軸方向の1つだけであるので、「片側タッチ」と判定し、有効軸は前回周期と同じにする。ここでは、前回スキャン時の有効軸であった遮断軸X2,Y2が有効軸に設定され有効座標(35,26)も継続される。タッチ状態は、1点ONに加え、Y軸方向の片側タッチが検出されたので、「ON(1点+Y軸片側タッチ)」が設定される。
スキャン5では、遮断軸検出部120によって、新たに、X軸方向の遮断軸(7−9)が検出される。判別遮断軸特定部130は、新たなX軸方向の遮断軸(7−9)にX1を割り当て、遮断軸X1(7−9)を判別遮断軸とする。また、前回の遮断軸X2(34−36),Y1(8−10),Y2(25−27)も同様に検出・特定される。有効座標特定部140は、判別遮断軸がX軸方向の1つだけであるので、「片側タッチ」と判定する。前回のタッチ状態には、「Y軸片側タッチ」が設定されているので、前回(スキャン4)の判別遮断軸と、今回(スキャン5)の判別遮断軸とを組み合わせ、遮断軸Y1(8−10)と、X1(7−9)とを有効軸と見なすことができるので、前の有効座標(35,26)をオフさせるイベントを発生させる。遮断軸情報の有効軸1103c及び有効座標1104cに格納する値は前回周期と同じとする。この場合、有効軸はX2(34−36),Y2(25−27)、有効座標は(35,26)となる。タッチ状態は、タッチ点が2点検出され、前のタッチ点はオフされるので、「OFF(2点)」としてタッチ状態1105cに登録する。
スキャン6では、スキャン5と同じ遮断軸が検出されるので、有効軸を遮断軸X1(7−9),Y1(8−10)とし、有効軸の中心座標(8,9)を有効座標とする。タッチ状態は、今回新たに設定された有効座標のオンイベントを発生させ、「ON(2点)」とする。特定された遮断軸、有効軸、有効座標及びタッチ状態は、各項目のスキャン6に対応する欄に登録される。
スキャン7では、スキャン6の状態が継続される。
スキャン8では、遮断軸X2,Y2が検出されなくなる。判別遮断軸特定部130は、前回スキャン時に有効軸であったX1(7−9),Y1(8−10)は検出するが、既検出であるので「判別遮断軸無」と判定する。有効座標特定部140は、「判別遮断軸無」であるので「状態継続」と判定し、前回スキャン時の有効軸と有効座標とを継続する。有効軸はそのままX1(7−9)とY1(8−10)が設定される。有効座標も前回スキャン時の値が継続される。遮断軸X2,Y2は、有効軸ではないので、タッチ状態のみが「ON(1点)」に変わる。
スキャン9では、遮断軸Y1が検出されなくなり、遮断軸X1(7−9)のみが検出される状態となる。判別遮断軸特定部130は、「判別遮断軸無」とする。有効座標特定部140は、「判別遮断軸無」であるので「状態継続」と判定し、有効軸を継続させる。ここで、前回の有効軸Y1は検出されないので、タッチ状態は、「ON(X軸片側タッチ)」になる。
スキャン10では、遮断軸が1つも検出されない状態となる。有効座標特定部140は、前回のタッチ状態は「ON(X軸片側タッチ)」であり、前回の有効軸X1も検出されないのでタッチ点はOFFされたと判定し、タッチ状態を「OFF」とする。
このような手順により、パターンCによるタッチパネル面210に袖、指の順にタッチされ、袖、指の順にタッチパネル面210から離される場合の有効座標が特定される。
4.パターンD
図18は、パターンD(2点順押しの第3例)のタッチパネル上の遮光物の動きを示した図である。パターンDは、利用者の袖がタッチされてから、利用者の指がタッチされるというパターンであるが、袖及び指の遮断軸の座標移動が大きい場合である。(D−1a)では、タッチパネル面210上に利用者の袖402がタッチされている。その後のスキャン周期の(D−1b)では、袖402に加え、指401が順押しされている。
図19は、パターンDの場合の座標の変化を示した図である。(D−2)はパターンDのX軸方向の遮断軸のスキャンごとの座標値、(D−3)はパターンDのY軸方向の遮断軸のスキャンごとの座標値を示している。
(D−2)パターンDのX軸方向では、遮断軸X2,X1の順に検出される。遮断軸X2は、スキャン2でX2(33−37)として検出される。さらに、スキャン3でX2(31−34)、スキャン4でX2(31−31)、スキャン5でX2(29−30)、スキャン6でX2(31−31)、スキャン7でX2(31−32)と、座標が大きく移動して検出された後、スキャン8で消える。遮断軸X1は、スキャン5でX1(7−9)として新たに検出される。さらに、スキャン6でX1(8−10)、スキャン7でX1(9−11)、スキャン8でX1(12−14)、スキャン9でX1(14−14)と、座標が大きく移動した状態で検出され、スキャン10で消える。
(D−3)パターンDのY軸方向では、遮断軸Y2,Y1の順に検出される。遮断軸Y2は、スキャン2でY2(24−26)として検出され、スキャン3からスキャン7では、Y2(25−27)と継続して検出される。そして、スキャン8で消える。遮断軸Y1は、スキャン4でY1(7−9)として新たに検出される。さらに、スキャン5からスキャン8では、Y1(8−10)として継続して検出され、スキャン9で消える。
図20は、パターンDの場合の遮断軸情報を示した図である。
スキャン1では、遮断軸は検出されず、タッチ状態も「null」である。
スキャン2では、遮断軸検出部120によって、X軸方向の遮断軸(33−37)と、Y軸方向の遮断軸(24−26)が検出される。これらの遮断軸は、判別遮断軸特定部130によって、遮断軸X2(33−37),Y2(24−26)と特定され、判別遮断軸となる。有効座標特定部140は、判別遮断軸がX軸方向とY軸方向それぞれに1ずつ検出されたので、「順押し」と判定し、判別遮断軸X2(33−37),Y2(24−26)を有効軸にする。そして、有効軸の中心座標を有効座標として算出する。算出はパターンAと同様にして、有効座標(35,25)が特定される。こうして特定された遮断軸X2,Y2は検出遮断軸1102d、有効軸X2,Y2は有効軸1103d、有効座標(35,25)は有効座標1104dのスキャン2に対応する欄に登録される。また、タッチ状態1105dには、「ON(1点)」が登録される。なお、以降のスキャン周期で特定された各項目の情報は、スキャン周期に対応する欄に登録されるとし、登録処理の説明は省く。
スキャン3では、遮断軸検出部120によって、X軸方向の遮断軸(31−34)と、Y軸方向の遮断軸(25−27)が検出される。判別遮断軸特定部130は、これらを遮断軸X2(31−34)、遮断軸Y2(25−27)と特定し、「判別遮断軸無」とする。有効座標特定部140は、「判別遮断軸無」であるので「状態継続」と判定し、前回の有効軸と同様に、遮断軸X2(31−34),Y2(25−27)を有効軸にする。そして、有効軸の中心座標(32.5,26)を有効座標とする。タッチ状態は、スキャン2の状態を継続する。
スキャン4では、遮断軸検出部120によって、新たに、Y軸方向の遮断軸(7−9)が検出される。判別遮断軸特定部130は、新たなY軸方向の遮断軸(7−9)にY1を割り当て、遮断軸Y1(7−9)を判別遮断軸とする。また、既検出の遮断軸X2(31−31),Y2(25−27)も同様に検出・特定される。有効座標特定部140は、判別遮断軸がY軸方向の1つだけであるので、「片側タッチ」と判定し、有効軸は前回周期と同じにする。ここでは、遮断軸X2(31−31),Y2(25−27)が有効軸になる。そして、有効軸の中心座標(31,26)が有効座標となる。タッチ状態は、1点ONに加え、Y軸方向の片側タッチが検出されたので、「ON(1点+Y軸片側タッチ)」が設定される。
スキャン5では、遮断軸検出部120によって、新たに、X軸方向の遮断軸(7−9)が検出される。判別遮断軸特定部130は、新たなX軸方向の遮断軸(7−9)にX1を割り当て、遮断軸X1(7−9)を判別遮断軸とする。また、既検出の遮断軸X2(29−30),Y1(8−10),Y2(25−27)も検出・特定される。有効座標特定部140は、判別遮断軸がX軸方向の1つだけであるので、「片側タッチ」と判定する。前回のタッチ状態には、「Y軸片側タッチ」が設定されているので、前回(スキャン4)の判別遮断軸と、今回(スキャン5)の判別遮断軸とを組み合わせ、遮断軸Y1(8−10)と、X1(7−9)とを有効軸とすることができる。このスキャンでは、前の有効座標(31,26)をオフさせるイベントを発生させる。また、有効軸は前回周期と同じとする。この場合、有効軸はX2(29−30),Y2(25−27)、有効座標は(29.5,26)となる。タッチ状態は、タッチ点が2点検出され、前のタッチ点はオフされるので、「OFF(2点)」としてタッチ状態1105dに登録する。
なお、スキャン5のX2(29−30)と、スキャン4のX2(31−31)とでは、重なる範囲がない。ここではマージンαを1とし、受光素子1個分まではこの遮光物が移動していると見なす。図の例では、軸412に接するX2(31−31)と、X2(29−30)とは同属性と判定する。
スキャン6では、スキャン5と同じ遮断軸が検出され、新たな遮断軸は検出されない。判別遮断軸特定部130は、「判別遮断軸無」を設定する。有効座標特定部140は、判別遮断軸がないので「状態継続」と判定し、前回スキャン時の判別遮断軸X1(8−10),Y1(8−10)を有効軸とする。そして、有効軸の中心座標(9,9)を有効座標とする。タッチ状態は、今回新たに設定された有効座標のオンイベントを発生させ、「ON(2点)」とする。
スキャン7では、新たな遮断軸は検出されないので、「判別遮断軸無」とされ、有効軸は継続される。ここでは、遮断軸X1(9−11),Y1(8−10)が有効軸になる。また、有効軸の中心座標(10,9)が有効座標になる。そして、タッチ状態は「ON(2点)」が継続される。
スキャン8では、遮断軸X2,Y2が検出されなくなる。判別遮断軸特定部130は、遮断軸X1(12−14),Y1(8−10)は検出するが、既検出であるので、「判別遮断軸無」とする。有効座標特定部140は、「判別遮断軸無」であるので「状態継続」と判定し、前回スキャン時の有効軸及び有効座標を継続させる。ここでは、有効軸として、前回スキャン時と同様に、遮断軸X1(12−14)とY1(8−10)が設定される。有効座標も前回と同じに算出される。遮断軸X2,Y2は、有効軸ではないので、タッチ状態のみが「ON(1点)」に変わる。なお、スキャン7のX1(9−11)と、スキャン8のX1(12−14)とでは、重なる範囲がない。ここではマージンαを1とし、受光素子1個分まではこの遮光物が移動していると見なす。図の例では、軸411に接するX1(9−11)と、X1(12−14)とは同属性と判定する。
スキャン9では、遮断軸Y1が検出されなくなる。判別遮断軸特定部130は、遮断軸X1(14−14)のみを検出し、「判別遮断軸無」とする。有効座標特定部140は、「判別遮断軸無」であるので「状態継続」と判定し、有効軸を継続させる。ここで、前回の有効軸Y1は検出されないので、タッチ状態は、「ON(X軸片側タッチ)」になる。
スキャン10では、遮断軸が1つも検出されない状態となる。有効座標特定部140は、前回のタッチ状態は「ON(X軸片側タッチ)」であり、前回の有効軸X1も検出されないのでタッチ点はOFFされたと判定し、タッチ状態を「OFF」とする。
このような手順により、パターンDによる、タッチパネル面210に利用者の袖がタッチされてから、利用者の指がタッチされるというパターンの有効座標が特定される。
5.パターンE
パターンEは、新たなタッチ点が、既に検出されたタッチ点の同軸上にタッチされた例である。
図21は、パターンE(同軸タッチ)のタッチパネル上の遮光物の動きを示した図である。パターンEは、利用者の袖がタッチされてから、利用者の指が袖と同軸上にタッチされるというパターンである。(E−1a)では、タッチパネル面210上に利用者の袖402がタッチされている。その後のスキャン周期の(E−1b)では、袖402のX軸方向の同軸上に、指401が順押しされている。
図22は、パターンEの場合の座標の変化を示した図である。(E−2)はパターンEのX軸方向の遮断軸のスキャンごとの座標値、(E−3)はパターンEのY軸方向の遮断軸のスキャンごとの座標値を示している。
(E−2)パターンEのX軸方向では、遮断軸X1のみが検出される。遮断軸X1は、スキャン2でX1(33−37)、スキャン3でX1(31−34)、スキャン4でX1(31−34)、スキャン5でX1(29−30)、スキャン6でX1(31−31)、スキャン7でX1(31−32)と、座標が大きく移動した状態で検出される。続く、スキャン8とスキャン9では、X1(31−32)と継続して検出され、スキャン10で消える。一方、後からタッチされた指401のX軸方向の遮断軸は検出されない。
(E−3)パターンEのY軸方向では、遮断軸Y2,Y1の順に検出される。遮断軸Y2は、スキャン2でY2(24−26)として検出される。スキャン3からスキャン9では、Y2(25−27)が継続して検出され、スキャン10で消える。一方、遮断軸Y1は、スキャン3でY1(7−8)、スキャン4でY1(8−9)と検出された後、スキャン5及びスキャン6と検出されない。スキャン7で再び遮断軸Y1(8−9)が検出され、スキャン8と継続して検出された後、スキャン9で消える。
図23は、パターンEの場合の遮断軸情報を示した図である。
スキャン1では、遮断軸は検出されず、タッチ状態も「null」である。
スキャン2では、遮断軸検出部120によって、X軸方向の遮断軸(33−37)と、Y軸方向の遮断軸(24−26)が検出され、判別遮断軸特定部130によって、遮断軸X1(33−37),Y2(24−26)と特定され、判別遮断軸となる。有効座標特定部140は、判別遮断軸がX軸方向とY軸方向それぞれに1ずつ検出されたので、「順押し」と判定し、判別遮断軸X1(33−37),Y2(24−26)を有効軸にする。そして、有効軸の中心座標を算出する。算出はパターンAと同様にして、有効座標(35,25)が特定される。こうして特定された遮断軸X1,Y2は検出遮断軸1102e、有効軸X1,Y2は有効軸1103e、有効座標(35,25)は有効座標1104eのスキャン2に対応する欄に登録される。また、タッチ状態1105eには、「ON(1点)」が登録される。なお、以降のスキャン周期で特定された各項目の情報は、スキャン周期に対応する欄に登録されるとし、登録処理の説明は省く。
スキャン3では、遮断軸検出部120によって、新たに、Y軸方向の遮断軸(7−8)が検出される。判別遮断軸特定部130は、新たなY軸方向の遮断軸(7−8)にY1を割り当て、遮断軸Y1(7−8)を判別遮断軸とする。また、前回の遮断軸X1(31−34),Y2(25−27)も同様に検出・特定する。有効座標特定部140は、判別遮断軸がY軸方向の1つだけであるので、有効軸は、前回と同様に遮断軸X1(31−34),Y2(25−27)とする。そして、有効軸の中心座標(32.5,26)が有効座標となる。タッチ状態は、1点ONに加え、X軸方向の同軸上のタッチが検出されたので、「ON(1点+X軸同軸タッチ)」が設定される。しかし、この時点では、X軸同軸タッチではなく、Y軸片側タッチである可能性もある。
スキャン4では、前回と同様に遮断軸X1(31−34),Y1(8−9),Y2(25−27)が検出・特定される。新たな遮断軸は検出されないため、判別遮断軸特定部130は、「判別遮断軸無」を設定する。有効座標特定部140では、今回スキャンにおいても片側タッチが解消されないので、X軸同軸タッチであると確定し、前回周期の有効座標をタッチアップさせる。有効軸は、前回スキャン時の有効軸及び有効座標を継続させる。ここでは、遮断軸X1(31−34),Y2(25−27)を有効軸とし、有効座標(32.5,26)を得る。
スキャン5では、遮断軸Y1が検出されない。このため、有効軸及び有効座標を特定することができない。有効軸、有効座標には「null」が設定される。スキャン6も同様である。
スキャン7では、遮断軸検出部120によって、再度遮断軸Y1(8−9)が検出され、判別遮断軸に設定される。遮断軸X1(31−32),Y2(25−27)も同様に検出される。タッチ状態は、「ON(1点+X軸同軸タッチ)」とする。まだ、Y軸片側タッチの可能性も有り、X軸同軸タッチであるかどうかは判別できないので、有効軸及び有効座標は設定しない。
スキャン8では、遮断軸検出部120によって検出された遮断軸は、判別遮断軸特定部130によって遮断軸X1(31−32),Y1(8−9),Y2(25−27)と特定される。また、判別遮断軸は検出されない。有効座標特定部140は、Y軸片側タッチが継続されたので、X軸同軸タッチと判定する。そこで、前の周期の判別遮断軸Y1(8−9)と、今回検出されたX1(31−32)を有効軸とし、有効軸の中心座標(31.5,8.5)を有効座標とする。タッチ状態は、「ON(1点+X軸同軸タッチ)」を設定する。
スキャン9では、遮断軸検出部120によって、遮断軸X1(31−32),Y2(25−27)が検出され、Y1は検出されない。そこで、前回スキャン周期の有効座標をタッチアップし、「OFF」にする。また、タッチ状態は、X軸同軸タッチが解除され、「OFF(1点)」となる。有効軸は、前回スキャン周期のX1(31−32),Y1(8−9)、有効座標(31.5,8.5)が継続される。
6.パターンF
図24は、パターンF(同時押しタッチ)のタッチパネル上の遮光物の動きを示した図である。パターンFは、利用者の袖と指が同時にタッチ、かつ、袖と指とが同軸上にあるというパターンである。(F−1)では、タッチパネル面210上に利用者の袖402と、指401とがタッチされている。
図25は、パターンFの場合の座標の変化を示した図である。(F−2)はパターンFのX軸方向の遮断軸のスキャンごとの座標値、(F−3)はパターンFのY軸方向の遮断軸のスキャンごとの座標値を示している。
(F−2)パターンFのX軸方向では、遮断軸X1のみが検出される。遮断軸X1は、スキャン2でX1(33−37)、スキャン3でX1(31−34)、スキャン4でX1(31−31)、スキャン5でX1(29−30)、スキャン6でX1(31−31)、スキャン7でX1(31−32)と、座標が大きく移動した状態で検出される。続く、スキャン8とスキャン9では、X1(31−32)と継続して検出され、スキャン10で消える。一方、後からタッチされた指401のX軸方向の遮断軸は検出されない。
(F−3)パターンFのY軸方向では、スキャン2で遮断軸Y1(7−8)と、遮断軸Y2(24−26)とが同時に検出されている。遮断軸Y2は、スキャン3からスキャン9でY2(25−27)が継続して検出され、スキャン10で消える。一方、遮断軸Y1は、スキャン3でY1(7−8)、スキャン4でY1(8−9)と検出された後、スキャン5及びスキャン6と検出されない。スキャン7で再び遮断軸Y1(8−9)が検出され、スキャン8と継続して検出された後、スキャン9で消える。
図26は、パターンFの場合の遮断軸情報を示した図である。
スキャン1では、遮断軸は検出されず、タッチ状態も「null」である。
スキャン2では、遮断軸検出部120によって、X軸方向の遮断軸(33−37)と、Y軸方向の遮断軸(7−8),(24−26)が検出される。判別遮断軸特定部130によって、遮断軸X1(33−37),Y1(7−8),Y2(24−26)と特定され、判別遮断軸となる。有効座標特定部140は、判別遮断軸がY軸方向に複数検出されたので、多点エラーとされ、有効軸及び有効座標は特定されない。タッチ状態は、「ON(1点+X軸同軸タッチ)」が設定される。特定された遮断軸は検出遮断軸1102fのスキャン2に対応する欄に登録される。また、有効軸が特定されたときは有効軸1103f、有効座標が特定されたときは有効座標1104fの該当するスキャンに対応する欄に登録される。なお、以降のスキャン周期で特定された各項目の情報は、スキャン周期に対応する欄に登録されるとし、登録処理の説明は省く。
スキャン3、スキャン4も同様の状態が継続される。
スキャン5では、遮断軸検出部120によって、遮断軸X1(29−30),Y2(25−27)の遮断軸が検出され、Y1は検出されない。タッチパネル面210の状態は、1点タッチの状態に戻るが、ここでは検出処理を行わない。したがって、有効軸及び有効座標とも「null」、タッチ状態は「ON」を継続する。スキャン6も同様である。
スキャン7では、遮断軸検出部120によって、再度遮断軸Y1(8−9)が検出され、判別遮断軸に設定される。遮断軸X1(31−32),Y2(25−27)も同様に検出される。タッチ状態は、「ON(1点+X軸同軸タッチ)」とする。まだ、Y軸片側タッチの可能性も有り、X軸同軸タッチであるかどうかは判別できないので、有効軸及び有効座標は設定しない。
スキャン8では、遮断軸検出部120によって、遮断軸X1(31−32),Y1(8−9),Y2(25−27)の遮断軸が検出される。Y軸片側タッチが継続されたので、X軸同軸タッチと判定される。そこで、前の周期の判別遮断軸Y1(8−9)と、今回検出されたX1(31−32)を有効軸とし、有効軸の中心座標(31.5,8.5)を有効座標とする。タッチ状態は、「ON(1点+X軸同軸タッチ)」を設定する。特定された遮断軸、有効軸、有効座標及びタッチ状態は、各項目のスキャン8に対応する欄に登録される。
スキャン9では、遮断軸検出部120によって、遮断軸X1(31−32),Y2(25−27)の遮断軸が検出され、Y1は検出されない。そこで、前回スキャン周期の有効座標をタッチアップし、「OFF」にする。また、タッチ状態は、X軸同軸タッチが解除され、「OFF」となる。有効軸は、前回スキャン周期のX1(31−32),Y1(8−9)、有効座標(31.5,8.5)が継続される。
パターンGからパターンJは、3点入力の例である。
7.パターンG
図27は、パターンG(3点入力の第1例)のタッチパネル上の遮光物の動きを示した図である。パターンGは、タッチパネル面210上に物が置かれている状態で、利用者の袖、指と順にタッチされるというパターンである。(G−1a)では、タッチパネル面210上に、物403が置かれている。(G−1b)では、タッチパネル面210上に物403が置かれた状態で、利用者の袖402がタッチされている。その後のスキャン周期の(G−1c)では、物403が置かれ、袖402がタッチされた状態で、指401が順押しされている。
図28は、パターンGの場合の座標の変化を示した図である。(G−2)はパターンGのX軸方向の遮断軸のスキャンごとの座標値、(G−3)はパターンGのY軸方向の遮断軸のスキャンごとの座標値を示している。
(G−2)パターンGのX軸方向では、遮断軸X3,X2,X1の順に検出される。最初に、スキャン2で遮断軸X3(44−45)が検出される。この遮断軸X3は、スキャン3からスキャン9まで、X3(44−45)として継続して検出された後、スキャン10で消える。遮断軸X2は、スキャン3でX2(31−34)として検出される。その後、スキャン4でX2(31−31)、スキャン5でX2(29−30)、スキャン6でX2(31−31)、スキャン7でX2(31−32)と、座標が大きく移動した状態で検出され、スキャン8で消える。遮断軸X1は、スキャン5でX1(7−9)として検出される。その後、スキャン6でX1(8−10)、スキャン7でX1(9−11)、スキャン8でX1(12−14)、スキャン9でX1(14−14)と、座標が大きく移動した状態で検出され、スキャン10で消える。
(G−3)パターンGのY軸方向では、遮断軸Y1,Y3,Y2の順に検出される。遮断軸Y1は、スキャン2からスキャン9までY1(2−3)として検出され、スキャン10で消える。遮断軸Y2は、スキャン4でY2(7−9)、スキャン5からスキャン8でY2(8−10)と、検出された後、スキャン9で消える。遮断軸Y3は、スキャン3でY3(35−37)として検出され、スキャン7まで継続して検出された後、スキャン8で消える。
図29は、パターンGの場合の遮断軸情報を示した図である。
スキャン1では、遮断軸は検出されず、タッチ状態も「null」である。
スキャン2では、遮断軸検出部120によって、X軸方向の遮断軸(44−45)と、Y軸方向の遮断軸(2−3)が検出される。そして、判別遮断軸特定部130によって遮断軸X3(44−45),Y1(2−3)と特定され、判別遮断軸に設定される。有効座標特定部140は、判別遮断軸が、X軸方向とY軸方向にそれぞれ1つずつあるので、「順押し」と判定し、X3(44−45)及びY1(2−3)を有効軸とする。そして、有効軸の中心座標(44.5,2.5)を有効座標に設定する。タッチ状態は、「ON(1点)」が設定される。こうして特定された遮断軸X3,Y1は検出遮断軸1102g、有効軸X3,Y1は有効軸1103g、有効座標(44.5,2.5)は有効座標1104gのスキャン2に対応する欄に登録される。また、タッチ状態1105gには、「ON(1点)」が登録される。なお、以降のスキャン周期で特定された各項目の情報は、スキャン周期に対応する欄に登録されるとし、登録処理の説明は省く。
スキャン3では、遮断軸検出部120によって、X軸方向の遮断軸(31−34)と、Y軸方向の遮断軸(35−37)が新たに検出される。X3(44−45)及びY1(2−3)も継続して検出される。判別遮断軸特定部130は、新たに検出された遮断軸をX2(31−41)と、Y3(35−37)と名付け、判別遮断軸に特定する。判別遮断軸が、X軸方向とY軸方向にそれぞれ1つずつあるので、「順押し」と判定し、前回スキャン周期の有効座標のオフイベントを発生させる。有効軸は前回スキャンと同じく遮断軸X3(44−45),Y1(2−3)とし、有効座標(44.5,2.5)を継続させる。タッチ状態は、「OFF」になる。
スキャン4では、遮断軸検出部120によって、Y軸方向の遮断軸(7−9)が新たに検出される。判別遮断軸特定部130で遮断軸Y2(7−9)と特定され、判別遮断軸に設定される。有効座標特定部140は、判別遮断軸がY軸方向のみであるので、Y軸片側タッチとする。しかし、この時点では、X軸同軸タッチの可能性があるので、有効軸と有効座標は、設定しない。
スキャン5では、遮断軸検出部120によって、X軸方向の遮断軸(7−9)が新たに検出される。判別遮断軸特定部130は、新たに検出された遮断軸をX1(7−9)と名付け、判別遮断軸に特定する。また、遮断軸X2(29−30),X3(44−45),Y1(2−3),Y2(8−10),Y3(35−37)も継続して検出・特定される。有効座標特定部140では、判別遮断軸はX軸方向のみであるので、片側タッチと判定する。前回スキャンで判別遮断軸Y2が検出されているので、これと組み合わせ、有効軸X1(7−9),Y2(8−10)を決定する。また、有効軸の中心座標(8,9)を算出し、有効座標とする。さらに、タッチ状態を「ON(3点)」に設定する。
スキャン6では、遮断軸検出部120で検出された遮断軸は、判別遮断軸特定部130によって、遮断軸X1(8−10),X2(31−31),X3(44−45),Y1(2−3),Y2(8−10),Y3(35−37)と特定される。判別遮断軸は、検出されない。有効座標特定部140では、状態継続と判定し、前回スキャンで有効軸とした遮断軸X1(8−10),Y2(8−10)を有効軸とする。そして、有効軸の中心座標(9,9)を有効座標とする。タッチ状態は、「ON(3点)」で変化ない。
スキャン7では、遮断軸検出部120で検出された遮断軸は、判別遮断軸特定部130で、遮断軸X1(9−11),X2(31−32),X3(44−45),Y1(2−3),Y2(8−10),Y3(35−37)と特定される。判別遮断軸は、検出されない。有効座標特定部140では、状態継続と判定し、前回スキャンで有効軸に特定したX1(9−11),Y2(8−10)を継続して有効軸とする。そして、有効軸の中心座標(10,9)を有効座標とする。タッチ状態は、「ON(3点)」で変化ない。
スキャン8では、遮断軸検出部120で検出された遮断軸は、判別遮断軸特定部130によって、遮断軸X1(12−14),X3(44−45),Y1(2−3),Y2(8−10)と特定される。判別遮断軸はない。有効座標特定部140では、状態継続と判定し、前回スキャン周期で有効軸としたX1(12−14),Y2(8−10)を有効軸とする。そして、有効軸の中心座標(13,9)を有効座標とする。このとき、遮断軸X2,Y3は検出されないので、現在のタッチ点数は2になる。したがって、タッチ状態は、「ON(2点)」になる。
スキャン9では、遮断軸検出部120で検出された遮断軸は、判別遮断軸特定部130で、遮断軸X1(14−14),X3(44−45),Y1(2−3)と特定される。判別遮断軸はない。有効座標特定部140では、状態継続と判定し、前回スキャンで有効軸としたX1(14−14),Y2(8−10)を有効軸とする。そして、有効軸の中心座標(14,9)を有効座標とする。タッチ状態は「ON(1点+X軸片側タッチ)」が設定される。
スキャン10では、遮断軸は検出されず、オフイベントを発生させ、タッチ状態を「OFF」にする。
8.パターンH
図30は、パターンH(3点入力の第2例)のタッチパネル上の遮光物の動きを示した図である。パターンHは、タッチパネル面210に利用者の袖1、袖2、指と順にタッチされるというパターンである。(H−1a)では、タッチパネル面210上に、袖402がタッチされている。(H−1b)では、袖402がタッチされた状態で、さらに利用者の別の袖404がタッチされている。その後のスキャン周期の(H−1c)では、袖402及び袖404に加え、指401が順押しされている。
図31は、パターンHの場合の座標の変化を示した図である。(H−2)はパターンHのX軸方向の遮断軸のスキャンごとの座標値、(H−3)はパターンHのY軸方向の遮断軸のスキャンごとの座標値を示している。
(H−2)パターンHのX軸方向では、遮断軸X3,X2,X1の順に検出される。最初に、スキャン2で遮断軸X3(36−37)が検出される。この遮断軸X3は、スキャン3でX3(36−36)、スキャン4でX3(36−36)、スキャン5でX3(33−35)、スキャン6でX3(34−35)、スキャン7でX3(31−35)と、座標が大きく移動した状態で検出され、スキャン8で消える。遮断軸X2は、スキャン3でX2(31−34)として検出される。その後、スキャン4でX2(31−31)、スキャン5でX2(29−30)、スキャン6でX2(31−31)と検出され、スキャン7では遮断軸X3と重なってX2(31−35)と、座標が大きく移動した状態で検出され、スキャン8で消える。遮断軸X1は、スキャン5でX1(7−9)として検出される。その後、スキャン6でX1(8−10)、スキャン7でX1(9−11)、スキャン8でX1(12−14)、スキャン9でX1(14−14)と、座標が大きく移動した状態で検出され、スキャン10で消える。
(H−3)パターンHのY軸方向では、遮断軸Y3,Y2,Y1の順に検出される。遮断軸Y3は、スキャン2でY3(26−27)として検出される。その後、スキャン3でY3(25−27)、スキャン4でY3(24−26)、スキャン5でY3(23−25)、スキャン6でY3(23−24)、スキャン7でY3(21−24)と検出された後、スキャン8で消える。遮断軸Y2は、スキャン3でY2(20−21)として検出される。その後、スキャン4でY2(19−20)、スキャン5でY2(19−20)、スキャン6でY2(20−21)と検出され、スキャン7では遮断軸Y3と重なってY2(21−24)と、座標が大きく移動した状態で検出され、スキャン8で消える。遮断軸Y1は、スキャン4でY1(7−9)として検出され、スキャン5からスキャン8までY1(8−10)として継続して検出された後、スキャン9で消える。
図32は、パターンHの場合の遮断軸情報を示した図である。
スキャン1では、遮断軸は検出されず、タッチ状態も「null」である。
スキャン2では、遮断軸検出部120によって、X軸方向の遮断軸(36−37)と、Y軸方向の遮断軸(26−27)が検出される。そして、判別遮断軸特定部130によって遮断軸X3(36−37),Y3(26−27)と特定され、判別遮断軸に設定される。有効座標特定部140は、判別遮断軸が、X軸方向とY軸方向にそれぞれ1つずつあるので、「順押し」と判定し、X3(36−37)及びY3(26−27)を有効軸とする。有効軸の中心座標(36.5,26.5)を有効座標に設定する。タッチ状態は、「ON(1点)」が設定される。こうして特定された遮断軸X3,Y3は検出遮断軸1102h、有効軸X3,Y3は有効軸1103h、有効座標(36.5,26.5)は有効座標1104hのスキャン2に対応する欄に登録される。また、タッチ状態1105hには、「ON(1点)」が登録される。なお、以降のスキャン周期で特定された各項目の情報は、スキャン周期に対応する欄に登録されるとし、登録処理の説明は省く。
スキャン3では、遮断軸検出部120によって、X軸方向の遮断軸(31−34)と、Y軸方向の遮断軸(20−21)が新たに検出される。判別遮断軸特定部130は、新たに検出されたY軸方向の遮断軸を、Y2(20−21)と名付ける。しかし、X軸方向については、属性を特定することができない。マージンαを1とすると、前回スキャンのX3(36−37)から、座標範囲が(35−38)であれば、検出された遮断軸がX3と同属性であると判定することができる。しかし、図の例では、X軸方向で検出される遮断軸(31−34),(36−36)のいずれもX3と同属性となる。このため、遮断軸X3の遮断軸幅を特定することはできない。そこで、有効軸及び有効座標は、前回スキャンのものとし、有効座標をオフする。有効軸及び有効座標は、前回スキャンのX3(36−37),Y3(26−27)、有効座標(36.5,26.5)を継続させる。タッチ状態は、「OFF(2点)」になる。
スキャン4では、遮断軸検出部120によって、Y軸方向の遮断軸(7−9)が新たに検出される。また、X軸方向の遮断軸(31−31),(36−36)も検出される。判別遮断軸特定部130では、Y軸方向の遮断軸をY2(7−9)と特定し、判別遮断軸に設定する。スキャン3のときと同様に、X軸方向は、遮断軸を特定することはできない。また、Y軸方向も同様である。したがって、有効軸と有効座標は設定されない。タッチ状態は、「null(2点+Y軸片側タッチ)」が設定される。
スキャン5では、遮断軸検出部120によって、X軸方向の遮断軸(7−9)が新たに検出される。また、X軸方向の遮断軸(29−30),(33−35)も検出される。判別遮断軸特定部130では、X軸方向の遮断軸をそれぞれX1(7−9),X2(29−30),X3(33−35)と設定する。同様に、Y軸方向は、Y1(8−10),Y2(19−20),Y3(23−25)が特定される。そして、新たに検出された遮断軸X1(7−9)が判別遮断軸に選択される。有効座標特定部140は、判別遮断軸がX軸方向に1つであるので「片側タッチ」と判定する。前回スキャンで、Y軸片側タッチが検出されているので、今回スキャンの判別遮断軸X1(7−9)と、前回スキャンの判別遮断軸Y1(8−10)とを有効軸にする。そして、有効軸の中心座標(8,9)を有効座標とする。また、タッチ状態は、「ON(3点)」になる。
スキャン6では、判別遮断軸特定部130によって既検出の遮断軸X1(8−10),Y1(8−10)が特定される。判別遮断軸は検出されない。なお、遮断軸X2,X3,Y2,Y3は特定することができない。有効座標特定部140は、判別遮断軸が検出されないので、「状態継続」と判定する。そして、前回スキャンでも有効軸であった遮断軸X1(8−10),Y1(8−10)を有効軸とする。また、有効軸の中心座標(9,9)を有効座標とする。タッチ状態は、「ON(3点)」が継続される。
スキャン7もスキャン6と同様に、判別遮断軸特定部130によって既検出の遮断軸X1(9−11),Y1(8−10)のみが特定される。そして、有効座標特定部140では、「状態継続」と判定され、前回スキャンと同じ有効軸X1(9−11),Y1(8−10)が設定される。また、有効軸の中心座標(10,9)が有効座標になる。タッチ状態は、「ON(3点)」が継続される。
スキャン8では、遮断軸X2,X3,Y2,Y3は検出されない。しかし、判別遮断軸特定部130によって、前回スキャンにおいて有効軸であった既検出の遮断軸X1(12−14),Y1(8−10)は特定される。有効座標特定部140では、「状態継続」と判定され、前回スキャンと同じ有効軸X1(12−14),Y1(8−10)が設定される。また、有効軸の中心座標(13,9)が有効座標になる。タッチ状態は、「ON(1点)」になる。
スキャン9では、さらに、遮断軸Y1が検出されなくなる。判別遮断軸特定部130によって、遮断軸X1(14−14)のみが特定される。有効座標特定部140は、「状態継続」の処理を行う。遮断軸Y1が検出されないのでX軸片側タッチと判断し、有効軸及び有効座標は前回スキャンの値を用いる。
スキャン10では、すべての遮断軸が検出されなくなったので、オフイベントを発生させ、タッチ状態を「OFF」にする。
以上の処理手順が実行されることにより、タッチパネル面210上に袖1、袖2、指と順にタッチされる場合の有効座標が検出できる。
9.パターンI
図33は、パターンI(同時押し+3点入力)のタッチパネル上の遮光物の動きを示した図である。パターンIは、利用者の2つの袖が同時にタッチされ、続いて指がタッチされるというパターンである。(I−1a)では、タッチパネル面210上に、袖402,404が同時にタッチされている。(I−1b)では、タッチパネル面210上に袖402,404に加え、指401が順押しされている。
図34は、パターンIの場合の座標の変化を示した図である。(I−2)はパターンIのX軸方向の遮断軸のスキャンごとの座標値、(I−3)はパターンIのY軸方向の遮断軸のスキャンごとの座標値を示している。
(I−2)パターンIのX軸方向では、遮断軸X3,X2,X1が検出される。最初に、スキャン3で遮断軸X2(31−34)と、遮断軸X3(37−38)とが同時に検出される。このうち、遮断軸X2は、スキャン4でX2(31−31)、スキャン5でX2(29−30)、スキャン6でX2(31−31)、スキャン7からスキャン9でX2(31−32)と検出され、スキャン10で消える。遮断軸X3は、スキャン4とスキャン5でX3(36−37)、スキャン6でX3(36−38)、スキャン7からスキャン9でX3(35−36)と検出された後、スキャン10で消える。遮断軸X1は、スキャン5でX1(7−9)として検出される。その後、スキャン6でX1(8−10)、スキャン7でX1(9−11)、スキャン8でX1(12−14)、スキャン9でX1(14−14)と、座標が大きく移動した状態で検出され、スキャン10で消える。
(I−3)パターンIのY軸方向では、遮断軸Y1,Y2,Y3が検出される。最初に、スキャン2で遮断軸Y2(21−22)と、遮断軸Y3(25−27)とが検出される。その後、遮断軸Y2は、スキャン3からスキャン9まで継続してY2(21−22)として検出された後、スキャン10で消える。同様に、遮断軸Y3は、スキャン3からスキャン9まで継続してY3(25−27)として検出された後、スキャン10で消える。遮断軸Y1は、スキャン4でY1(7−9)として検出され、スキャン5からスキャン8まで継続してY1(8−10)として検出された後、スキャン9で消える。
図35は、パターンIの場合の遮断軸情報を示した図である。
スキャン1では、遮断軸は検出されず、タッチ状態も「null」である。
スキャン2では、遮断軸検出部120によって、Y軸方向の遮断軸(21−22),(25−27)が検出される。そして、判別遮断軸特定部130によって遮断軸Y2(21−22),Y3(25−27)と特定され、判別遮断軸に設定される。有効座標特定部140は、判別遮断軸が、Y軸方向に複数あるので、「同時押し」と判定し、多点エラーと判定する。タッチ状態は、「ON(Y軸2点)」が設定される。こうして特定された遮断軸Y2,Y3は検出遮断軸1102iのスキャン2に対応する欄に登録される。また、タッチ状態1105iには、「ON(Y軸2点)」が登録される。なお、以降のスキャン周期で特定された各項目の情報は、スキャン周期に対応する欄に登録されるとし、登録処理の説明は省く。
スキャン3では、遮断軸検出部120によって、X軸方向の遮断軸(31−34),(37−38)が新たに検出される。判別遮断軸特定部130によって、新たに検出されたX軸方向の遮断軸は、X2(31−34),X3(37−38)と特定され、判別遮断軸に設定される。有効座標特定部140は、判別遮断軸が、X軸方向に複数あるので、「同時押し」と判定し、多点エラーと判定する。タッチ状態は、「ON(2点)」になる。
スキャン4では、遮断軸検出部120によって、Y軸方向の遮断軸(7−9)が新たに検出される。判別遮断軸特定部130では、Y軸方向の遮断軸をY1(7−9)と特定し、判別遮断軸に設定する。なお、既検出の遮断軸X2(31−31),X3(36−37),Y2(21−22),Y3(25−27)も特定される。有効座標特定部140は、判別遮断軸が遮断軸Y1(7−9)のみであるので、「片側タッチ」と判定する。前回スキャンでは有効軸及び有効座標は設定されていないので、今回スキャンでも設定されない。タッチ状態は、「ON(2点+Y軸片側タッチ)」が設定される。
スキャン5では、遮断軸検出部120によって、X軸方向の遮断軸(7−9)が新たに検出される。判別遮断軸特定部130では、X軸方向の遮断軸をX1(7−9)とし、判別遮断軸に設定する。また、既検出のX2(29−30),X3(36−37),Y1(8−10),Y2(21−22),Y3(25−27)も特定される。有効座標特定部140は、判別遮断軸がX軸方向に1つであるので「片側タッチ」と判定する。前回スキャンで、Y軸片側タッチが検出されているので、今回スキャンの判別遮断軸X1(7−9)と、前回スキャンの判別遮断軸Y1(8−10)とを有効軸にする。そして、有効軸の中心座標(8,9)を有効座標とする。また、タッチ状態は、「ON(3点)」になる。
スキャン6では、判別遮断軸特定部130によって既検出の遮断軸X1(8−10),X2(31−31),X3(36−38),Y1(8−10),Y2(21−22),Y3(25−27)が特定される。判別遮断軸は検出されない。有効座標特定部140は、判別遮断軸が検出されないので、「状態継続」と判定する。そして、前回スキャンでも有効軸であった遮断軸X1(8−10),Y1(8−10)を有効軸とする。また、有効軸の中心座標(9,9)を有効座標とする。タッチ状態は、「ON(3点)」が継続される。
スキャン7もスキャン6と同様に、判別遮断軸特定部130によって既検出の遮断軸X1(9−11),X2(31−32),X3(35−36),Y1(8−10),Y2(21−22),Y3(25−27)が特定される。判別遮断軸は検出されない。そして、有効座標特定部140では、「状態継続」と判定され、前回スキャンと同じ有効軸X1(9−11),Y1(8−10)が設定される。また、有効軸の中心座標(10,9)が有効座標になる。タッチ状態は、「ON(3点)」が継続される。
スキャン8もスキャン7と同様に、判別遮断軸特定部130によって、既検出の遮断軸X1(12−14),X2(31−32),X3(35−36),Y1(8−10),Y2(21−22),Y3(25−27)が特定される。判別遮断軸は検出されない。有効座標特定部140では、「状態継続」と判定され、前回スキャンと同じ有効軸X1(12−14),Y1(8−10)が設定される。また、有効軸の中心座標(13,9)が有効座標になる。タッチ状態は、「ON(3点)」を継続する。
スキャン9では、遮断軸Y1が検出されなくなる。判別遮断軸特定部130によって、既検出の遮断軸X1(14−14),X2(31−32),X3(35−36),Y2(21−22),Y3(25−27)が特定される。有効座標特定部140は、「状態継続」の処理を行う。ここでは、遮断軸Y1が検出されないのでX軸片側タッチと判断し、有効軸及び有効座標は前回スキャンの値を用いる。タッチ状態は、「ON」を継続する。
スキャン10では、すべての遮断軸が検出されなくなったので、オフイベントを発生させ、タッチ状態を「OFF」にする。
10.パターンJ
図36は、パターンJ(3点入力で移動座標大)のタッチパネル上の遮光物の動きを示した図である。パターンIの状態で、各遮断軸の座標の移動量が大きい場合である。(J−1a)では、タッチパネル面210上に、袖402,404が同時にタッチされている。(J−1b)では、タッチパネル面210上に袖402,404に加え、指401が順押しされている。
図37は、パターンJの場合の座標の変化を示した図である。(J−2)はパターンJのX軸方向の遮断軸のスキャンごとの座標値、(J−3)はパターンJのY軸方向の遮断軸のスキャンごとの座標値を示している。
(J−2)パターンJのX軸方向では、遮軸X3,X2,X1の順に検出される。最初に、スキャン2で遮断軸X3(37−38)が検出される。遮断軸X3は、スキャン3からスキャン4でX3(37−38)、スキャン5でX3(33−33)、スキャン6でX3(34−36)、スキャン7からスキャン9でX3(35−36)と検出された後、スキャン10で消える。遮断軸X2は、スキャン3でX2(31−34)と検出される。その後、スキャン4でX2(31−31)、スキャン5でX2(29−30)、スキャン6でX2(31−31)、スキャン7からスキャン9でX2(31−32)と検出され、スキャン10で消える。遮断軸X1は、スキャン6でX1(8−9)として検出される。その後、スキャン7でX1(6−8)、スキャン8でX1(4−6)、スキャン9でX1(4−4)と、座標が大きく移動した状態で検出され、スキャン10で消える。
(J−3)パターンJのY軸方向では、遮断軸Y3,Y2,Y1の順に検出される。最初に、スキャン2で遮断軸Y3(25−27)が検出される。遮断軸Y3は、スキャン3からスキャン9まで継続してY3(25−27)として検出された後、スキャン10で消える。遮断軸Y2は、スキャン3でY2(21−22)として検出される。その後、スキャン4からスキャン9まで継続してY2(21−22)として検出された後、スキャン10で消える。遮断軸Y1は、スキャン6でY1(8−10)として検出され、スキャン9まで継続してY1(8−10)として検出された後、スキャン10で消える。
図38は、パターンJの場合の遮断軸情報を示した図である。
スキャン1では、遮断軸は検出されず、タッチ状態も「null」である。
スキャン2では、遮断軸検出部120によって、X軸方向の遮断軸(37−38)と、Y軸方向の遮断軸(25−27)が検出される。そして、判別遮断軸特定部130によって遮断軸X3(37−38),Y3(25−27)と特定され、判別遮断軸に設定される。有効座標特定部140は、判別遮断軸が、X軸方向とY軸方向にそれぞれ1つずつあるので、「順押し」と判定し、X3(37−38),Y3(25−27)を有効軸とする。有効軸の中心座標(37.5,26)を有効座標に設定する。タッチ状態は、「ON(1点)」が設定される。こうして特定された遮断軸X3,Y3は検出遮断軸1102j、有効軸X3,Y3は有効軸1103j、有効座標(37.5,26)は有効座標1104jのスキャン2に対応する欄に登録される。また、タッチ状態1105jには、「ON(1点)」が登録される。なお、以降のスキャン周期で特定された各項目の情報は、スキャン周期に対応する欄に登録されるとし、登録処理の説明は省く。
スキャン3では、遮断軸検出部120によって、X軸方向の遮断軸(31−34)、Y軸方向の遮断軸(21−22)が新たに検出される。判別遮断軸特定部130によって、新たに検出された遮断軸は、X2(31−34),Y2(21−22)と特定され、判別遮断軸に設定される。有効座標特定部140は、判別遮断軸がX軸方向とY軸方向にそれぞれ1つずつあるので、「順押し」と判定し、前回スキャンにおいて特定された有効座標のオフイベントを発生させる。このため、有効軸は、前回スキャンのX3(37−38),Y3(25−27)、有効座標は、同じく(37.5,26)に設定される。タッチ状態は、「OFF(2点)」になる。
スキャン4では、判別遮断軸特定部130によって既検出の遮断軸X2(31−31),X3(37−38),Y2(21−22),Y3(25−27)が特定される。判別遮断軸は検出されない。有効座標特定部140は、判別遮断軸が検出されないので、「状態継続」と判定する。そして、前回スキャンの判別遮断軸X2(31−31),Y2(21−22)を有効軸とする。また、有効軸の中心座標(31,21.5)を有効座標とする。タッチ状態は、「ON(2点)」になる。
スキャン5では、遮断軸検出部120によって、X軸方向の遮断軸(29−30),(33−33)と、Y軸方向の遮断軸(21−22),(25−27)が検出される。しかし、判別遮断軸特定部130では、Y軸方向の遮断軸については属性を特定できるが、X軸方向の遮断軸については特定できない。マージンαを1とすると、遮断軸(33−33)の座標範囲は(32−34)となる。前回スキャンでX2(31−31),X3(37−38)であったので、どちらに属するかを判定することはできない。エラー発生により、有効座標特定部140は、前回スキャンの有効座標のオフイベントを発生させる。このため、有効軸は、前回スキャンのX2(31−31),Y2(21−22)、有効座標は、同じく(31,21.5)に設定される。タッチ状態は、「OFF(2点)」になる。
スキャン6では、遮断軸検出部120によって、X軸方向の遮断軸(8−10)、Y軸方向の遮断軸(8−10)が新たに検出される。判別遮断軸特定部130によって、それぞれ遮断軸X1(8−10),Y1(8−10)と特定され、判別遮断軸に設定される。既検出の遮断軸X2(31−31),X3(34−36),Y2(21−22),Y3(25−27)も同様に特定される。有効座標特定部140は、判別遮断軸がX軸方向とY軸方向にそれぞれ1つずつあるので、「順押し」と判定し、判別遮断軸X1(8−10),Y1(8−10)を有効軸とする。そして、有効軸の中心座標(9,9)を有効座標とする。タッチ状態は、「ON(3点)」となる。
スキャン7では、判別遮断軸特定部130によって既検出の遮断軸X1(6−8),X2(31−32),X3(35−36),Y1(8−10),Y2(21−22),Y3(25−27)が特定される。判別遮断軸は検出されない。有効座標特定部140は、判別遮断軸が検出されないので、「状態継続」と判定する。そして、前回スキャンでも有効軸であった遮断軸X1(6−8),Y1(8−10)を有効軸とする。また、有効軸の中心座標(7,9)を有効座標とする。タッチ状態は、「ON(3点)」が継続される。
スキャン8もスキャン7と同様に、判別遮断軸特定部130によって既検出の遮断軸X1(4−6),X2(31−32),X3(35−36),Y1(8−10),Y2(21−22),Y3(25−27)が特定される。判別遮断軸は検出されない。そして、有効座標特定部140では、「状態継続」と判定され、前回スキャンと同じ有効軸X1(4−6),Y1(8−10)が設定される。また、有効軸の中心座標(5,9)が有効座標になる。タッチ状態は、「ON(3点)」が継続される。
スキャン9もスキャン8と同様に、判別遮断軸特定部130によって既検出の遮断軸X1(4−4),X2(31−32),X3(35−36),Y1(8−10),Y2(21−22),Y3(25−27)が特定される。判別遮断軸は検出されない。そして、有効座標特定部140では、「状態継続」と判定され、前回スキャンと同じ有効軸X1(4−4),Y1(8−10)が設定される。また、有効軸の中心座標(4,9)が有効座標になる。タッチ状態は、「ON(3点)」が継続される。
スキャン10では、すべての遮断軸が検出されなくなったので、オフイベントを発生させ、タッチ状態を「OFF」にする。
このような手順が実行されることにより、3点が入力された場合も有効座標を検出することができる。
次に、座標検出装置100による座標検出処理の処理手順について詳細に説明する。図39は、座標検出処理の処理手順を示したフローチャートである。
なお、以下の説明では、図5に示した遮断軸情報テーブル1100に加え、有効座標のタッチ状態(タッチされているON、または離れているOFF)と、片側タッチが検出されたことを示す片側タッチ情報とを記憶しておき、処理に用いるとする。
[ステップS01] 遮断軸検出部120は、スキャン周期に到達したら、タッチパネルコントローラ201から遮断情報を取得する。
[ステップS02] 遮断情報を取得したら、前回スキャン(n−1)の遮断軸情報が存在するかどうかを判定する。前回スキャン(n−1)の遮断軸情報が存在するときは、処理をステップS04へ進める。存在しないときは、処理をステップS03へ進める。
[ステップS03] 前回スキャン(n−1)の遮断軸情報が存在しないときは、タッチオフ処理として、取得された遮断情報のみで有効座標を特定する。特定された有効座標は、このスキャン周期の遮断軸情報として登録する。また、タッチ状態は、該当するタッチ点をONにする。このとき、X軸方向またはY軸方向に複数点の遮断軸が検出されたときは、多点エラーを発生させる。その後、ステップS01に戻って次のスキャン周期の処理を行う。
[ステップS04] 前回スキャン(n−1)の遮断軸情報が存在するときは、今回スキャン(n)で検出された遮断軸の遮断軸属性を特定する。今回スキャン(n)で検出された遮断軸の遮断軸幅が、前回スキャン(n−1)で検出された遮断軸の遮断軸幅にマージンを付加した範囲内に含まれているかどうかを判定する。含まれている場合は、同属性と判定し、前回スキャン(n−1)で設定された遮断軸名を付ける。含まれていないときは、同属性ではないと判定し、これまでに付与された遮断軸名とは異なる遮断軸名を設定する。なお、遮断軸属性の特定にあたっては、前回スキャン(n−1)の遮断軸ばかりでなく、スキャン(n−1)以前のスキャンで検出された遮断軸と比べてもよい。
[ステップS05] 遮断軸属性が設定された遮断軸から、判別遮断軸を特定する。判別遮断軸は、今回スキャン(n)の遮断軸から前回スキャン(n−1)の遮断軸を差し引き、残った遮断軸を判別遮断軸とする。
[ステップS06] 判別遮断軸が、X軸方向またはY軸方向のいずれか、もしくは両方で2つ以上検出されているかどうかを判定する。複数検出されているときは、処理をステップS09に進める。複数検出されていないときは、ステップS07へ処理を進める。
[ステップS07] 判別遮断軸が複数検出されていないときは、判別遮断軸がX軸方向またはY軸方向のいずれか1つのみが検出されているかどうかを判定する。判別遮断軸が1つのみであれば、処理をステップS10に進める。1つでないときは、ステップS08へ処理を進める。
[ステップS08] 判別遮断軸が1つでないときは、判別遮断軸がX軸方向及びY軸方向にともに1つであるかどうかを判定する。X軸方向及びY軸方向にともに1つであるときは、処理をステップS11に進める。そうでないときは、処理をステップS12に進める。
[ステップS09] 判別遮断軸がX軸方向またはY軸方向のいずれか、もしくは両方で複数検出されたときは、同時押しの有効座標検出処理を行う。有効座標検出処理終了後、ステップS01に戻って次のスキャン周期の処理を行う。
[ステップS10] 判別遮断軸がX軸方向またはY軸方向のいずれか1つのみで検出されたときは、片側タッチの有効座標検出処理を行う。有効座標検出処理終了後、ステップS01に戻って次のスキャン周期の処理を行う。
[ステップS11] 判別遮断軸がX軸方向及びY軸方向にともに1つであるときは、順押しの有効座標検出処理を行う。有効座標検出処理終了後、ステップS01に戻って次のスキャン周期の処理を行う。
[ステップS12] 判別遮断軸が上記のすべてに当てはまらない場合、すなわち、検出されないときは、状態継続の有効座標検出処理を行う。有効座標検出処理終了後、ステップS01に戻って次のスキャン周期の処理を行う。
それぞれの有効座標特定処理について説明する。
図40は、同時押しの場合の有効座標検出処理の手順を示したフローチャートである。X軸方向またはY軸方向について、少なくとも一方の方向に2以上の判別遮断軸が検出されたとき、処理が開始される。
[ステップS901] 遮断軸情報テーブル1100から前回スキャン(n−1)の遮断軸情報を抽出する。そして、有効座標が登録されているかどうかを判定する。有効座標が登録されているときは、処理をステップS902に進める。有効座標が登録されていないときは、処理をステップS903に進める。
[ステップS902] 前回スキャン(n−1)の遮断軸情報に有効座標が登録されているときは、その有効座標をタッチアップする。すなわち、前回スキャン(n−1)で検出された有効座標のタッチ状態を「ON」から「OFF」にする。
[ステップS903] 今回スキャン(n)の遮断軸情報の有効軸及び有効座標を「null(無)」に設定する。また、多点エラーを発生させ、片側タッチ情報に、「片側タッチ無」を登録する。
以上の処理手順が実行されることにより、同一軸方向に複数の判別遮断軸が検出されたときは、前回スキャン(n−1)の有効座標を終了させ、多点エラーを発生させる。
図41は、片側タッチの場合の有効座標検出処理の手順を示したフローチャートである。判別遮断軸が、X軸方向またはY軸方向のいずれか1方向のみに検出されたとき、処理が開始される。
[ステップS1001] 片側タッチ情報を読み出し、「片側タッチ」が設定されているかどうかを判定する。「片側タッチ」が設定されているときは、処理をステップS1002に進める。「片側タッチ無」が設定されているときは、処理をステップS1004に進める。
[ステップS1002] 「片側タッチ」が設定されているときは、前回スキャン(n−1)の判別遮断軸と、今回スキャン(n)の判別遮断軸とが不一致であるかどうかを判定する。不一致のときは、処理をステップS1003に進める。一致しているときは、処理をステップS1004に進める。
[ステップS1003] 前回スキャン(n−1)の判別遮断軸と、今回スキャン(n)の判別遮断軸とが不一致であるときは、片側タッチの状態が解消されたと見なす。そして、有効軸に前回スキャン(n−1)の判別遮断軸と、今回スキャン(n)の判別遮断軸とを設定する。有効座標は、この有効軸の中心座標とする。そして、片側タッチ情報に「片側タッチ無」を登録する。
[ステップS1004] 「片側タッチ無」が設定されているときは、前回スキャン(n−1)の遮断軸情報に有効座標が設定されているかどうかを判定する。有効座標が設定されているときは、処理をステップS1006に進める。有効座標が設定されていないときは、処理をステップS1005に進める。
[ステップS1005] 前回スキャン(n−1)に有効座標が設定されていないときは、有効軸及び有効座標に「null」を登録し、処理をステップS1007に進める。
[ステップS1006] 前回スキャン(n−1)に有効座標が設定されているときは、有効軸を前回スキャン(n−1)の有効軸、有効座標をその有効軸の中心座標に設定する。
[ステップS1007] 片側タッチ情報に「片側タッチ」を登録する。
[ステップS1008] 今回スキャン(n)の遮断軸に、前回スキャン(n−1)の有効軸が検出されなかったときは、前回スキャン(n−1)の有効座標をタッチアップさせ、タッチ状態を「OFF」にする。
以上の処理手順が実行されることにより、X軸方向またはY軸方向のいずれか1つの判別遮断軸が検出されたときは、片側タッチ情報に基づき処理を行う。「片側タッチ」であれば、前回スキャン(n−1)で一方の軸方向のみが検出され、今回スキャン(n)でもう一方の軸方向が検出されたとし、これらを組み合わせて有効軸が特定される。「片側タッチ無」であれば、片側タッチ情報に「片側タッチ」が設定され、次のスキャン周期を待つ。
図42は、順押しの場合の有効座標検出処理の手順を示したフローチャートである。判別遮断軸がX軸方向及びY軸方向に1ずつ検出されたとき、処理が開始される。
[ステップS1101] 前回スキャン(n−1)の遮断軸情報に有効座標が設定されているかどうかを判定する。有効座標が設定されているときは、処理をステップS1102に進める。有効座標が設定されていないときは、処理をステップS1103に進める。
[ステップS1102] 前回スキャン(n−1)に有効座標が設定されているときは、その有効座標をタッチアップさせる。すなわち、前回スキャン(n−1)の有効座標のタッチ状態を「ON」から「OFF」にする。
[ステップS1103] 有効軸に今回スキャン(n)で検出された判別遮断軸を設定する。有効座標は、この有効軸の中心座標とする。また、今回スキャン(n)で特定された有効座標のタッチダウンを登録し、タッチ状態を「ON」にする。そして、片側タッチ情報を「片側タッチ無」に設定する。
以上の処理手順が実行され、順押しのときは検出されたX軸方向及びY軸方向に1つずつの判別遮断軸が有効軸に設定される。
図43は、状態継続の場合の有効座標検出処理の手順を示したフローチャートである。判別遮断軸が検出されないとき、処理が開始される。
[ステップS1201] 片側タッチ情報を読み出し、「片側タッチ」が設定されているかどうかを判定する。「片側タッチ」が設定されているときは、処理をステップS1202に進める。「片側タッチ無」が設定されているときは、処理をステップS1207に進める。
[ステップS1202] 「片側タッチ」が設定されていて判別遮断軸が検出されないときは、同軸上にタッチされた場合と見なす。今回スキャン(n)で検出された遮断軸のX軸方向またはY軸方向の遮断軸幅が検知可能範囲以下であるかどうかを判定する。検知可能範囲を超えていれば、処理をステップS1203に進める。検知可能範囲以下であれば、処理をステップS1204に進める。
[ステップS1203] 今回スキャン(n)で検出された遮断軸のX軸方向またはY軸方向の遮断軸幅が検知可能範囲を超えているときは、多点エラーを発生させ、処理をステップS1213に進める。
[ステップS1204] 今回スキャン(n)で検出された遮断軸のX軸方向またはY軸方向の遮断軸幅が検知可能範囲以下であるときは、前回スキャン(n−1)の遮断軸情報に有効座標の登録が有るかどうかを判定する。ないときは、処理をステップS1206に進める。有るときは、ステップS1205へ処理を進める。
[ステップS1205] 前回スキャン(n−1)の有効座標をタッチアップし、タッチ状態を「OFF」にする。
[ステップS1206] 前回スキャン(n−1)の判別遮断軸と、今回スキャン(n)のX軸方向またはY軸方向のいずれか1つの遮断軸と、を有効軸に設定する。「同軸上」の特性上、X軸方向またはY軸方向の一方で1つの遮断軸しか検出されないためである。例えば、前回スキャン(n−1)の判別遮断軸がX軸方向であれば、Y軸方向の遮断軸を設定する。また、前回スキャン(n−1)の判別遮断軸がY軸方向であれば、X軸方向の遮断軸を設定する。こうして、同軸上に位置する他の遮光物によって当該方向の遮断軸が検出不可となっている遮光物の位置を推定する。その後、処理をステップS1212に進める。
[ステップS1207] 「片側タッチ無」が設定されていて判別遮断軸が検出されないときは、図7の(5)状態継続の例、図7の(4)離れたときの例に該当する。前回スキャン(n−1)の遮断軸情報に、有効座標の登録が有るかどうかを判定する。有効座標の登録が有るときは、処理をステップS1209に進める。有効座標の登録がないときは、処理をステップS1208に進める。
[ステップS1208] 前回スキャン(n−1)の遮断軸情報に有効座標の登録が無いときは、有効軸及び有効座標に「null」を登録し、処理をステップS1212に進める。
[ステップS1209] 前回スキャン(n−1)の遮断軸情報に登録された有効軸が、今回スキャン(n)で検出された遮断軸に有るかどうかを判定する。有効軸が遮断軸として検出されているときは、処理をステップS1210に進める。検出されていないときは、処理をステップS1211に進める。
[ステップS1210] 今回スキャン(n)の遮断軸に、前回スキャン(n−1)の有効軸が検出されたときは、前回スキャン(n−1)時の有効軸と同属性の遮断軸を有効軸に設定する。有効座標は、有効軸の中心座標とし、処理をステップS1212に進める。
[ステップS1211] 今回スキャン(n)の遮断軸に、前回スキャン(n−1)の有効軸が検出されなかったときは、前回スキャン(n−1)の有効座標をタッチアップさせ、タッチ状態を「OFF」にする。
[ステップS1212] 片側タッチ情報に「片側タッチ無」を登録する。
[ステップS1213] 前回スキャン(n−1)の遮断軸情報に有効座標の登録が無いときは、有効軸及び有効座標に「null」を設定し、前回スキャン(n−1)の有効座標をタッチアップし、タッチ状態を「OFF」にする。
以上の処理手順が実行されることにより、新たに判別遮断軸が検出されなかったとき、同軸上の遮光物の有効座標特定、前回スキャン(n−1)の有効座標保持、または前回スキャン(n−1)の有効座標のタッチアップのいずれかの処理が行われる。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、座標検出装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD(Digital Versatile Disc)、CD−ROM(Compact Disc Read Only Memory)などの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。