(57)【要約】    【構成】  情報処理装置１０はタッチパネル２０およびディスプレイ２２を含み、ディスプレイにカーソル（１１０）が表示されていない状態で、タッチパネルに対するスライドを検出したとき、スライドに基づいてカーソルの表示位置を算出する。カーソルの表示位置は、スライドによるタッチ位置の移動量および移動方向に基づいて算出され、タッチ位置に対して設定される。したがって、カーソルは、タッチ位置が移動されると、当該タッチ位置との位置関係を維持して移動表示される。また、タッチ位置が検出されなくなると、その直前にカーソルで指示されていたディスプレイ上の位置に割り当てられた処理が実行される。    【効果】  ユーザのスライドによってカーソルの表示位置を決定するので、カーソルの決定の自由度が高くなり、操作性を向上させることができる。【選択図】  図１
2018060258.tif 000002
【特許請求の範囲】
【請求項１】
表示部と、
タッチされた前記表示部上のタッチ位置を検出する検出部と、
前記検出部の検出結果に基づいて少なくとも前記表示部の表示を制御する制御部を備え、
前記制御部は、
前記タッチ検出部によって検出されるタッチ位置の移動に基づいて算出した表示位置に当該カーソルを表示し、
前記表示部にカーソルが表示されている状態で、前記タッチ検出部によってタッチ位置が検出されなくなると、前記カーソルによって指示された位置に割り当てられた処理を実行し、
前記表示部にカーソルが表示されている状態で、前記タッチ検出部によって検出されるタッチ位置が移動するとき、当該カーソルを当該表示部に表示したときの位置関係を維持しながら当該タッチ位置の移動に従って当該カーソルを移動表示する、情報処理装置。
【請求項２】
前記制御部は、前記タッチ位置の移動量および移動方向に応じて前記カーソルを前記表示部に表示する表示位置を算出するカーソル位置算出部をさらに含む、請求項１記載の情報処理装置。
【請求項３】
前記カーソル位置算出部は、前記検出部によって検出されたタッチ位置の移動の開始位置と移動の終了位置に基づいて、当該タッチ位置に対する前記表示位置のずらし量およびずらし方向を算出する、請求項２記載の情報処理装置。
【請求項４】
前記ずらし量は前記移動量よりも大きく設定される、請求項３記載の情報処理装置。
【請求項５】
表示部と、タッチされた前記表示部上のタッチ位置を検出する検出部を備える情報処理装置によって実行させる情報処理プログラムであって、
前記情報処理装置のプロセッサに、
前記検出部の検出結果に基づいて少なくとも前記表示部の表示を制御する制御ステップを実行させ、
前記制御ステップは、
前記タッチ検出部によって検出されるタッチ位置の移動に基づいて算出した表示位置に当該カーソルを表示し、
前記表示部にカーソルが表示されている状態で、前記タッチ検出部によってタッチ位置が検出されなくなると、前記カーソルによって指示された位置に割り当てられた処理を実行し、
前記表示部にカーソルが表示されている状態で、前記タッチ検出部によって検出されるタッチ位置が移動するとき、当該カーソルを当該表示部に表示したときの位置関係を維持しながら当該タッチ位置の移動に従って当該カーソルを移動表示する、情報処理プログラム。
【請求項６】
表示部と、タッチされた前記表示部上のタッチ位置を検出する検出部を備える情報処理装置によって実行させる情報処理方法であって、
（ａ）前記検出部の検出結果に基づいて少なくとも前記表示部の表示を制御するステップを含み、
前記ステップ（ａ）は、
（ａ−１）前記タッチ検出部によって検出されるタッチ位置の移動に基づいて算出した表示位置に当該カーソルを表示し、
（ａ−２）前記表示部にカーソルが表示されている状態で、前記タッチ検出部によってタッチ位置が検出されなくなると、前記カーソルによって指示された位置に割り当てられた処理を実行し、
（ａ−３）前記表示部にカーソルが表示されている状態で、前記タッチ検出部によって検出されるタッチ位置が移動するとき、前記ステップ（ａ−１）で当該カーソルを当該表示部に表示したときの位置関係を維持しながら当該タッチ位置の移動に従って当該カーソルを移動表示する、情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、情報処理装置、情報処理プログラムおよび情報処理方法に関し、特にたとえば、タッチされた表示部上の位置を検出する検出部を備える、情報処理装置、情報処理プログラムおよび情報処理方法に関する。
【背景技術】
【０００２】
この種の情報処理装置の一例が特許文献１に開示される。この特許文献１に開示されるタッチパネル式入力装置を備えた情報処理装置は、指によるタッチ位置から所定方向に所定距離隔てた位置に、ポインタ（矢印）を表示する。
【０００３】
また、この種の情報処理装置の他の例が特許文献２に開示される。この特許文献２に開示されるタッチパネル入力装置付表示装置では、現在の指接触位置よりカーソル表示位置を計算に用いる差分はある決められた値であり、指を接触させた位置の左上にカーソルが表示されるような値に設定されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平６−５１９０８号公報
【特許文献２】特開２０００−２６７８０８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、特許文献１および特許文献２に開示された技術では、いずれも、カーソルが表示される位置は、現在の指のタッチ位置に対して固定されているため、タッチ位置に対する自由度が無い。したがって、ユーザにとっては操作し難い可能性がある。
【０００６】
それゆえに、この発明の主たる目的は、新規な、情報処理装置、情報処理プログラムおよび情報処理方法を提供することである。
【０００７】
この発明の他の目的は、操作性を向上できる、情報処理装置、情報処理プログラムおよび情報処理方法を提供することである。
【課題を解決するための手段】
【０００８】
第１の発明は、表示部と、タッチされた表示部上のタッチ位置を検出する検出部と、検出部の検出結果に基づいて少なくとも表示部の表示を制御する制御部を備える、情報処理装置である。この情報処理装置では、制御部は、タッチ検出部によって検出されるタッチ位置の移動に基づいて算出した表示位置に当該カーソルを表示する。また、制御部は、表示部にカーソルが表示されている状態で、タッチ検出部によってタッチ位置が検出されなくなると、カーソルによって指示された位置に割り当てられた処理を実行する。さらに、制御部は、表示部にカーソルが表示されている状態で、タッチ検出部によって検出されるタッチ位置が移動するとき、当該カーソルを当該表示部に表示したときの位置関係を維持しながら当該タッチ位置の移動に従って当該カーソルを移動表示する。
【０００９】
第１の発明によれば、タッチ位置を移動させることにより決定された表示位置にカーソルを表示させることができるので、タッチ位置に対するカーソルの表示位置の自由度を高くすることができる。つまり、操作性を向上させることができる。
【００１０】
第２の発明は、第１の発明に従属し、制御部は、タッチ位置の移動量および移動方向に応じてカーソルを表示部に表示する表示位置を算出するカーソル位置算出部をさらに含む。
【００１１】
第２の発明によれば、タッチ位置の移動量および移動方向に応じてタッチ位置に対するカーソルの表示位置が算出されるので、カーソルの表示位置の決定が簡単である。
【００１２】
第３の発明は、第２の発明に従属し、カーソル位置算出部は、検出部によって検出されたタッチ位置の移動の開始位置と移動の終了位置に基づいて、当該タッチ位置に対する表示位置のずらし量およびずらし方向を算出する。
【００１３】
第３の発明においても、第２の発明と同様に、カーソルの表示位置の決定が簡単である。
【００１４】
第４の発明は、第３の発明に従属し、ずらし量は移動量よりも大きく設定される。
【００１５】
第４の発明によれば、移動量が小さくてもずらし量を大きく設定するので、カーソルがタッチした手指で隠れるのを防止することができる。
【００１６】
第５の発明は、表示部と、タッチされた表示部上のタッチ位置を検出する検出部を備える情報処理装置によって実行させる情報処理プログラムであって、情報処理装置のプロセッサに、検出部の検出結果に基づいて少なくとも表示部の表示を制御する制御ステップを実行させ、制御ステップは、タッチ検出部によって検出されるタッチ位置の移動に基づいて算出した表示位置に当該カーソルを表示し、表示部にカーソルが表示されている状態で、タッチ検出部によってタッチ位置が検出されなくなると、カーソルによって指示された位置に割り当てられた処理を実行し、表示部にカーソルが表示されている状態で、タッチ検出部によって検出されるタッチ位置が移動するとき、当該カーソルを当該表示部に表示したときの位置関係を維持しながら当該タッチ位置の移動に従って当該カーソルを移動表示する、情報処理プログラムである。
【００１７】
第６の発明は、表示部と、タッチされた表示部上のタッチ位置を検出する検出部を備える情報処理装置によって実行させる情報処理方法であって、（ａ）検出部の検出結果に基づいて少なくとも表示部の表示を制御するステップを含み、ステップ（ａ）は、（ａ−１）タッチ検出部によって検出されるタッチ位置の移動に基づいて算出した表示位置に当該カーソルを表示し、（ａ−２）表示部にカーソルが表示されている状態で、タッチ検出部によってタッチ位置が検出されなくなると、カーソルによって指示された位置に割り当てられた処理を実行し、（ａ−３）表示部にカーソルが表示されている状態で、タッチ検出部によって検出されるタッチ位置が移動するとき、ステップ（ａ−１）で当該カーソルを当該表示部に表示したときの位置関係を維持しながら当該タッチ位置の移動に従って当該カーソルを移動表示する、情報処理方法である。
【００１８】
第５および第６の発明においても、第１発明と同様に、操作性を向上させることができる。
【発明の効果】
【００１９】
この発明によれば、ユーザの操作に基づいて決定した表示位置にカーソルを表示させるので、カーソルの表示位置の決定の自由度を高くすることができる。したがって、操作性を向上させることができる。
【図面の簡単な説明】
【００２０】
【図１】図１はこの発明の第１実施例である情報処理装置の電気的な構成を示すブロック図である。
【図２】図２は図１に示すディスプレイに表示されるタッチ画面の一例を示す図解図である。
【図３】図３は図１に示すタッチパネルを用いてディスプレイ上にカーソルを表示する表示位置を決定する方法を説明するための図解図である。
【図４】図４は第１実施例の方法により決定した表示位置にカーソルを表示した場合のタッチ画面の一例を示す図解図である。
【図５】図５は図１に示すＲＡＭのメモリマップの一例を示す図解図である。
【図６】図６は図１に示すＣＰＵの情報処理の一例の一部を示すフロー図である。
【図７】図７は図１に示すＣＰＵの情報処理の他の一部であって、図６に後続するフロー図である。
【図８】図８は図１に示すＣＰＵの情報処理のその他の一部であって、図７に後続するフロー図である。
【図９】図９は第３実施例のＣＰＵの情報処理の一部を示すフロー図である。
【図１０】図１０は第４実施例のＣＰＵの情報処理の一部を示すフロー図である。
【発明を実施するための形態】
【００２１】
［第１実施例］
図１を参照して、この発明の第１実施例である情報処理装置１０はＣＰＵ１２を含む。ＣＰＵ１２には、バス３０を介して、ＲＡＭ１４、タッチパネル制御回路１６、描画制御回路１８およびＨＤＤ（ハードディスクドライブ）２４が接続される。また、タッチパネル制御回路１６にはタッチパネル２０が接続され、描画制御回路１８にはディスプレイ２２が接続される。
【００２２】
この第１実施例の情報処理装置１０は、タブレット端末およびスマートフォンのような携帯型（小型）の情報機器ないし電子機器に適用される。ただし、ＰＣ、電子机（デジタルテーブル）、電子黒板など、比較的にディスプレイ２２（表示部）の大きい情報機器ないし電子機器にも適用可能である。
【００２３】
また、この第１実施例では、入力手段の一例として、タッチパネル２０が用いられる場合について説明するが、タッチパネル２０に代えて、タッチパッドを用いることもできる。また、情報処理装置１０には、他の入力手段として、操作パネルのようなハードウェアの操作ボタンが設けられたり、ハードウェアのキーボードが接続されたりすることがある。
【００２４】
図１に戻って、ＣＰＵ１２は、情報処理装置１０の全体的な制御を司る。ＲＡＭ１４は、ＣＰＵ１２のワーク領域およびバッファ領域として用いられる。
【００２５】
タッチパネル制御回路１６は、タッチパネル２０に必要な電圧などを付与するとともに、タッチパネル２０のタッチ有効範囲内でのタッチ操作（タッチ入力）を検出して、そのタッチ入力の位置（タッチ位置）を示すタッチ座標データをＣＰＵ１２に出力する。
【００２６】
タッチパネル２０を用いた操作（入力）としては、タップ（短押し）、スライド（ドラッグ）、フリック、ロングタップ（長押し）などがあり、この第１実施例では、これらを「タッチ操作」または「タッチ入力」のように総称する。また、タッチパネル２０をタッチしていない状態からタッチしている状態に変化することをタッチオン（ペンダウン）と言い、タッチパネル２０をタッチしている状態からタッチしていない状態に変化することをタッチオフ（ペンアップ）と言う。継続的なタッチ入力つまりスライドやフリックによる入力に対しては、タッチパネル２０は、現在のタッチ位置に対応するタッチ座標データを所定周期よりも短い周期で出力する。たとえば、所定周期は、１〜数フレームであり、１フレームは１／３０秒、１／６０秒または１／１２０秒である。
【００２７】
タッチパネル２０は、汎用のタッチパネルであり、静電容量方式、電磁誘導方式、赤外線方式など、任意の方式のものを用いることができる。この第１実施例では、タッチパネル２０としては、静電容量方式のタッチパネルがディスプレイ２２の表示面上に設けられる。
【００２８】
この第１実施例では、ユーザは、手指でタッチパネル２０を操作する。なお、この第１実施例のタッチパネル２０は汎用のタッチパネルであるため、専用のペンで操作することもできる。また、この第１実施例のタッチパネル２０は、マルチタッチのタッチパネルであり、複数のタッチ入力を同時に検出することができる。したがって、タッチパネル２０は、同時に、複数のタッチ入力を検出すると、各タッチ入力に対応するタッチ位置のそれぞれについてのタッチ座標データをＣＰＵ１２に出力する。
【００２９】
描画制御回路１８は、ＧＰＵおよびＶＲＡＭなどを含んでおり、ＣＰＵ１２の指示の下、ＧＰＵは、ＲＡＭ１４に記憶された画像データ（後述する画像生成データ３０４ｂ：図５参照）を用いてディスプレイ２２に表示するための表示画像データをＶＲＡＭに生成し、生成した表示画像データをディスプレイ２２に出力する。ディスプレイ２２としては、たとえばＬＣＤやＥＬ（Electro-Luminescence）ディスプレイなどを用いることができる。
【００３０】
ＨＤＤ２４は、不揮発性のメモリであり、情報処理装置１０のオペレーティングシステムや各種のアプリケーションソフトを記憶したり、各種のデータを記憶したりする。この第１実施例では、ＨＤＤ２４が情報処理装置１０に内蔵される場合について示してあるが、ＨＤＤ２４は情報処理装置１０の外部に通信可能に設けてもよい。また、ＨＤＤ２４に代えて、または、ＨＤＤ２４とともに、ＥＥＰＲＯＭまたはフラッシュメモリのような他の不揮発性の記憶媒体を用いることもできる。
【００３１】
図２は図１に示すディスプレイ２２に表示されるタッチ画面１００の一例を示す図解図である。たとえば、タッチ画面１００は、ブラウザ機能によって表示されたウェブページの表示画面、電子メール機能によって表示された受信メールの表示画面または送信メールの作成画面および情報処理装置１０が備える他のアプリケーションの実行画面などの各種の表示画面である。一例として、図２に示すタッチ画面１００では、文字列が表示される場合を示すが、これに限定される必要はない。文字列のみならず、画像（写真）が表示されたり、文字列と画像を含むページが表示されたりする。
【００３２】
このようなタッチ画面１００では、文字を入力したり、削除したり、コピーしたり、貼り付けたりする編集作業を行うことがあり、また、アイコンないしボタンまたはＵＲＬのような所定のオブジェクトをクリックしたりすることもある。このため、編集する位置または所定のオブジェクトを指示する必要があるため、ディスプレイ２２には、カーソル１１０がタッチ画面１００の前面に表示されるのが一般的である。ただし、カーソル１１０は、マウスポインタなどとも呼ばれ、画面上の位置などを指示するための画像を意味する。また、この第１実施例では、カーソル１１０は、人差指を延ばして他の指を曲げた状態の右手の画像を示してあるが、これは一例であり、限定される必要はない。
【００３３】
また、図２に示すように、カーソル１１０は手指でタッチした位置（タッチ位置）からずらして表示され、カーソル１１０がタッチした手指で隠れないようにする技術も公知である。
【００３４】
しかし、公知の技術では、タッチ位置に対するカーソル１１０の表示位置のずらし量およびずらし方向は固定であり、タッチ位置に対するカーソル１１０の表示位置の自由度が無い。したがって、ユーザにとっては操作し難い可能性がある。たとえば、タッチ位置に対して左側（左上など）に所定量ずらした位置にカーソル１１０を表示する場合には、左利きのユーザにとっては操作し難いことがあると考えられる。
【００３５】
したがって、この第１実施例では、ユーザがタッチ位置に対するカーソル１１０のずらし量およびずらし方向を任意に設定できるようにしてある。
【００３６】
この第１実施例では、ずらし量はスライドにより移動した量（移動量）に応じて決定され、ずらし方向はスライドの方向で決定される。具体的には、ユーザが指でタッチオンした後に、スライドし、スライドを停止している時間が所定時間（たとえば、３秒）を超えると、タッチオンした位置（スライドの開始位置）からスライドを停止した位置（スライドの終了位置）までの距離およびスライドの方向に応じて、タッチ位置に対するカーソル１１０のずらし量およびずらし方向が決定される。つまり、カーソル１１０が表示されていない状態でスライドされたときのタッチ位置の移動量および移動方向に基づいてカーソル１１０の表示位置が決定される。
【００３７】
図３はカーソル１１０のずらし量およびずらし方向を決定する方法を説明するための図解図である。図３に示すように、ディスプレイ２２の表示面には２次元座標系が設定され、たとえば、横方向がＸ軸方向であり、縦方向がＹ軸方向である。また、たとえば、ディスプレイ２２の表示面の左上の頂点が原点（図示せず）に設定され、右方向がＸ軸方向のプラス方向に設定され、下方向がＹ軸方向のプラス方向に設定される。ただし、これは一例であり、限定されるべきでない。
【００３８】
図３に示す例では、スライドの開始位置すなわちタッチオンした位置を点Ｐ０で示し、この点Ｐ０から左斜め下方にスライドし、スライドの終了位置を点Ｐ１で示す。たとえば、点Ｐ０の２次元座標を（Ｘ０，Ｙ０）とし、点Ｐ１の２次元座標を（Ｘ１，Ｙ１）とすると、スライドの移動量すなわちＸ軸方向の差分ｄＸＰおよびＹ軸方向の差分ｄＹＰは数１で示される。
【００３９】
［数１］
ｄＸＰ＝Ｘ１−Ｘ０
ｄＹＰ＝Ｙ１−Ｙ０
また、タッチ位置に対するカーソル１１０のずらし量およびずらし方向は、数２に従って算出される。ただし、図３に示す点Ｃは、カーソル１１０を表示する場合の初期位置であり、この第１実施例では、カーソル１１０のずらし量およびずらし方向を決定する場合に、タッチ位置の変化（スライド）を停止した位置（ここでは、点Ｐ１）に対して設定される。
【００４０】
また、タッチ位置に対するカーソル１１０のずらし量のＸ成分ｄＸＰとＹ成分ｄＹＰとを算出するため、ずらし方向はずらし量のＸ成分ｄＸＰおよびＹ成分ｄＹＰとの符号で決定される。したがって、以下では、ずらし量およびずらし方向を、まとめて「ずらし量」ということがある。この第１実施例では、ずらし量のＸ成分はｄＸＣであり、ずらし量のＹ成分はｄＹＣである。
【００４１】
ただし、ずらし量のＸ成分ｄＸＰおよびＹ成分ｄＹＰの符号が（＋，＋）であれは、ずらし方向は右下であり、その符号が（＋，−）であれば、ずらし方向は右上であり、その符号が（−，＋）であれば、ずらし方向は左下であり、その符号が（−，−）であれば、ずらし方向は左上である。ただし、符号がプラスでもマイナスでも無い場合には、タッチ位置に対して、真上方向、真下方向、真横方向（タッチ位置の直線上の右方向または左方向）である。
【００４２】
また、定数ｋ１は正の数であり、実験等によって経験的に得られる値である。このように定数ｋ１を設定するのは、点Ｐ０と点Ｐ１の距離が短い場合であっても、カーソル１１０がタッチした手指で隠れないように表示するためである。したがって、スライドの移動量すなわちＸ軸方向の差分ｄＸＰおよびＹ軸方向の差分ｄＹＰが比較的大きい場合には、定数ｋ１は０に設定されてもよい。
【００４３】
［数２］
ｄＸＣ＝（Ｘ１−Ｘ０）＋ｋ１
ｄＹＣ＝｛（Ｙ１−Ｙ０）／（Ｘ１−Ｘ０）｝・ｄＸＣ
＝（Ｙ１−Ｙ０）＋ｋ１・｛（Ｙ１−Ｙ０）／（Ｘ１−Ｘ０）｝
このように、タッチ位置に対するカーソル１１０のずらし量が決定されると、現在のタッチ位置をＰｎ（Ｘｎ，Ｙｎ）とした場合に、カーソル１１０の位置（ＸＣｎ，ＹＣｎ）は数３に従って算出される。
【００４４】
［数３］
ＸＣｎ＝Ｘｎ＋（Ｘ１−Ｘ０）＋ｋ１
ＹＣｎ＝Ｙｎ＋（Ｙ１−Ｙ０）＋ｋ１・｛（Ｙ１−Ｙ０）／（Ｘ１−Ｘ０）｝
上記のように、カーソル１１０のずらし量が算出されると、図４に示すように、タッチ画面１００において、カーソル１１０のずらし量が決定されたときのタッチ位置すなわち点Ｐ１（Ｘ１，Ｙ１）に対してカーソル１１０の表示位置すなわち点Ｃ（ＸＣｎ，ＹＣｎ）が算出され、算出された点Ｃ（ＸＣｎ，ＹＣｎ）にカーソル１１０が表示される。
【００４５】
したがって、タッチ位置に対して、ユーザが設定したずらし量およびずらし方向にカーソル１１０が表示される。このため、ユーザにとって操作し易い位置にカーソル１１０を表示することができる。たとえば、横書きの文字列が表示されたタッチ画面１００では、右手でタッチ操作するユーザの場合には、タッチ位置よりも左側にカーソル１１０を表示した方が操作し易く、左手でタッチ操作するユーザの場合には、タッチ位置よりも右側にカーソル１１０を表示した方が操作し易いと考えられる。つまり、カーソル１１０の表示位置の自由度を上げることができる。
【００４６】
また、ユーザの操作に従って表示されたカーソル１１０は、ユーザがスライドすると、ずらし量（位置関係）を保ってスライドによるタッチ位置の移動に追従する。このとき、たとえば、カーソル１１０は点滅表示される。また、タッチオフされると、カーソル１１０は非表示（消去）され、その直前のタッチ位置に対してクリック処理が実行される。たとえば、クリック処理では、編集作業を行う位置を指定してあり、タッチ画面１００に表示されたオブジェクトを指定したりする。さらに、この第１実施例では、カーソル１１０は、タッチ位置が所定時間（たとえば、１０秒）移動されない場合にも、消去される。
【００４７】
図５は図１に示したＲＡＭ１４のメモリマップ３００の一例を示す図解図である。図５に示すように、ＲＡＭ１４は、プログラム記憶領域３０２およびデータ記憶領域３０４を含む。プログラム記憶領域３０２は、情報処理装置１０で実行される情報処理プログラムを記憶し、情報処理プログラムは、入力検出プログラム３０２ａ、画像生成プログラム３０２ｂ、表示プログラム３０２ｃ、ずらし量算出プログラム３０２ｄおよびカーソル位置算出プログラム３０２ｅなどで構成される。この情報処理プログラムは、たとえば、ＨＤＤ２４から読み出され、ＲＡＭ１４に記憶される。
【００４８】
入力検出プログラム３０２ａは、タッチ入力を検出するためのプログラムであり、ＣＰＵ１２は、この入力検出プログラム３０２ａに従って、タッチパネル２０から出力されたタッチ座標データを取得し、取得したタッチ座標データを時系列に従ってＲＡＭ１４に記憶する。ただし、上述したように、ハードウェアのボタンが設けられる場合およびハードウェアのキーボードが接続される場合には、入力検出プログラム３０２ａに従って、ボタンないしキーの入力も検出される。
【００４９】
画像生成プログラム３０２ｂは、上記のタッチ画面１００などの各種の表示画面についての画面データを生成するためのプログラムである。ただし、画像生成プログラム３０２ｂは、画面データを生成するとき、後述する画像生成データ３０４ｂを使用する。また、画面データは、ＣＰＵ１２の指示の下、描画制御回路１８に内蔵されるＧＰＵによってＶＲＡＭ上に生成される。
【００５０】
表示プログラム３０２ｃは、画像生成プログラム３０２ｂに従って生成された画面データに対応する表示画面をディスプレイ２２に表示するためプログラムであり、ＣＰＵ１２は、描画制御回路１８を制御して、ＶＲＡＭ上に生成された画面データをディスプレイ２２に出力する。また、表示プログラム３０２ｃは、カーソル１１０をディスプレイ２２に表示したり、ディスプレイ２２から消去（非表示）したりするプログラムでもある。ただし、カーソル１１０は、ディスプレイ２２に表示された表示画面の前面に表示される。
【００５１】
ずらし量算出プログラム３０２ｄは、スライドの開始位置およびスライドの終了位置を検出し、これら２つの位置を用いて数１および数２に従ってずらし量のＸ成分ｄＸＣおよびＹ成分ｄＹＣを算出するためのプログラムである。
【００５２】
カーソル位置算出プログラム３０２ｅは、現在のタッチ位置とずらし量算出プログラム３０２ｄに従って算出されたずらし量を用いて数３に従ってカーソル１１０の表示位置を算出するためのプログラムである。
【００５３】
図示は省略するが、プログラム記憶領域３０２には、文字入力などの編集機能、ブラウザ機能および電子メール機能などの他の機能を実行するためのプログラムなども記憶される。
【００５４】
また、データ記憶領域３０４には、操作入力データ３０４ａ、画像生成データ３０４ｂ、スライド開始位置データ３０４ｃ、スライド終了位置データ３０４ｄ、ずらし量データ３０４ｅおよびカーソル位置データ３０４ｆが記憶される。また、データ記憶領域３０４には、タイマ３０４ｇが設けられる。
【００５５】
操作入力データ３０４ａは、タッチパネル２０から出力され、ＣＰＵ１２によって取得されたタッチ座標データを時系列に従って記憶したデータである。ただし、操作入力データ３０４ａには、ハードウェアのボタンないしキーについての操作データが含まれる場合もある。
【００５６】
画像生成データ３０４ｂは、タッチ画面１００などの各種の表示画面を生成するときに使用されるデータであり、ポリゴンデータやテクスチャデータなどを含む。この画像生成データ３０４ｂは、ＨＤＤ２４から読み出され、ＲＡＭ１４に記憶される。
【００５７】
スライド開始位置データ３０４ｃは、スライドの開始位置の座標データであり、この第１実施例では、タッチオフの状態からタッチオンしたときのタッチ位置についての座標データである。スライド終了位置データ３０４ｄは、上記のスライドの終了位置の座標データであり、この第１実施例では、タッチオフの状態からタッチオンした後に、スライドを行い、その後、タッチ位置の移動を一定時間以上停止したときのタッチ位置についての座標データである。
【００５８】
ずらし量データ３０４ｅは、ずらし量算出プログラム３０２ｄに従って、スライド開始位置データ３０４ｃが示すスライドの開始位置およびスライド終了位置データ３０４ｄが示すスライドの終了位置を用いて算出されたずらし量のＸ成分ｄＸＣおよびＹ成分ｄＹＣについてのデータである。
【００５９】
カーソル位置データ３０４ｆは、カーソル位置算出プログラム３０２ｅに従って、現在のタッチ位置およびずらし量データ３０４ｅが示すずらし量のＸ成分ｄＸＣおよびＹ成分ｄＹＣを用いて算出されたカーソル１１０の表示位置の座標データである。
【００６０】
タイマ３０４ｇは、タッチ位置の移動が停止している時間をカウントするためのタイマである。
【００６１】
データ記憶領域３０４には、情報処理プログラムを実行するために必要な他のデータも記憶され、また、当該情報処理プログラムを実行するために必要な他のカウンタ（タイマ）およびフラグなども設けられる。
【００６２】
図６ないし図８は図１に示したＣＰＵ１２のカーソルの表示位置（カーソル位置）の算出および表示を行うための処理を含む情報処理の一例を示すフロー図である。情報処理は、情報処理装置１０の電源がオンされると、開始され、その後は、情報処理が終了してから所定時間（たとえば、０．１秒〜１秒）が経過すると、開始される。
【００６３】
図６に示すように、ＣＰＵ１２は情報処理を開始すると、ステップＳ１で、タッチ入力が有るかどうかを判断する。ここでは、ＣＰＵ１２は、データ記憶領域３０４の操作入力データ３０４ａに現フレームのタッチ座標データが含まれるかどうかを判断する。以下、同様である。ただし、フレームは、画面を更新する単位時間であり、たとえば、１／３０秒、１／６０秒または１/１２０秒である。また、図示は省略するが、ＣＰＵ１２は、図６ないし図８に示す情報処理と並行して、ブラウザ機能または電子メール機能などの他の機能を実行し、ディスプレイ２２には図２および図４に示したようなタッチ画面１００が表示されている。
【００６４】
ステップＳ１で“ＮＯ”であれば、つまり、タッチ入力が無ければ、同じステップＳ１に戻る。一方、ステップＳ１で“ＹＥＳ”であれば、つまりタッチ入力が有れば、ステップＳ３で、タッチ位置を取得する。ここでは、ＣＰＵ１２は、データ記憶領域３０４に記憶された操作入力データ３０４ａを参照して、現フレームのタッチ座標データを取得する。
【００６５】
なお、図示は省略するが、ＣＰＵ１２は、情報処理および他の機能の処理と並行して、タッチパネル２０から出力されるタッチ座標データを検出し、操作入力データ３０４ａとしてデータ記憶領域３０４に記憶する処理を実行する。
【００６６】
次のステップＳ５では、ステップＳ３で取得したタッチ位置をスライドの開始位置として記憶する。つまり、現フレームのタッチ座標データがスライド開始位置データ３０４ｃとしてデータ記憶領域３０４に記憶される。
【００６７】
そして、ステップＳ７では、タッチ入力が有るかどうかを判断する。ステップＳ７で“ＮＯ”であれば、ステップＳ９で、スライドの開始位置を消去する。つまり、ＣＰＵ１２は、スライド開始位置データ３０４ｃをデータ記憶領域３０４から消去する。以下、同様である。そして、ステップＳ１１で、クリック処理を実行して、図８に示すように、情報処理を終了する。たとえば、クリック処理では、タッチ画面１００に表示されたオブジェクトが指定される。これに応じて、ＣＰＵ１２は、編集作業を行う位置を決定したり、アイコンに割り当てられた（設定された）処理を実行したり、ＵＲＬが示すＷｅｂページにアクセスしたりする。
【００６８】
また、ステップＳ７で“ＹＥＳ”であれば、ステップＳ１３で、タッチ位置が変化したかどうかを判断する。ここでは、ＣＰＵ１２は、タッチパネル２０から出力されるタッチ座標データが示すタッチ位置が変化し、スライドが行われているかどうかを判断する。以下、同様である。
【００６９】
ステップＳ１３で“ＮＯ”であれば、つまり、タッチ位置が変化していなければ、ステップＳ７に戻る。一方、ステップＳ１３で“ＹＥＳ”であれば、つまり、タッチ位置が変化していれば、図７に示すステップＳ１５で、タッチ位置の移動が停止したかどうかを判断する。ＣＰＵ１２は、タッチパネル２０から出力されるタッチ座標が示すタッチ位置が変化せず、スライドが停止（終了）したかどうかを判断する。
【００７０】
ステップＳ１５で“ＮＯ”であれば、つまり、タッチ位置の移動が停止していなければ、スライドが継続していると判断して、ステップＳ１５に戻る。一方、ステップＳ１５で“ＹＥＳ”であれば、つまり、タッチ位置の移動が停止すれば、ステップＳ１７で、タイマ３０４ｇをリセットおよびスタートし、ステップＳ１９で、第１所定時間（たとえば、３秒）が経過したかどうかを判断する。ここでは、ＣＰＵ１２は、タイマ３０４ｇのカウント値が３秒を超えたかどうかを判断する。
【００７１】
ステップＳ１９で“ＮＯ”であれば、つまり、第１所定時間が経過していなければ、ステップＳ２１で、タッチ位置の変化があるかどうかを判断する。ステップＳ２１で“ＹＥＳ”であれば、一旦スライドを停止したが、スライドを再開したと判断し、ステップＳ１５に戻る。一方、ステップＳ２１で“ＮＯ”であれば、ステップＳ２３で、タッチ入力が有るかどうかを判断する。
【００７２】
ステップＳ２３で“ＹＥＳ”であれば、タッチ位置の移動が停止している状態が継続していると判断し、ステップＳ１９に戻る。一方、ステップＳ２３で“ＮＯ”であれば、カーソル位置の決定および算出を中止（キャンセル）したと判断し、ステップＳ２５で、スライドの開始位置を消去して、情報処理を終了する。
【００７３】
また、ステップＳ１９で“ＹＥＳ”であれば、つまり、第１所定時間が経過すれば、ステップＳ２７で、現在のタッチ位置をスライドの終了位置として記憶する。このステップＳ２７では、ＣＰＵ１２は、現フレームのタッチ座標データをスライド終了位置データ３０４ｄとしてデータ記憶領域３０４に記憶する。つまり、スライド後に、所定時間タッチし続けたタッチ位置がスライドの終了位置として記憶される。
【００７４】
図８に示すように、続くステップＳ２９では、カーソル位置のずらし量を算出する。ここでは、ＣＰＵ１２は、上述したように、スライド開始位置データ３０４ｃが示すスライドの開始位置の座標（点Ｐ０の座標）と、スライド終了位置データ３０４ｄが示すスライドの終了位置の座標（点Ｐ１の座標）とを用いて、数１および数２に従って、ずらし量のＸ成分ｄＸＣおよびＹ成分ｄＹＣを算出する。そして、ＣＰＵ１２は、ずらし量データ３０４ｅをデータ記憶領域３０４に記憶する。
【００７５】
続くステップＳ３１では、カーソル位置を算出する。ここでは、ＣＰＵ１２は、上述したように、現在のタッチ位置（Ｘｎ，Ｙｎ）と、ずらし量データ３０４ｅが示すずらし量のＸ成分ｄＸＣおよびＹ成分ｄＹＣを用いて、数３に従って、カーソル位置（ＸＣｎ，ＹＣｎ）を算出する。
【００７６】
次のステップＳ３３では、算出したカーソル位置（ＸＣｎ，ＹＣｎ）にカーソル１１０を表示する。そして、ステップＳ３５では、タッチ位置の変化があるかどうかを判断する。ステップＳ３５で“ＹＥＳ”であれば、ステップＳ３７で、カーソル１１０を点滅表示し、ステップＳ３９で、現在のタッチ位置を取得して、ステップＳ３１に戻る。したがって、タッチ位置の移動（スライド）に従って、当該タッチ位置との位置関係を維持しながらカーソル１１０が移動される。
【００７７】
また、ステップＳ３５で“ＮＯ”であれば、ステップＳ４１で、タイマ３０４ｇをリセットおよびスタートし、ステップＳ４３で、第２所定時間（たとえば、１０秒）が経過したかどうかを判断する。つまり、ＣＰＵ１２は、タイマ３０４ｇのカウント値を参照して、カーソル位置の移動が停止された時間が第２所定時間を超えたかどうかを判断する。
【００７８】
ステップＳ４３で“ＹＥＳ”であれば、つまり、第２所定時間が経過すれば、ステップＳ４９で、カーソル１１０を消去（非表示）して、情報処理を終了する。一方、ステップＳ４３で“ＮＯ”であれば、つまり、第２所定時間が経過していなければ、ステップＳ４５で、タッチ入力が有るかどうかを判断する。
【００７９】
ステップＳ４５で“ＹＥＳ”であれば、ステップＳ３５に戻る。一方、ステップＳ４５で“ＮＯ”であれば、ステップＳ４７で、クリック処理を実行して、情報処理を終了する。
【００８０】
この第１実施例によれば、タッチオンし、スライドした後に、スライドを停止すると、スライドの距離および方向に応じて決定したずらし量でカーソル１１０が表示されるので、タッチ位置に対してユーザが所望の位置および方向にカーソル１１０を表示させることができる。このため、ユーザの操作性を向上させることができる。
【００８１】
なお、第１実施例では、スライドした後に、タッチ位置の移動を停止させている時間が第１所定時間を超えた場合に、カーソル位置のずらし量を算出し、カーソル１１０を表示するようにしてあるが、これに限定されるべきでない。つまり、カーソル１１０が表示される位置および方向をユーザが自由に決定できる点が特徴であり、その決定方法は限定されるべきでない。
【００８２】
たとえば、カーソル１１０を表示させるためのアイコンをタッチ画面１００に表示しておき、当該アイコンがクリックされたことに応じて、カーソル位置のずらし量を算出し、カーソル１１０を表示するためのモードに移行し、タッチオンからタッチオフまでのスライドの距離および方向に応じたずらし量を算出し、カーソル１１０を表示またはカーソル１１０の表示位置を変更するようにしてもよい。
【００８３】
また、かかる場合には、異なる２点をクリックによりそれぞれ指定することにより、１点目から２点目までの距離および１点目から２点目に向かう方向に応じてずらし量を算出するようにしてもよい。
【００８４】
さらに、この第１実施例では、カーソル１１０が表示された後では、スライドに従ってカーソル１１０が移動されるとき、カーソル１１０を点滅表示させることにより、カーソル１１０の表示属性を変化させるようにしたが、これに限定される必要はない。たとえば、カーソル１１０が移動されるときには、その形状または／および表示色が変化されてもよい。
［第２実施例］
第２実施例の情報処理装置１０は、カーソル位置のずらし量を算出する方法が異なる以外は、第１実施例と同じであるため、重複した説明は省略または簡略化する。
【００８５】
第２実施例では、タッチ開始位置（点Ｐ０）と移動後タッチ位置（点Ｐ１）とのＸ軸方向の差分ｄＸＰおよびＹ軸方向の差分ｄＹＰのそれぞれに定数ｋ１を加算することに代えて、定数ｋ２を乗算するようにした以外は、第１実施例と同じである。したがって、上述の数２が下記の数４に変更される。ただし、定数ｋ２は、１よりも大きい正の数である。この定数ｋ２を乗算する理由は、定数ｋ１を加算する理由と同じである。したがって、スライドの移動量すなわちＸ軸方向の差分ｄＸＰおよびＹ軸方向の差分ｄＹＰが比較的大きい場合には、定数ｋ２は１に設定されてもよい。
【００８６】
［数４］
ｄＸＣ＝ｋ２・（Ｘ１−Ｘ０）
ｄＹＣ＝｛（Ｙ１−Ｙ０）／（Ｘ１−Ｘ０）｝・ｄＸＣ
＝ｋ２・（Ｙ１−Ｙ０）
第２実施例においても、第１実施例と同様に、ユーザの操作性を向上させることができる。
［第３実施例］
第３実施例では、カーソル１１０を表示した後に、表示位置を変更するようにした以外は、第１実施例と同じであるため、重複した説明は省略または簡略化する。
【００８７】
たとえば、カーソル１１０がディスプレイ２２に表示された後に、ユーザがタッチ操作を行っている場合に、複数のタッチ位置が指示された場合に、カーソル位置のずらし量のＸ成分ｄＸＣおよびＹ成分ｄＹＣの各々の符号を反転させる。この第３実施例では、２点のタッチ位置が検出された場合に、タッチ位置のずらし量を変更するようにしてあるが、３点以上であってもよい。このため、第３実施例の情報処理装置１０では、マルチタッチ機能を備えるタッチパネル２０が使用される。
【００８８】
したがって、カーソル１１０の位置は、ずらし量のＸ成分ｄＸＣおよびＹ成分ｄＹＣの各々の符号を反転させた後では、タッチ位置を中心点とした点対称の位置に移動される。
【００８９】
たとえば、タッチ位置の左側にカーソル１１０が表示されるように設定した場合に、ディスプレイ２２の表示領域の左端の方にタッチ位置が移動した場合には、カーソル１１０が表示領域からはみ出したり、表示領域の左端で移動が制限されたりして操作し難くなる。また、ディスプレイ２２の表示領域の右端に表示されたオブジェクトを指定したい場合であっても、当該オブジェクトを指定することができない。
【００９０】
このような場合に、たとえば、２点目をタッチすることにより、カーソル位置のずらし量のＸ成分ｄＸＣおよびＹ成分ｄＹＣの各々の符号を反転させると、タッチ位置の右側にカーソル１１０が表示され、上記のような不都合を回避することができると考えられる。また、カーソル位置がタッチ位置に対して上下方向にもずれている場合には、カーソル位置の表示を上下方向にも反転させることができる。このようにすれば、表示領域の縦方向における上記のような問題も回避することができる。さらに、カーソル１１０の位置を元に戻す場合には、再度２点目をタッチすればよい。
【００９１】
具体的には、図６〜図８に示した情報処理において、図９に示す処理が追加される。図９に示すように、ステップＳ４５で“ＹＥＳ”と判断された後に、ステップＳ６１およびＳ６３の処理が実行され、ステップＳ３５に戻る。具体的には、ステップＳ４５で“ＹＥＳ”の場合に、ステップＳ６１で、タッチ位置が２点であるかどうかを判断する。
【００９２】
ステップＳ６１で“ＮＯ”であれば、つまり、タッチ位置が１点である場合には、ステップＳ３５に戻る。一方、ステップＳ６１で“ＹＥＳ”であれば、つまり、タッチ位置が２点である場合には、ステップＳ６３で、カーソル位置のずらし量のＸ成分ｄＸＣおよびＹ成分ｄＹＣの各々の符号を反転させて、ステップＳ３５に戻る。したがって、カーソル１１０がタッチ位置に対して、点対称の位置に移動される。
【００９３】
第３実施例によれば、カーソル１１０を表示させた後に、その位置を変更できるので、さらにユーザの操作性を向上させることができる。また、ずらし量のＸ成分ｄＸＣおよびＹ成分ｄＹＣの各々の符号を反転させるだけなので、タッチ位置に対するカーソル１１０の位置を表示した当初の位置に戻せるので、使い勝手が良い。
【００９４】
なお、第３実施例では、ずらし量のＸ成分ｄＸＣおよびＹ成分ｄＹＣの各々の符号を反転させるようにしたが、Ｘ成分ｄＸＣまたはＹ成分ｄＹＣの符号を反転させるようにしてもよい。この場合、どちらの成分の符号を反転させるかを、タッチ位置の数で決定するようにしてもよい。
［第４実施例］
第４実施例では、カーソル１１０の表示位置を変更する方法が異なる以外は第３実施例と同じであるため、重複した説明は省略または簡略化する。
【００９５】
たとえば、カーソル１１０がディスプレイ２２に表示された後に、ユーザがタッチ操作を行っている場合に、２点のタッチ位置が指示された場合に、１点目のタッチ位置と２点目のタッチ位置の差分に基づいてずらし量が再計算される。ただし、再計算する場合の計算方法は、第１実施例で説明したずらし量の算出方法と同じである。
【００９６】
たとえば、タッチ位置に対して所望の距離および所望の方向にカーソル１１０が表示されるように設定した後に、タッチ操作を行った結果、その距離および方向を変更したい場合には、２点目をタッチすることにより、補正することができる。このため、一度設定したずらし量に固定されることがない。
【００９７】
具体的には、図６〜図８に示した情報処理において、図１０に示す処理が追加される。図１０に示すように、ステップＳ４５で“ＹＥＳ”と判断された後に、ステップＳ７１およびＳ７３の処理が実行され、ステップＳ３５に戻る。具体的には、ステップＳ４５で“ＹＥＳ”の場合に、ステップＳ７１で、タッチ位置が２点であるかどうかを判断する。
【００９８】
ステップＳ７１で“ＮＯ”であれば、つまり、タッチ位置が１点である場合には、ステップＳ３５に戻る。一方、ステップＳ７１で“ＹＥＳ”であれば、つまり、タッチ位置が２点である場合には、ステップＳ７３で、１点目と２点目の差分に基づいてカーソルのずらし量を再計算して、ステップＳ３５に戻る。したがって、カーソル１１０がタッチ位置に対して、再計算されたずらし量で決定される位置に表示される。
【００９９】
第４実施例においても、カーソル１１０を表示させた後に、その位置を変更できるので、さらにユーザの操作性を向上させることができる。また、２点目をタッチするだけでカーソル１１０の表示位置を変更できるので、使い勝手が良い。
【０１００】
なお、第３実施例および第４実施例の変形は、第２実施例にも適用することができる。
【０１０１】
また、上述の各実施例で挙げた画面および具体的な数値等は一例であり、実際の製品に応じて適宜変更することが可能である。また、同じ効果が得られる場合には、フロー図に示した各ステップの順番は適宜変更されてもよい。
【符号の説明】
【０１０２】
１０  …情報処理装置
１２  …ＣＰＵ
１４  …ＲＡＭ
１６  …タッチパネル制御回路
１８  …描画制御回路
２０  …タッチパネル
２２  …ディスプレイ
２４  …ＨＤＤ
【図１】
2018060258.tif 000003
【図２】
2018060258.tif 000004
【図３】
2018060258.tif 000005
【図４】
2018060258.tif 000006
【図５】
2018060258.tif 000007
【図６】
2018060258.tif 000008
【図７】
2018060258.tif 000009
【図８】
2018060258.tif 000010
【図９】
2018060258.tif 000011
【図１０】
2018060258.tif 000012