(57)【特許請求の範囲】
【請求項１】
座標入力装置から出力される入力座標データを処理するための座標処理プログラムであって、
コンピュータを、
前記入力座標データによって示される第１座標系列に基づいて、当該第１座標系列によって表される入力軌跡の形状よりも滑らかな形状の入力軌跡を表す第２座標系列を算出する第２座標系列算出手段、
前記第１座標系列に基づいて座標の移動量を算出する移動量算出手段、
前記第２座標系列に基づいて座標の移動方向を算出する移動方向算出手段、および
前記移動量算出手段によって算出された移動量と前記移動方向算出手段によって算出された移動方向とを用いて所定の処理を行う処理手段として機能させる、座標処理プログラム。
【請求項２】
前記移動量算出手段は、少なくとも、前記第１座標系列における最新座標と、当該最新座標の直前の座標との間の距離に基づいて、前記移動量を算出する、請求項１に記載の座標処理プログラム。
【請求項３】
前記移動方向算出手段は、少なくとも、前記第２座標系列における最新座標と、当該最新座標の直前の座標とを結ぶ直線の方向に基づいて、前記移動方向を算出する、請求項１または２に記載の座標処理プログラム。
【請求項４】
前記第２座標系列算出手段は、前記入力座標データに基づいて設定される目標座標に追従する追従座標を、前記第２座標系列の座標として算出する、請求項１〜３のいずれか１項に記載の座標処理プログラム。
【請求項５】
前記第２座標系列算出手段は、前記目標座標に所定の割合で追従する追従座標を、前記第２座標系列の座標として算出する、請求項４に記載の座標処理プログラム。
【請求項６】
前記第２座標系列算出手段は、前記追従座標から前記目標座標までの距離の所定割合だけ前記目標座標へ近づくように前記追従座標を都度更新する、請求項４または５に記載の座標処理プログラム。
【請求項７】
前記目標座標は、前記入力座標データが示す入力座標から所定距離よりも離れたときに、当該所定距離だけ離れた位置に位置するように当該入力座標に向かって移動する遊び座標である、請求項４〜６のいずれか１項に記載の座標処理プログラム。
【請求項８】
前記処理手段は、前記移動量算出手段によって算出された移動量と前記移動方向算出手段によって算出された移動方向とを用いて、座標の移動量および移動方向を示す移動ベクトルを生成する移動ベクトル生成手段を含む、請求項１〜７のいずれか１項に記載の座標処理プログラム。
【請求項９】
前記処理手段は、前記移動量算出手段によって算出された移動量と前記移動方向算出手段によって算出された移動方向とを用いて第３座標系列を算出する第３座標系列算出手段を含む、請求項１〜７のいずれか１項に記載の座標処理プログラム。
【請求項１０】
前記処理手段は、前記座標入力装置からの前記入力座標データの出力が一時的に途切れた場合に、前記移動量算出手段によって算出された移動量と前記移動方向算出手段によって算出された移動方向とを用いて前記入力座標データを補完する座標補完手段を含む、請求項１〜７のいずれか１項に記載の座標処理プログラム。
【請求項１１】
前記処理手段は、前記座標入力装置からの前記入力座標データの出力に応じて、前記所定の処理をリアルタイムに行う、請求項１〜１０のいずれか１項に記載の座標処理プログラム。
【請求項１２】
座標入力装置から出力される入力座標データを処理するための座標処理装置であって、
前記入力座標データによって示される第１座標系列に基づいて、当該第１座標系列によって表される入力軌跡の形状よりも滑らかな形状の入力軌跡を表す第２座標系列を算出する第２座標系列算出手段、
前記第１座標系列に基づいて座標の移動量を算出する移動量算出手段、
前記第２座標系列に基づいて座標の移動方向を算出する移動方向算出手段、および
前記移動量算出手段によって算出された移動量と前記移動方向算出手段によって算出された移動方向とを用いて所定の処理を行う処理手段を備える、座標処理装置。
【請求項１３】
座標入力装置から出力される入力座標データを処理するための座標処理システムであって、
前記入力座標データによって示される第１座標系列に基づいて、当該第１座標系列によって表される入力軌跡の形状よりも滑らかな形状の入力軌跡を表す第２座標系列を算出する第２座標系列算出手段、
前記第１座標系列に基づいて座標の移動量を算出する移動量算出手段、
前記第２座標系列に基づいて座標の移動方向を算出する移動方向算出手段、および
前記移動量算出手段によって算出された移動量と前記移動方向算出手段によって算出された移動方向とを用いて所定の処理を行う処理手段を備える、座標処理システム。
【請求項１４】
座標入力装置から出力される入力座標データを処理するための座標処理システムのコンピュータによって実行される座標処理方法であって、
前記入力座標データによって示される第１座標系列に基づいて、前記コンピュータが、当該第１座標系列によって表される入力軌跡の形状よりも滑らかな形状の入力軌跡を表す第２座標系列を算出する第２座標系列算出ステップ、
前記第１座標系列に基づいて前記コンピュータが座標の移動量を算出する移動量算出ステップ、
前記第２座標系列に基づいて前記コンピュータが座標の移動方向を算出する移動方向算出ステップ、および
前記移動量算出ステップにおいて算出された移動量と前記移動方向算出ステップにおいて算出された移動方向とを用いて前記コンピュータが所定の処理を行う処理ステップを備える、座標処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、座標処理プログラム、座標処理装置、座標処理システムおよび座標処理方法に関し、特に、座標入力装置から出力される入力座標データを処理するための座標処理プログラム、座標処理装置、座標処理システムおよび座標処理方法に関する。
【背景技術】
【０００２】
従来、タッチパネル等の座標入力装置から出力される座標データのブレを軽減する技術がある。例えば、前回の補正後の座標データと最新の座標データとを加重平均して最新の補正後の座標データを生成する従来技術（例えば、特許文献１）がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００１−２８２４４９号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、座標データのブレを軽減する技術には、操作者の操作に対する応答性が低下するというデメリットが本来的に存在する。よって、上記の補正後の座標データに基づいて座標の移動速度と移動方向を計算した場合、計算される移動方向については、座標データのブレが軽減された結果、操作者の実際の入力操作と概ね合致するが、計算される移動速度については、応答性の低下により、操作者の実際の入力操作と乖離しがちとなってしまう。
【０００５】
本発明は、座標入力装置から出力される入力座標データを適切に処理することが可能な座標処理プログラム、座標処理装置、座標処理システムおよび座標処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的は、例えば下記のような構成例によって達成される。
【０００７】
第１の構成例は、座標入力装置から出力される入力座標データを処理するための座標処理プログラムである。当該座標処理プログラムは、コンピュータを、前記入力座標データによって示される第１座標系列に基づいて、当該第１座標系列によって表される入力軌跡の形状よりも滑らかな形状の入力軌跡を表す第２座標系列を算出する第２座標系列算出手段、前記第１座標系列に基づいて座標の移動量を算出する移動量算出手段、前記第２座標系列に基づいて座標の移動方向を算出する移動方向算出手段、および前記移動量算出手段によって算出された移動量と前記移動方向算出手段によって算出された移動方向とを用いて所定の処理を行う処理手段として機能させる。
【０００８】
「座標入力装置」は、入力座標データを出力可能な任意のポインティングデバイスであってもよく、典型的にはタッチパネルである。「第２座標系列」は、第１座標系列によって表される入力軌跡の形状よりも滑らかな形状の入力軌跡を表す任意の座標系列であればよく、例えば、入力座標データに基づいて設定される目標座標に追従する追従座標を、第２座標系列の座標として計算してもよいし、第１座標系列に含まれる複数の座標を平均（相加平均、加重平均等）することによって第２座標系列の座標を計算してもよい。
【０００９】
上記座標処理プログラムは、任意のコンピュータ読み取り可能な記憶媒体（例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、半導体メモリカード、ＲＯＭ、ＲＡＭなど）に格納され得る。
【００１０】
なお、前記移動量算出手段は、少なくとも、前記第１座標系列における最新座標と、当該最新座標の直前の座標との間の距離に基づいて、前記移動量を算出してもよい。
【００１１】
また、前記移動方向算出手段は、少なくとも、前記第２座標系列における最新座標と、当該最新座標の直前の座標とを結ぶ直線の方向に基づいて、前記移動方向を算出してもよい。
【００１２】
また、前記第２座標系列算出手段は、前記入力座標データに基づいて設定される目標座標に追従する追従座標を、前記第２座標系列の座標として算出してもよい。
【００１３】
また、前記第２座標系列算出手段は、前記目標座標に所定の割合で追従する追従座標を、前記第２座標系列の座標として算出してもよい。
【００１４】
また、前記第２座標系列算出手段は、前記追従座標から前記目標座標までの距離の所定割合だけ前記目標座標へ近づくように前記追従座標を都度更新してもよい。
【００１５】
また、前記目標座標は、前記入力座標データが示す入力座標から所定距離よりも離れたときに、当該所定距離だけ離れた位置に位置するように当該入力座標に向かって移動する遊び座標であってもよい。
【００１６】
また、前記処理手段は、前記移動量算出手段によって算出された移動量と前記移動方向算出手段によって算出された移動方向とを用いて、座標の移動量および移動方向を示す移動ベクトルを生成する移動ベクトル生成手段を含んでいてもよい。
【００１７】
また、前記処理手段は、前記移動量算出手段によって算出された移動量と前記移動方向算出手段によって算出された移動方向とを用いて第３座標系列を算出する第３座標系列算出手段を含んでいてもよい。
【００１８】
また、前記処理手段は、前記座標入力装置からの前記入力座標データの出力が一時的に途切れた場合に、前記移動量算出手段によって算出された移動量と前記移動方向算出手段によって算出された移動方向とを用いて前記入力座標データを補完する座標補完手段を含んでいてもよい。
【００１９】
また、前記処理手段は、前記座標入力装置からの前記入力座標データの出力に応じて、前記所定の処理をリアルタイムに行ってもよい。
【００２０】
第２の構成例は、座標入力装置から出力される入力座標データを処理するための座標処理装置である。当該座標処理装置は、前記入力座標データによって示される第１座標系列に基づいて、当該第１座標系列によって表される入力軌跡の形状よりも滑らかな形状の入力軌跡を表す第２座標系列を算出する第２座標系列算出手段、前記第１座標系列に基づいて座標の移動量を算出する移動量算出手段、前記第２座標系列に基づいて座標の移動方向を算出する移動方向算出手段、および前記移動量算出手段によって算出された移動量と前記移動方向算出手段によって算出された移動方向とを用いて所定の処理を行う処理手段を備える。
【００２１】
第３の構成例は、座標入力装置から出力される入力座標データを処理するための座標処理システムである。当該座標処理システムは、前記入力座標データによって示される第１座標系列に基づいて、当該第１座標系列によって表される入力軌跡の形状よりも滑らかな形状の入力軌跡を表す第２座標系列を算出する第２座標系列算出手段、前記第１座標系列に基づいて座標の移動量を算出する移動量算出手段、前記第２座標系列に基づいて座標の移動方向を算出する移動方向算出手段、および前記移動量算出手段によって算出された移動量と前記移動方向算出手段によって算出された移動方向とを用いて所定の処理を行う処理手段を備える。
【００２２】
第４の構成例は、座標入力装置から出力される入力座標データを処理するための座標処理システムのコンピュータによって実行される座標処理方法である。当該座標処理方法は、前記入力座標データによって示される第１座標系列に基づいて、前記コンピュータが、当該第１座標系列によって表される入力軌跡の形状よりも滑らかな形状の入力軌跡を表す第２座標系列を算出する第２座標系列算出ステップ、前記第１座標系列に基づいて前記コンピュータが座標の移動量を算出する移動量算出ステップ、前記第２座標系列に基づいて前記コンピュータが座標の移動方向を算出する移動方向算出ステップ、および前記移動量算出ステップにおいて算出された移動量と前記移動方向算出ステップにおいて算出された移動方向とを用いて前記コンピュータが所定の処理を行う処理ステップを備える。
【発明の効果】
【００２３】
本発明によれば、座標入力装置から出力される入力座標データを適切に処理することが可能である。
【図面の簡単な説明】
【００２４】
【図１】座標処理システムの一例を示す図
【図２】ペンによる入力座標の一例を示す図
【図３】指による入力座標の一例を示す図
【図４】入力座標の一例を示す図
【図５】入力座標に応じて決定される遊び座標の一例を示す図
【図６】遊び座標に応じて決定される追従座標の一例を示す図
【図７】入力座標に途切れが生じたときの遊び座標および追従座標の一例を示す図
【図８】指による入力座標およびそれに対応する追従座標の一例を示す図
【図９】ペンによる入力座標およびそれに対応する追従座標の一例を示す図
【図１０】速度座標の一例を示す図
【図１１】ＲＡＭに記憶されるデータの一例を示す図
【図１２】座標処理の流れを示すフローチャートの一部
【図１３】座標処理の流れを示すフローチャートの残りの一部
【図１４】遊び半径の計算方法の一例を示す図
【図１５】ジグザグ形状の判定方法の一例を示す図
【図１６】追従割合の計算方法の一例を示す図
【図１７】追従座標の決定方法の変形例を示す図
【図１８】入力座標の補正方法の変形例を示す図
【発明を実施するための形態】
【００２５】
図１において、座標処理システム１０は、タッチパネル１２、情報処理装置１４、表示装置１６および外部記憶媒体２４を備えている。
【００２６】
タッチパネル１２は、操作面に対する指またはペンの接触位置を周期的に検出し、当該接触位置を示す座標データを所定の周期で情報処理装置１４へと出力する。本実施形態では、タッチパネル１２は感圧式である。
【００２７】
情報処理装置１４は、プロセッサ１８、内部記憶装置２０およびメインメモリ２２を備えている。内部記憶装置２０には、プロセッサ１８によって実行されるコンピュータプログラムが格納されている。内部記憶装置２０は、典型的には、ハードディスクやＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）である。メインメモリ２２は、コンピュータプログラムやその他のデータを一時的に記憶する。
【００２８】
表示装置１６は、情報処理装置１４によって生成された画像を画面に表示する。表示装置１６の画面上にタッチパネル１２が設けられていてもよい。
【００２９】
外部記憶装置２４には、プロセッサ１８によって実行されるコンピュータプログラムが格納されている。外部記憶装置２４は、典型的には、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）やＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）や半導体記憶装置である。
【００３０】
なお、図１に示した座標処理システム１０の構成は単なる一例に過ぎず、他の実施形態では、座標処理システムは、例えば、タッチパネルを備えた携帯型ゲーム機であってもよい。
【００３１】
次に、座標処理システム１０において実行される座標処理の概要を説明する。
【００３２】
図２は、操作者がタッチパネル１２の操作面にペンで円弧を描いたときにタッチパネル１２によって検出される一連の座標（入力座標ｐ１〜ｐ１８）を示している。このように、ペンでタッチパネル１２を操作する場合には、入力座標にブレや途切れはほとんど生じない。一方、操作者がタッチパネル１２の操作面に指で同じ円弧を描いたときには、図３に示すように、入力座標にブレや途切れが生じる。これは、主に、指はペンに比べて、操作面への接触面積が大きいことに起因する。一般的に、入力操作時における操作面への接触面積が大きいほど、入力座標のブレや途切れが発生しやすくなる傾向がある。これは、接触面積が大きいほど、検出される接触位置にブレが生じやすく、また、特に感圧式の座標入力装置では、接触面積が大きいほど操作面に対する単位面積当たりの圧力が小さくなるので、実際には接触しているにも関わらず、接触していないと誤判定されてしまうことが起こりやすくなるからである。
【００３３】
情報処理装置１４は、上記のような入力座標のブレや途切れを補正する処理（座標補正処理）を行う。具体的には、タッチパネル１２を通じて入力される入力座標に基づいて、「遊び座標」および「追従座標」をリアルタイムに更新することによって、上記のような入力座標のブレや途切れを補正する。
【００３４】
以下、図５を参照して、図４に示すような入力座標ｐ１〜ｐ６が入力されたときの遊び座標の更新方法について説明する。
【００３５】
最初の入力座標ｐ１が入力されると、当該入力座標ｐ１と同じ値に、遊び座標ｒ１が設定される。
【００３６】
一旦設定された遊び座標は、最新の入力座標との間の距離が所定距離（図５に示す「遊び半径」）以下である間は変化しない。一方、最新の入力座標と間の距離が上記所定距離よりも大きい場合には、最新の入力座標との間の距離が上記所定距離と一致するように、最新の入力座標へ向かって移動するように遊び座標は変化する。なお、後述するように、遊び半径は、「指度合」（指らしさの度合を示す変数）に応じて例えば０〜３０の範囲で変化する。
【００３７】
すなわち、入力座標ｐ２が入力されると、当該入力座標ｐ２と遊び座標ｒ１との間の距離が遊び半径よりも大きいので、入力座標ｐ２との間の距離が遊び半径と一致するように、遊び座標は入力座標ｐ２に向かって移動する。こうして、図５に示す遊び座標ｒ２が決定される。
【００３８】
入力座標ｐ３が入力されると、当該入力座標ｐ３と遊び座標ｒ２との間の距離が遊び半径よりも大きいので、入力座標ｐ３との間の距離が遊び半径と一致するように、遊び座標は入力座標ｐ３に向かって移動する。こうして、図５に示す遊び座標ｒ３が決定される。
【００３９】
以下、同様にして、入力座標ｐ４，ｐ５，ｐ６が入力される度に、遊び座標ｒ４，ｒ５，ｒ６が順次決定される。
【００４０】
図５から明らかなように、遊び座標ｒ１〜ｒ６によって示される入力軌跡は、入力座標ｐ１〜ｐ６によって示される入力軌跡と比べて、より滑らかになっており、座標のブレが抑えられているのが分かる。
【００４１】
次に、図６を参照して、図４に示すような入力座標ｐ１〜ｐ６が入力されたときの追従座標の更新方法について説明する。
【００４２】
最初の入力座標ｐ１が入力されると、当該入力座標ｐ１と同じ値（すなわち、遊び座標ｒ１と同じ値）に、追従座標ｆ１が設定される。
【００４３】
一旦設定された追従座標は、最新の遊び座標との間の距離の所定割合（後述する「追従割合」）だけ当該遊び座標へ向かって移動するように更新される。なお、後述するように、追従割合は、指度合に応じて例えば４０％〜１００％の範囲で変化する。
【００４４】
すなわち、遊び座標ｒ２の位置が決定されると、当該遊び座標ｒ２と追従座標ｆ１との間の距離の所定割合（追従割合）だけ、追従座標は遊び座標ｒ２へ向かって移動する。こうして、図６に示す追従座標ｆ２が決定される。
【００４５】
遊び座標ｒ３の位置が決定されると、当該遊び座標ｒ３と追従座標ｆ２との間の距離の所定割合（追従割合）だけ、追従座標は遊び座標ｒ３へ向かって移動する。こうして、図６に示す追従座標ｆ３が決定される。
【００４６】
以下、同様にして、遊び座標ｒ４，ｒ５，ｒ６が決定される度に、追従座標ｆ４，ｆ５，ｆ６が順次決定される。
【００４７】
図６から明らかなように、追従座標ｆ１〜ｆ６によって示される入力軌跡は、遊び座標ｒ１〜ｒ６によって示される入力軌跡と比べて、さらに滑らかになっており、座標のブレがさらに抑えられているのが分かる。
【００４８】
なお、入力座標が一時的に途切れた場合でも、遊び座標および追従座標の更新は行われる。図７を参照して、入力座標が一時的に途切れた場合における遊び座標および追従座標の更新方法について説明する。
【００４９】
入力座標ｐ１，ｐ２，ｐ３，ｐ４が入力される度に、遊び座標ｒ１，ｒ２，ｒ３，ｒ４および追従座標ｆ１，ｆ２，ｆ３，ｆ４が順次決定される点については、図５および図６と同様である。
【００５０】
図７の例では、入力座標ｐ５が入力されるはずのタイミング（以下では、タイミングｔ５と称す）では入力座標が入力されず、その後、入力座標ｐ６が入力されている。遊び座標および追従座標は、タッチパネル１２から有効な入力座標が入力されたか否かに関わらず、所定の周期（例えば、タッチパネル１２から座標データが出力される周期と同じ周期）で更新される。よって、タイミングｔ５においても、遊び座標および追従座標は更新される。
【００５１】
なお、本実施形態では、後述するように、入力座標が入力されない間は遊び半径が徐々に小さくなっていく（図１２のＳ２２）。よって、タイミングｔ５では、最新の入力座標（すなわち、入力座標ｐ４）との間の距離が、少し小さくなった遊び半径と一致するように、遊び座標は入力座標ｐ４に向かって少しだけ移動する。こうして、図７に示す遊び座標ｒ５が決定される。
【００５２】
遊び座標ｒ５が決定されると、当該遊び座標ｒ５と追従座標ｆ４との間の距離の所定割合（追従割合）だけ、追従座標は遊び座標ｒ５へ向かって移動する。こうして、図７に示す追従座標ｆ５が決定される。
【００５３】
このように、入力座標ｐ５が入力されなくても、当該入力座標ｐ５が入力されるはずのタイミング（タイミングｔ５）に対応する遊び座標ｒ５および追従座標ｆ５が決定される。よって、入力座標が一時的に途切れた場合でも、座標の途切れを補正することができる（すなわち、本来入力されるはずの座標を補完することができる）。
【００５４】
なお、座標の途切れを補正する際には、入力座標が一時的に途切れたのか、操作者が意図的に指またはペンをタッチパネル１２の操作面から離したのかを区別する必要がある。これらを区別するための方法としては、種々の方法が考えられる。
【００５５】
本実施形態では、追従座標が移動している間（より正確には、最新の遊び座標へ向かって移動するときの追従座標の移動量が所定量以上である間）は、操作者が入力操作を継続しているとみなして座標の補完を行う。そして、追従座標が最終的に停止した時点（より正確には、最新の遊び座標へ向かって移動するときの追従座標の移動量が所定量未満となった時点）で、操作者が入力操作を終了したとみなす。この場合、入力座標が途切れる直前における遊び座標と追従座標との間の距離が大きいほど、操作者が入力操作を終了したとみなすまでの時間が長くなる。
【００５６】
一般的に、操作者が操作面上で指またはペンを素早く滑らせた場合には、ゆっくりと滑らせた場合と比べて操作面に対する圧力が不安定になるため、入力座標の途切れが生じやすくなる。また、操作者が操作面上で指またはペンを素早く滑らせる場合には、ゆっくりと滑らせる場合と比べて、遊び座標と追従座標との間の距離が大きくなる。よって、本実施形態では、操作者が操作面上で指またはペンを素早く滑らせた場合には、ゆっくりと滑らせた場合と比べて、操作者が入力操作を終了したとみなすまでの時間が長くなるので、入力座標の途切れを効果的に補正することができる。また、操作者が操作面上で指またはペンをゆっくりと滑らせた場合には、操作者が入力操作を終了したとみなすまでの時間が短くなるため、応答性の低下を抑えることができる。その結果、操作者にとって、良好な操作性が得られる。
【００５７】
図３のような入力座標ｐ１〜ｐ４，ｐ６〜ｐ１０，ｐ１３〜ｐ１８に対して、上記のように遊び座標および追従座標を更新した結果、図８に示すような追従座標ｆ１〜ｆ２１が得られる。図８に示すように、追従座標ｆ１は入力座標ｐ１と一致しており、最後の追従座標ｆ２１は最後の入力座標ｐ１８とほぼ一致している。また、追従座標ｆ１〜ｆ２１によって示される入力軌跡は、入力座標ｐ１〜ｐ４，ｐ６〜ｐ１０，ｐ１３〜ｐ１８によって示される入力軌跡と比べて、滑らかになっており、本来の入力軌跡の形状により近づいている。また、入力座標が一時的に途切れた期間に対応する追従座標ｆ５，ｆ１１〜ｆ１２が補完されている。したがって、タッチパネル１２を指で操作する操作者にとって、良好な操作性が得られる。
【００５８】
一方、図２のような入力座標ｐ１〜ｐ１８に対して、上記のように遊び座標および追従座標を更新すると、図９に示すような追従座標ｆ１〜ｆ２１が得られる。しかしながら、この場合には、そもそも入力座標にはブレや途切れが存在しないため、追従座標ｆ１〜ｆ２１によって示される入力軌跡よりも、入力座標ｐ１〜ｐ１８によって示される入力軌跡の方が、より正確な入力軌跡を表していると言える。また、前述したように、座標データのブレを軽減する技術には、操作者の操作に対する応答性が低下するというデメリットが本来的に存在するため、例えば、入力座標ｐ２に対応する追従座標ｆ２は、入力座標ｐ２からずれてしまう。追従座標ｆ３〜ｆ１８についても同様である。また、操作者が入力操作を終了したとみなすタイミングも、本来のタイミング（すなわち、入力座標が途絶えたタイミング）よりも遅いタイミング（すなわち、追従座標が移動しなくなったタイミング）になってしまう。
【００５９】
よって、上記のようなデメリットを考慮すると、図１のように、操作者がペンでタッチパネル１２を操作している場合には、入力座標のズレや途切れを補正するよりも、むしろ、入力座標を補正しない方が好ましいと言える。そこで、本実施形態では、操作者がタッチパネル１２を指で操作しているのかペンで操作しているのかによって、入力座標のズレや途切れの補正度合を変化させている。
【００６０】
具体的には、操作者がタッチパネル１２を指で操作していると判定される場合には、前述の遊び半径を大きくするとともに、前述の追従割合を小さくし、操作者がタッチパネル１２をペンで操作していると判定される場合には、前述の遊び半径を小さくするとともに、前述の追従割合を大きくする。遊び半径を大きくするほど、接触位置の変動に対する応答性が低下するため、座標のブレはより抑えられ、同様に、追従割合を小さくするほど、接触位置の変動に対する応答性が低下するため、座標のブレはより抑えられる。これにより、タッチパネル１２を指で操作する場合も、ペンで操作する場合も、操作者にとって、良好な操作性が得られる。
【００６１】
なお、操作者がタッチパネル１２をペンで操作していると判定される場合には、遊び半径を０にし、追従割合を１００％にすることによって、追従座標が入力座標に完全に一致するようになる。そして、入力座標が途切れると、追従座標は一切移動しないため、入力座標が途切れた時点で即座に、操作者が入力操作を終了したとみなされることになる。
【００６２】
なお、操作者がタッチパネル１２を指で操作しているのかペンで操作しているのかの判定方法としては、種々の判定方法が考えられる。本実施形態では、指で操作しているのかペンで操作しているのかを二者択一で判定するのではなく、入力座標で示される入力軌跡の形状や、入力座標で示される連続接触時間や非連続接触時間に応じて、０．０〜１．０の範囲の値をとり得る、指らしさの度合を示す変数（指度合）を随時更新し、当該指度合に応じて遊び半径および追従割合を変化させている。
【００６３】
ところで、図７を参照して説明したように、入力座標が途切れている間は、遊び座標が最新の入力座標（すなわち、最後に入力された入力座標）へ向かって徐々に移動するとともに、追従座標が遊び座標へ向かって移動することになる。よって、新たな入力座標が入力されない限りは、追従座標の移動速度（すなわち、１回当たりの移動量）が徐々に小さくなってしまう。これは、図８の追従座標ｆ１０〜ｆ１２や、追従座標ｆ１８〜ｆ２１にも表れている。
【００６４】
しかしながら、実際には操作者は、図２に示すような入力操作の途中で指の移動速度を遅めたり速めたりしたわけではない。よって、追従座標の移動速度は、操作者の指の移動速度とは乖離したものとなる。そこで、本実施形態では、実際の操作者の指の移動量（単位時間当たりの移動量）と移動方向を推測し、少なくとも入力座標が途切れている間は、推測した移動量（推測移動量）および推測した移動方向（推測移動方向）とに基づいて決定されるベクトル（推測移動ベクトル）を用いて入力座標を補完する方法も提供する。以下では、このように推測移動ベクトルを用いて決定される座標を「速度座標」と称する。速度座標は、追従座標と比べて、実際の操作者の指の速度をより正確に反映していると考えられる。
【００６５】
上記のように、推測移動ベクトルは、推測移動量と推測移動方向とに基づいて決定されるベクトルである。ここまで説明から明らかなように、追従座標は、入力座標に対して遅れて追従するため、これらの座標の移動量は、実際の操作者の指の移動量との相関性が低い。一方、入力座標の移動方向は、入力座標のブレのために、実際の操作者の指の移動方向との相関性が低い。そこで、本実施形態では、入力座標の移動量に基づいて推測移動量を算出し、追従座標の移動方向に基づいて推測移動方向を算出している。その結果、このようにして算出される推測移動量と推測移動方向とに基づいて決定される推測移動ベクトルは、実際の操作者の指の移動量および移動方向を、より正確に反映していると考えられる。
【００６６】
以下、図１０を参照して、図３に示すような入力座標ｐ１〜ｐ４，ｐ６〜ｐ１０，ｐ１３〜ｐ１８が入力されたときの速度座標の更新方法について説明する。
【００６７】
速度座標は、入力座標が途切れることなく入力されている間は、基本的に、追従座標に一致するように更新される。したがって、速度座標ｓ８〜ｓ１０は、追従座標ｆ８〜ｆ１０にそれぞれ一致する。
【００６８】
入力座標が途切れている間は、速度座標は、追従座標から独立して、推測移動ベクトルに応じて更新される。すなわち、入力座標ｐ１１が入力されるはずのタイミングでは、その時点における推測移動ベクトルに応じて速度座標は移動する。こうして、図１０に示す速度座標ｓ１１が決定される。さらに、入力座標ｐ１２が入力されるはずのタイミングでも、その時点における推測移動ベクトルに応じて速度座標は移動する。こうして、図１０に示す速度座標ｓ１２が決定される。
【００６９】
入力座標の入力が再開されると、速度座標は、最新の追従座標へ向かって順次移動し、最終的には、追従座標に再び一致するようになる。
【００７０】
前述のように、速度座標は、入力座標や追従座標と比べて、特に入力座標が途切れている期間において、実際の操作者の指の移動量と移動方向をより正確に反映していると考えられる。したがって、例えば、ある瞬間における操作面上における操作者の指の移動速さと移動方向の両方に基づいて何らかの処理を行う場合には、入力座標や追従座標を参照するよりも速度座標を参照した方が、操作者にとっては、より良好な操作性が得られる。
【００７１】
次に、図１１〜図１３を参照して、上述した座標処理を実行する情報処理装置１４の動作について具体的に説明する。
【００７２】
図１１は、上述した座標処理を実行するときに情報処理装置１４のメインメモリ２２に格納される各種データの一例を示している。
【００７３】
座標処理プログラムＤ１０は、情報処理装置１４のプロセッサ１８に上述した座標処理を実行させるためのコンピュータプログラムである。座標処理プログラムＤ１０は、内部記憶装置２０または外部記憶装置２４等から読み出されてメインメモリ２２にロードされる。
【００７４】
入力座標Ｄ１１は、タッチパネル１２から出力される入力座標を示すデータであり、典型的には、タッチパネル１２の操作面における接触位置を表す２次元座標値である。本実施形態では、メインメモリ２２には、タッチパネル１２を通じて入力された最新の入力座標と、１つ前に入力された入力座標と、２つ前に入力された入力座標と、３つ前に入力された入力座標の、少なくとも４つの入力座標が保持される。
【００７５】
入力タッチ状態Ｄ１２は、タッチパネル１２から出力される、タッチパネル１２の操作面がタッチされている状態（以下、「タッチオン状態」または単に「オン」と称す）か、タッチされていない状態（以下、「タッチオフ状態」または単に「オフ」と称す）かを示すデータである。なお、ある種のタッチパネルでは、入力座標Ｄ１１が無効な座標値である場合に、入力タッチ状態がタッチオフ状態であると判断することができる。
【００７６】
遊び座標Ｄ１３、追従座標Ｄ１４および速度座標Ｄ１５は、前述した遊び座標、追従座標、速度座標をそれぞれ示すデータであり、典型的には、タッチパネル１２を通じて入力される入力座標Ｄ１１に基づいてリアルタイムに生成される２次元座標値である。
【００７７】
補正タッチ状態Ｄ１６は、入力タッチ状態Ｄ１２に対して前述の途切れ補正結果を反映させたものである。すなわち、入力タッチ状態Ｄ１２が一時的にタッチオフ状態となったとしても、操作者による入力操作が途切れていない（すなわち、入力座標の途切れは一時的なものであって、実際には操作者による操作面へのタッチが継続している）とみなされる場合には、補正タッチ状態Ｄ１６はタッチオン状態のまま維持される。
【００７８】
遊び半径Ｄ１７は、前述のように、遊び座標Ｄ１３を更新するために用いられる変数である。本実施形態では、遊び半径Ｄ１７は、０．０〜３０．０の範囲の値をとり得る。
【００７９】
追従割合Ｄ１８は、前述のように、追従座標Ｄ１４を更新するために用いられる変数である。本実施形態では、追従割合Ｄ１８は、４０％〜１００％の範囲の値をとり得る。
【００８０】
指度数Ｄ１９は、前述のように、指らしさの度合を示す変数である。本実施形態では、指度数Ｄ１９は、０．０〜１．０の範囲の値をとり得る。
【００８１】
推測移動量Ｄ２０は、前述のように、入力座標Ｄ１１の移動量に基づいて推測される、実際の操作者の指の移動量（単位時間当たりの移動量）である。
【００８２】
推測移動方向Ｄ２１は、前述のように、追従座標Ｄ１４の移動方向に基づいて推測される、実際の操作者の指の移動方向である。推測移動方向Ｄ２１は、典型的には２次元ベクトルで表される。
【００８３】
推測移動ベクトルＤ２２は、推測移動量Ｄ２０と推測移動方向Ｄ２１とに基づいて決定されるベクトルであり、典型的には、推測移動量Ｄ２０が示す大きさと、推測移動方向Ｄ２１が示す方向とを有する２次元ベクトルである。
【００８４】
次に、図１２および図１３のフローチャートを参照して、座標処理プログラムＤ１０に基づいて情報処理装置１４のプロセッサ１８によって実行される座標処理の流れを説明する。
【００８５】
座標処理プログラムＤ１０の実行が開始されると、まず図１２のステップＳ１０において、プロセッサ１８は、初期設定を行う。当該初期設定では、各変数に初期値を設定する処理などが行われる。例えば、指度合Ｄ１９は０．０に、遊び半径は０．０に、追従割合は１００％に設定される。
【００８６】
ステップＳ１１において、プロセッサ１８は、タッチパネル１２からの信号に基づいて、入力タッチ状態Ｄ１２がオン（タッチオン状態）かどうかを判断する。そして、入力タッチ状態Ｄ１２がオンである場合には処理はステップＳ１２に進み、そうでない場合には処理はステップＳ２２に進む。
【００８７】
ステップＳ１２において、プロセッサ１８は、タッチパネル１２からの信号に基づいて入力座標Ｄ１１を取得する。
【００８８】
ステップＳ１３において、プロセッサ１８は、指度合Ｄ１９に応じて遊び半径Ｄ１７を更新する。具体的には、指度合Ｄ１９が大きいほど（すなわち、指らしさの度合が大きいほど）、遊び半径Ｄ１７を大きくする。例えば、図１４に示すような関数を用いて、指度合Ｄ１９から遊び半径Ｄ１７を算出する。
【００８９】
ステップＳ１４において、プロセッサ１８は、指度合Ｄ１９を減衰させる。例えば、指度合Ｄ１９に０．９８を乗算する。
【００９０】
ステップＳ１５において、プロセッサ１８は、タッチオフ状態が短時間で終了したかどうかを判定する。具体的には、例えば、入力タッチ状態Ｄ１２のタッチオフ状態の連続回数（すなわち連続非接触時間）をカウントしておき、入力タッチ状態Ｄ１２がタッチオフ状態からタッチオン状態に変化した時点で、当該連続回数が所定数以下（例えば２以下）であれば、タッチオフ状態が短時間で終了したと判断する。
【００９１】
このようにタッチオフ状態が短時間で終了することは、通常の正常な入力操作では生じず、タッチパネル１２を指で操作することによって生じる入力座標の一時的な途切れが生じた可能性が高い。
【００９２】
タッチオフ状態が短時間で終了したと判定された場合には処理はステップＳ１６に進み、そうでない場合には処理はステップＳ１７に進む。
【００９３】
ステップＳ１６において、プロセッサ１８は、指度合Ｄ１９を増加させる。具体的には、例えば、指度合Ｄ１９に所定の定数（例えば０．６）を加算する。
【００９４】
ステップＳ１７において、プロセッサ１８は、タッチオン状態が２連続以上継続中かどうかを判断する。具体的には、例えば、入力タッチ状態Ｄ１２のタッチオン状態の連続回数（すなわち連続接触時間）をカウントしておき、当該連続回数が２以上かどうかを判断する。タッチオン状態が２連続以上継続中であると判定された場合には処理はステップＳ１８に進み、そうでない場合には処理はステップＳ２５に進む。
【００９５】
ステップＳ１８において、プロセッサ１８は、最新の入力座標と１つ前の入力座標に基づいて推測移動量Ｄ２０を更新する。具体的には、例えば、更新前の推測移動量Ｄ２０をＡとし、更新後の推測移動量Ｄ２０をＡ’とし、最新の入力座標と直前の入力座標との間の距離をＢとすると、Ａ’＝Ａ＋（Ｂ−Ａ）×Ｃとなる。なお、Ｃは所定の係数（例えば０．２）である。なお、他の実施形態では、最新の入力座標と１つ前の入力座標との間の距離を推測移動量Ｄ２０としてもよい。さらに他の実施形態では、最新の入力座標と１つ前の入力座標の間の距離ｄ１と、１つ前の入力座標と２つ前の入力座標の間の距離ｄ２との平均（相加平均、加重平均等）を、推測移動量Ｄ２０としてもよい。
【００９６】
ステップＳ１９において、プロセッサ１８は、タッチオン状態が４連続以上継続中かどうかを判断する。具体的には、例えば、入力タッチ状態Ｄ１２のタッチオン状態の連続回数（すなわち連続接触時間）をカウントしておき、当該連続回数が４以上かどうかを判断する。タッチオン状態が４連続以上継続中であると判定された場合には処理はステップＳ２０に進み、そうでない場合には処理は図１３のステップＳ３０に進む。
【００９７】
ステップＳ２０において、プロセッサ１８は、入力座標Ｄ１１が示す形状がジグザグ形状かどうかを判断する。具体的には、例えば、直近の４つの入力座標が示す入力軌跡の形状がジグザグ形状かどうかを判断する。例えば、図１５において、入力座標ｐａ→入力座標ｐｂ→入力座標ｐｃ→入力座標ｐｄの順番で入力座標が入力されているときに、入力座標ｐａと入力座標ｐｄを結ぶベクトルＶａｄの単位ベクトルと、入力座標ｐｂと入力座標ｐｃを結ぶベクトルＶｂｃの単位ベクトルとの内積を計算する。そして、当該内積が所定値（例えば０．８よりも小さい場合（すなわち、入力座標ｐａと入力座標ｐｄを結ぶ線分と、入力座標ｐｂと入力座標ｐｃを結ぶ線分とのなす角度が、所定角度よりも大きい場合）に、これらの４つの入力座標ｐａ〜ｐｄが示す入力軌跡の形状がジグザグ形状であると判断する。
【００９８】
通常の正常な入力操作では、直近の４つの入力座標が示す入力軌跡の形状がジグザグ形状となることはほとんどないため、このようなジグザグ形状は、タッチパネル１２を指で操作することによって生じた入力座標のブレによるものである可能性が高い。
【００９９】
なお、接触位置がほとんど動いていない状態における接触位置のわずかな変動によって入力軌跡がジグザグ形状であると判断されてしまうのを防止するために、例えば、上記ベクトルＶａｄおよび上記ベクトルＶｂｃの少なくとも一方の大きさが所定の閾値以下である場合には、ジグザグ形状ではないと判断するようにしてもよい。
【０１００】
入力座標Ｄ１１が示す形状がジグザグ形状であると判断された場合には処理はステップＳ２１に進み、そうでない場合には処理は図１３のステップＳ３０に進む。
【０１０１】
ステップＳ２１において、プロセッサ１８は、指度合Ｄ１９を増加させる。具体的には、例えば、指度合Ｄ１９に所定の定数（例えば０．６）を加算する。そして、処理は図１３のステップＳ３０に進む。
【０１０２】
ステップＳ２２において、プロセッサ１８は、遊び半径Ｄ１７を小さくする。例えば、遊び半径Ｄ１７から３．０を減算する。
【０１０３】
ステップＳ２３において、プロセッサ１８は、タッチオン状態が短時間で終了したかどうかを判定する。具体的には、例えば、入力タッチ状態Ｄ１２のタッチオン状態の連続回数（すなわち連続接触時間）をカウントしておき、入力タッチ状態Ｄ１２がタッチオン状態からタッチオフ状態に変化した時点で、当該連続回数が所定数以下（例えば２以下）であれば、タッチオン状態が短時間で終了したと判断する。
【０１０４】
このようにタッチオン状態が短時間で終了することは、通常の正常な入力操作では生じず、タッチパネル１２を指で操作することによって生じる入力座標の一時的な途切れが生じた可能性が高い。
【０１０５】
タッチオン状態が短時間で終了したと判定された場合には処理はステップＳ２４に進み、そうでない場合には処理はステップＳ２５に進む。
【０１０６】
ステップＳ２４において、プロセッサ１８は、指度合Ｄ１９を増加させる。具体的には、例えば、指度合Ｄ１９に所定の定数（例えば０．６）を加算する。
【０１０７】
ステップＳ２５において、プロセッサ１８は、推測移動量Ｄ２０を減衰させる。具体的には、例えば、推測移動量Ｄ２０に０．９８を乗算する。そして、処理は図１３のステップＳ３０に進む。
【０１０８】
図１３のステップＳ３０において、プロセッサ１８は、指度合Ｄ１９に応じて追従割合Ｄ１８を更新する。具体的には、指度合Ｄ１９が大きいほど（すなわち、指らしさの度合が大きいほど）、追従割合Ｄ１８を小さくする。例えば、図１６に示すような関数を用いて、指度合Ｄ１９から追従割合Ｄ１８を算出する。
【０１０９】
ステップＳ３１において、プロセッサ１８は、補正タッチ状態Ｄ１６がオフ（タッチオフ状態）で、且つ、入力タッチ状態Ｄ１２がオン（タッチオン状態）であるかどうかを判断する。補正タッチ状態Ｄ１６がオフで、且つ、入力タッチ状態Ｄ１２がオンであるということは、操作者が指またはペンを操作面に最初に接触させたか、もしくは、操作者が指またはペンを操作面から意図的に離した後に、新たな入力を行うために、操作面に再び接触させたことを意味する。ステップＳ３１の判断結果が肯定的である場合には処理はステップＳ３２に進み、そうでない場合には処理はステップＳ３４に進む。
【０１１０】
ステップＳ３２において、プロセッサ１８は、遊び座標Ｄ１３、追従座標Ｄ１４および速度座標Ｄ１５を、最新の入力座標Ｄ１１と同じ座標に更新する。
【０１１１】
ステップＳ３３において、プロセッサ１８は、推測移動量Ｄ２０、推測移動方向Ｄ２１および推測移動ベクトルＤ２２を初期化する。具体的には、推測移動量Ｄ２０を０に初期化し、推測移動方向Ｄ２１および推測移動ベクトルＤ２２を零ベクトルに初期化する。
【０１１２】
ステップＳ３４において、プロセッサ１８は、遊び半径Ｄ１７に応じて遊び座標Ｄ１３を更新する。具体的には、最新の入力座標と、遊び座標Ｄ１３との間の距離が遊び半径Ｄ１７よりも大きい場合には、最新の入力座標と、遊び座標Ｄ１３との間の距離が遊び半径Ｄ１７と一致するように、最新の入力座標へ向かって移動するように遊び座標Ｄ１３を変更する。なお、最新の入力座標と遊び座標Ｄ１３との間の距離が遊び半径Ｄ１７以下の場合には、遊び座標Ｄ１３の値は変更しない。
【０１１３】
ステップＳ３５において、プロセッサ１８は、追従割合Ｄ１８に応じて追従座標Ｄ１４を更新する。具体的には、ステップＳ３４において更新された遊び座標Ｄ１３と、追従座標Ｄ１４との間の距離に、追従割合Ｄ１８を乗算した結果の距離だけ、追従座標Ｄ１４が遊び座標Ｄ１３へ向かって移動するように、追従座標Ｄ１４を更新する。
【０１１４】
ステップＳ３６において、プロセッサ１８は、最新の追従座標と１つ前の追従座標に基づいて推測移動方向Ｄ２１を更新する。具体的には、例えば、更新前の推測移動方向Ｄ２１をＶとし、更新後の推測移動方向Ｄ２１をＶ’とし、１つ前の追従座標と最新の追従座標を結ぶベクトルをｖとすると、Ｖ’＝Ｖ＋（ｖ−Ｖ）×Ｄとなる。なお、Ｄは所定の係数（例えば０．３）である。なお、他の実施形態では、１つ前の追従座標と最新の追従座標を結ぶベクトルを推測移動方向Ｄ２１としてもよい。さらに他の実施形態では、１つ前の追従座標と最新の追従座標を結ぶベクトルｖ１と、２つ前の追従座標と１つ前の追従座標を結ぶベクトルｖ２との平均（相加平均、加重平均等）を、推測移動方向Ｄ２１としてもよい。
【０１１５】
ステップＳ３７において、プロセッサ１８は、入力タッチ状態Ｄ１２がオンかどうかを判断する。そして、入力タッチ状態Ｄ１２がオンである場合には処理はステップＳ３９に進み、そうでない場合には処理はステップＳ３８に進む。
【０１１６】
ステップＳ３８において、プロセッサ１８は、追従座標が所定距離以上移動したかどうかを判断する。具体的には、例えば、最新の追従座標と１つ前の追従座標との距離が、所定距離（例えば０．０１）以上かどうかを判断する。追従座標が所定距離以上移動したと判断された場合には処理はステップＳ３９に進み、そうでない場合には処理はステップＳ４１に進む。なお、追従座標が所定距離以上移動したかどうかを判断する代わりに、追従座標が停止したかどうか（言い換えれば、追従座標が目標座標に到達したかどうか）を判断してもよい。
【０１１７】
ステップＳ３９において、プロセッサ１８は、補正タッチ状態Ｄ１６をオン（タッチオン状態）に更新する。これにより、入力タッチ状態Ｄ１２がオフであっても、追従座標が移動している間（ほんの僅かな速さでしか移動していない場合は除かれる）は、操作者による入力操作が途切れていない（すなわち、入力座標の途切れは一時的なものであって、実際には操作者による操作面へのタッチが継続している）とみなされる。
【０１１８】
ステップＳ４０において、プロセッサ１８は、推測移動量Ｄ２０と推測移動方向Ｄ２１に基づいて、推測移動ベクトルＤ２２を更新する。
【０１１９】
ステップＳ４１において、プロセッサ１８は、補正タッチ状態Ｄ１６をオフ（タッチオン状態）に更新する。
【０１２０】
ステップＳ４２において、プロセッサ１８は、入力タッチ状態Ｄ１２がオンかどうかを判断する。そして、入力タッチ状態Ｄ１２がオンである場合には処理はステップＳ４３に進み、そうでない場合には処理はステップＳ４４に進む。
【０１２１】
ステップＳ４３において、プロセッサ１８は、最新の追従座標Ｄ１４に応じて速度座標Ｄ１５を更新する。具体的には、例えば、入力タッチ状態Ｄ１２のタッチオン状態の連続回数をカウントしておき、当該連続回数をＮ（ただし、上限は１０とする）とし、最新の追従座標をＦとし、更新前の速度座標をＳとし、更新後の速度座標をＳ’とすると、Ｓ’＝Ｓ＋（Ｆ−Ｓ）×Ｎ／１０となる。すなわち、タッチオン状態の連続回数が０〜９であるときは、速度座標Ｄ１５は追従座標Ｄ１４に一致すべく接近し、タッチオン状態の連続回数が１０以上になると、速度座標Ｄ１５は追従座標Ｄ１４に常に一致する。
【０１２２】
ステップＳ４４において、プロセッサ１８は、推測移動ベクトルＤ２２に応じて速度座標Ｄ１５を更新する。具体的には、推測移動ベクトルＤ２２が示す移動方向へ向かって、推測移動ベクトルＤ２２が示す移動量だけ、速度座標が移動するように、速度座標Ｄ１５を更新する。
【０１２３】
ステップＳ４３の処理またはステップＳ４４の処理が終了すると、処理は図１２のステップＳ１１に戻り、以上のような処理を所定の周期（例えばタッチパネル１２からの入力座標データの出力周期と同じ周期）で繰り返す。
【０１２４】
上記のようにして、タッチパネル１２から出力される入力座標データに応じてリアルタイムに更新される追従座標Ｄ１４および速度座標Ｄ１５は、入力座標のブレや途切れを補正した結果の座標（補正後座標）として、任意の用途に利用することができる。なお、用途に応じて追従座標Ｄ１４および速度座標Ｄ１５のいずれか一方のみを利用してもよい。追従座標Ｄ１４は、速度座標Ｄ１５と比べて、操作者が描いた軌跡の形状をより正確に反映する傾向があるので、例えば、操作者が描いた軌跡の形状を表示装置１６の画面に表示するような用途に好適である。一方、速度座標Ｄ１５は、追従座標Ｄ１４と比べて、指またはペンの移動方向および移動速度をより正確に反映する傾向があるので、例えば、表示装置１６の画面に表示されたキャラクタ、アイコン、ウィンドウ等のオブジェクトを、指またはペンの移動方向および移動速度に応じて移動させるような用途に好適である。
【０１２５】
なお、追従座標Ｄ１４や速度座標Ｄ１５と同様に、タッチパネル１２から出力される入力座標データに応じてリアルタイムに更新される他のデータ（例えば、遊び座標Ｄ１３、補正タッチ状態Ｄ１６、指度合Ｄ１９、推測移動ベクトルＤ２２など）も、任意の用途に利用することができる。例えば、表示装置１６の画面上にタッチパネル１２が設けられている場合に、画面に表示されるアイコンやメニューボタンや手書き入力ボックス等の大きさを、指度合Ｄ１９に応じて変更してもよい。例えば、指度合Ｄ１９が大きいほど、それらの大きさを大きくすることによって、指で操作しているときには操作性が向上し、ペンで操作しているときには画面に表示可能な情報量を増やして、限られた表示領域を有効利用することができる。また、推測移動ベクトルＤ２２は、速度座標Ｄ１５と同様に、表示装置１６の画面に表示されたキャラクタ、アイコン、ウィンドウ等のオブジェクトを、指またはペンの移動方向および移動速度に応じて移動させるような用途に好適である。
【０１２６】
なお、上記実施形態は、あくまでも一実施形態に過ぎず、種々の変形例が考えられる。
【０１２７】
例えば、上記実施形態では、遊び座標Ｄ１３を目標座標として追従するように、追従座標Ｄ１４が更新されるが、他の実施形態では、図１７に示すように、遊び座標Ｄ１３を用いずに、入力座標Ｄ１１を目標座標として追従するように、追従座標Ｄ１４が更新されてもよい。この場合でも、図１７において、追従座標ｆ１〜ｆ６によって示される入力軌跡は、入力座標ｐ１〜ｐ６によって示される入力軌跡と比べて、より滑らかになっており、座標のブレが抑えられている。
【０１２８】
また、上記実施形態では、追従座標Ｄ１４を利用して座標のブレを補正しているが、他の実施形態では、遊び座標Ｄ１３のみを利用して座標のブレを補正してもよいし、さらに他の補正手法を採用して座標のブレを補正してもよい。例えば、図１８に示すように、直近の３つの入力座標を平均することによって得られる平均座標を利用して、座標のブレを補正してもよい。例えば、図１８の平均座標ａ３は、入力座標ｐ１〜ｐ３を平均した座標であり、平均座標ａ４は、入力座標ｐ２〜ｐ４を平均した座標である。この場合、平均すべき入力座標の個数を変更することによって、座標のブレを補正する度合い（すなわち、接触位置の変動に対する応答性）を変更することができる。よって、例えば、指度合Ｄ１９が０のときには平均すべき入力座標の個数を１とし、指度合Ｄ１９が大きいほど、平均すべき入力座標の個数を大きくすることによって、上記実施形態と似たような効果が得られる。
【０１２９】
また、上記実施形態では、操作者による操作面へのタッチが継続しているかどうかを追従座標の移動量（単位時間当たりの移動量）に基づいて判断して、座標の途切れを補正（すなわち、本来入力されるはずの座標を補完）しているが、他の実施形態では、入力座標が途切れてからの経過時間に基づいて、操作者による操作面へのタッチが継続しているかどうかを判断してもよい。例えば、入力座標が途切れてからの経過時間が、所定の基準時間を超えるまでの間は、操作者による操作面へのタッチが継続していると判断し、基準時間を超えた時点で、操作者による操作面へのタッチが終了したと判断してもよい。また、当該基準時間を、指度合Ｄ１９または推測移動量Ｄ２０に応じてリアルタイムに変更するようにしてもよい。例えば、指度合Ｄ１９が０のときには基準時間を０とし、指度合Ｄ１９が大きいほど基準時間を長くすることによって、上記実施形態と似たような効果が得られる。また、操作者が指を素早く移動させるほど、座標の途切れは発生しやすいので、例えば、推測移動量Ｄ２０（すなわち、実際の操作者の指の移動量を推測した値）が０のときには基準時間を０とし、推測移動量Ｄ２０が大きいほど基準時間を長くすることによっても、上記実施形態と似たような効果が得られる。
【０１３０】
また、上記実施形態では、指度合Ｄ１９を用いることによって、座標の補正度合を調整しているが、他の実施形態では、操作者が指で操作しているかペンで操作しているかを二者択一で判定して、その結果に応じて座標の補正度合を２段階に変更してもよい。例えば、操作者が指で操作していると判定された場合には座標の補正を行い、操作者がペンで操作していると判定された場合には座標の補正を行わないようにしてもよい。
【０１３１】
また、上記実施形態では、入力座標によって示される入力軌跡の形状や、連続接触時間や、連続非接触時間に基づいて、指度合Ｄ１９を更新しているが、指度合Ｄ１９の更新方法はこれに限定されない。例えば、操作面に対する接触面積を検出することが可能なタッチパネルを利用する場合には、検出される接触面積に応じて指度合Ｄ１９をリアルタイムに更新してもよい。例えば、検出される接触面積が大きいほど、指度合Ｄ１９を大きくしてもよい。
【０１３２】
また、上記実施形態では、タッチパネル１２から出力される入力座標データの特徴に基づいて、操作者が指で操作しているかペンで操作しているかを判断しているが、他の実施形態では、操作者が指で操作するのかペンで操作するのかを、操作者が予め任意の入力装置を用いて指定するようにしてもよい。そして、指での操作が指定された場合と、ペンでの操作が指定された場合とで、座標の補正度合を２段階に変更してもよい。
【０１３３】
また、図１に示すような座標処理システム１０に替えて、タッチパネル１２を有する情報処理装置（例えば、タッチパネルを搭載した携帯ゲーム機、シンクライアント、可搬型パソコン、モニタなど）を利用してもよい。
【０１３４】
また、感圧式のタッチパネル１２に替えて、他の方式（静電式など）のタッチパネルを利用してもよい。ただし、例えば静電式のタッチパネルでは、指で操作したときの入力座標のブレや途切れは、感圧式のタッチパネルほど顕著には現れない。なお、静電式の座標入力装置を利用する場合には、操作面に対する接触面積に基づいて、操作者が指で操作しているかペンで操作しているかを判定するようにしてもよい。
【０１３５】
また、タッチパネル１２に替えて、タッチパッドなど、タッチパネルと同等の機能を有する任意の座標入力装置（すなわち、操作面に対する指またはペンの接触位置を検出可能な座標入力装置）を利用してもよい。
【０１３６】
また、上記実施形態では、図１２および図１３に示した複数の処理を１つのコンピュータ（プロセッサ１８）が実行しているが、他の実施形態では、これらの複数の処理を複数のコンピュータが分担して実行してもよい。さらに他の実施形態では、これらの複数の処理の一部または全部を専用回路によって実現してもよい。
【０１３７】
また、上記実施形態では、図１２および図１３に示した複数の処理を１台の情報処理装置１４において実行しているが、他の実施形態では、これらの複数の処理を複数の情報処理装置が分担して実行してもよい。
【０１３８】
また、上記実施形態では、内部記憶装置２０または外部記憶装置２４からメインメモリ２２へ座標処理プログラムＤ１０がロードされているが、他の実施形態では、他の情報処理装置（例えばサーバ装置）から情報処理装置１４へ座標処理プログラムＤ１０が供給されてもよい。
【符号の説明】
【０１３９】
１０    座標処理システム
１２    タッチパネル
【図１】
0005855934.tif 000002
【図２】
0005855934.tif 000003
【図３】
0005855934.tif 000004
【図４】
0005855934.tif 000005
【図５】
0005855934.tif 000006
【図６】
0005855934.tif 000007
【図７】
0005855934.tif 000008
【図８】
0005855934.tif 000009
【図９】
0005855934.tif 000010
【図１０】
0005855934.tif 000011
【図１１】
0005855934.tif 000012
【図１２】
0005855934.tif 000013
【図１３】
0005855934.tif 000014
【図１４】
0005855934.tif 000015
【図１５】
0005855934.tif 000016
【図１６】
0005855934.tif 000017
【図１７】
0005855934.tif 000018
【図１８】
0005855934.tif 000019