(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-19
(45)【発行日】2024-08-27
(54)【発明の名称】表示制御方法、表示制御装置、表示制御システム及びプログラム
(51)【国際特許分類】
G06F 3/0484 20220101AFI20240820BHJP
G09G 5/37 20060101ALI20240820BHJP
G09G 5/38 20060101ALI20240820BHJP
【FI】
G06F3/0484
G09G5/37 600
G09G5/38 100
(21)【出願番号】P 2020149932
(22)【出願日】2020-09-07
【審査請求日】2023-07-24
(73)【特許権者】
【識別番号】000001443
【氏名又は名称】カシオ計算機株式会社
(74)【代理人】
【識別番号】100095407
【氏名又は名称】木村 満
(72)【発明者】
【氏名】前田 直哉
【審査官】田川 泰宏
(56)【参考文献】
【文献】特開2002-215683(JP,A)
【文献】特開2019-144605(JP,A)
【文献】特開2017-126181(JP,A)
【文献】特開2013-182584(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/01-3/04895
G09G 5/37
G09G 5/38
(57)【特許請求の範囲】
【請求項1】
画面に表示されている対象を、対象者による連続的な操作に応じて連続的に移動させる表示制御を実行し、
前記対象としての第1の対象及び第2の対象が、互いの間に間隔を存した状態で前記画面に表示されている場合において、前記表示制御の実行により前記第1の対象が前記第2の対象に近づけられることによって、前記第1の対象と前記第
2の対象
との間の距離である対象間距離が、ある距離以下になっているか否かを判定し、
前記対象者による許可入力の有無を判定し、
前記対象間距離が前記ある距離以下になっていると判定されているときに、前記第1の対象及び前記第2の対象を、ある位置関係に前記第1の対象と前記第2の対象との互いの位置関係がなるように前記画面に表示させる位置関係表示制御の実行に対するユーザの許可を確認するための確認動作を実行し、
前記確認動作の実行中、
前記第1の対象を前記対象者による連続的な操作に応じて前記第2の対象に沿って連続的に移動させることにより、前記画面に表示させる前記第2の対象の位置を維持しつつ、前記画面に表示させる前記第1の対象の位置を前記第2の対象と前記ある位置関係を保ったまま連続的に移動させ、前記対象者による前記許可入力があったと判定されたときに、前記位置関係表示制御を実行する、
表示制御方法。
【請求項2】
前記第2の対象は複数存在する、
請求項1に記載の表示制御方法。
【請求項3】
前記第1の対象及び前記第2の対象は、2次元又は3次元の図形であり、
前記ある位置関係は、前記第1の対象が前記第2の対象に接する位置関係である、
請求項1
又は2に記載の表示制御方法。
【請求項4】
前記対象者による連続的な操作に応じて前記第1の対象が前記第2の対象に接していた状態から複数の交点で交わっている状態になっているか否かを判定し、
前記第1の対象が前記第2の対象に接していた状態から前記複数の交点で交わっている状態になっていると判定されたときに、前記確認動作を実行しない、
請求項
3に記載の表示制御方法。
【請求項5】
前記第1の対象の重心と前記第2の対象の重心とを結ぶ直線に直交する仮想の直交線と、前記第1の対象の接線と、前記第2の対象の接線とが互いに平行であるか否かを判定し、
前記仮想の直交線と、前記第1の対象の接線と、前記第2の対象の接線とが互いに平行であると判定され、かつ、前記対象間距離が前記ある距離以下になっていると判定されているときに、前記確認動作を実行することによって、前記第1の対象及び前記第2の対象の前記少なくとも一方の接線を表示し、
前記仮想の直交線と、前記第1の対象の接線と、前記第2の対象の接線とが互いに平行でないと判定されているときには、前記確認動作を実行しない、
請求項
3又は
4に記載の表示制御方法。
【請求項6】
前記第2の対象は複数存在し、
前記確認動作が実行される場合において、互いに平行な前記仮想の直交線及び前記第1の対象の接線と平行な接線を有する前記第2の対象が複数であるときに、前記複数の第2の対象のうち、前記対象間距離が最も小さい前記第2の対象の接線を表示する、
請求項
5に記載の表示制御方法。
【請求項7】
前記確認動作が実行される場合において、前記第1の対象及び前記第2の対象の少なくとも一方を、前記対象間距離が前記ある距離よりも大きいときとは異なる表示態様で表示する、
請求項1から
6のいずれか1項に記載の表示制御方法。
【請求項8】
画面に表示されている対象を、対象者による連続的な操作に応じて連続的に移動させる表示制御手段と、
前記対象としての第1の対象及び第2の対象が、互いの間に間隔を存した状態で前記画面に表示されている場合において、前記表示制御手段により前記第1の対象が前記第2の対象に近づけられることによって、前記第1の対象と前記第2の対象との間の距離である対象間距離が、ある距離以下になっているか否かを判定する第1の判定手段と、
前記対象者による許可入力があったか否かを判定する第2の判定手段と、を備え、
前記表示制御手段は、
前記第1の判定手段により前記対象間距離が前記ある距離以下になっていると判定されているときに、前記第1の対象及び前記第2の対象を、ある位置関係に前記第1の対象と前記第2の対象との互いの位置関係がなるように前記画面に表示させる位置関係表示制御の実行に対する前記対象者の許可を確認するための確認動作を実行し、
前記確認動作の実行中、
前記第1の対象を前記対象者による連続的な操作に応じて前記第2の対象に沿って連続的に移動させることにより、前記画面に表示させる前記第2の対象の位置を維持しつつ、前記画面に表示させる前記第1の対象の位置を前記第2の対象と前記ある位置関係を保ったまま連続的に移動させ、前記第2の判定手段により前記対象者による前記許可入力があったと判定されたときに、前記位置関係表示制御を実行する、
表示制御装置。
【請求項9】
サーバ装置と端末装置とを備える表示制御システムであって、
画面に表示されている対象を、対象者による連続的な操作に応じて連続的に移動させる表示制御手段と、
前記対象としての第1の対象及び第2の対象が、互いの間に間隔を存した状態で前記画面に表示されている場合において、前記表示制御手段により前記第1の対象が前記第2の対象に近づけられることによって、前記第1の対象と前記第2の対象との間の距離である対象間距離が、ある距離以下になっているか否かを判定する第1の判定手段と、
前記対象者による許可入力があったか否かを判定する第2の判定手段と、を備え、
前記表示制御手段は、
前記第1の判定手段により前記対象間距離が前記ある距離以下になっていると判定されているときに、前記第1の対象及び前記第2の対象を、ある位置関係に前記第1の対象と前記第2の対象との互いの位置関係がなるように前記画面に表示させる位置関係表示制御の実行に対する前記対象者の許可を確認するための確認動作を実行し、
前記確認動作の実行中、
前記第1の対象を前記対象者による連続的な操作に応じて前記第2の対象に沿って連続的に移動させることにより、前記画面に表示させる前記第2の対象の位置を維持しつつ、前記画面に表示させる前記第1の対象の位置を前記第2の対象と前記ある位置関係を保ったまま連続的に移動させ、前記第2の判定手段により前記対象者による前記許可入力があったと判定されたときに、前記位置関係表示制御を実行する、
表示制御システム。
【請求項10】
コンピュータに、
画面に表示されている対象を、対象者による連続的な操作に応じて連続的に移動させる処理と、
前記対象としての第1の対象及び第2の対象が、互いの間に間隔を存した状態で前記画面に表示されている場合において、前記第1の対象が前記第2の対象に近づけられることによって、前記第1の対象と前記第2の対象との間の距離である対象間距離が、ある距離以下になっているか否かを判定する処理と、
前記対象者による許可入力の有無を判定する処理と、
前記対象間距離が前記ある距離以下になっていると判定されているときに、前記第1の対象及び前記第2の対象を、ある位置関係に前記第1の対象と前記第2の対象との互いの位置関係がなるように前記画面に表示させる位置関係表示制御の実行に対する前記対象者の許可を確認するための確認動作を実行する処理と、
前記確認動作の実行中、
前記第1の対象を前記対象者による連続的な操作に応じて前記第2の対象に沿って連続的に移動させることにより、前記画面に表示させる前記第2の対象の位置を維持しつつ、前記画面に表示させる前記第1の対象の位置を前記第2の対象と前記ある位置関係を保ったまま連続的に移動させ、前記対象者による前記許可入力があったと判定されたときに、前記位置関係表示制御を実行する処理と、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、表示制御方法、表示制御装置、表示制御システム及びプログラムに関する。
【背景技術】
【0002】
現在のモバイルアプリケーションは、タッチパネルの画面上を指で触れて操作するタッチジェスチャ操作が主流である。タッチジェスチャ操作において、例えば、画面上の対象に指を触れ、指を触れた状態を維持しながら指を移動して、目的の場所に到達すると指を画面から離すことによって、対象を目的の場所に移動することができる(非特許文献1)。このタッチジェスチャ操作により、図形、グラフ等を対象とする描画において、対象を移動して他の対象と所定の位置関係、例えば、移動した図形が他の図形と接する位置に配置する。
【先行技術文献】
【非特許文献】
【0003】
【文献】“タッチパネルでの操作方法”,[online],NECパーソナルコンピュータ株式会社,[令和2年7月7日検索],インターネット<URL:https://support.nec-lavie.jp/e-manual/m/nx/vp/201109/pdf/pg/sw4/v1/mst/versapro_w7_manual/_manual/02_kakubu/02-30_panel/vt/VT71023002.htm>
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、指によるタッチジェスチャ操作を行う場合、指がタッチパネルに接触する面積が広いため、正確に対象を他の対象と所定の位置関係となる位置に移動することが困難なことがある。タッチパネルディスプレイが小さく、表示される対象同士が小さい場合、対象を的確な位置に移動することは更に困難である。また、近年のタッチパネルは「静電容量方式」を採用しており、指が乾燥している場合タッチパネルの反応が鈍くなり、細かいタッチジェスチャ操作を行うことは難しい。また、正確に対象を他の対象と所定の位置関係となる位置に移動することは、タッチパネルによるタッチジェスチャ操作に限らず、マウスポインティングデバイスを用いた操作であっても容易ではない。
【0005】
本発明は、上記に鑑みてなされたものであって、対象を他の対象に対して的確な位置に容易に移動させることを目的とする。
【課題を解決するための手段】
【0006】
本発明に係る表示制御方法は、
画面に表示されている対象を、対象者による連続的な操作に応じて連続的に移動させる表示制御を実行し、
前記対象としての第1の対象及び第2の対象が、互いの間に間隔を存した状態で前記画面に表示されている場合において、前記表示制御の実行により前記第1の対象が前記第2の対象に近づけられることによって、前記第1の対象と前記第2の対象との間の距離である対象間距離が、ある距離以下になっているか否かを判定し、
前記対象者による許可入力の有無を判定し、
前記対象間距離が前記ある距離以下になっていると判定されているときに、前記第1の対象及び前記第2の対象を、ある位置関係に前記第1の対象と前記第2の対象との互いの位置関係がなるように前記画面に表示させる位置関係表示制御の実行に対するユーザの許可を確認するための確認動作を実行し、
前記確認動作の実行中、前記第1の対象を前記対象者による連続的な操作に応じて前記第2の対象に沿って連続的に移動させることにより、前記画面に表示させる前記第2の対象の位置を維持しつつ、前記画面に表示させる前記第1の対象の位置を前記第2の対象と前記ある位置関係を保ったまま連続的に移動させ、前記対象者による前記許可入力があったと判定されたときに、前記位置関係表示制御を実行する。
【発明の効果】
【0007】
本発明によれば、対象を他の対象に対して的確な位置に容易に移動させることができる。
【図面の簡単な説明】
【0008】
【
図1】本発明の第1の実施の形態に係る表示制御システムの物理構成を示す図である。
【
図2】本発明の第1の実施の形態に係る表示制御システムの機能構成を示す図である。
【
図3】本発明の第1の実施の形態に係る表示制御システムの端末装置の表示部に表示されるウェブブラウザ上で動作する図形描画アプリケーションの表示画面の一例を示す図である。
【
図4】本発明の第1の実施の形態に係る図形描画処理手順を示すフローチャートである。
【
図5】本発明の第1の実施の形態に係る表示制御処理手順を示すフローチャートである。
【
図6】(A)は本発明の第1の実施の形態に係る対象と他の対象との距離がある値以下に達した状態を示す表示画面、(B)は対象が他の対象に接する位置に移動した状態を示す表示画面である。
【
図7】本発明の第1の実施の形態に係る他の対象が複数存在する場合の表示制御処理手順を示すフローチャートである。
【
図8】(A)は本発明の第1の実施の形態に係る対象と複数の他の対象との距離がある値以下に達した状態を示す表示画面、(B)は対象が複数の他の対象に接する位置に移動した状態を示す表示画面、(C)は対象が移動したことで他の対象に2点で交わった状態を示す表示画面である。
【
図9】本発明の第1の実施の形態に係る接点移動処理手順を示すフローチャートである。
【
図10】(A)は本発明の第1の実施の形態に係る対象を他の対象に沿ってドラッグ操作した状態を示す表示画面、(B)は対象が他の対象に沿って移動した状態を示す表示画面である。
【
図11】本発明の第2の実施の形態に係る表示制御処理手順を示すフローチャートである。
【
図12】(A)は本発明の第2の実施の形態に係る対象と他の対象との距離がある値以下に達した状態を示す表示画面、(B)は対象が他の対象に接する位置に移動した状態を示す表示画面である。
【
図13】(A)は本発明の第2の実施の形態に係る矩形同士が互いに斜めに位置する状態を示す表示画面、(B)は矩形同士が互いに対向して位置する状態を示す表示画面、(C)は矩形同士が互いに接した状態を示す表示画面である。
【
図14】本発明の第2の実施の形態に係る他の対象が複数存在する場合の表示制御処理手順を示すフローチャートである。
【
図15】(A)は本発明の第2の実施の形態に係る対象と複数の他の対象との距離がある値以下に達した状態を示す表示画面、(B)は対象と複数の他の対象との距離がある値以下であり、かつ複数の他の対象との距離が互いに同じである状態を示す表示画面である。
【
図16】本発明の第3の実施の形態に係る表示制御処理手順を示すフローチャートである。
【発明を実施するための形態】
【0009】
以下、本発明の実施の形態にかかる表示制御システム、表示制御装置について図面を参照して説明する。
【0010】
(第1の実施の形態)
本実施の形態にかかる表示制御システム1は、
図1に示すように、対象者であるユーザが操作する端末装置10と、サーバ装置20と、を備える。端末装置10とサーバ装置20は、ネットワーク30を介して通信可能に接続されている。ネットワーク30は、例えばインターネットである。
【0011】
表示制御システム1は、ユーザが入力した数式に基づいて演算を行い、演算結果を関数のグラフとして端末装置10の画面上に表示する。また、ユーザが入力した幾何学図形を端末装置10の画面上に表示する。描画された対象であるグラフ及び幾何学図形(以下、グラフ及び幾何学図形をまとめて図形と呼ぶ)は、ユーザの操作により移動させることが可能である。
【0012】
端末装置10は、ユーザが操作し、操作結果が表示されるタブレット端末、スマートフォン、パーソナルコンピュータ(PC)等である。端末装置10は、CPU(Central Processing Unit)11と、ROM(Read Only Memory)12と、RAM(Random Access Memory)13と、記憶部14と、入力部15と、表示部16と、タッチパネル17と、通信部18と、を備える。これらの各々は、システムバス19を介して互いに接続されている。
【0013】
CPU11は、例えばマイクロプロセッサ等であって、様々な処理や演算を実行する中央演算処理部である。ROM12は、各種初期設定、ハードウェアの検査、プログラムのロード等を行うための初期プログラムを記憶する。RAM13は、CPU11が実行する各種ソフトウェアプログラム、これらのソフトウェアプログラムを実行するために必要なデータ等を一時的に記憶する。CPU11は、システムバス19を介して端末装置10の各部に接続されており、ROM12に記憶されている制御プログラムを読み出して、RAM13をワークメモリとして用いながら、端末装置10全体の動作を制御する制御部として機能する。
【0014】
記憶部14は、フラッシュメモリ、ハードディスク等の不揮発性メモリである。記憶部14は、端末装置10が各種処理を行うために使用するソフトウェアプログラム及びデータ、端末装置10が生成した各種データ等を記憶する。
【0015】
入力部15は、ユーザからの入力を受け付けるキーボード、マウス等の外部入力装置を含む。ユーザの操作により入力部15を通じて入力された情報はシステムバス19を介してCPU11に伝達され、CPU11は入力された情報を判定し、入力された情報に応じた処理を実行する。
【0016】
表示部16は、液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイ等の表示画面を備える。表示部16は、CPU11により実行される処理に応じた画像を表示画面に表示する。タッチパネル17は、ユーザの指によるタッチ操作に応じた入力がなされる。タッチパネル17は、表示部16の表示画面に重ねて一体化される。表示部16とタッチパネル17によりタッチパネルディスプレイが構成される。通信部18は、他の装置と通信するためのデバイスを備え、インターネット等の通信ネットワークに接続する機能を有する。通信部18は、ネットワーク30を介してサーバ装置20との間で通信を行う。
【0017】
サーバ装置20は、CPU(Central Processing Unit)21と、ROM(Read Only Memory)22と、RAM(Random Access Memory)23と、記憶部24と、通信部25と、を備える。通信部25は、他の装置と通信するためのデバイスを備え、インターネット等の通信ネットワークに接続する機能を有する。これらの各々は、システムバス26を介して互いに接続されている。
【0018】
CPU21は、例えばマイクロプロセッサ等であって、様々な処理や演算を実行し、サーバ装置20全体の動作を制御する。ROM22は、CPU21の動作に使用するプログラム等の情報を記憶する。RAM23は、CPU21が実行する各種ソフトウェアプログラム、必要なデータ等を一時的に記憶し、CPU21のワークエリアとして機能する。記憶部24は、フラッシュメモリ、ハードディスク等の不揮発性メモリである。記憶部24は、サーバ装置20を制御するプログラム、各種演算処理を行うために使用するソフトウェアプログラム、パラメータ、サーバ装置20の演算結果等の各種データを記憶する。通信部25は、インターネット等の通信ネットワークに接続する機能を有しており、ネットワーク30を介して端末装置10との間で通信を行う。
【0019】
前述したように、端末装置10のCPU11は、ROM12に記憶されたソフトウェアプログラムをRAM13に読み出して、そのソフトウェアプログラムを実行制御する制御部として機能し、機能的には
図2に示すように構成される。制御部31は、表示部16の表示画面に図形を表示するとともに、ユーザによる連続的な操作に応じて図形を連続的に移動させる表示制御部35と、サーバ装置20に描画する図形の座標演算を指示する演算指示部32と、表示画面に表示される図形と他の図形の間の距離を判定する距離判定部33と、ユーザによる許可入力の有無を判定する許可入力判定部34と、を備える。また表示制御部35は、距離判定部33により上記の2つの図形の間の距離がある距離以下と判定されると、2つの図形が互いにある位置関係となるように調整されることに対するユーザの許可を確認するために、図形を点滅等の表示態様で表示する確認表示制御部36と、許可入力判定部34により許可入力があったと判定されると、2つの図形が互いにある位置関係となるよう調整して表示画面に表示させる位置関係表示制御部37と、を備える。また、サーバ装置20は、CPU21が、ROM22に記憶されたソフトウェアプログラムをRAM23に読み出して、そのソフトウェアプログラムを実行制御する制御部38として機能し、制御部38は端末装置10の演算指示部32からの演算要求に応じて演算を行う演算部39を備える。
【0020】
ユーザは、端末装置10で動作するウェブブラウザにおいてサーバ装置20のアドレスを指定する。端末装置10のウェブブラウザは、数式の入力受付等に応じてサーバ装置20へ演算要求を行い、サーバ装置20が演算プログラムにしたがって実行した演算の結果をサーバ装置20からの応答として受信する。端末装置10は、受信した演算結果を用いて、ウェブブラウザ上で動作するプログラムにしたがって図形を描画する。このように、表示制御システム1では、端末装置10のウェブブラウザ上で動作するプログラムと、サーバ装置20の演算プログラムとが協働することにより、図形描画のためのウェブアプリケーションとしての機能が実現される。
【0021】
図3は、ウェブブラウザ上で動作する図形描画アプリケーションの表示画面の一例を示す図である。
図3に示される表示画面は、端末装置10の表示部16に表示される図形表示エリア40を示している。図形表示エリア40は、グラフ及び幾何学図形を表示するためのエリアであり、座標軸が表示されている。
【0022】
図4は、本実施の形態における表示制御システム1の図形描画動作の一例を示すフローチャートである。図面の左側に記載されているステップS101,S102,S104,S105の処理は端末装置10が実行する処理を示し、右側に記載されているステップS103の処理はサーバ装置20が実行する処理である。
まず、端末装置10のCPU11は、入力部15を介してユーザからの図形描画指示を受け付けたか否かを判定する(ステップS101)。図形描画指示を受け付けたと判定されない場合(ステップS101:NO)、判定されるまで待機する。図形描画指示を受け付けたと判定された場合(ステップS101:YES)、ステップS102に進む。
【0023】
ステップS102において、端末装置10は、図形描画に必要な情報をサーバ装置20に送信する。必要な情報としては、グラフ描画の場合は当該グラフに対応する数式であり、幾何学図形描画の場合は当該図形の種類である。数式については、数式を入力するための数式付箋(図示せず)を表示画面に表示させて、入力部15のキーボード又は表示部16の表示画面に表示されるソフトウエアキーボードをユーザが操作することにより、表示されている数式付箋に数式が入力される。図形の種類については、図形の種類をアイコンで示した描画メニュー(図示せず)を表示画面に表示させて、ユーザが描画メニューから描画したい図形に応じたアイコンを選択することによって、入力される。描画メニューは、例えば、円を描画するための円アイコンと、多角形を描画するための多角形アイコン等を含む。ユーザは、これらのアイコンの中から作図したい図形のアイコンを選択して操作し、必要な情報を入力する。
【0024】
図形描画に必要な情報がサーバ装置20に送信されると、サーバ装置20は、送信された必要な情報を受信し、演算プログラムにしたがって、受信した情報に基づいて表示する図形の座標の演算を行い、それによる演算結果を端末装置10に送信する(ステップS103)。
【0025】
端末装置10のCPU11は、サーバ装置20から送信された演算結果を受信すると(ステップS104)、受信した演算結果に基づいて図形を表示部16に表示させる(ステップS105)。
【0026】
図3において、数式付箋にy=2xの数式がユーザの操作により入力部15から入力されている場合には、それに応じて、CPU11は表示部16に直線41を表示させる。また、円42は、描画メニューから円アイコンを選択して、円の中心となる座標位置と半径となる円周上の任意の座標位置をタッチパネル17へのタッチ操作あるいはマウスによりクリックすることにより指定することにより表示される。なお、円42について、数式付箋に(x-8)
2+(y-6)
2=4の数式を入力することによって表示させるようにしてもよい。
【0027】
図形表示エリア40に表示された図形は、グラフをタッチパネル17上でユーザがタップあるいはマウスでクリックすることによって選択し、ドラッグ操作することにより、ドラッグ操作にしたがってCPU11が表示部16上で図形を移動させることが可能である。ドラッグとともに図形が移動し、移動終了位置で指を離す(ドロップする)ことで指を離した(ドロップした)位置に図形が位置する。次に、図形を移動して、他の図形と接する位置に移動する動作について説明する。
【0028】
まず、表示制御システム1において、第1の対象である円42を移動させて第2の対象である直線41に接する位置に移動させる動作について、図面を参照して説明する。
【0029】
図5においてCPU11は、ユーザによるドラッグ操作があるか否かを判断する(ステップS201)。このドラッグ操作は、端末装置10の表示画面に表示されている円42を、ユーザの指によるタップ操作により選択した状態で移動させる操作のことである。CPU11は、ユーザによるドラッグ操作ありと判断すると(ステップS201:YES)、ユーザによるドラッグ操作が開始されたことを受け付ける(ステップS202)。ドラッグ操作に応じて、円42の座標を計算し、円42の座標が求められると、求められた座標に基づいて表示部16の表示画面上の図形表示エリア40に円42を表示する(ステップS203)。これによって、円42は、ユーザによるドラッグ操作に応じて移動する。ステップS201において、CPU11は、ユーザによるドラッグ操作なしと判断すると(ステップS201:NO)、処理を終了する。
【0030】
CPU11は、ステップS203で計算された円42の座標に基づき、他の対象である直線41と円42との対象間の距離を計算する(ステップS204)。この対象間の距離は、両対象の最短距離が計算される。なお、対象間の距離は、図形表示エリア40で設定されている座標に基づく距離以外に、画面上の距離であってもよい。
【0031】
両対象の最短距離が計算されると、CPU11は、算出された対象間の距離がある距離以下であるか否かを判定する(ステップS205)。ここで、ある距離は、円42が直線41に近接した距離であって、対象間距離との比較によって、後述する円42を直線41に接する位置に移動させる位置関係表示制御の実行条件が成立しているか否かを判定するための距離である。ステップS205は第1の判定手段の一例である。
【0032】
算出された距離がある距離以下である場合には(ステップS205:YES)、CPU11は、円42を直線41に接する位置に移動させる位置関係表示制御の実行条件が成立したとして、確認表示制御を実行する(ステップS206)。この例において確認表示制御は、円42と直線41との対象間距離がある距離よりも大きいときとは異なる表示態様で直線41を表示する制御、本実施の形態では点滅表示する制御である。確認表示制御は、位置関係表示制御の実行に対するユーザの許可をユーザに確認するための確認動作である。なお、当該確認動作は、直線41を点滅表示するのに代えて、直線41の色や太さを異ならせるように表示することによって行ってもよく、あるいは、直線41ではなく、画面上に上記の許可をユーザに確認する文章を表示してもよく(例えば、「位置関係表示制御を実行しても良いでしょうか?」を表示)、さらには、画面に表示する確認表示制御に限らず、例えば音(音声)や振動等によりユーザに確認するものであってもよい。
【0033】
ステップS205において、算出された距離がある距離以下でない場合には(ステップS205:NO)、ステップS201に戻って、引き続きユーザによるドラッグ操作にしたがって、CPU11は、ステップS201以下の動作処理を繰り返す。
【0034】
図6(A)は、ドラッグ操作に応じて円42が直線41に近づくように移動して、円42と直線41との間の距離がある値以下に達した状態を示している。この状態に達すると、CPU11は、円42と直線41との位置関係表示制御の実行条件が成立したと判断して、直線41の点滅表示を開始させる。なお、点滅表示は一例であって、円42と直線41との位置関係表示制御の実行に対するユーザの許可をユーザに確認するための表示であれば、他の方法であっても構わない。例えば、直線41を赤色等の別の色で表示するように切り替えたり、太線で表示するように切り替えたり、直線41からある距離の範囲を別の色等で表示するようにしてもよい。また、確認表示は、直線41と円42の少なくとも一方に対して行えばよい。したがって、直線41のみを点滅等させてもよいし、円42のみを点滅等させてもよいし、直線41とともに円42を点滅等させてもよい。
【0035】
図5に戻って、CPU11は、ステップS206で点滅表示を実行した後、ユーザがドラッグ操作を継続しているか、それともドラッグ操作を止めて指をタッチパネルから離したか否かを判定する。指がタッチパネルから離されたか否かにより、CPU11は、ユーザが、円42が直線41に接することを許可したか否か、すなわち許可入力の有無を判定する(ステップS207)。ステップS207は、第2の判定手段の一例である。
【0036】
ステップS207において、CPU11は、ユーザがドラッグ操作を止めて指をタッチパネルから離したことにより許可入力ありと判定した場合(ステップS207:YES)、円42と直線41とが互いに接するように円42を移動させる位置関係表示制御処理を行う。すなわち、円42と直線41とを結ぶ直線距離が最も短い円42上の点と直線41上の点について、円42上の当該点の座標が直線41上の当該点の座標と一致するように、円42の座標を計算する。CPU11は、円42の座標を計算すると、算出された座標に基づいて表示部16の表示画面上の図形表示エリア40に円42を表示する(ステップS208)。これによって、円42は、直線41と接する位置に配置される。
【0037】
この状態を
図6(A)及び
図6(B)を用いて説明する。
図6(A)は前述したように、円42と直線41との間の距離がある値以下に達して、直線41は点滅された状態を示している。このとき、直線41と円42との間の最短距離は、直線41上の点a(4,8)と円42上の点b(4.3,7.85)とを結ぶ直線距離である。ここで、ユーザがドラッグ操作を止めて指をタッチパネルから離すと、円42上の点bが直線41上の点aと一致するように円42を自動的に移動する。
図6(B)は、円42の移動が終了した状態を示している。円42は、点aにおいて直線41と接している。このように、円42は自動的に移動して、直線41に接する位置に配置される。
【0038】
ステップS207において、CPU11は、ユーザの指がタッチパネルから離されておらず、許可入力ありと判定しない場合(ステップS207:NO)、ステップS201に戻って、引き続きユーザによるドラッグ操作にしたがって、CPU11は、ステップS201以下の動作処理を繰り返す。なお、ステップS203,S206及びS208は、表示制御手段の一例である。
【0039】
以上のように、対象を他の対象に近づけるようにユーザが連続的にドラッグ操作する場合において、CPU11は、対象と他の対象との間の距離がある距離以下になっているか否かを判定する。また、CPU11は、ある距離以下になっていると判定されているときに、確認動作(点滅表示)を実行する。この確認動作は、位置関係表示制御の実行に対するユーザの許可をユーザに確認するための動作である。また、位置関係表示制御は、画面上で、対象を他の対象に接する位置に自動的に移動させるための制御である。そして確認動作が実行されている間に、ユーザが画面上で対象から指を離すのに応じてユーザによる許可入力ありと判定して、上記の位置関係表示制御を実行する。したがって、対象を他の対象に接する位置に移動させる厳密な操作をユーザに必要とせずに、対象を他の対象に接するように適切に移動させることができ、タッチジェスチャが苦手な人でも図形同士が接するように図形を容易に移動させることができる。
【0040】
また、対象を他の対象に接する位置に移動させる前に、移動させてもよいか許可を得ることにより、ユーザが意図していない移動を防止することができる。なお、上記の例では、対象と他の対象との互いの位置関係が接する位置関係になるように移動させて表示するようにした。しかしながら、位置関係表示制御は、対象と他の対象との互いの位置関係がある位置関係になるように画面に表示させる制御であればよく、接する位置関係になる場合に限らず他の位置関係になるように表示させてもよい。例えば、対象と他の対象とがある距離を維持した位置関係になるようにしたり、対象が円と直線の場合直線が円の中心を貫く位置関係になるようにしたりしてもよい。
【0041】
前述の例は、対象が移動して一の他の対象と接する動作であった。これに対して、対象が移動して複数の他の対象と接する例について以下に説明する。
【0042】
図8(A)に示すように、移動する第1の対象として円53、他の対象である第2の対象として、直線51及び直線52が表示されている。ここで、円53をドラッグ操作することにより直線51及び直線52に近づける。
【0043】
前述の例同様、
図7に示すように、CPU11は、ユーザによるドラッグ操作があるか否かを判断し(ステップS301)、ユーザによるドラッグ操作ありと判断すると(ステップS301:YES)、ドラッグ操作が開始されたことを受け付ける(ステップS302)。CPU11は、ドラッグ操作に応じて円53の座標を計算し、算出された座標に基づいて表示部16の表示画面上の図形表示エリア40に円53を表示する(ステップS303)。これによって、円53は、ドラッグ操作に応じて移動する。ステップS301において、CPU11は、ユーザによるドラッグ操作なしと判断すると(ステップS301:NO)、処理を終了する。
【0044】
CPU11は、ステップS303で計算された円53の座標に基づき、複数の他の対象の各々と、円53との間の最短距離をそれぞれ計算する(ステップS304)。すなわち、直線51と円53との間の最短距離、及び、直線52と円53との間の最短距離をそれぞれ計算する。円53と直線51との間の最短距離及び円53と直線52との間の最短距離が計算されると、CPU11は、算出された対象間の距離がある距離以下である他の対象が存在するか否かを判定する(ステップS305)。
【0045】
円53と直線51との間の最短距離及び円53と直線52との間の最短距離のうち、少なくとも一方の距離がある距離以下であると判定されると(ステップS305:YES)、CPU11は、円53と直線51、円53と直線52に交点が2箇所以上存在するか否か判定する(ステップS306)。交点が2箇所以上存在するとは、交点を有する他の対象との間で円53が当該他の対象と接する位置を越えて移動したことを示す。交点の有無は、対象を表示する画素が互いに重なっているか否かを判定すればよい。
【0046】
ステップS305において、ある距離以下でない他の対象が存在しないと判定される場合(ステップS305:NO)、ステップS301に戻って、引き続きユーザによるドラッグ操作にしたがって、CPU11は、ステップS301以下の動作処理を繰り返す。
【0047】
CPU11は、ステップS306において、円53と他の対象との互いの交点が2箇所以上存在しないと判定すると(ステップS306:NO)、位置関係表示制御の実行に対するユーザの許可をユーザに確認するための確認表示制御を実行する(ステップS307)。この場合の位置関係表示制御は、画面上で、円53との距離がある距離以下である他の対象と接する位置に円53を移動させる制御である。
【0048】
図8(A)は、ドラッグ操作により円53が直線51及び直線52に近づくように移動して、円53と直線51との間の距離及び円53と直線52との間の距離がともにある値以下に達した状態を示している。この状態に達すると、CPU11は、円53と直線51及び円53と直線52円との位置関係表示制御の実行条件が成立したと判断して、直線51及び直線52のいずれも点滅を開始する。
【0049】
図7に戻って、CPU11は、ステップS307で点滅表示した後、ユーザによるドラッグ操作が継続しているか、それともドラッグ操作を止めて指をタッチパネルから離したか否かに基づいて、ユーザによる許可入力の有無を判定する(ステップS309)。ステップS309において、CPU11は、ユーザによるドラッグ操作が停止されて指をタッチパネルから離したことによりユーザによる許可入力ありと判断した場合(ステップS309:YES)、円53が直線51及び直線52に接するように位置関係表示制御を実行する。すなわち、円53と直線51及び直線52とが接する円53の中心点の座標を求めるとともに、当該中心をもつ円53の座標を計算する。CPU11は、円53の座標が計算すると、算出された座標に基づいて表示部16の表示画面上の図形表示エリア40に円53を表示する(ステップS310)。これによって、円53は、直線51及び直線52と接する位置に移動する。
【0050】
この状態を
図8(A)及び
図8(B)を用いて説明する。
図8(A)は、円53と直線51との間の距離及び円53と直線52との間の距離がある値以下に達して、直線51及び直線52が点滅された状態を示している。ここで、ユーザがドラッグ操作を止めて指をタッチパネルから離すと、CPU11は、表示部16上で、円53が直線51及び直線52の両方と接するように、円53を自動的に移動させる。
図8(B)は、円53の移動が終了した状態を示している。円53は、直線51及び直線52と接している。このように、円53は、自動的に移動させられて、直線51及び直線52に接する位置に配置される。ステップS309において、ユーザの指がタッチパネルから離されておらず、それに基づいてユーザによる許可入力ありと判定しない場合(ステップS309:NO)、ステップS301に戻って、引き続きユーザによるドラッグ操作にしたがって、CPU11は、ステップS301以下の動作処理を繰り返す。
【0051】
これに対して、ステップS306において、円53と他の対象との互いの交点が2箇所以上存在すると判定されると(ステップS306:YES)、CPU11は、交点が2箇所以上存在する他の対象を除く円53との距離がある距離以下である他の対象を点滅表示する(ステップS308)。
【0052】
図8(C)は、ドラッグ操作により円53が直線51と接する位置からさらに移動することによって直線51と2点で交わった状態を示している。円53が直線51と接する位置を越える直前は、円53は直線51及び直線52とある距離以下の状態であるととともに、直線51及び直線52ともに、円53との交点が2箇所以上存在していないことから、直線51及び直線52はともに点滅している。しかしながら、
図8(C)の状態のように円53が直線51と接する位置を越えると、直線51は円53と接する可能性がなくなる。そこで、直線51を円53と接する候補として除外するべく、直線51の点滅を解除する。したがって、円53と接する候補として、直線52のみが点滅を維持する。
【0053】
図8(C)の場合において、CPU11は、ステップS308で点滅表示を実行した後、ユーザがドラッグ操作を継続しているか、それともドラッグ操作を止めて指をタッチパネルから離したか否かにより許可入力の有無を判定する(ステップS309)。ステップS309において、CPU11は、ユーザがドラッグ操作を止めて指をタッチパネルから離したことにより許可入力ありと判定した場合(ステップS309:YES)、円53が直線52に接するように位置関係表示制御を実行する。すなわち、円53と直線52とが接する円53の中心点の座標を求めるとともに、当該中心をもつ円53の座標を計算する。CPU11は、座標を計算すると、算出された座標に基づいて表示部16の表示画面上の図形表示エリア40に円53を表示する(ステップS310)。これによって、円53は、直線52と接する位置に配置される。
【0054】
以上のように、対象を複数の他の対象に近づけるようにユーザがドラッグ操作する場合において、CPU11は、これらの対象及び他の対象についての位置関係表示制御の実行に対するユーザの許可をユーザに確認するための確認動作を行うとともに、確認動作が実行されている間にユーザが指を離すことによって許可入力ありと判定すると、自動的に対象を他の対象に接する位置に配置する。したがって、対象を複数の他の対象に接する位置に移動させる厳密な操作を必要とせずに、対象を他の対象に接するように適切に移動させることができ、タッチジェスチャが苦手な人でも簡単に図形同士が接するように図形を容易に移動させることができる。また、対象を他の対象に接する位置に移動させる前に、移動させてもよいか許可を得ることにより、ユーザが意図していない移動を防止する。また、ドラッグ操作により対象が他の対象と接する位置を越えて移動した場合、当該他の対象を対象が接する位置に配置される候補から除外する。これによって簡単に接する図形の取捨選択を行うことができる。なお、上記の例では、交点が2箇所以上存在、すなわち対象が他の対象と接する位置を越えるとすぐに候補から除外することとなるが、多少のマージンをもたせて、対象が他の対象と接する位置を越えて所定距離以上離れると候補から除外するようにしてもよい。
【0055】
前述までの例は、対象をドラッグ操作により移動して、他の対象との距離がある値以下になると指を離して自動的に両対象が接する動作であった。これに対して、両対象が接した後に対象を移動して接点を変更する例について、
図9及び
図10を参照して、以下に説明する。
【0056】
図10(A)は、円62が直線61に接した状態を示している。CPU11は、
図9の接点移動処理のフローチャートに示すように、円62が直線61に接しているか否かを判定し(ステップS401)、両対象が接していると判定すると(ステップS401:YES)、両対象を点滅表示して接点を移動することが可能あることをユーザに示す(ステップS402)。両対象が接していないと判定されると(ステップS401:NO)、CPU11は、処理を終了する。
図10(A)において、円62と直線61は接した状態であることから、両者は点滅表示される。ステップS402が実行された後、CPU11は、ユーザによるドラッグ操作があるか否かを判定し(ステップS403)、ユーザによるドラッグ操作ありと判定すると(ステップS403:YES)、ドラッグ操作が開始されたことを受け付ける(ステップS404)。CPU11は、円62に対するドラッグ操作に応じて円62の直線61上の接点の座標を計算し、当該接点を有する円62の座標を計算する(ステップS405)。計算された座標に基づいて表示部16の表示画面上の図形表示エリア40に円62を表示する(ステップS406)。
図10(A)において、ユーザは矢印方向にドラッグ操作を行う。これによって、
図10(B)に示すように、円62はドラッグ操作に応じて直線61に沿って移動する。ステップS403において、CPU11は、ユーザによるドラッグ操作がないと判定すると(ステップS403:NO)、処理を終了する。以上のように、対象をドラッグ操作することにより対象と他の対象とが接したまま当該対象を移動させることができることから、タッチジェスチャが苦手な人でも簡単に図形同士が接するように図形を移動させることができる。
【0057】
(第2の実施の形態)
前述までの例は、直線と円のように接線が存在する図形同士を接するように位置関係表示制御するものであった。これに対して、図形同士が接するように位置関係表示制御の実行条件が成立したと判断して位置関係表示制御を実行することのユーザの許可をユーザに確認するための表示を接線の有無により行う例について説明する。
【0058】
図11の表示制御処理において、CPU11は、ユーザによるドラッグ操作があるか否かを判断し(ステップS501)、ユーザによるドラッグ操作ありと判断すると(ステップS501:YES)、ドラッグ操作が開始されたことを受け付ける(ステップS502)。CPU11は、ドラッグ操作信号に応じて対象の座標を計算し、算出された座標に基づいて表示部16の表示画面上の図形表示エリア40に対象を表示する(ステップS503)。これによって、対象は、ドラッグ操作に応じて移動する。ステップS501において、CPU11は、ユーザによるドラッグ操作なしと判断すると(ステップS501:NO)、処理を終了する。CPU11は、ステップS503で計算された対象の座標に基づき、他の対象との最短距離を計算し(ステップS504)、算出された対象間の距離がある距離以下であるか判定する(ステップS505)。
【0059】
算出された対象間の距離がある距離以下であると判定されると(ステップS505:YES)、CPU11は、対象の重心と他の対象の重心とを結ぶ直線に直交する仮想の直交線と、当該対象の接線と、当該他の対象の接線とが互いに平行であるか否かを判定する(ステップS506)。ステップS506において、互いに平行であると判定されると(ステップS506:YES)、CPU11は、当該対象が当該他の対象と接するように位置関係表示制御の実行条件が成立(ステップS505:YESかつステップS506:YES)したとして、確認表示制御を実行する(ステップS507)。この例において確認表示制御は、当該接線を表示する制御である。ここで、接線を表示するだけでなく、他の対象を点滅表示させてもよい。この確認表示制御は、この状態でユーザが指を離せば、当該対象と当該他の対象との位置関係表示制御を実行することのユーザの許可をユーザに確認するための確認動作である。
【0060】
ステップS505において算出された距離がある距離以下でないと判定される場合(ステップS505:NO)、対象の重心と他の対象の重心とを結ぶ直線に直交する仮想の直交線と、当該対象の接線と、当該他の対象の接線とが互いに平行でないと判定される場合(ステップS506:NO)、ステップS501に戻って、引き続きユーザによるドラッグ操作にしたがって、CPU11は、ステップS501以下の動作処理を繰り返す。
【0061】
CPU11は、ステップS508において、ユーザがドラッグ操作を止めて指をタッチパネルから離したことにより許可入力ありと判断した場合(ステップS508:YES)、対象を移動して他の対象と接するように対象の座標を計算し、算出された座標に基づいて表示部16の表示画面上の図形表示エリア40に表示する(ステップS509)。ステップS508において、CPU11は、ユーザの指がタッチパネルから離されておらず許可入力ありと判定されない場合(ステップS508:NO)、ステップS501に戻って、引き続きユーザによるドラッグ操作にしたがって、ステップS501以下の動作処理を繰り返す。
【0062】
図12(A)は、ドラッグ操作により対象である円71が他の対象である円72に近づくように移動して、両対象の距離がある値以下に達した状態を示している。この状態において、円71の中心である重心cと円72の中心である重心dとを結ぶ直線73に直交する仮想の直交線74を想定する。直線73は、円71と交点eを有する。交点eにおける円71の接線75は、直線73に直交することから、直交線74と平行である。また、直線73は、円72と交点fを有する。交点fにおける円72の接線76は、直線73に直交することから、直交線74と平行である。したがって、円71の重心cと円72の重心dとを結ぶ直線73に直交する直交線74と、円71の接線75と、円72の接線76とは互いに平行である。互いに平行であるということは、円71が円72と接するように接続処理されることが可能であることを示している。CPU11は、ユーザが指を離せば、円71と円72との位置関係表示制御を実行することのユーザの許可をユーザに確認するための表示として、接線76を表示する。ここで、さらに接線75を表示してもよい。接線76が表示された状態でユーザがドラッグ操作を止めてタッチパネルから指を離したことにより許可入力ありと判定されると、
図12(B)に示すように、円71は円72に接する位置に配置される。
【0063】
これに対して、
図13(A)は、ドラッグ操作により対象である矩形81が他の対象である矩形82に斜め方向から近づくように移動して、両対象の距離がある値以下に達した状態を示している。この状態において、矩形81の重心gと矩形82の重心hとを結ぶ直線83に直交する仮想の直交線84を想定する。ここで、直交線84は表示画面上に表示されない。直線83は、矩形81と交点iを有する。ここで、交点iにおいて矩形81と接する接線は、交点iが存在する矩形81の辺であることから、直交線84と平行の関係とならない。また、直線83は、矩形82と交点jを有する。交点jにおいて矩形82に接する接線は、交点jが存在する矩形82の辺であることから、直交線84と平行の関係とならない。したがって、矩形81の重心gと矩形82の重心hとを結ぶ直線83に直交する直交線84と、矩形81の接線と、矩形82の接線とは互いに平行でない。互いに平行でないということは、矩形81が矩形82と接するように位置関係表示制御を行うことができないことを示している。CPU11は、矩形81と矩形82との位置関係表示制御を実行することに対するユーザの許可をユーザに確認するための表示としての接線を表示しない。したがって、この状態でユーザがドラッグ操作を止めてタッチパネルから指を離しても、矩形81は矩形82に接する位置に配置されない。一方、
図13(B)は、矩形81が矩形82に対してドラッグ操作により対向する方向から移動している状態を示している。交点iにおける矩形81の接線85は、直線83に直交することから、直交線84と平行である。また、直線83は、矩形82と交点jを有する。交点jにおける矩形82の接線86は、直線83に直交することから、直交線84と平行である。したがって、矩形81の重心gと矩形82の重心hとを結ぶ直線83に直交する直交線84と、矩形81の接線85と、矩形82の接線86とは互いに平行である。互いに平行であるということは、矩形81が矩形82と接するように位置関係表示制御されることが可能であることを示している。CPU11は、ユーザが指を離せば、矩形81と矩形82との位置関係表示制御を実行することのユーザの許可をユーザに確認するための表示として、接線86を矩形82とともに表示する。ここで、さらに接線85を表示してもよい。接線86が表示された状態でユーザがドラッグ操作を止めてタッチパネルから指を離したことにより許可入力ありと判定されると、
図13(C)に示すように、矩形81は矩形82に接する位置に配置される。
【0064】
以上のように、対象を他の対象に接するようにユーザがドラッグ操作する場合において、CPU11は、対象と他の対象の間の距離がある距離以下であり、対象の重心と他の対象の重心とを結ぶ直線に直交する仮想の直交線と、当該対象の接線と、当該他の対象の接線とが互いに平行である場合、確認動作としての確認表示制御を実行することにより当該接線を表示し、確認動作が実行されている間にユーザが指を離すことにより許可入力ありと判定して、自動的に対象を他の対象に接する位置に配置する。したがって、ドラッグ操作の際に、他の対象と接する位置に向かって移動することができ、タッチジェスチャが苦手な人でも簡単に図形同士が接するように図形を移動させることができる。なお、上述の例では、確認動作として接線を表示した。ただし確認動作はこれに限らず、仮想の直行線の表示、接点の点滅等、前述したような他の方法により表示してもよく、また、前述したように音などで確認動作を行ってもよい。また、他の対象が矩形を含む多角形である場合、接する辺を予め指定してもよい。また、
図13(A)において、直交線84と平行の関係となる接線は存在しないものの、交点iが存在する矩形81の辺と交点jが存在する矩形82の辺は、平行である。CPU11は、矩形81が矩形82に近づいて両者の間の距離がある距離以下であり、両対象の対向する辺が平行であると判定すると、当該辺に接する線を表示することにより確認表示制御を実行してもよい。CPU11は、直交線84と平行の関係となる接線が存在せず、かつ両対象が対向する辺が平行でない場合、確認表示制御を実行しない。なお、確認表示制御は、対向する辺に接する線を表示する場合に限らず、他の表示態様であってもよい。また、対向する辺を有する図形は、矩形に限らず、三角形、五角形等、他の多角形であってもよい。
【0065】
前述の例は、対象が移動して一の他の対象と接する動作であった。これに対して、対象が移動して複数の他の対象と接する場合において、確認表示制御を接線の有無により行う例について説明する。確認表示制御は、前述したように、対象同士が接するように位置関係表示制御を実行することのユーザの許可をユーザに確認するための確認動作である。
【0066】
図14の表示制御処理において、CPU11は、ユーザによるドラッグ操作があるか否かを判断し(ステップS601)、ユーザによるドラッグ操作ありと判断すると(ステップS601:YES)、ドラッグ操作が開始されたことを受け付ける(ステップS602)。CPU11は、ドラッグ操作信号に応じて対象の座標を計算し、算出された座標に基づいて図形表示エリア40に対象を表示する(ステップS603)。これによって、対象は、ドラッグ操作に応じて移動する。ステップS601において、CPU11は、ユーザによるドラッグ操作なしと判断すると(ステップS601:NO)、処理を終了する。
【0067】
次に、CPU11は、計算された対象の座標に基づき、複数の他の対象との最短距離を計算し(ステップS604)、算出された距離がある距離以下であるか判定する(ステップS605)。算出された距離がある距離以下であると判定されると(ステップS605:YES)、CPU11は、対象の重心と他の対象の重心とを結ぶ直線に直交する仮想の直交線と、当該対象の接線と、当該他の対象の接線とが互いに平行であるか否かを判定する(ステップS606)。ここで、他の対象が複数ある場合、当該複数の対象についてそれぞれ互いに平行であるか否かを判定する。
【0068】
ステップS606において、互いに平行であると判定されると(ステップS606:YES)、CPU11は、互いに平行である他の対象が複数存在する場合、対象との距離が最も短い他の対象について当該対象を当該他の対象と接するように移動させる位置関係表示制御の実行条件が成立したとして、確認表示制御を実行する(ステップS607)。この例において確認表示制御は、当該接線を表示する制御である。ここで、接線を表示するだけでなく、他の対象を点滅表示させてもよい。この確認表示制御は、この状態でユーザが指を離せば、当該対象と当該他の対象との位置関係表示制御を実行することのユーザの許可をユーザに確認するための確認動作である。ステップS605において算出された距離がある距離以下でないと判定される場合(ステップS605:NO)、ステップS606において対象の重心と他の対象の重心とを結ぶ直線に直交する仮想の直交線と、当該対象の接線と、当該他の対象の接線とが互いに平行でないと判定される場合(ステップS606:NO)、ステップS601に戻って、引き続きユーザによるドラッグ操作にしたがって、ステップS601以下の動作処理を繰り返す。
【0069】
CPU11は、ステップS608において、ユーザがドラッグ操作を止めて指をタッチパネルから離したことにより許可入力ありと判定した場合(ステップS608:YES)、対象を移動して他の対象と接するように対象の座標を計算し、算出された座標に基づいて図形表示エリア40に図形を表示する(ステップS609)。ステップS608において、CPU11は、ユーザの指がタッチパネルから離されておらず許可入力ありと判定されない場合(ステップS608:NO)、ステップS601に戻って、引き続きユーザによるドラッグ操作にしたがって、ステップS601以下の動作処理を繰り返す。
【0070】
図15(A)は、ドラッグ操作により対象である円91が複数の他の対象である円92及び円93に近づくように移動して、円91と円92との間の距離及び円91と円93の間の距離がいずれもある値以下に達した状態を示している。この状態において、円91の重心と円92の重心とを結ぶ直線に直交する直交線と、円91の接線と、円92の接線とは互いに平行である。また、円91の重心と円93の重心とを結ぶ直線に直交する直交線と、円91の接線と、円93の接線とは互いに平行である。接線94は円92の接線を示し、接線95は円93の接線を示す。CPU11は、円91と円92との間の矢印で示された部分の距離と円91と円93との間の矢印で示された部分の距離を計算する。ここで、円91と円92との間の矢印で示された部分の距離は、円91と円93との間の矢印で示された部分の距離より短い。CPU11は、距離の小さい円92について、ユーザが指を離せば、円91と円92との位置関係表示制御を実行することのユーザの許可をユーザに確認するための表示として、円92の接線94を表示する。したがって、円93の接線95は表示されず、位置関係表示制御を実行する対象とされない。接線94が表示された状態でユーザがドラッグ操作を止めてタッチパネルから指を離したことにより許可入力ありと判定されると、円91は円92に接する位置に配置される。
【0071】
これに対して、
図15(B)は、
図15(A)同様、ドラッグ操作により対象である円91が複数の他の対象である円92及び円93に近づくように移動して、円91と円92との間の距離及び円91と円93との間の距離がいずれもある値以下に達した状態であり、かつ両者の距離が互いに同じである状態を示している。この状態において、円91の重心と円92の重心とを結ぶ直線に直交する直交線と、円91の接線と、円92の接線とは互いに平行である。また、円91の重心と円93の重心とを結ぶ直線に直交する直交線と、円91の接線と、円93の接線とは互いに平行である。両者の距離(円91と円92との間の距離、円91と円93との間の距離)は互いに同じであることから、CPU11は、円92及び円93がいずれも位置関係表示制御を実行する対象であるとして、ユーザに位置関係表示制御の実行に対する許可を確認するための表示として、円92の接線94及び円92の接線95の両方を表示する。接線94及び接線95が表示された状態でユーザがドラッグ操作を止めてタッチパネルから指を離したことにより許可入力ありと判定されると、円91は、円92及び円93の両方に接する位置に配置される。
【0072】
以上のように、対象を複数の他の対象に接するようにユーザがドラッグ操作する場合において、CPU11は、対象間の距離がある距離以下であり、対象の重心と他の対象の重心とを結ぶ直線に直交する仮想の直交線と、当該対象の接線と、当該他の対象の接線とが互いに平行である複数の他の対象が存在する場合、対象との距離が最も短い他の対象について確認表示制御を実行することにより当該他の対象の接線を表示し、確認動作が実行されている間にユーザが指を離したことに応じて許可入力ありと判定して、自動的に対象を他の対象に接する位置に配置する。したがって、ドラッグ操作の際に、他の対象と接する位置に向かって移動することができ、タッチジェスチャが苦手な人でも簡単に図形同士が接するように図形を移動させることができる。なお、確認動作は、接線を表示するだけに限られず、仮想の直行線の表示、接点の点滅等、他の方法により表示してもよい。
【0073】
(第3の実施の形態)
前述までの例は、端末装置10がドラッグ操作に基づいて対象を移動して他の対象と接する動作を行っていた。これに対して、ドラッグ操作に基づいて対象を移動して他の対象と接する動作をサーバ装置20が実行する例について説明する。
【0074】
図16は、本実施の形態における表示制御処理手順を示す図である。図面の左側に記載されているステップS701,S704,S705,S709,S710,S713,S714の処理は端末装置10が実行する処理を示し、右側に記載されているステップS702,S703,S706,S707,S708,S711,S712の処理はサーバ装置20が実行する処理を示す。
図16において、ユーザは、端末装置10の表示画面に表示される対象である図形をタップすることにより対象を選択してドラッグ操作を開始する。端末装置10は、ドラッグ操作が開始されたことを受け付けて、ドラッグ操作に基づくデータをサーバ装置20に送信する(ステップS701)。
【0075】
サーバ装置20は、端末装置10から送信されたデータを受信し(ステップS702)、ドラッグ操作にに応じて対象である図形の座標を計算し、端末装置10に送信する(ステップS703)。
【0076】
端末装置10は、サーバ装置20から座標を受信すると(ステップS704)、座標に基づいて画面上に対象である図形を表示する(ステップS705)。これによって、対象は、ユーザによるドラッグ操作に応じて移動する。
【0077】
サーバ装置20は、ステップS703で計算された対象の座標に基づき、他の対象との対象間の最短距離を計算し(ステップS706)、算出された対象間の距離がある距離以下であるか判定する(ステップS707)。算出された対象間の距離がある距離以下であると判定されると(ステップS707:YES)、対象が他の対象と位置関係表示制御の実行条件が成立したとして、確認表示制御の指示を端末装置10に送信する(ステップS708)。この例において確認表示制御は、対象間距離がある距離よりも大きいときとは異なる表示態様である他の対象を点滅する制御である。確認表示制御は、この状態でユーザが指を離せば、位置関係表示制御を実行することのユーザの許可をユーザに確認するための確認動作である。算出された距離がある距離以下でないと判定される場合(ステップS707:NO)、ステップS702に戻って、引き続き端末装置10から入力されるドラッグ操作にしたがって、ステップS702以下の動作処理を繰り返す。
【0078】
ステップS708によりサーバ装置20から他の対象を点滅する旨の確認表示制御の指示が送信されると、端末装置10は、指示を受信し(ステップS709)、他の対象を点滅表示する確認表示制御を実行する(ステップS710)。
【0079】
サーバ装置20は、ステップS708で点滅指示を送信した後、端末装置10からのドラッグ操作に基づくデータからユーザがドラッグ操作が継続しているか、それともドラッグ操作を止めて指をタッチパネルから離した否かを判定する。指がタッチパネルから離されたか否かにより、ユーザが対象に接することを許可したか否か、すなわち許可入力の有無を判定する(ステップS711)。ユーザがドラッグ操作を止めて指をタッチパネルから離すことにより許可入力ありと判定した場合(ステップS711:YES)、サーバ装置20は、対象と他の対象とを接するように対象の座標を計算する。座標が計算されると、算出された座標を端末装置10に送信する(ステップS712)。
【0080】
端末装置10は、サーバ装置20から座標を受信すると(ステップS713)、座標に基づいて表示画面上に対象である図形を表示する(ステップS714)。これによって、対象は、他の対象と接する位置に配置される。
【0081】
ステップS711において、ユーザの指がタッチパネルから離されておらず許可入力ありと判定されない場合(ステップS711:NO)、ステップS702に戻って、引き続き端末装置10から入力されるドラッグ操作に基づくデータにしたがって、ステップS702以下の動作処理を繰り返す。
【0082】
以上のように、対象を他の対象に接するようにドラッグ操作に基づいて対象を移動して他の対象と接する動作をサーバ装置20が実行することによって、ユーザが使用する端末装置10の処理の負担を軽減することができる。なお、上記の例では、対象と他の対象との間の距離を計算し、ある距離以下であるか判定し、ある距離以下である場合は確認表示制御を実行し、ドラッグ操作を止めて指をタッチパネルから離す許可入力を判定し、許可入力があった場合対象を他の対象と接する位置に配置する処理をサーバ装置20が実行したが、これらすべてをサーバ装置20が実行する必要はなく、これらの一部をサーバ装置20が実行し、他は端末装置10が実行してもよい。また、第2の実施の形態において説明した接線の生成及び表示の指示をサーバ装置20が行うようにしてもよい。
【0083】
上記の実施の形態において、対象として2次元の図形を例として説明したが、対象はこれに限らず3次元の図形であってもよい。また、上記実施の形態において、端末装置10とサーバ装置20から構成される表示制御システム1について説明したが、端末装置10のみですべての処理を実行するようにしてもよい。この場合、演算処理プログラムを含むすべての処理を実行するためのプログラムがROM12、記憶部14に記憶される。また、上記実施の形態において、CPU11がROM12に記憶されたプログラムを実行することによって、制御部として機能した。しかしながら、CPU11がROM12に記憶されたプログラムを実行する代わりに、例えばASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)、各種制御回路等の専用のハードウェアを備え、専用のハードウェアが、制御部として機能しても良い。この場合、一部を専用のハードウェアによって実現し、他の一部をソフトウェア又はファームウェアによって実現しても良い。
【0084】
また、上記実施の形態において、ROM12に予めプログラムを記憶しておくことはもとより、メモリカード等の外部記録媒体から記録媒体読取部を介してRAM13等に読み込ませて記憶されたものであってもよい。
【0085】
本発明の実施の形態を説明したが、本発明の範囲は、上述の実施の形態に限定するものではなく、特許請求の範囲に記載された発明の範囲とその均等の範囲を含む。以下に、この出願の願書に最初に添付した特許請求の範囲に記載した発明を付記する。付記の番号は、この出願の願書に最初に添付した特許請求の範囲の通りである。
【0086】
(付記1)
画面に表示されている対象を、対象者による連続的な操作に応じて連続的に移動させる表示制御を実行し、
前記対象としての第1の対象及び第2の対象が、互いの間に間隔を存した状態で前記画面に表示されている場合において、前記表示制御の実行により前記第1の対象が前記第2の対象に近づけられることによって、前記第1の対象と前記第2との対象の間の距離である対象間距離が、ある距離以下になっているか否かを判定し、
前記対象者による許可入力の有無を判定し、
前記対象間距離が前記ある距離以下になっていると判定されているときに、前記第1の対象及び前記第2の対象を、ある位置関係に前記第1の対象と前記第2の対象との互いの位置関係がなるように前記画面に表示させる位置関係表示制御の実行に対するユーザの許可を確認するための確認動作を実行し、
前記確認動作の実行中、前記対象者による前記許可入力があったと判定されたときに、前記位置関係表示制御を実行する、
表示制御方法。
【0087】
(付記2)
前記第2の対象は複数存在する、
付記1に記載の表示制御方法。
【0088】
(付記3)
前記第1の対象を前記対象者による連続的な操作に応じて連続的に移動させることにより、前記第2の対象に対して前記ある位置関係にある前記第1の対象を、前記ある位置関係を保ったまま連続的に移動させる、
付記1又は2に記載の表示制御方法。
【0089】
(付記4)
前記第1の対象及び前記第2の対象は、2次元又は3次元の図形であり、
前記ある位置関係は、前記第1の対象が前記第2の対象に接する位置関係である、
付記1から3のいずれか1つに記載の表示制御方法。
【0090】
(付記5)
前記対象者による連続的な操作に応じて前記第1の対象が前記第2の対象に接していた状態から複数の交点で交わっている状態になっているか否かを判定し、
前記第1の対象が前記第2の対象に接していた状態から前記複数の交点で交わっている状態になっていると判定されたときに、前記確認動作を実行しない、
付記4に記載の表示制御方法。
【0091】
(付記6)
前記第1の対象の重心と前記第2の対象の重心とを結ぶ直線に直交する仮想の直交線と、前記第1の対象の接線と、前記第2の対象の接線とが互いに平行であるか否かを判定し、
前記仮想の直交線と、前記第1の対象の接線と、前記第2の対象の接線とが互いに平行であると判定され、かつ、前記対象間距離が前記ある距離以下になっていると判定されているときに、前記確認動作を実行することによって、前記第1の対象及び前記第2の対象の前記少なくとも一方の接線を表示し、
前記仮想の直交線と、前記第1の対象の接線と、前記第2の対象の接線とが互いに平行でないと判定されているときには、前記確認動作を実行しない、
付記4又は5に記載の表示制御方法。
【0092】
(付記7)
前記第2の対象は複数存在し、
前記確認動作が実行される場合において、互いに平行な前記仮想の直交線及び前記第1の対象の接線と平行な接線を有する前記第2の対象が複数であるときに、前記複数の第2の対象のうち、前記対象間距離が最も小さい前記第2の対象の接線を表示する、
付記6に記載の表示制御方法。
【0093】
(付記8)
前記確認動作が実行される場合において、前記第1の対象及び前記第2の対象の少なくとも一方を、前記対象間距離が前記ある距離よりも大きいときとは異なる表示態様で表示する、
付記1から7のいずれか1つに記載の表示制御方法。
【0094】
(付記9)
画面に表示されている対象を、対象者による連続的な操作に応じて連続的に移動させる表示制御手段と、
前記対象としての第1の対象及び第2の対象が、互いの間に間隔を存した状態で前記画面に表示されている場合において、前記表示制御手段により前記第1の対象が前記第2の対象に近づけられることによって、前記第1の対象と前記第2の対象との間の距離である対象間距離が、ある距離以下になっているか否かを判定する第1の判定手段と、
前記対象者による許可入力があったか否かを判定する第2の判定手段と、を備え、
前記表示制御手段は、
前記第1の判定手段により前記対象間距離が前記ある距離以下になっていると判定されているときに、前記第1の対象及び前記第2の対象を、ある位置関係に前記第1の対象と前記第2の対象との互いの位置関係がなるように前記画面に表示させる位置関係表示制御の実行に対する前記対象者の許可を確認するための確認動作を実行し、
前記確認動作の実行中、前記第2の判定手段により前記対象者による前記許可入力があったと判定されたときに、前記位置関係表示制御を実行する、
表示制御装置。
【0095】
(付記10)
サーバ装置と端末装置とを備える表示制御システムであって、
画面に表示されている対象を、対象者による連続的な操作に応じて連続的に移動させる表示制御手段と、
前記対象としての第1の対象及び第2の対象が、互いの間に間隔を存した状態で前記画面に表示されている場合において、前記表示制御手段により前記第1の対象が前記第2の対象に近づけられることによって、前記第1の対象と前記第2の対象との間の距離である対象間距離が、ある距離以下になっているか否かを判定する第1の判定手段と、
前記対象者による許可入力があったか否かを判定する第2の判定手段と、を備え、
前記表示制御手段は、
前記第1の判定手段により前記対象間距離が前記ある距離以下になっていると判定されているときに、前記第1の対象及び前記第2の対象を、ある位置関係に前記第1の対象と前記第2の対象との互いの位置関係がなるように前記画面に表示させる位置関係表示制御の実行に対する前記対象者の許可を確認するための確認動作を実行し、
前記確認動作の実行中、前記第2の判定手段により前記対象者による前記許可入力があったと判定されたときに、前記位置関係表示制御を実行する、
表示制御システム。
【0096】
(付記11)
コンピュータに、
画面に表示されている対象を、対象者による連続的な操作に応じて連続的に移動させる処理と、
前記対象としての第1の対象及び第2の対象が、互いの間に間隔を存した状態で前記画面に表示されている場合において、前記第1の対象が前記第2の対象に近づけられることによって、前記第1の対象と前記第2の対象との間の距離である対象間距離が、ある距離以下になっているか否かを判定する処理と、
前記対象者による許可入力の有無を判定する処理と、
前記対象間距離が前記ある距離以下になっていると判定されているときに、前記第1の対象及び前記第2の対象を、ある位置関係に前記第1の対象と前記第2の対象との互いの位置関係がなるように前記画面に表示させる位置関係表示制御の実行に対する前記対象者の許可を確認するための確認動作を実行する処理と、
前記確認動作の実行中、前記対象者による前記許可入力があったと判定されたときに、前記位置関係表示制御を実行する処理と、
を実行させるためのプログラム。
【符号の説明】
【0097】
1…表示制御システム、10…端末装置、11,21…CPU、12,22…ROM、13,23…RAM、14,24…記憶部、15…入力部、16…表示部、17…タッチパネル、18,25…通信部、19,26…システムバス、20…サーバ装置、30…ネットワーク、31,38…制御部、32…演算指示部、33…距離判定部、34…許可入力判定部、35…表示制御部、36…確認表示制御部、37…位置関係表示制御部、39…演算部、40…図形表示エリア、41,51,52,61,73,83…直線、42,53,62,71,72,91,92,93…円、75,76,85,86,94,95…接線、74,84…直交線、81,82…矩形、c,d,g,h…重心、e,f,i,j…交点