(58)【調査した分野】(Int.Cl.,DB名)
前記選択部により前記矩形領域に含まれるオブジェクトが選択された後、前記第1タッチ位置と前記第2タッチ位置との距離が一定で、且つ、前記第1タッチ位置と前記第2タッチ位置が同じ方向にスライドした場合、前記選択されたオブジェクトを前記スライドした方向に移動する移動部を更に備えることを特徴とする請求項1に記載の電子機器。
前記選択部により前記矩形領域に含まれるオブジェクトが選択された後、前記第1タッチ位置と前記第2タッチ位置が同じ方向に回転した場合、前記選択されたオブジェクトを削除する削除部を更に備える、
ことを特徴とする請求項1に記載の電子機器。
前記選択部により前記矩形領域に含まれるオブジェクトが選択された後、前記第1タッチ位置の変化と前記第2タッチ位置の変化がともに所定時間以上所定の許容範囲内の場合、前記表示部は、前記ディスプレイに表示されているオブジェクトのうち、前記矩形領域に含まれるオブジェクトに対して前記ユーザーが指示することが可能な処理の一覧を表示する、
ことを特徴とする請求項1に記載の電子機器。
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1によれば、移動対象のファイルアイコンを選択する際、ユーザーはファイルアイコンの周囲をタッチしなければならず、正確なタッチが要求されていた。また、ファイルの移動ではなくコピーなどの他の処理を指示する場合には、事前にタッチパネル上の所望ボタンアイコンで指示しておいたり、特定のキーを押しながら操作したりしなければならず、面倒であった。
【0005】
本発明は、ユーザーが簡易な操作により処理の指示を行うことができる電子機器、電子機器の制御方法、及び、プログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
この目的を達成するため、本発明の第1の観点に係る電子機器は、
オブジェクトをディスプレイに表示する表示部と、
前記ディスプレイに重畳して配置されているタッチパネルへのユーザーによるタッチ操作を検出し、前記タッチ操作によるタッチ位置を取得する取得部と、
前記取得部によって第1タッチ位置と第2タッチ位置が取得され、且つ、前記第1タッチ位置と前記第2タッチ位置との距離が時間の経過と共に小さくなっており、且つ、前記第1タッチ位置の移動方向と前記第2タッチ位置の移動方向とが反対の場合、前記第1タッチ位置と前記第2タッチ位置をそれぞれ頂点とする矩形領域を設定し、前記ディスプレイに表示されているオブジェクトのうち、前記矩形領域に含まれるオブジェクトを選択する選択部と、
を備え
、
前記選択部は、
前記第1タッチ位置と前記第2タッチ位置との距離が時間の経過と共に小さくなっており、且つ、
第1時刻に取得された前記第1タッチ位置から、前記第1時刻より後の第2時刻に取得された前記第1タッチ位置へ、と結ぶ第1ベクトルと、前記第1時刻に取得された前記第1タッチ位置と前記第1時刻に取得された前記第2タッチ位置とを結ぶ直線と、のなす角度が所定値未満であり、且つ、
第1時刻に取得された前記第2タッチ位置から、前記第2時刻に取得された前記第2タッチ位置へ、と結ぶ第2ベクトルと、前記直線と、のなす角度が前記所定値未満である場合に、
前記矩形領域に含まれるオブジェクトを選択する、
ことを特徴とする。
【0008】
前記選択部により前記矩形領域に含まれるオブジェクトが選択された後、前記第1タッチ位置と前記第2タッチ位置との距離が一定で、且つ、前記第1タッチ位置と前記第2タッチ位置が同じ方向にスライドした場合、前記選択されたオブジェクトを前記スライドした方向に移動する移動部を更に備えてもよい。
【0009】
前記移動部は、
第1時刻に取得された前記第1タッチ位置から
前記第1時刻に取得された前記第2タッチ位置までの距離と、前記第1時刻より後の第2時刻に取得された前記第1タッチ位置
から前記第
2時刻に取得された前記第2タッチ位
置までの距離と
、が許容範囲内であり、且つ、
前記第1時刻に取得された前記第1タッチ位置から、前記第2時刻に取得された前記第1タッチ位置へ、と結ぶ第1ベクトルと、前記第1時刻に取得された前記第2タッチ位置から、前記第2時刻に取得された前記第2タッチ位置へ、と結ぶ第2ベクトルと、のなす角度が所定値未満である場合に、
前記選択されたオブジェクトを前記スライドした方向に移動してもよい。
【0010】
前記選択部により前記矩形領域に含まれるオブジェクトが選択された後、前記第1タッチ位置と前記第2タッチ位置が同じ方向に回転した場合、前記選択されたオブジェクトを削除する削除部を更に備えてもよい。
【0011】
前記削除部は、
第1時刻に取得された前記第1タッチ位置から、前記第1時刻より後の第2時刻に取得された前記第1タッチ位置まで、の軌跡を近似した第1の円の中心と、前記第1時刻に取得された前記第2タッチ位置から、前記第2時刻に取得された前記第2タッチ位置まで、の軌跡を近似した第2の円の中心と、の距離が所定値未満であり、且つ、
前記第1タッチ位置の前記第1の円における回転方向と、前記第2タッチ位置の前記第2の円における回転方向と、が同じである場合に、
前記選択されたオブジェクトを削除してもよい。
【0012】
前記選択部により前記矩形領域に含まれるオブジェクトが選択された後、前記第1タッチ位置と前記第2タッチ位置との距離が一定で、且つ、
前記第1タッチ位置と前記第2タッチ位置が同じ方向にスライドし、更にその後、前記第1タッチ位置と前記第2タッチ位置との距離が時間の経過と共に大きくなっている場合、前記ディスプレイに表示されているオブジェクトのうち、前記矩形領域に含まれるオブジェクトを、前記第1タッチ位置と前記第2タッチ位置に基づいて複製する複製部を更に備えてもよい。
【0013】
前記複製部は、
第1時刻に取得された前記第1タッチ位置から
前記第1時刻に取得された前記第2タッチ位置までの距離と、前記第1時刻より後の第2時刻に取得された前記第1タッチ位置
から前記第
2時刻に取得された前記第2タッチ位
置までの距離と
、が許容範囲内であり、且つ、
前記第1時刻に取得された前記第1タッチ位置から、前記第2時刻に取得された前記第1タッチ位置へ、と結ぶ第1ベクトルと、前記第1時刻に取得された前記第2タッチ位置から、前記第2時刻に取得された前記第2タッチ位置へ、と結ぶ第2ベクトルと、のなす角度が所定値未満であり、更にその後に、
前記第1タッチ位置と前記第2タッチ位置との距離が時間の経過と共に大きくなっている場合に、
前記矩形領域に含まれるオブジェクトを、前記第1タッチ位置と前記第2タッチ位置に基づいて複製してもよい。
【0014】
前記選択部により前記矩形領域に含まれるオブジェクトが選択された後、
前記第1タッチ位置と前記第2タッチ位置との距離が一定で、且つ、前記第1タッチ位置と前記第2タッチ位置が同じ方向に振動した場合、前記ディスプレイに表示されているオブジェクトのうち、前記矩形領域に含まれるオブジェクトを、前記矩形領域内で並び替える並び替え部を更に備えてもよい。
【0015】
前記並び替え部は、
第1時刻に取得された前記第1タッチ位置から
前記第1時刻に取得された前記第2タッチ位置までの距離と、前記第1時刻より後の第2時刻に取得された前記第1タッチ位置
から前記第
2時刻に取得された前記第2タッチ位
置までの距離と
、が許容範囲内であり、且つ、
前記第1時刻に取得された前記第1タッチ位置から、前記第2時刻に取得された前記第1タッチ位置へ、と結ぶ第1ベクトルと、前記第1時刻に取得された前記第2タッチ位置から、前記第2時刻に取得された前記第2タッチ位置へ、と結ぶ第2ベクトルと、の差が許容範囲内である場合に、前記矩形領域に含まれるオブジェクトを、前記矩形領域内で並び替えてもよい。
【0016】
前記選択部により前記矩形領域に含まれるオブジェクトが選択された後、前記第1タッチ位置の変化と前記第2タッチ位置の変化がともに所定時間以上所定の許容範囲内の場合、前記表示部は、前記ディスプレイに表示されているオブジェクトのうち、前記矩形領域に含まれるオブジェクトに対して前記ユーザーが指示することが可能な処理の一覧を表示してもよい。
【0017】
本発明の第2の観点に係る電子機器の制御方法は、
オブジェクトをディスプレイに表示する表示ステップと、
前記ディスプレイに重畳して配置されているタッチパネルへのユーザーによるタッチ操作を検出し、前記タッチ操作によるタッチ位置を取得する取得ステップと、
前記取得ステップにおいて第1タッチ位置と第2タッチ位置が取得され、且つ、前記第1タッチ位置と前記第2タッチ位置との距離が時間の経過と共に小さくなっており、且つ、前記第1タッチ位置の移動方向と前記第2タッチ位置の移動方向とが反対の場合、前記第1タッチ位置と前記第2タッチ位置をそれぞれ頂点とする矩形領域を設定し、前記ディスプレイに表示されているオブジェクトのうち、前記矩形領域に含まれるオブジェクトを選択する選択ステップと、
を備え
、
前記選択ステップでは、
前記第1タッチ位置と前記第2タッチ位置との距離が時間の経過と共に小さくなっており、且つ、
第1時刻に取得された前記第1タッチ位置から、前記第1時刻より後の第2時刻に取得された前記第1タッチ位置へ、と結ぶ第1ベクトルと、前記第1時刻に取得された前記第1タッチ位置と前記第1時刻に取得された前記第2タッチ位置とを結ぶ直線と、のなす角度が所定値未満であり、且つ、
第1時刻に取得された前記第2タッチ位置から、前記第2時刻に取得された前記第2タッチ位置へ、と結ぶ第2ベクトルと、前記直線と、のなす角度が前記所定値未満である場合に、
前記矩形領域に含まれるオブジェクトを選択する、
ことを特徴とする。
【0018】
本発明の第3の観点に係るプログラムは、
コンピュータを、
オブジェクトをディスプレイに表示する表示部、
前記ディスプレイに重畳して配置されているタッチパネルへのユーザーによるタッチ操作を検出し、前記タッチ操作によるタッチ位置を取得する取得部、
前記取得部によって第1タッチ位置と第2タッチ位置が取得され、且つ、前記第1タッチ位置と前記第2タッチ位置との距離が時間の経過と共に小さくなっており、且つ、前記第1タッチ位置の移動方向と前記第2タッチ位置の移動方向とが反対の場合、前記第1タッチ位置と前記第2タッチ位置をそれぞれ頂点とする矩形領域を設定し、前記ディスプレイに表示されているオブジェクトのうち、前記矩形領域に含まれるオブジェクトを選択する選択部、
として機能させ
、
前記選択部は、
前記第1タッチ位置と前記第2タッチ位置との距離が時間の経過と共に小さくなっており、且つ、
第1時刻に取得された前記第1タッチ位置から、前記第1時刻より後の第2時刻に取得された前記第1タッチ位置へ、と結ぶ第1ベクトルと、前記第1時刻に取得された前記第1タッチ位置と前記第1時刻に取得された前記第2タッチ位置とを結ぶ直線と、のなす角度が所定値未満であり、且つ、
第1時刻に取得された前記第2タッチ位置から、前記第2時刻に取得された前記第2タッチ位置へ、と結ぶ第2ベクトルと、前記直線と、のなす角度が前記所定値未満である場合に、
前記矩形領域に含まれるオブジェクトを選択する、
ことを特徴とする。
【発明の効果】
【0019】
本発明によれば、ユーザーが簡易な操作により処理の指示を行うことができる電子機器、電子機器の制御方法、及び、プログラムを提供することができる。
【発明を実施するための形態】
【0021】
以下に本発明の実施形態を説明する。実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【0022】
まず、電子機器100のハードウェア構成について、
図1等を用いて説明する。電子機器100は、無線通信部101、音声処理部102、出力部103、外部インターフェース(I/F)104、入力受付部105、ROM(Read Only Memory)106、RAM(Random Access Memory)107、制御部108、電源部109を備える。本実施形態における電子機器100は多機能型携帯電話機であるが、タッチパネルを備えたタブレット型の端末やパーソナルコンピューターなどでも良い。
【0023】
無線通信部101は、マイクロフォン123に入力され音声処理部102が備えるA/D(Analog/Digital)コンバータ(図示せず)により変換された音声信号を変調し、無線通信部101が備えるアンテナ121を用いて音声信号を通信相手に送信する。また、無線通信部101は、アンテナ121を用いて音声信号を受信して復調し、音声処理部102に入力する。音声信号は音声処理部102が備えるD/A(Digital/Analog)コンバータ(図示せず)を用いて音声に変換され、スピーカー122から音声として出力される。
【0024】
音声処理部102は、ユーザーの発声音等をマイクロフォン123によって集音し、音声処理部102が備えるA/Dコンバータにより音声信号に変換して無線通信部101に入力する。また、音声処理部102は、音声処理部102が備えるD/Aコンバータにより復調された通話音をスピーカー122に出力する。
【0025】
出力部103は、制御部108や出力部103が備える画像演算プロセッサ(図示せず)によって画像データを加工処理した後、フレームバッファに記録する。フレームバッファに記録された画像情報は、垂直同期などの所定の同期タイミングで画像信号に変換され、LCD(Liquid Crystal Display)124に出力される。LCD124の表面には、ユーザーによる接触の有無や位置を検知する複数のタッチセンサを備えたタッチパネル126が重畳して配置されている。なお、以下の説明において、LCD124とタッチパネル126を合わせて「タッチスクリーン」と言う。
【0026】
外部I/F104は、着脱可能なICカードやフラッシューメモリカード等の外部メモリ125と接続し、データの入出力を行う。例えば外部I/F104に接続される外部メモリ125には、電子機器100の固有の情報(例えば、加入者番号、ネットワーク識別子など)などが記憶される。なお、これらの情報は、RAM107のフラッシュメモリ領域など他の書き換え可能な記憶領域に記憶されてもよい。また、外部I/F104は、USB(Universal Serial Bus)接続により電子機器100と外部機器とを接続して、外部機器との間でデータの入出力を行うことができるインターフェースを備える。なお、外部I/F104は、その他の外部機器との接続を可能にするインターフェースを更に備えていてもよい。
【0027】
入力受付部105は、タッチパネル126からの操作信号を受け付けて、操作信号に対応するキーコード信号を制御部108に入力する。制御部108は、入力されたキーコード信号に基づいて操作内容を決定する。ユーザーは、タッチパネル126を用いて任意の文字データを入力したり所定の操作コマンドを入力したりすることができる。操作コマンドには、例えば、アプリケーションソフトウェア(以下「アプリケーション」という。)の起動や終了、電子ファイルの作成や保存、アイコンと呼ばれるデスクトップ画像の配置の変更などがある。
【0028】
ROM106は、電子機器100の全体の制御に必要なオペレーティングシステム(OS)やプログラム等を予め記憶する不揮発性メモリである。
【0029】
RAM107は、制御部108が行う処理に必要なデータやプログラム等を一時的に記憶する。また、RAM107の記憶領域の一部はフラッシュメモリから構成され、電話やメールに使用するアドレス帳、通話の履歴、ダウンロードしたデータ、各種機能の設定値等を記憶する。
【0030】
制御部108は、ROM106等に記憶されたOSや制御プログラムに従って、電子機器100の全体の制御を行う。制御部108は、各部に制御信号およびデータを送信、または、各部から応答信号およびデータを受信する。また、制御部108は、電子機器100の現在の時刻を計時する。なお、制御部108が実行する様々な処理の詳細は後述する。
【0031】
電源部109は、電子機器100を駆動させるためのバッテリを備える。
【0032】
本実施形態の電子機器100は、
図2に示すように、多機能型携帯端末である。タッチスクリーン201には、ユーザーからの指示を受け付けるためのボタンやアイコンが表示される。タッチスクリーン201のうちアイコン(あるいはボタン等の画像)が表示された位置にユーザーが指を接触させることを、簡単に「アイコンを選択する」「アイコンをタッチする」などと表現する。
【0033】
なお、電子機器100が音声通話機能を有していない端末の場合には、上記の音声処理部102を省略したハードウェア構成とすることができる。また、電子機器100は、音声処理部102のほか、必ずしも無線通信部101と外部I/F104を備えていなくてもよい。
【0034】
図3に、タッチスクリーン201に表示される画像300の構成例を示す。画像300内には、2次元座標系(X−Y座標系)が定義され、画像300内の位置はこのX−Y座標系を用いた座標値として表される。画像300には、選択されたときに制御部108が実行すべき処理が対応付けられているアイコン310(本図中では310A〜310Eの5つ)、アプリケーションの画面320A,320Bなどが含まれる。ユーザーは、任意のアイコン310を選択して所望の指示を出すことができる。
【0035】
例えば、ユーザーは、2本の指をタッチスクリーン201にタッチし、アプリケーションの起動や、画像300のスクロールなどを指示することができる。また、ユーザーは、タッチスクリーン201に表示されている画像300の全体のうち一部の領域の指定や、指定された領域内に表示されているアイコンの移動、削除、複製(コピー)、並び替えなどを、2本の指を使って指示することができる。以下、詳述する。
【0036】
(選択処理)
まず、表示されている複数のオブジェクトの中から1つ以上のオブジェクトがユーザーからの指示に基づいて選択される処理について、
図4,
図5,
図6を用いて説明する。本実施形態では、選択されるオブジェクトは、アイコンの画像である。ただし、選択されるオブジェクトはアイコンに限られず任意の画像であってもよい。この選択処理は、後に説明する移動処理などと組み合わせて実行される。
【0037】
入力受付部105は、ユーザーによるタッチパネル126へのタッチ操作を検出し、タッチされた位置(タッチ位置)を制御部108に入力する。入力受付部105によるタッチ位置の検出は、所定の時間間隔で繰り返し行われる。
図6のフローチャートには記載されていないが、制御部108は、選択処理と並行して、バックグラウンドでタッチ位置を繰り返し取得している。
【0038】
制御部108は、ユーザーによってタッチスクリーン201上の2つの場所がタッチされたか否かを判別する(ステップS601)。
【0039】
ユーザーは通常、指でタッチするので、タッチした指の1本につき複数の素子が反応し、タッチした指が1本であっても複数のタッチ位置を示す座標が取得される。そして、それらのタッチ位置は、指先程度の広さのエリアに渡って分布する。そこで、制御部108は、複数のタッチ位置が取得された場合には、タッチ位置の分布を解析し、互いに所定距離内に近接したタッチ位置の集合を1つのまとまりとし、そのまとまりをユーザーによって指定された1つのタッチ位置とみなす。互いに近接したタッチ位置のまとまりが2つであれば、2本の指で2カ所がタッチされたことになる。本実施形態では、制御部108は、1つのまとまりに含まれるタッチ位置の重心の位置を、ユーザーによって指定された1つのタッチ位置として扱う。以下、説明の簡略化のため、1つのまとまりに含まれるタッチ位置の重心の位置を、単に「タッチ位置」と呼ぶことにする。
【0040】
例えば
図4(a)に示す画像300内には、2つのタッチ位置401,402が含まれている。このとき、タッチスクリーン201の2カ所がユーザーによってタッチされていることになる。制御部108は、ステップS601において、2つのタッチ位置401,402が取得されたか否かを判別する。
【0041】
なお、制御部108は、3つ以上のタッチ位置があると判別した場合には、最初に検出された2つのタッチ位置のみを有効なタッチ位置として扱えばよい。あるいは、制御部108は、直近に検出された2つのタッチ位置のみを有効なタッチ位置として扱ってもよい。
【0042】
2つの場所がタッチされていないと判別した場合(ステップS601;NO)、制御部108は、ユーザーによって2つの場所がタッチされるまで待機する。2つの場所がタッチされたと判別した場合(ステップS601;YES)、制御部108は、
図4(b)に示すように、2つのタッチ位置が時間の経過と共に互いに接近しているか否かを判別する(ステップS602)。
【0043】
より詳細には、
図5に示すように、制御部108は、一方のタッチ位置401の単位時間あたりの変化を表すベクトルV1と、他方のタッチ位置402の単位時間あたりの変化を表すベクトルV2とを求める。
【0044】
制御部108は、ベクトルV1,V2の長さが所定値未満のとき、つまりタッチ位置401,402の変化が小さい場合における2つのタッチ位置401,402を通過する直線510を求める。典型的には、直線510は、ユーザーが2本の指でタッチスクリーン201にタッチし始めた初期における2つのタッチ位置401,402を通る直線である。
【0045】
さらに、制御部108は、直線510とベクトルV1とがなす角度αと、直線510とベクトルV2とがなす角度βを求める。
【0046】
そして、制御部108は、求めた角度α,βがいずれも所定値未満であり、且つ、2つのタッチ位置401,402の間の距離D1が時間の経過と共に減少している場合に、2つのタッチ位置401,402が時間の経過と共に互いに接近していると判別する。
【0047】
図6に戻り、2つのタッチ位置401,402が時間の経過と共に互いに接近していないと判別した場合(ステップS602;NO)、制御部108は選択処理を終了する。なお、この場合には、後述する他の処理が代わりに行われる可能性がある。
【0048】
2つのタッチ位置401,402が時間の経過と共に互いに接近していると判別した場合(ステップS602;YES)、制御部108は、2つのタッチ位置401,402が移動する軌跡が直線的に配置されているか否かを判別する(ステップS603)。すなわち、制御部108は、
図5において、ベクトルV1,V2が直線的に並んでいるか否かを判別する。
【0049】
2つのタッチ位置401,402が移動する軌跡が直線的に配置されていないと判別した場合(ステップS603;NO)、制御部108は選択処理を終了する。なお、この場合には、後述する他の処理が代わりに行われる可能性がある。一方、2つのタッチ位置401,402が移動する軌跡が直線的に配置されていると判別した場合(ステップS603;YES)、制御部108は、
図4(c)に示すように、ベクトルV1,V2の長さが所定値未満のときにおける2つのタッチ位置401,402を頂点とする矩形の領域450を設定する(ステップS604)。
【0050】
この領域450は、典型的には、ユーザーが2本の指でタッチスクリーン201にタッチし始めた初期における2つのタッチ位置401,402を向かい合う頂点とする長方形又は正方形である。また、領域450を定義する4つの辺は、画像300内に定義されたX−Y座標系のX軸とY軸のいずれかに平行である。
【0051】
そして、制御部108は、画像300内に配置されているオブジェクトのうち、設定した領域450内に含まれるオブジェクトを選択する(ステップS605)。例えば
図4(c)において、制御部108は、5つのアイコン310A〜310Eのうち、3つのアイコン310A〜310Cを選択する。
【0052】
このように、制御部108は、ユーザーからの指示に基づいて、画像300内のオブジェクトを選択する。例えば、ユーザーは、タッチスクリーン201に表示されている複数のオブジェクトの中に選択したいオブジェクトがある場合、所望のオブジェクトを取り囲むように指を広げて2カ所をタッチし、その後、指で挟むかのように、広げた2本の指を近づける。すると、最初にタッチした2カ所を向かい合う頂点とする矩形の領域450が設定され、領域内450のオブジェクトが選択されることとなる。ユーザーは、選択したいオブジェクトの数が1個だけであっても複数であっても、簡単且つ同じアクションで所望のオブジェクトを選択することができる。また、ユーザーは、オブジェクトの選択の際、タッチスクリーン201にタッチして手を離すまでの間の一連の動作で完結することができる。
【0053】
図4(c)には領域450を表す矩形が記されているが、制御部108は、領域450を明示的に表示してもよいし、表示しなくてもよい。
【0054】
なお、以下の説明において、領域450が設定されている状態を、画像300(もしくはオブジェクト)が「選択状態」であるという。
【0055】
本実施形態では、ユーザーによって選択されるオブジェクトをアイコンとしたが、アイコンに限らず、任意の画像であってもよい。また、オブジェクトの形状、オブジェクトの大きさ、オブジェクトの数、オブジェクトの位置も任意である。さらに、本実施形態の選択処理の用途は、デスクトップ等のアイコンの選択だけに限られない。
【0056】
この選択処理によれば、例えば、ゲームなどで画面に無数のオブジェクトが表示されている場合において、ユーザーが指定した領域内に正確にいくつのオブジェクトがあるのかをすぐには把握できないものの、オブジェクトをまとめて選択したいときには、ユーザーは、2点をタッチして近づければ、オブジェクトの位置や数が正確に分からなくても、簡単にオブジェクトを選択できるようになる。
【0057】
また例えば、テキストエディターや画像エディターなどのデータ編集用アプリケーションにおいて、指定した領域内の文字をすべて選択したいときや、指定した領域内の画像部分を選択して編集対象としたいときには、2点をタッチして近づければ、所望の文字、文字列、画像部分等を簡単に選択することができる。
【0058】
(移動処理)
次に、表示されている複数のオブジェクトの中から選択された1つ以上のオブジェクトをユーザーからの指示に基づいて移動する処理について、
図7,
図8,
図9を用いて説明する。
図9のフローチャートには記載されていないが、制御部108は、移動処理と並行して、バックグラウンドでタッチ位置を繰り返し取得している。
【0059】
まず、制御部108は、画像300が選択状態か否かを判別する(ステップS901)。例えば
図7(a)では、画像300内に領域450が設定されており、領域450内にはアイコン310A,310B,310Cが含まれている。つまり、アイコン310A,310B,310Cがユーザーによって選択されている。
【0060】
画像300が選択状態ではないと判別した場合(ステップS901;NO)、制御部108は移動処理を終了する。一方、画像300が選択状態であると判別した場合(ステップS901;YES)、制御部108は、
図7(b)に示すように2つのタッチ位置401,402がスライドしたか否かを判別する(ステップS902)。
【0061】
ここで、“2つのタッチ位置がスライドする”とは、2つのタッチ位置の相対位置がほぼ不変であり、且つ、2つのタッチ位置の画像300内における絶対位置が変化することを言う。
【0062】
具体的には、
図8に示すように、制御部108は、ある第1の時刻におけるタッチ位置から、第1の時刻より後の第2の時刻におけるタッチ位置へ、と結ぶベクトルV3,V4を求める。また、制御部108は、第1の時刻における2つのタッチ位置間の距離D2と、第2の時刻における2つのタッチ位置間の距離D3とを求める。
【0063】
そして、制御部108は、ベクトルV3とベクトルV4がなす角度γが所定値以下であり、且つ、距離D2の変化と距離D3の変化が共に所定の許容範囲内に収まる程度に同じである場合に、2つのタッチ位置401,402がスライドしていると判別し、そうでない場合に、2つのタッチ位置401,402がスライドしていない(バラバラに移動している)と判別する。
【0064】
2つのタッチ位置401,402がスライドしていないと判別した場合(ステップS902;NO)、制御部108はステップS902の処理を繰り返す。一方、2つのタッチ位置401,402がスライドしていると判別した場合(ステップS902;YES)、制御部108は、スライドが停止したか否かを判別する(ステップS903)。
【0065】
スライドが停止していない、つまり2つのタッチ位置401,402が移動し続けていると判別した場合(ステップS903;NO)、制御部108はステップS903の処理を繰り返す。一方、スライドが停止した、つまり2つのタッチ位置401,402の移動が止まったと判別した場合(ステップS903;YES)、制御部108は、ユーザーによるタッチスクリーン201へのタッチ操作が終わったか否かを判別する(ステップS904)。言い換えれば、ステップS904では、ユーザーがタッチスクリーン201から指を離したか否かが判別される。
【0066】
タッチ操作が終わっていないと判別した場合(ステップS904;NO)、制御部108はタッチ操作が終わるまで待機する。一方、タッチ操作が終わったと判別した場合(ステップS904;YES)、制御部108は、最後のタッチ位置に基づいて、領域450内のオブジェクトを移動する(ステップS905)。
【0067】
すなわち、制御部108は、スライドが停止し、且つ、タッチ操作が終わったと判別すると、
図7(c)に示すように、タッチ位置のスライドが終わった後におけるアイコン301A,301B,301C同士の相対位置が、タッチ位置のスライドが始まる前におけるアイコン301A,301B,301C同士の相対位置と同じであるように、領域450及びアイコン301A,301B,301Cを移動する。そして、制御部108は、
図7(d)に示すように、タッチ位置のスライドが始まる前における領域450内のアイコン301A,301B,301Cを削除し、最後のタッチ位置の近くに新たにアイコン301A,301B,301Cを配置する。ユーザーは、複数のオブジェクトの中に場所を移動したいオブジェクトがある場合には、移動したいオブジェクトを選択した後、そのまま指をタッチスクリーン201から離さずに、指をスライドさせればよい。
【0068】
(削除処理)
次に、表示されている複数のオブジェクトの中から選択された1つ以上のオブジェクトをユーザーからの指示に基づいて削除する処理について、
図10,
図11,
図12を用いて説明する。
図12のフローチャートには記載されていないが、制御部108は、削除処理と並行して、バックグラウンドでタッチ位置を繰り返し取得している。
【0069】
まず、制御部108は、画像300が選択状態か否かを判別する(ステップS1201)。例えば
図10(a)では、画像300内に領域450が設定されており、領域450内にはアイコン310A,310B,310Cが含まれている。つまり、アイコン310A,310B,310Cがユーザーによって選択されている。
【0070】
画像300が選択状態ではないと判別した場合(ステップS1201;NO)、制御部108は削除処理を終了する。一方、画像300が選択状態であると判別した場合(ステップS1201;YES)、制御部108は、
図10(b)に示すように2つのタッチ位置401,402が回転したか否かを判別する(ステップS1202)。
【0071】
ここで、“2つのタッチ位置が回転する”とは、2つのタッチ位置が共にほぼ同じ角速度及び角加速度で弧を描くような軌道で移動し、且つ、移動中に2つのタッチ位置の重心の位置がほぼ変わらないことを言う。2つのタッチ位置の回転方向が同じであればよく、回転方向は左回りでも右回りでもよい。
【0072】
具体的には、制御部108は、
図11(a)に示すように、一方のタッチ位置401の所定期間における軌跡1101を、例えば最小自乗法により、円1151で近似する。同様に、制御部108は、
図11(b)に示すように、他方のタッチ位置402の所定期間における軌跡1102を円1152で近似する。
【0073】
そして、制御部108は、円1151の中心C1と、円1152の中心C2との距離が所定値以下であって、円1151における一方のタッチ位置401の移動方向(回転方向)と円1152における他方のタッチ位置402の移動方向(回転方向)とが同じである場合に、2つのタッチ位置401,402が回転していると判別し、そうでない場合に、2つのタッチ位置401,402が回転していないと判別する。なお、制御部108は、軌跡1101,1102を正円で近似してもよいし、楕円で近似してもよい。
【0074】
図12に戻り、2つのタッチ位置が回転していないと判別した場合(ステップS1202;NO)、制御部108はステップS1202の処理を繰り返す。一方、2つのタッチ位置が回転していると判別した場合(ステップS1202;YES)、制御部108は、ユーザーによるタッチ操作が終わったか否か、つまりユーザーがタッチスクリーン201から指を離したか否かを判別する(ステップS1203)。
【0075】
タッチ操作が終わっていないと判別した場合(ステップS1203;NO)、制御部108はタッチ操作が終わるまで待機する。一方、タッチ操作が終わったと判別した場合(ステップS1203;YES)、制御部108は、領域450内のオブジェクトを画像300から削除する(ステップS1204)。
【0076】
すなわち、制御部108は、回転が停止し、且つ、タッチ操作が終わったと判別すると、
図10(c)に示すように、領域450に含まれるアイコン310A,310B,310Cを消去する。消去後の画像300には、領域450に含まれていなかったアイコン310D,310Eが残る。ユーザーは、複数のオブジェクトの中に削除したいオブジェクトがある場合には、削除したいオブジェクトを選択した後、そのまま指をタッチスクリーン201から離さずに、指をひねって回転させればよい。
【0077】
(コピー処理)
次に、表示されている複数のオブジェクトの中から選択された1つ以上のオブジェクトをユーザーからの指示に基づいてコピーする処理について、
図13,
図14,
図15を用いて説明する。
図15のフローチャートには記載されていないが、制御部108は、コピー処理と並行して、バックグラウンドでタッチ位置を繰り返し取得している。
【0078】
まず、制御部108は、画像300が選択状態か否かを判別する(ステップS1501)。例えば
図13(a)では、画像300内に領域450が設定されており、領域450内にはアイコン310A,310B,310Cが含まれている。つまり、アイコン310A,310B,310Cがユーザーによって選択されている。
【0079】
画像300が選択状態ではないと判別した場合(ステップS1501;NO)、制御部108はコピー処理を終了する。一方、画像300が選択状態であると判別した場合(ステップS1501;YES)、制御部108は、2つのタッチ位置401,402がスライドしたか否かを判別する(ステップS1502)。なお、このステップ1502は、上述の移動処理におけるステップS902と同じであり、2つのベクトルがなす角度及び2つのタッチ位置間の距離に基づいて判別される。
【0080】
2つのタッチ位置401,402がスライドしていないと判別した場合(ステップS1502;NO)、制御部108はステップS1502の処理を繰り返す。一方、2つのタッチ位置401,402がスライドしていると判別した場合(ステップS1502;YES)、制御部108は、スライドが停止したか否かを判別する(ステップS1503)。
【0081】
スライドが停止していない、つまり2つのタッチ位置401,402が移動し続けていると判別した場合(ステップS1503;NO)、制御部108はステップS1503の処理を繰り返す。一方、スライドが停止した、つまり2つのタッチ位置401,402の移動が止まったと判別した場合(ステップS1503;YES)、制御部108は、
図13(b)に示すように、再び2つのタッチ位置401,402が移動し始めて、2つのタッチ位置401,402が、スライドが停止したときよりも、時間の経過と共に離れているか否かを判別する(ステップS1504)。
【0082】
より詳細には、
図14に示すように、制御部108は、一方のタッチ位置401の単位時間あたりの変化を表すベクトルV5と、他方のタッチ位置402の単位時間あたりの変化を表すベクトルV6とを求める。
【0083】
制御部108は、スライドが停止したときにおける2つのタッチ位置401,402を通過する直線1410を求める。さらに、制御部108は、直線1410とベクトルV5とがなす角度δと、直線1410とベクトルV6とがなす角度εを求める。
【0084】
そして、制御部108は、求めた角度δ,εがいずれも所定値未満であり、且つ、2つのタッチ位置401,402の間の距離D5が時間の経過と共に増加している場合に、2つのタッチ位置401,402が時間の経過と共に互いに離れていると判別する。
【0085】
図15に戻り、2つのタッチ位置401,402が時間の経過と共に離れていないと判別した場合(ステップS1504;NO)、制御部108は、コピー処理を終了する。一方、2つのタッチ位置401,402が時間の経過と共に離れていると判別した場合(ステップS1504;YES)、制御部108は、ユーザーによるタッチ操作が終わったか否か、つまりユーザーがタッチスクリーン201から指を離したか否かを判別する(ステップS1505)。
【0086】
タッチ操作が終わっていないと判別した場合(ステップS1505;NO)、制御部108はタッチ操作が終わるまで待機する。一方、タッチ操作が終わったと判別した場合(ステップS1505;YES)、制御部108は、画像300が選択状態になったとき(オブジェクトが選択されたとき)に領域内450に含まれていたオブジェクトを、最後のタッチ位置に基づいてコピーする(ステップS1506)。
【0087】
すなわち、制御部108は、スライドが停止した後に2つのタッチ位置が接近し、且つ、タッチ操作が終わったと判別すると、
図13(c)に示すように、領域450に含まれるアイコン310A,310B,310Cと同じアイコン1310A,1310B,1310Cを配置する。ユーザーは、複数のオブジェクトの中にコピーしたいオブジェクトがある場合には、コピーしたいオブジェクトを選択した後、そのまま指をタッチスクリーン201から離さずに間を広げ、その後に指をタッチスクリーン201から離せばよい。
【0088】
(並び替え処理)
次に、表示されている複数のオブジェクトの中から選択されたオブジェクトをユーザーからの指示に基づいて並び替える処理について、
図16,
図17,
図18を用いて説明する。
図18のフローチャートには記載されていないが、制御部108は、並び替え処理と並行して、バックグラウンドでタッチ位置を繰り返し取得している。
【0089】
まず、制御部108は、画像300が選択状態か否かを判別する(ステップS1801)。例えば
図16(a)では、画像300内に領域450が設定されており、領域450内にはアイコン310A,310B,310Cが含まれている。つまり、アイコン310A,310B,310Cがユーザーによって選択されている。
【0090】
画像300が選択状態ではないと判別した場合(ステップS1801;NO)、制御部108は並び替え処理を終了する。一方、画像300が選択状態であると判別した場合(ステップS1801;YES)、制御部108は、
図16(b)に示すように、2つのタッチ位置401,402が振動したか否かを判別する(ステップS1802)。
【0091】
ここで、“2つのタッチ位置が振動する”とは、2つのタッチ位置の相対位置がほぼ不変であり、且つ、2つのタッチ位置の画像300内における絶対位置が比較的短い距離を往復する動きもしくは往復に近い動きをすることを言う。
【0092】
より詳細には、
図17(a)に示すように、制御部108は、第1の時刻における2つのタッチ位置と、第1の時刻より後の第2の時刻における2つのタッチ位置を取得し、一方のタッチ位置401の単位時間あたりの変化を表すベクトルV7と、他方のタッチ位置402の単位時間あたりの変化を表すベクトルV8とを求める。
【0093】
また、
図17(b)に示すように、ベクトルV7,V8の向きがほぼ反対になった後、第2の時刻より後の第3の時刻における2つのタッチ位置と、第3の時刻より後の第4の時刻における2つのタッチ位置を取得し、一方のタッチ位置401の単位時間あたりの変化を表すベクトルV9と、他方のタッチ位置402の単位時間あたりの変化を表すベクトルV10とを求める。
【0094】
そして、制御部108は、ベクトルV7,V8がほぼ等しく且つ2つのタッチ位置間の距離D6,D7がほぼ等しいこと、及び、ベクトルV9,V10がほぼ等しく且つ2つのタッチ位置間の距離D8,D9がほぼ等しいこと、及び、ベクトルV7,V8の向きとベクトルV9,V10の向きがほぼ反対であること、がいずれも成り立つ場合に、2つのタッチ位置が振動していると判別し、そうでない場合に、2つのタッチ位置が振動していないと判別する。
【0095】
2つのタッチ位置が振動していないと判別した場合(ステップS1802;NO)、制御部108は並び替え処理を終了する。一方、2つのタッチ位置が振動したと判別した場合(ステップS1802;YES)、制御部108は、その振動が終わったか否かを判別する(ステップS1803)。
【0096】
振動が終わっていないと判別した場合(ステップS1803;NO)、制御部108は振動が終わるまで待機する。一方、振動が終わったと判別した場合(ステップS1803;YES)、制御部108は、ユーザーによるタッチ操作が終わったか否かを判別する(ステップS1804)。
【0097】
ユーザーによるタッチ操作が終わっていないと判別した場合(ステップS1804;NO)、制御部108はタッチ操作が終わるまで待機する。一方、ユーザーによるタッチ操作が終わったと判別した場合(ステップS1804;YES)、制御部108は、
図16(c)に示すように、領域450内に含まれるオブジェクトの配置を並び替える(ステップS1805)。
【0098】
具体的には、制御部108は、領域450内に含まれるオブジェクトの並び順をランダムに入れ替えてもよい。また、
図16(a)に示すようにオブジェクト(アイコン)が3つ以上配置されている場合には、制御部108は、それらのオブジェクトの配置を回転したり、任意の軸に対して線対称となるように再配置したりしてもよい。
【0099】
このように、制御部108は、2つのタッチ位置が振動し、且つ、タッチ操作が終わったと判別すると、領域450に含まれるオブジェクトを並び替える。ユーザーは、複数のオブジェクトの中に並び順を変えたいオブジェクトがある場合には、並び順を変えたいオブジェクトを選択した後、そのまま指をタッチスクリーン201から離さずに振動させ、その後に指をタッチスクリーン201から離せばよい。
【0100】
(メニュー表示処理)
次に、表示されている複数のオブジェクトの中から選択されたオブジェクトに対してユーザーが指示することができる命令をメニュー表示する処理について、
図19,
図20を用いて説明する。
図20のフローチャートには記載されていないが、制御部108は、メニュー表示処理と並行して、バックグラウンドでタッチ位置を繰り返し取得している。
【0101】
まず、制御部108は、画像300が選択状態か否かを判別する(ステップS2001)。例えば
図19(a)では、画像300内に領域450が設定されており、領域450内にはアイコン310A,310B,310Cが含まれている。つまり、アイコン310A,310B,310Cがユーザーによって選択されている。
【0102】
制御部108は、取得された2つのタッチ位置が所定時間以上静止しているか否かを判別する(ステップS2002)。つまり、ユーザーが指をタッチスクリーン201にタッチしたまま動かしていないか否かが判別される。ここで言う静止には、所定時間以上に渡ってタッチ位置が同一である場合のほか、所定時間以上に渡ってタッチ位置の変化が許容範囲に収まるほど小さい場合も含まれる。
【0103】
2つのタッチ位置が所定時間以上静止していないと判別した場合(ステップS2002;NO)、制御部108はメニュー表示処理を終了する。すなわち、ユーザーがタッチ操作を続けており、上述した移動処理、削除処理、コピー処理、並び替え処理が行われる可能性がある。
【0104】
一方、2つのタッチ位置が所定時間以上静止していると判別した場合(ステップS2002;YES)、制御部108は、
図19に示すように、ユーザーが指示することができる命令のメニュー1900を表示する(ステップS2003)。
【0105】
メニュー1900は、ユーザーが指示することができる命令の一覧であり、例えば、上述の削除処理が対応付けられた「削除」の項目、上述のコピー処理が対応付けられた「コピー」の項目などが含まれる。そのほか、上記で説明しなかった任意の処理と対応付けられた項目があってもよい。
【0106】
制御部108は、メニュー1900に含まれる項目のうちいずれかがユーザーによって選択されたか否かを判別する(ステップS2004)。
【0107】
メニュー1900に含まれる項目のいずれもがユーザーによって選択されていない場合(ステップS2004;NO)、制御部108は、いずれかの項目が選択されるまで待機する。一方、メニュー1900に含まれる項目のうちいずれかがユーザーによって選択された場合(ステップS2004;YES)、制御部108は、選択された項目に対応付けられた処理を実行する(ステップS2005)。
【0108】
制御部108は、2つのタッチ位置が検出された後、所定時間以上2つのタッチ位置が静止していると、選択したオブジェクトに対してユーザーが指示することができる命令の一覧が表示される。ユーザーは、選択したオブジェクトに対してどのような処理を指示することが可能なのかが分からない場合、タッチスクリーン201にタッチした指を一旦静止させておけば、指示することが可能な処理の一覧を見ることができ、ユーザーの手助けとなる。
【0109】
以上説明した選択処理、移動処理、削除処理、コピー処理、並び替え処理、メニュー表示処理は、いずれも、ユーザーが1回のアクションだけで指示できる処理である。ユーザーは、複数のオブジェクトに対してまとめて処理を行いたいときには、対象となるオブジェクトを2本の指ではさんで領域450内に収まるようにして選んだ後、指をタッチしたまま引き続いて指をスライドしたりねじったりすればよい。例えば移動処理の場合には、ユーザーは、「移動対象のオブジェクトを選択し、移動場所を決定し、移動を指示する」という一連の処理を、「指でタッチしてスライドさせる」というただ1回のノンストップアクションで行うことができる。本実施形態によれば、ユーザーは、行いたいアクションを単純な一連の動作として行うことができる。
【0110】
また、ユーザーは、指示の対象のオブジェクトが1つだけであっても複数であっても、同じアクションによって、上述した各処理を行うことができるので、煩わしさを抑えることができる。本実施形態によれば、例えば、1つのオブジェクトを選択する際にはそのオブジェクトのみクリックし、複数のオブジェクトを選択する際にはシフトキーやコントロールキーを押しながら所望のものだけクリックする、といったような面倒な操作は不要である。
【0111】
更に、上述した選択処理と組み合わせれば、移動処理、削除処理、コピー処理、並び替え処理、メニュー表示処理以外にも、ユーザーが行うアクションを定義することによって、任意の処理を一連の動作として行えるようにすることができる。
【0112】
上記各実施形態はあくまでも説明のためのものであり、本願発明の範囲を限定するものではない。例えば、電子機器100を装置の全部又は一部として動作させるためのコンピュータプログラムを、メモリーカード、CD−ROM、DVD、MO(Magneto Optical Disk)などのコンピュータ読み取り可能な記録媒体に格納して配布し、これを別のコンピュータにインストールし、電子機器100として動作させ、あるいは、電子機器100が行う工程を実行させてもよい。さらに、インターネット上のサーバ装置が有するディスク装置等にプログラムを格納しておき、例えば、搬送波に重畳させて、コンピュータにダウンロード等するものとしてもよい。
【0113】
電子機器100は、携帯電話機に限られず、電子書籍リーダー、電子手帳、電子辞書、パーソナルコンピューター、ポータブルゲーム機などでもよい。
【0114】
以上説明したように、本発明によれば、ユーザーが簡易な操作により処理の指示を行うことができる電子機器、電子機器の制御方法、及び、プログラムを提供することができる。