説明

スクロール制御装置、端末装置およびスクロール制御方法

【課題】タッチスクリーンに対するスクロール操作を円滑に行う技術を提供する。
【解決手段】X方向移動量取得部22およびY方向移動量取得部24は、タッチスクリーン上のドラッグ操作の水平方向の移動量と垂直方向の移動量を取得する。X方向移動量リセット部42およびY方向移動量リセット部44は、ドラッグ操作におけるタッチ開始点を原点とする現在のタッチ点の水平方向および垂直方向の少なくとも一方の座標値が所定の閾値未満である場合、ドラッグ操作の水平方向および垂直方向の少なくとも一方の移動量をゼロにリセットする。スクロール制御部40は、X方向移動量リセット部42およびY方向移動量リセット部44による処理を経た水平方向および垂直方向の移動量に応じて画面をスクロールする。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、画面スクロールを制御する技術、特にタッチスクリーンにおけるスクロール制御技術に関する。
【背景技術】
【0002】
表示画面に直接、人間が指で触れることにより入力を行うことができるタッチパネルやタッチパッドなどのインタフェース機器がパーソナルコンピュータ、各種の携帯機器や携帯電話などで幅広く利用されている。ユーザはタッチパネルやタッチパッドなどのタッチスクリーンに指などで触れることで画面を操作することができる。また、携帯電話のように片手に収まる小型サイズのタッチパネルディスプレイを有する端末から、最近では表示画面の視認性を高めたり、高画質の画像を閲覧できるように、大きなサイズのタッチパネルディスプレイを備えたタブレット型の端末まで幅広い製品が開発されている。
【0003】
特許文献1には、表裏両面に表示画面を備えた携帯型画像表示装置が開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2010−26064号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
タッチパネルディスプレイを備えた端末でウェブページなどを閲覧するとき、画面をスクロールしなければ全画面を見ることができないため、タッチスクリーンに対するスクロール操作は必須である。タッチスクリーンに表示されたウェブページを指でタッチしながらドラッグすることで、画面をスクロールすることのできるインタフェースが一般的であるが、ドラッグ操作により、画面をユーザの思い通りの方向にスクロールさせるのは意外に難しく、フラストレーションが溜まることがある。たとえば縦にスクロールさせたいときに、指でタッチスクリーンにタッチながらドラッグするときに、指が横にずれたりすると、横方向にスクロールしてしまうことがある。
【0006】
本発明はこうした課題に鑑みてなされたものであり、その目的は、タッチスクリーンに対するスクロール操作を円滑に行うことのできる技術を提供することにある。
【課題を解決するための手段】
【0007】
上記課題を解決するために、本発明のある態様のスクロール制御装置は、タッチスクリーン上のドラッグ操作におけるタッチ開始点を原点とする現在のタッチ点の水平方向および垂直方向の少なくとも一方の座標値を所定の閾値と比較した結果に応じて、画面の水平方向および垂直方向の少なくとも一方のスクロールを制限する制御部を含む。
【0008】
本発明の別の態様は、端末装置である。この装置は、タッチスクリーン上のドラッグ操作により画面をスクロールさせて表示する端末装置であって、前記ドラッグ操作におけるタッチ開始点を原点とする現在のタッチ点の水平方向および垂直方向の少なくとも一方の座標値を所定の閾値と比較した結果に応じて画面の水平方向および垂直方向の少なくとも一方のスクロールが制限された状態で画面をスクロールして表示する表示部を含む。
【0009】
本発明のさらに別の態様は、スクロール制御方法である。この方法は、タッチスクリーン上のドラッグ操作におけるタッチ開始点を原点とする現在のタッチ点の水平方向および垂直方向の少なくとも一方の座標値を所定の閾値と比較した結果に応じて、画面の水平方向および垂直方向の少なくとも一方のスクロールを制限する。
【0010】
本発明のさらに別の態様は、プログラムである。このプログラムは、タッチスクリーン上のドラッグ操作におけるタッチ開始点を原点とする現在のタッチ点の水平方向および垂直方向の少なくとも一方の座標値を所定の閾値と比較する機能と、比較した結果に応じて、画面の水平方向および垂直方向の少なくとも一方のスクロールを制限する機能とをコンピュータの実現させる。
【0011】
本発明のさらに別の態様も、プログラムである。このプログラムは、タッチスクリーン上のドラッグ操作におけるタッチ開始点を原点とする現在のタッチ点の位置座標がドラッグ操作におけるタッチ開始点を中心とする所定の水平方向と垂直方向の閾値で決定されるいずれの分割領域にあるかを判定した結果を受け取る機能と、その判定結果に応じて、画面の水平方向および垂直方向の少なくとも一方のスクロールを制限する機能とをコンピュータの実現させる。
【0012】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、データ構造、記録媒体などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【0013】
本発明によれば、タッチスクリーンに対するスクロール操作を円滑に行うことができる。
【図面の簡単な説明】
【0014】
【図1】実施の形態1に係る携帯端末の外観図である。
【図2】図1のタッチスクリーンにおける画面スクロールを制御するスクロール制御装置の構成図である。
【図3A】携帯端末のタッチスクリーンをユーザが指で触れたまま上下方向、左右方向にずらすドラッグ操作を説明する図である。
【図3B】携帯端末のタッチスクリーンをユーザが指で触れたまま斜め方向にずらすドラッグ操作を説明する図である。
【図4】スクロール操作における不感領域を説明する図である。
【図5A】X軸方向のスクロールロックの閾値とスクロールのロック/アンロック状態の関係を説明する図である。
【図5B】Y軸方向のスクロールロックの閾値とスクロールのロック/アンロック状態の関係を説明する図である。
【図6】X軸方向およびY軸方向のスクロールロックの閾値とスクロール方向の関係を説明する図である。
【図7】ドラッグ操作の現在のタッチ点のX座標値、Y座標値とスクロールロック閾値の間に成り立つ条件式により、スクロール方向を分類した表である。
【図8A】ドラッグ操作の始点と現在のタッチ点の例を説明する図である。
【図8B】ドラッグ操作の始点と現在のタッチ点の例をドラッグの軌跡とともに説明する図である。
【図9】スクロールロックの閾値が固定である場合を説明する図である。
【図10】スクロールロックの閾値の自動調整を説明する図である。
【図11】速過ぎるドラッグ操作とスクロールロックの最大閾値の関係を説明する図である。
【図12】ゆっくり過ぎるドラッグ操作とスクロールロックの最小閾値の関係を説明する図である。
【図13】実施の形態1のスクロール制御装置によるスクロール制御手順を説明するフローチャートである。
【図14】図13のアンロック状態判定処理の詳細を説明するフローチャートである。
【図15】図13のスクロール方向決定処理の詳細を説明するフローチャートである。
【図16】実施の形態2に係るスクロール制御装置の構成図である。
【図17】実施の形態2のスクロール制御装置によるスクロール制御手順を説明するフローチャートである。
【図18】実施の形態3に係るスクロール制御装置の構成図である。
【図19】タッチ開始点を中心とする所定の水平方向と垂直方向の閾値で決定される9個の分割領域を説明する図である。
【図20】ウェブページの例を説明する図である。
【図21A】垂直スクロールの例を説明する図である。
【図21B】垂直スクロールの例を説明する図である。
【図21C】垂直スクロールにより、タッチスクリーンの表示領域がウェブページ上で移動する様子を説明する図である。
【図22A】水平スクロールの例を説明する図である。
【図22B】水平スクロールの例を説明する図である。
【図22C】水平スクロールにより、タッチスクリーンの表示領域がウェブページ上で移動する様子を説明する図である。
【図23A】2次元スクロールの例を説明する図である。
【図23B】2次元スクロールの例を説明する図である。
【図23C】2次元スクロールにより、タッチスクリーンの表示領域がウェブページ上で移動する様子を説明する図である。
【発明を実施するための形態】
【0015】
(実施の形態1)
図1は、実施の形態1に係る携帯端末200の外観図である。携帯端末200は、一例として、携帯電話、携帯情報端末、ゲーム機、タブレットコンピュータなどである。携帯端末200は、タッチスクリーン210の他、必要に応じてボタン220や図示しないカメラなどの入出力機能を備える。
【0016】
タッチスクリーン210は、タッチパネルを備えたディスプレイであり、指などによる接触点(位置)(以下、「タッチ点(位置)」と呼ぶ)と、タッチ点(位置)における接触状態を示す静電容量や電気抵抗量などの検知量を検出する入力装置である。タッチパネルは、液晶ディスプレイや有機EL(electroluminescence)ディスプレイなどのディスプレイの上に重ねて設置されており、これにより、ユーザはディスプレイの画面を見ながら、タッチパネルに指で直接触れることで画面に対する操作を入力することができる。
【0017】
図2は、図1のタッチスクリーン210における画面スクロールを制御するスクロール制御装置100の構成図である。図2に示すスクロール制御装置100の機能構成の一部または全部は、ハードウェア、ソフトウェアまたはその組み合わせによって実装することができる。携帯端末200は、当然、スクロール制御装置100以外の機能を備えるが、本発明の実施の形態の説明には関係しないので、スクロール制御以外の機能構成については説明を省略する。
【0018】
スクロール制御装置100は、タッチ位置取得部10、閾値調整部20、X方向移動量取得部22、Y方向移動量取得部24、スクロール方向決定部30、X方向ロック判定部32、Y方向ロック判定部34、スクロール制御部40、および表示部50を備える。
【0019】
タッチスクリーン210に接続されたタッチパネルコントローラ(図示しない)は、タッチスクリーン210の各点の静電容量の変化量を測定してタッチ点の位置とタッチ強度を検出する。タッチ点の位置とタッチ強度は、たとえば1/60秒などのサンプリング周期でサンプリングされる。ユーザがタッチスクリーン210に指でタッチしながらドラッグしているときは、タッチ点の位置座標とタッチ強度が時系列データとして取得される。
【0020】
タッチパネルは、一例として、静電容量方式タッチパネルであり、タッチ位置取得部10は、タッチパネルの各点の静電容量の変化量を測定してタッチ点の位置とタッチ点の静電容量値を検出する。指やペンなどで触れたときに何らかの測定量が時系列データとして取得できるタッチパネルであれば、静電容量方式に限らず、任意の方式のものを利用することができる。たとえば、感圧式タッチパネルでもよく、光学式タッチパネルであってもよい。
【0021】
タッチ位置取得部10は、タッチコントローラからタッチ点の位置座標の時系列データの入力を受け、タッチスクリーン210をユーザが指でタッチしながらなぞるドラッグ操作におけるタッチ点の位置座標の時系列データから、ドラッグ操作の始点と現在のタッチ点の座標位置を取得する。また、タッチ位置取得部10は、ドラッグ操作を終えて指230をタッチスクリーン210から離した位置をドラッグ操作の終点として取得することができる。
【0022】
タッチ位置取得部10は、ドラッグ操作の始点を原点とし、タッチスクリーン210の横(水平)方向をX軸、縦(垂直)方向をY軸とする座標系における現在時刻tのタッチ点のX座標値X(t)およびY座標値Y(t)を求めて、X座標値X(t)はX方向移動量取得部22とX方向ロック判定部32に、Y座標値Y(t)はY方向移動量取得部24とY方向ロック判定部34に与える。タッチパネルコントローラから入力されるタッチ点の座標がたとえばタッチスクリーン210の左下隅を原点とするXY座標系を用いたものである場合は、現在のタッチ点のX座標値、Y座標値からドラッグ操作の始点のX座標値、Y座標値をそれぞれ引いた値を求めれば、ドラッグ操作の始点を原点とする現在のタッチ点の座標値を求めることができる。
【0023】
X方向移動量取得部22は、ドラッグ操作の過去のタッチ点のX座標値X(t−1)と現在のタッチ点のX座標値X(t)の差分X(t)−X(t−1)を求めることにより、X方向の移動量ΔX(t)を求める。Y方向移動量取得部24は、ドラッグ操作の過去のタッチ点のY座標値Y(t−1)と現在のタッチ点のY座標値Y(t)の差分Y(t)−Y(t−1)を求めることにより、Y方向の移動量ΔY(t)を求める。
【0024】
ここで、過去のタッチ点のX座標値、Y座標値として、1つ前のサンプリング周期でサンプリングされたタッチ点のX座標値、Y座標値を用いてもよく、所定数のサンプリング周期分だけ前にサンプリングされたタッチ点のX座標値、Y座標値を用いてもよい。あるいは、過去のタッチ点のX座標値、Y座標値として、ドラッグ操作を開始したタッチ始点のX座標値、Y座標値を用いてもよい。
【0025】
X方向移動量取得部22は、求めた現在時刻tにおけるX方向の移動量ΔX(t)をスクロール制御部40に与える。Y方向移動量取得部24は、求めた現在時刻tにおけるY方向の移動量ΔY(t)をスクロール制御部40に与える。
【0026】
ドラッグ操作中の現在時刻tにおけるタッチ点のX座標値X(t)が所定の閾値Thx未満である場合、X方向のスクロールを行わない。同様に、現在時刻tにおけるタッチ点のY座標値Y(t)が所定の閾値Thy未満である場合、Y方向のスクロールを行わない。これをスクロールのロックと呼ぶ。
【0027】
閾値調整部20は、X方向のスクロールロックの閾値Thx、Y方向のスクロールロックの閾値Thyを設定し、それぞれの閾値をX方向ロック判定部32、Y方向ロック判定部34に与える。閾値Thx、Thyは固定値でもよいが、後述のようにユーザの意図するスクロール操作をより確実に実現するために、閾値Thx、Thyを可変にし、たとえば、最大値Thx_max、Thy_maxから最小値Thx_min、Thy_minへ所定の制限時間内に徐々に変化させてもよい。この場合、閾値調整部20は、自動調整された閾値Thx、Thyをタッチ点のサンプリング頻度と同等の頻度でそれぞれX方向ロック判定部32、Y方向ロック判定部34に与える。
【0028】
X方向ロック判定部32は、時刻tにおけるタッチ点のX座標値X(t)が閾値Thx未満である場合、X方向のスクロールをロックし、ロック状態にする。時刻tにおけるタッチ点のX座標値X(t)が閾値Thx未満である限り、X方向のスクロールのロック状態は維持される。X方向ロック判定部32は、時刻tにおけるタッチ点のX座標値X(t)が閾値Thxを超えた場合、X方向のスクロールロックを解除し、アンロック(ロック解除)状態にする。タッチ点のX座標値X(t)が閾値Thxに等しい場合は、ロック状態、アンロック状態のどちらにしてもよい。
【0029】
同様に、Y方向ロック判定部34は、時刻tにおけるタッチ点のY座標値Y(t)が閾値Thy未満である場合、Y方向のスクロールをロックし、ロック状態にする。時刻tにおけるタッチ点のY座標値Y(t)が閾値Thy未満である限り、Y方向のスクロールのロック状態は維持される。Y方向ロック判定部34は、時刻tにおけるタッチ点のY座標値Y(t)が閾値Thyを超えた場合、Y方向のスクロールロックを解除し、アンロック(ロック解除)状態にする。タッチ点のY座標値X(t)が閾値Thyに等しい場合は、ロック状態、アンロック状態のどちらにしてもよい。
【0030】
スクロール方向決定部30は、X方向ロック判定部32からX方向のスクロールのロック/アンロック状態の通知を、Y方向ロック判定部34からY方向のスクロールのロック/アンロック状態の通知を受け、X方向およびY方向のスクロールのロック/アンロック状態にもとづいて画面のスクロール方向を「水平スクロール」、「垂直スクロール」、「2次元スクロール」、あるいは「スクロールしない」のいずれかに決定する。
【0031】
「水平スクロール」とは、X方向(横方向)にのみ画面がスクロールするが、Y方向(縦方向)には画面がスクロールしない(ロックされている)ことを意味する。「垂直スクロール」とは、Y方向(縦方向)にのみ画面がスクロールするが、X方向(横方向)には画面がスクロールしない(ロックされている)ことを意味する。「2次元スクロール」とは、X方向(横方向)にもY方向(縦方向)にも画面がスクロールする、すなわち斜め方向も含めて、2次元平面の任意の方向に画面がスクロールすることを意味する。
【0032】
スクロール方向決定部30は、X方向のスクロールとY方向のスクロールがともにロック状態である場合、スクロールしないことに決定する。
【0033】
スクロール方向決定部30は、X方向のスクロールがアンロック状態であり、かつ、Y方向のスクロールがロック状態である場合、X方向のスクロールだけがロック解除されているため、スクロール方向を水平スクロールに決定する。
【0034】
スクロール方向決定部30は、Y方向のスクロールがアンロック状態であり、かつ、X方向のスクロールがロック状態である場合、Y方向のスクロールだけがロック解除されているため、スクロール方向を垂直スクロールに決定する。
【0035】
スクロール方向決定部30は、X方向のスクロールとY方向のスクロールがともにアンロック状態である場合、両方向ともスクロールがロック解除されているため、スクロール方向を2次元スクロールに決定する。
【0036】
スクロール制御部40は、X方向移動量取得部22から与えられる現在時刻tにおけるX方向の移動量ΔX(t)とY方向移動量取得部24から与えられる現在時刻tにおけるY方向の移動量ΔY(t)にもとづいて、スクロール方向決定部30により決定されたスクロール方向に画面をスクロールする。
【0037】
決定されたスクロール方向が水平スクロールの場合、スクロール制御部40は、X方向の移動量ΔX(t)に応じた(たとえば比例した)スクロール量だけ水平方向に画面をスクロールする。この場合、Y方向移動量取得部24により与えられたY方向の移動量ΔY(t)は無視される。
【0038】
決定されたスクロール方向が垂直スクロールの場合、スクロール制御部40は、Y方向の移動量ΔY(t)に応じた(たとえば比例した)スクロール量だけ垂直方向に画面をスクロールする。この場合、X方向移動量取得部22により与えられたX方向の移動量ΔX(t)は無視される。
【0039】
決定されたスクロール方向が2次元スクロールの場合、スクロール制御部40は、水平方向にはX方向の移動量ΔX(t)に応じた(たとえば比例した)スクロール量だけ、垂直方向にはY方向の移動量ΔY(t)に応じた(たとえば比例した)スクロール量だけ画面をスクロールする。言い換えれば、移動ベクトル(ΔX(t),ΔY(t))により決まる方向に移動ベクトルの大きさに応じた(たとえば比例した)スクロール量だけスクロールする。
【0040】
画面スクロール制御は公知の技術を用いる。表示部50は、スクロールされる画面をディスプレイに表示する。
【0041】
図3Aおよび図3Bは、携帯端末200のタッチスクリーン210をユーザが指230で触れたまま上下、左右、斜め方向にずらすドラッグ操作を説明する図である。
【0042】
図3Aは、指230をタッチスクリーン210につけたまま上方向に動かして符号232で示す位置までドラッグしている様子、あるいは、指230をタッチスクリーン210につけたまま右方向に動かして符号234で示す位置までドラッグしている様子を示す。図3Bは、指230をタッチスクリーン210につけたまま右上方向に動かして符号236で示す位置までドラッグしている様子を示す。
【0043】
図3A、図3Bに示したタッチスクリーン210上のドラッグ操作によってユーザは画面を水平方向、垂直方向、または2次元方向にスクロールすることができる。
【0044】
図4は、スクロール操作における不感領域240を説明する図である。ドラッグ操作を開始するときに指230が触れているタッチスクリーン210上の始点を原点として横方向をX軸、縦方向をY軸とする。X方向のスクロールロックの閾値Thx、Y方向のスクロールロックの閾値Thyに対して、(Thx,Thy)、(Thx,−Thy)、(−Thx,−Thy)、(−Thx,Thy)の4点を頂点とする矩形領域が不感領域240である。この不感領域240内では指230をドラッグしても、X方向、Y方向のいずれの方向にもスクロールはロックされており、スクロールは起きない。
【0045】
ドラッグ操作は、X軸の負の方向またはY軸の負の方向に行うこともできるが、以下では説明の簡単のため、X軸、Y軸ともに正の方向にドラッグする場合を例に動作を説明する。
【0046】
X方向のスクロールの閾値Thx、Y方向のスクロールの閾値Thyは同じ値でもよく、異なる値でもよい。ユーザは指230を動かすとき、携帯端末200のタッチスクリーン210の領域の広がりを意識するため、タッチスクリーン210が縦長の場合、X方向(横方向)よりもY方向(縦方向)に大きく動かし、タッチスクリーン210が横長の場合、ユーザは指230を動かすとき、Y方向(縦方向)よりもX方向(横方向)に大きく動かす傾向がある。そこで、縦長の場合は、Y方向のスクロールの閾値ThyをX方向のスクロールの閾値Thxよりも大きくし、横長の場合は、X方向のスクロールの閾値ThxをY方向のスクロールの閾値Thyよりも大きくしてもよい。あるいは、タッチスクリーン210の縦横比にもとづいてY方向の閾値ThyとX方向の閾値Thxの比を設定してもよい。
【0047】
図5Aは、X軸方向のスクロールロックの閾値とスクロールのロック/アンロック状態の関係を説明する図である。
【0048】
タッチスクリーン210上の指230のドラッグ操作の始点のX座標値をXs、ドラッグ操作の現在のタッチ点のX座標値をXeとする。始点を原点に取るため、始点のX座標値Xs=0である。現在のタッチ点のX座標値Xe=Xe1(<Thx)のとき、X方向のスクロールロックの閾値Thxに達していないので、X方向のスクロールはロック状態のままである。それに対して、現在のタッチ点のX座標値Xe=Xe2(≧Thx)のとき、X方向のスクロールロックの閾値Thxを超えているので、X方向のスクロールのロックは解除され、アンロック状態になる。
【0049】
図5Bは、Y軸方向のスクロールロックの閾値とスクロールのロック/アンロック状態の関係を説明する図である。
【0050】
タッチスクリーン210上の指230のドラッグ操作の始点のY座標値をYs、ドラッグ操作の現在のタッチ点のY座標値をYeとする。始点を原点に取るため、始点のY座標値Ys=0である。現在のタッチ点のY座標値Ye=Ye1(<Thy)のとき、Y方向のスクロールロックの閾値Thyに達していないので、Y方向のスクロールはロック状態のままである。それに対して、現在のタッチ点のY座標値Ye=Ye2(≧Thy)のとき、Y方向のスクロールロックの閾値Thyを超えているので、Y方向のスクロールのロックは解除され、アンロック状態になる。
【0051】
図6は、X軸方向およびY軸方向のスクロールロックの閾値とスクロール方向の関係を説明する図である。
【0052】
ドラッグ操作の始点を原点とした場合に、ドラッグ操作の現在のタッチ点のX座標値Xe、Y座標値Yeに対して、Xe<Thx、Ye<Thyの場合、X方向およびY方向のスクロールはともにロック状態であり、スクロールしない。
【0053】
Xe≧Thx、Ye<Thyの場合、X方向のスクロールはアンロック状態、Y方向のスクロールはロック状態であり、水平スクロールになる。
【0054】
Xe<Thx、Ye≧Thyの場合、X方向のスクロールはロック状態、Y方向のスクロールはアンロック状態であり、垂直スクロールになる。
【0055】
Xe≧Thx、Ye≧Thyの場合、X方向およびY方向のスクロールはともにアンロック状態であり、2次元スクロールになる。
【0056】
図7は、ドラッグ操作の現在のタッチ点のX座標値X(t)、Y座標値Y(t)とスクロールロック閾値の間に成り立つ条件式により、スクロール方向を分類した表である。
【0057】
(1)X座標値X(t)<Thx、かつ、Y座標値Y(t)<Thyの場合、
X方向にロック、かつ、Y方向にロックであり、スクロールなし。
(2)X座標値X(t)<Thx、かつ、Y座標値Y(t)≧Thyの場合、
X方向にロック、かつ、Y方向にアンロックであり、垂直スクロール。
(3)X座標値X(t)≧Thx、かつ、Y座標値Y(t)<Thyの場合、
X方向にアンロック、かつ、Y方向にロックであり、水平スクロール。
(4)X座標値X(t)≧Thx、かつ、Y座標値Y(t)≧Thyの場合、
X方向にアンロック、かつ、Y方向にアンロックであり、2次元スクロール。
【0058】
図8Aは、ドラッグ操作の始点と現在のタッチ点の例を説明する図である。始点Psを原点とするXY座標系で説明する。タッチ点Pe1、Pe2、Pe4、Pe6はいずれも異なるドラッグ操作における現在時刻tにおけるタッチ点である。
【0059】
タッチ点Pe1は、X座標値が閾値Thxより小さく、Y座標値も閾値Thyより小さく、不感領域240内にあるため、この場合はスクロールしない。タッチ点Pe2は、X座標値が閾値Thxより小さいため、X方向のスクロールはロックされ、Y座標値が閾値Thyを超えるため、Y方向のスクロールはアンロックされる。その結果、垂直スクロールになる。タッチ点Pe4は、X座標値が閾値Thxを超えるため、X方向のスクロールはアンロックされ、Y座標値が閾値Thyより小さいため、Y方向のスクロールはロックされる。その結果、水平スクロールになる。タッチ点Pe6は、X座標値が閾値Thxを超え、Y座標値も閾値Thyを超えるため、2次元スクロールになる。
【0060】
図8Aでは、いずれのドラッグ操作においても、始点Psから各タッチ点Pe1、Pe2、Pe4、Pe6まで直線的に指をずらした場合を示しているが、ドラッグ操作の途中の経路は直線である必要はなく、曲線であってもかまわない。
【0061】
図8Bは、ドラッグ操作の始点と現在のタッチ点の例をドラッグの軌跡とともに説明する図である。
【0062】
第1のドラッグ軌跡251では、始点Psからドラッグ操作を開始し、次のサンプリング周期でタッチ点Pe11がサンプリングされ、さらに次のサンプリング周期で現在のタッチ点Pe12に至っている。タッチ点Pe11の時点では、不感領域240内にあるため、両方向のスクロールはロックされているが、タッチ点Pe12に至った時点では、Y座標値が閾値Thyを超えるため、Y方向のスクロールがアンロックされ、垂直スクロールが開始される。いったんロックが解除されスクロール方向が決定されると、それ以降は決定されたスクロール方向が維持される。
【0063】
第2のドラッグ軌跡252では、始点Psからドラッグ操作を開始し、次のサンプリング周期でタッチ点Pe21がサンプリングされ、さらに次のサンプリング周期でタッチ点Pe22がサンプリングされ、最後に現在のタッチ点Pe23に至っている。タッチ点Pe21およびPe22の時点では、不感領域240内にあるため、両方向のスクロールはロックされているが、タッチ点Pe23に至った時点では、X座標値が閾値Thxを超え、Y座標値も閾値Thyを超えるため、両方向のスクロールがアンロックされ、2次元スクロールが開始される。いったん2次元スクロールに決定されると、それ以降は2次元スクロールが維持される。
【0064】
同様に、第3のドラッグ軌跡253では、始点Psからドラッグ操作を開始し、次のサンプリング周期でタッチ点Pe31がサンプリングされ、さらに次のサンプリング周期で現在のタッチ点Pe32に至っている。タッチ点Pe31の時点では、不感領域240内にあるため、両方向のスクロールはロックされているが、タッチ点Pe32に至った時点では、X座標値が閾値Thxを超えるため、X方向のスクロールがアンロックされ、水平スクロールが開始される。
【0065】
ここまでX方向、Y方向のスクロールロックの閾値Thx、Thyが固定値であるとして説明してきたが、ユーザの意図するスクロール操作をより確実に実現するためには、ユーザのドラッグ操作の過程でこれらの閾値Thx、Thyを変化させることがより好ましい。閾値を変化させる理由とその効果について図9〜図12を参照しながら説明する。
【0066】
図9は、スクロールロックの閾値が固定である場合を説明する図である。
【0067】
ドラッグ操作の始点Psを原点として、ユーザが2次元スクロールをしようとして指230をゆっくりと目標点Pe3’までドラッグしたとする。ゆっくりとドラッグすると、ドラッグ操作にかかる時間よりもサンプリング周期の方が短い場合、目標点Pe3’までドラッグしても、その手前の点Pe3が先にタッチ点としてサンプリングされる。その時点でのタッチ点Pe3のY座標値はThyを超えているが、X座標値はThxを超えていないため、この場合、垂直スクロールに決定され、いったん決定されたスクロール方向は維持されるので、その後目標点Pe3’までドラッグしたとしても、ユーザが意図した2次元スクロールにはならない。
【0068】
同様に、ユーザが2次元スクロールをしようとして指230をゆっくりと始点Psから目標点Pe5’までドラッグしたとする。ゆっくりとドラッグすると、ドラッグ操作にかかる時間よりもサンプリング周期の方が短い場合、目標点Pe5’までドラッグしても、その手前の点Pe5が先にタッチ点としてサンプリングされる。その時点でのタッチ点Pe5のX座標値は閾値Thxを超えているが、Y座標値は閾値Thyを超えていないため、この場合、水平スクロールに決定され、その後目標点Pe5’までドラッグしたとしても、2次元スクロールにはならない。
【0069】
一方、ユーザが指230を素早く動かすと次のようなことが起きる。ユーザが水平スクロールをしようとして指230を始点Psから素早くドラッグしたとする。素早くドラッグすると、指230がぶれるため、Y座標値が閾値Thyを超える点Pe7までドラッグしてしまい、次のサンプリング周期で点Pe7がタッチ点として検出される。もしゆっくりドラッグしていれば、次のサンプリング周期で手前の点Pe7’が先にタッチ点としてサンプリングされることもあるが、素早くドラッグすると、サンプリング周期よりも先に点Pe7まで進んでしまう。その時点でのPe7のX座標値が閾値Thxを超えているだけでなく、Y座標値も閾値Thyを超えているため、この場合、2次元スクロールになり、ユーザが意図している水平スクロールにはならない。
【0070】
このように閾値Thx、Thyが固定値である場合、指230の動きがゆっくり過ぎる場合、逆に速過ぎる場合に、ユーザが意図したスクロール方向が実現しない可能性がある。そこで、ユーザが意図するスクロール方向をより確実に実現するために、スクロールロックの閾値Thx、Thyをドラッグ操作の過程で徐々に変化させてもよい。
【0071】
図10は、スクロールロックの閾値の自動調整を説明する図である。X方向のスクロールロックのデフォルト閾値Thxdに対して、最大閾値Thx−maxと最小閾値Thx−minを設ける。同様に、Y方向のスクロールロックのデフォルト閾値Thydに対して、最大閾値Thy−maxと最小閾値Thy−minを設ける。ここで、デフォルト閾値Thxd、Thydは、閾値を可変とせず固定値とする場合の閾値Thx、Thyに等しい。
【0072】
閾値調整部20は、X方向のスクロールロックの閾値Thxを最大閾値Thx−maxから最小閾値Thx−minへ徐々に変化させ、Y方向のスクロールロックの閾値Thyを最大閾値Thy−maxから最小閾値Thy−minへ徐々に変化させる。
【0073】
たとえば、タッチ位置のサンプリングレートが1/60秒であるとすると、サンプリング周期のたとえば8フレーム分の時間を制限時間とし、ドラッグ開始から制限時間に達するまでの期間を変化期間として、閾値を最大閾値から最小閾値に変化させる。デフォルトの閾値をたとえば1.2ミリメートルとして、最大閾値はその4割増の1.68ミリメートル、最小閾値はその4割減の0.72ミリメートルに設定する。
【0074】
このようにスクロールロックの閾値をデフォルト値よりも大きめの値から小さめの値へと自動的に減少させることで、図9で説明したゆっくり過ぎるドラッグ操作と速過ぎるドラッグ操作の両方に対処することができる。
【0075】
図11は、速過ぎるドラッグ操作とスクロールロックの最大閾値の関係を説明する図である。
【0076】
ユーザのスクロール操作が速い場合、タッチ点が検出された時点でのX方向のスクロールロックの閾値Thxは最大閾値Thx−maxから、Y方向のスクロールロックの閾値Thyは最大閾値Thy−maxから、それぞれまだ大きくは減少していない。したがって、ユーザが水平スクロールを意図して素早くドラッグ操作したときのタッチ点Pe7のY座標値は、その時点のY方向のスクロールロックの閾値Thyよりも小さい。したがって、意図した通り、水平スクロールになり、素早くドラッグ操作しても2次元スクロールになることを避けることができる。
【0077】
図12は、ゆっくり過ぎるドラッグ操作とスクロールロックの最小閾値の関係を説明する図である。
【0078】
ユーザのスクロール操作が遅い場合、タッチ点が検出された時点でのX方向のスクロールロックの閾値Thxは最小閾値Thx−minへ、Y方向のスクロールロックの閾値Thyは最小閾値Thy−minへ、それぞれ近づいている。したがって、ユーザが2次元スクロールを意図してゆっくりドラッグ操作したときのタッチ点Pe3のX座標値は、その時点のX方向のスクロールロックの閾値Thxよりも大きく、タッチ点Pe5のY座標値は、その時点のY方向のスクロールロックの閾値Thyよりも大きい。したがって、タッチ点Pe3、Pe5のどちらの場合も意図した通り、2次元スクロールになり、ゆっくりドラッグ操作しても水平または垂直スクロールになることを避けることができる。
【0079】
図13は、実施の形態1のスクロール制御装置100によるスクロール制御手順を説明するフローチャートである。
【0080】
タッチ位置取得部10は、ドラッグ操作の始点Psを検出する(S10)。閾値調整部20は、X方向、Y方向のスクロールロックの閾値Thx、Thyの自動調整を開始する(S12)。以降、閾値調整部20は、タッチ位置取得部10によるタッチ位置のサンプリング周期に合わせて、スクロールロックの閾値も段階的に変化させる。タッチ位置取得部10は、始点Psを原点とする座標系におけるドラッグ操作の現在時刻tのタッチ点Pe(X(t),Y(t))を検出する(S14)。
【0081】
X方向移動量取得部22は、以前の時刻のタッチ点のX座標値と現在時刻tのタッチ点のX座標値X(t)の差分により、時刻tにおけるX方向の移動量ΔX(t)を算出する(S16)。Y方向移動量取得部24は、以前の時刻のタッチ点のY座標値と現在時刻tのタッチ点のY座標値Y(t)の差分により、時刻tにおけるY方向の移動量ΔY(t)を算出する(S18)。
【0082】
X方向ロック判定部32、Y方向ロック判定部34は、それぞれ時刻tのタッチ点のX座標値X(t)、Y座標値Y(t)を、時刻tにおける自動調整された閾値Thx、Thyと比較することにより、X方向、Y方向にスクロールをロックするかどうかを判定する(S20)。
【0083】
スクロール方向決定部30は、X方向およびY方向のロック/アンロック状態にもとづいてスクロール方向を決定する(S22)。スクロール制御部40は、スクロール方向決定部30により決定されたスクロール方向に画面のスクロール制御を行う(S24)。スクロール方向が水平スクロールの場合、時刻tにおけるX方向の移動量ΔX(t)に応じたスクロール量だけ水平スクロールし、スクロール方向が垂直スクロールの場合、時刻tにおけるY方向の移動量ΔY(t)に応じたスクロール量だけ垂直スクロールする。
【0084】
図14は、図13のステップS20のロック判定処理の詳細を説明するフローチャートである。
【0085】
ドラッグ操作の開始時点では、X方向ののスクロール、Y方向のスクロールはともにロック状態にある。
【0086】
X方向ロック判定部32は、時刻tのタッチ点のX座標値X(t)がX方向のスクロールロックの閾値Thx以上であるかどうかを判定する(S30)。このときのX方向のスクロールロックの閾値Thxは、閾値が固定値である場合は、デフォルト閾値Thxdであるが、閾値が可変である場合は、時点tにおける自動調整後の閾値Thx(t)である。
【0087】
X方向ロック判定部32は、X(t)≧Thxであれば(S30のY)、X方向のスクロールロックを解除(アンロック)し(S32)、そうでなければ(S30のN)、X方向のスクロールのロック状態を維持する。
【0088】
次に、同様に、Y方向ロック判定部34は、時刻tのタッチ点のY座標値Y(t)がY方向のスクロールロックの閾値Thy以上であるかどうかを判定し(S34)、Y(t)≧Thyであれば(S34のY)、Y方向のスクロールロックを解除(アンロック)し(S36)、そうでなければ(S34のN)、Y方向のスクロールのロック状態を維持する。
【0089】
図15は、図13のステップS22のスクロール方向決定処理の詳細を説明するフローチャートである。
【0090】
スクロール方向決定部30は、X方向のスクロールがアンロック状態であるかどうか調べ(S40)、X方向がアンロック状態であれば(S40のY)、さらにY方向のスクロールがアンロック状態であるかどうか調べ(S42)、Y方向もアンロック状態であれば(S42のY)、スクロール方向を2次元スクロールに決定し(S44)、Y方向はロック状態であれば(S42のN)、スクロール方向を水平スクロールに決定する(S46)。
【0091】
ステップS40において、X方向のスクロールがアンロック状態でない、すなわちロック状態であれば(S40のN)、さらにY方向のスクロールがアンロック状態であるかどうか調べ(S48)、Y方向はアンロック状態であれば(S48のY)、スクロール方向を垂直スクロールに決定し(S50)、Y方向もアンロック状態でない、すなわちロック状態であれば(S48のN)、スクロールなしに決定する(S52)。
【0092】
(実施の形態2)
本発明の実施の形態2は、実施の形態1とは、スクロール制御装置100の構成と動作が一部異なる。ここでは、実施の形態1と異なる構成と動作について説明し、共通構成と動作については説明を省略する。
【0093】
図16は、実施の形態2に係るスクロール制御装置100の構成図である。スクロール制御装置100は、タッチ位置取得部10、閾値調整部20、X方向移動量取得部22、Y方向移動量取得部24、X方向移動量リセット部42、Y方向移動量リセット部44、スクロール制御部40、および表示部50を備える。
【0094】
タッチ位置取得部10、閾値調整部20、X方向移動量取得部22、およびY方向移動量取得部24の動作は実施の形態1と同じであるが、求めた値の出力先が異なる。実施の形態2では、タッチ位置取得部10は、求めた現在時刻tのタッチ点のX座標値X(t)をX方向移動量取得部22とX方向移動量リセット部42に、求めた現在時刻tのタッチ点のY座標値Y(t)をY方向移動量取得部24とY方向ロック判定部34に与える。閾値調整部20は、自動調整された閾値Thx、ThyをそれぞれX方向移動量リセット部42、Y方向移動量リセット部44に与える。
【0095】
X方向移動量取得部22は、求めた現在時刻tにおけるX方向の移動量ΔX(t)をスクロール制御部40ではなく、X方向移動量リセット部42に与え、Y方向移動量取得部24は、求めた現在時刻tにおけるY方向の移動量ΔY(t)をスクロール制御部40ではなく、Y方向移動量リセット部44に与える。
【0096】
X方向移動量リセット部42は、時刻tにおけるタッチ点のX座標値X(t)が閾値Thx未満である場合、時刻tにおけるX方向の移動量ΔX(t)をゼロにリセットする。X方向移動量リセット部42は、時刻tにおけるタッチ点のX座標値X(t)が閾値Thxを超えた場合、時刻tにおけるX方向の移動量ΔX(t)をリセットしないで元の値を維持する。X方向移動量リセット部42による処理を経た後のX方向の移動量(調整後の移動量という)をΔX’(t)とすると、ΔX’(t)=0またはΔX’(t)=ΔX(t)である。
【0097】
同様に、Y方向移動量リセット部44は、時刻tにおけるタッチ点のY座標値Y(t)が閾値Thy未満である場合、時刻tにおけるY方向の移動量ΔY(t)をゼロにリセットする。Y方向移動量リセット部44は、時刻tにおけるタッチ点のY座標値Y(t)が閾値Thyを超えた場合、時刻tにおけるY方向の移動量ΔY(t)をリセットしないで元の値を維持する。Y方向移動量リセット部44による処理を経た後のY方向の移動量(調整後の移動量という)をΔY’(t)とすると、ΔY’(t)=0またはΔY’(t)=ΔY(t)である。
【0098】
スクロール制御部40は、X方向移動量リセット部42から時刻tにおけるX方向の調整後の移動量ΔX’(t)の入力を、Y方向移動量リセット部44から時刻tにおけるY方向の調整後の移動量ΔY’(t)の入力を受け、X方向の調整後の移動量ΔX’(t)とY方向の調整後の移動量ΔY’(t)に応じたベクトル方向に画面をスクロールする。具体的にはスクロール制御部40は、水平方向にはX方向の調整後の移動量ΔX’(t)に応じた(たとえば比例した)スクロール量だけ、垂直方向にはY方向の調整後の移動量ΔY’(t)に応じた(たとえば比例した)スクロール量だけ画面をスクロールする。言い換えれば、移動ベクトル(ΔX’(t),ΔY’(t))により決まる方向に移動ベクトルの大きさに応じた(たとえば比例した)スクロール量だけスクロールする。
【0099】
ここで、ΔX’(t)=ΔX(t)かつΔY’(t)=0の場合は、Y方向にはスクロールせず、X方向にのみΔX(t)に比例したスクロール量だけスクロールする水平スクロールになる。ΔX’(t)=0かつΔY’(t)=ΔY(t)の場合は、X方向にはスクロールせず、Y方向にのみΔY(t)に比例したスクロール量だけスクロールする垂直スクロールになる。ΔX’(t)=ΔX(t)かつΔY’(t)=ΔY(t)の場合は、X方向にはΔX(t)に比例したスクロール量だけスクロールし、Y方向にはΔY(t)に比例したスクロール量だけスクロールする2次元スクロールになる。ΔX’(t)=0かつΔY’(t)=0の場合は、いずれの方向にもスクロールしない。
【0100】
このように、実施の形態2では、X方向の移動量またはY方向の移動量をゼロにリセットすることでX方向またはY方向のスクロールを事実上ロックし、垂直スクロールまたは水平スクロールを実現することができる。
【0101】
図17は、実施の形態2のスクロール制御装置100によるスクロール制御手順を説明するフローチャートである。
【0102】
タッチ位置取得部10は、ドラッグ操作の始点Psを検出する(S30)。閾値調整部20は、X方向、Y方向のスクロールロックの閾値Thx、Thyの自動調整を開始する(S32)。以降、閾値調整部20は、タッチ位置取得部10によるタッチ位置のサンプリング周期に合わせて、スクロールロックの閾値も段階的に変化させる。タッチ位置取得部10は、始点Psを原点とする座標系におけるドラッグ操作の現在時刻tのタッチ点Pe(X(t),Y(t))を検出する(S34)。
【0103】
X方向移動量取得部22は、以前の時刻のタッチ点のX座標値と現在時刻tのタッチ点のX座標値X(t)の差分により、時刻tにおけるX方向の移動量ΔX(t)を算出する(S36)。Y方向移動量取得部24は、以前の時刻のタッチ点のY座標値と現在時刻tのタッチ点のY座標値Y(t)の差分により、時刻tにおけるY方向の移動量ΔY(t)を算出する(S38)。
【0104】
X方向移動量リセット部42は、時刻tのタッチ点のX座標値X(t)を時刻tにおける自動調整された閾値Thxと比較することにより、時刻tにおけるX方向の移動量ΔX(t)をゼロにリセットするかどうかを判定する(S40)。X方向移動量リセット部42は、X(t)<Thxの場合、ΔX(t)=0にリセットし、X(t)≧Thxの場合、ΔX(t)をリセットせず、X方向移動量取得部22により求めた値のまま変更しない。
【0105】
同様に、Y方向移動量リセット部44は、時刻tのタッチ点のY座標値Y(t)を時刻tにおける自動調整された閾値Thyと比較することにより、時刻tにおけるY方向の移動量ΔY(t)をゼロにリセットするかどうかを判定する(S42)。Y方向移動量リセット部44は、Y(t)<Thyの場合、ΔY(t)=0にリセットし、Y(t)≧Thyの場合、ΔY(t)をリセットせず、Y方向移動量取得部24により求めた値のまま変更しない。
【0106】
スクロール制御部40は、X方向移動量リセット部42による調整後の時刻tにおけるX方向の移動量ΔX(t)と、Y方向移動量リセット部44による調整後の時刻tにおけるY方向の移動量ΔY(t)により定まる移動ベクトル(ΔX(t),ΔY(t))の方向に、その移動ベクトルの長さに応じたスクロール量で、画面のスクロール制御を行う(S44)。ΔX(t)またはΔY(t)がゼロにリセットされている場合、この移動ベクトルは垂直ベクトルまたは水平ベクトルになるため、垂直スクロールまたは水平スクロールになる。
【0107】
(実施の形態3)
本発明の実施の形態3は、実施の形態1とは、スクロール制御装置100の構成と動作が一部異なる。ここでは、実施の形態1と異なる構成と動作について説明し、共通構成と動作については説明を省略する。
【0108】
図18は、実施の形態3に係るスクロール制御装置100の構成図である。スクロール制御装置100は、タッチ位置取得部10、閾値調整部20、X方向移動量取得部22、Y方向移動量取得部24、スクロール制御部40、タッチ領域判定部45、および表示部50を備える。
【0109】
タッチ位置取得部10、閾値調整部20、X方向移動量取得部22、およびY方向移動量取得部24の動作は実施の形態1と同じであるが、タッチ位置取得部10と閾値調整部20が求めた値の出力先が異なる。実施の形態3では、タッチ位置取得部10は、求めた現在時刻tのタッチ点のX座標値X(t)をX方向移動量取得部22とタッチ領域判定部45に、求めた現在時刻tのタッチ点のY座標値Y(t)をY方向移動量取得部24とタッチ領域判定部45に与える。閾値調整部20は、自動調整された閾値Thx、Thyをタッチ領域判定部45に与える。
【0110】
実施の形態1と同様、X方向移動量取得部22は、求めた現在時刻tにおけるX方向の移動量ΔX(t)をスクロール制御部40に与え、Y方向移動量取得部24は、求めた現在時刻tにおけるY方向の移動量ΔY(t)をスクロール制御部40に与える。
【0111】
タッチ領域判定部45は、時刻tにおけるタッチ点(X(t),Y(t))が閾値Thx、Thyで定まる不感領域240内または不感領域240外のいずれの分割領域にあるかを判定する。
【0112】
図19は、タッチ開始点を中心とする水平方向の閾値Thxと垂直方向の閾値Thyで決定される9個の分割領域を説明する図である。
【0113】
タッチ開始点を原点とするXY座標系において、分割領域Iは、−Thx<X<Thxかつ−Thy<Y<Thyを満たす領域であり、不感領域240である。現在のタッチ点が分割領域Iにある場合、X方向、Y方向のいずれの方向にもスクロールは起きない。
【0114】
分割領域IIは、Thx≦Xかつ−Thy<Y<Thyを満たす領域であり、分割領域IIIは、X≦−Thxかつ−Thy<Y<Thyを満たす領域である。タッチ点が分割領域IIまたは分割領域IIIに到達すると、水平スクロールになる。
【0115】
分割領域IVは、−Thx<X<ThxかつThy≦Yを満たす領域であり、分割領域Vは、−Thx<X<ThxかつY≦−Thyを満たす領域である。タッチ点が分割領域IVまたは分割領域Vに到達すると、垂直スクロールになる。
【0116】
分割領域VIは、Thx≦XかつThy≦Yを満たす領域であり、分割領域VIIは、X≦−ThxかつThy≦Yを満たす領域であり、分割領域VIIIは、X≦−ThxかつY≦−Thyを満たす領域であり、分割領域IXは、Thx≦XかつY≦−Thyを満たす領域であり、タッチ点が分割領域VI、VII、VIII、IXのいずれかに到達すると、2次元スクロールになる。
【0117】
タッチ領域判定部45は、時刻tにおけるタッチ点(X(t),Y(t))が図19の9個の分割領域I〜IXのいずれに存在するかを判定する。この領域判定は、タッチ点のX座標値X(t)、Y座標値Y(t)をそれぞれ閾値Thx、Thyと比較することにより行うことができる。
【0118】
スクロール制御部40は、タッチ領域判定部45から現在時刻tにおけるタッチ点が存在する分割領域の通知を受け、現在のタッチ点が分割領域Iにある場合は、いずれの方向にもスクロールしない。スクロール制御部40は、現在のタッチ点が分割領域IIまたはIIIにある場合は、画面を水平方向にスクロールし、現在のタッチ点が分割領域IVまたはVにある場合は、画面を垂直方向にスクロールする。スクロール制御部40は、現在のタッチ点が分割領域VI、VII、VIII、IXのいずれかにある場合は、画面を2次元方向にスクロールする。
【0119】
水平スクロールの場合、スクロール制御部40は、X方向移動量取得部22から与えられるX方向の移動量ΔX(t)に応じたスクロール量だけ水平方向にスクロールする。垂直スクロールの場合、スクロール制御部40は、Y方向移動量取得部24から与えられるY方向の移動量ΔY(t)に応じたスクロール量だけ垂直方向にスクロールする。2次元スクロールの場合、スクロール制御部40は、水平方向にはX方向の移動量ΔX(t)に応じたスクロール量だけ、垂直方向にはY方向の移動量ΔY(t)に応じたスクロール量だけ画面をスクロールする。
【0120】
実施の形態3のスクロール制御装置100においても、実施の形態2のスクロール制御装置100と同様、X方向移動量リセット部42およびY方向移動量リセット部44の構成を設け、現在のタッチ点が分割領域IIまたはIIIにある場合は、Y方向移動量リセット部44がY方向移動量取得部24から与えられるY方向の移動量ΔY(t)をゼロにリセットし、現在のタッチ点が分割領域IVまたはVにある場合は、X方向移動量リセット部42がX方向移動量取得部22から与えられるX方向の移動量ΔX(t)をゼロにリセットするようにしてもよい。
【0121】
このように、実施の形態3では、現在のタッチ点が存在する分割領域に応じて、垂直スクロール、水平スクロール、2次元スクロールを切り替えることができる。
【0122】
図20〜図23Cの図面を参照して、水平スクロール、垂直スクロール、および2次元スクロールの例を説明する。この例は、上述の実施の形態1〜3に共通する。
【0123】
図20は、ウェブページ300の例を説明する図である。ウェブページ300は大きく分けて、左半分の領域と右半分の領域の二つの領域から構成されており、各領域にはニュース記事や写真、グラフなどが記載されている。
【0124】
携帯端末200のタッチスクリーン210はウェブページ300の全体を表示するには表示領域が小さい場合、ユーザは水平スクロール、垂直スクロール、および2次元スクロールを適宜利用しながらウェブページ300を閲覧する。
【0125】
図21Aおよび図21Bは、垂直スクロールの例を説明する図である。図21Aでは、携帯端末200のタッチスクリーン210にウェブページ300の左上の領域が表示されている。このとき、ユーザはタッチスクリーン210に触れた指を符号230で示す位置から上方向に符号232で示す位置までドラッグさせてウェブページ300を垂直方向にスクロールしようとする。指230を上方向にドラッグしたときの始点を原点とするタッチ点のX座標値がスクロールロックの閾値Thx未満であれば、X方向のスクロールはロックされ、Y方向のスクロールだけがアンロックされ、垂直スクロールになる。図21Bは、垂直スクロールの結果である。指は符号232で示す位置に移動しており、ウェブページ300は上方向にスクロールされ、ウェブページ300の左半分の領域の下側が閲覧可能になる。
【0126】
図21Cは、図21Aおよび図21Bで示した垂直スクロールにより、タッチスクリーン210の表示領域がウェブページ300上で移動する様子を説明する図である。上方向にドラッグすることで、タッチスクリーン210の表示領域は点線で囲まれた領域(符号310)から実線で囲まれた領域(符号312)に垂直方向に移動する。X方向はスクロールがロックされているため、表示領域はX軸方向には動かない。これによりユーザはフラストレーションを感じることなく、ウェブページ300を垂直方向にのみスクロールさせて見たい領域を画面に表示させることができる。
【0127】
図22Aおよび図22Bは、水平スクロールの例を説明する図である。図22Aでは、携帯端末200のタッチスクリーン210にウェブページ300の左上の領域が表示されている。このとき、ユーザはタッチスクリーン210に触れた指を符号230で示す位置から左方向に符号234で示す位置までドラッグさせてウェブページ300を水平方向にスクロールしようとする。指230を左方向にドラッグしたときの始点を原点とするタッチ点のY座標値がスクロールロックの閾値Thy未満であれば、Y方向のスクロールはロックされ、X方向のスクロールだけがアンロックされ、水平スクロールになる。図22Bは、水平スクロールの結果である。指は符号234で示す位置に移動しており、ウェブページ300は左方向にスクロールされ、ウェブページ300の右半分の領域の一部が見え始めている。ユーザがさらに左方向にドラッグする動作を繰り返せば、ウェブページ300の右半分の領域が閲覧可能になる。
【0128】
図22Cは、図22Aおよび図22Bで示した水平スクロールにより、タッチスクリーン210の表示領域がウェブページ300上で移動する様子を説明する図である。左方向にドラッグすることで、タッチスクリーン210の表示領域は点線で囲まれた領域(符号310)から実線で囲まれた領域(符号314)に水平方向に移動する。Y方向はスクロールがロックされているため、表示領域はY軸方向には動かない。これによりユーザはフラストレーションを感じることなく、ウェブページ300を水平方向にのみスクロールさせて見たい領域を画面に表示させることができる。
【0129】
図23Aおよび図23Bは、2次元スクロールの例を説明する図である。図23Aでは、携帯端末200のタッチスクリーン210にウェブページ300の左上の領域が表示されている。このとき、ユーザはタッチスクリーン210に触れた指を符号230で示す位置から左上方向に符号236で示す位置までドラッグさせてウェブページ300を2次元方向にスクロールしようとする。指230を左上方向にドラッグしたときの始点を原点とするタッチ点のX座標値がX方向のスクロールロックの閾値Thxを超え、かつ、Y座標値がY方向のスクロールロックの閾値Thyを超えれば、X方向、Y方向の両方のスクロールがアンロックされ、2次元スクロールになる。図23Bは、2次元スクロールの結果である。指は符号236で示す位置に移動しており、ウェブページ300は左上方向にスクロールされ、ウェブページ300の右下の領域の一部が見え始めている。ユーザがさらに左上方向にドラッグする動作を繰り返せば、ウェブページ300の右下の領域が閲覧可能になる。
【0130】
図23Cは、図23Aおよび図23Bで示した2次元スクロールにより、タッチスクリーン210の表示領域がウェブページ300上で移動する様子を説明する図である。左上方向にドラッグすることで、タッチスクリーン210の表示領域は点線で囲まれた領域(符号310)から実線で囲まれた領域(符号316)に右下方向に移動する。このように、ユーザは任意の2次元方向にウェブページ300をスクロールさせて見たい領域を画面に表示させることができる。
【0131】
以上述べたように、本実施の形態のスクロール制御装置100によれば、X方向、Y方向にそれぞれ閾値を設けて、ドラッグ操作による各方向の現在のタッチ位置が各閾値を超えない間は各方向のスクロールをロックし、ドラッグ操作により各方向に閾値を超えるタッチ位置の移動が検出された場合に、各方向のスクロールロックの解除を行う。各方向のスクロールロックの解除状態によって、水平スクロール、垂直スクロール、2次元スクロールを切り替える。これにより、ユーザのドラッグ動作に応じたスクロール操作を行うことができ、ユーザにとって負担が少なく、直感的にも理解しやすい円滑なスクロール操作を実現することができる。
【0132】
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【0133】
以下の各項目に記載された態様も本発明の範囲に含まれる。
[項目1]
タッチスクリーン上のドラッグ操作におけるタッチ開始点を原点とする現在のタッチ点の水平方向および垂直方向の少なくとも一方の座標値を所定の閾値と比較した結果に応じて、画面の水平方向および垂直方向の少なくとも一方のスクロールを制限する制御部を含むことを特徴とするスクロール制御装置。
【0134】
[項目2]
タッチスクリーン上のドラッグ操作におけるタッチ開始点を原点とする現在のタッチ点の水平方向、垂直方向の座標値がそれぞれ所定の閾値未満である場合、水平方向、垂直方向のスクロールをロック状態にする判定部と、
水平方向のスクロールおよび垂直方向のスクロールのロック状態に応じて画面のスクロール方向を決定する決定部とをさらに備え、
前記制御部は、決定されたスクロール方向に画面をスクロールすることを特徴とする項目1に記載のスクロール制御装置。
【0135】
[項目3]
前記決定部は、水平方向のスクロールと垂直方向のスクロールがともにロック状態である場合、スクロールを行わないことに決定することを特徴とする項目2に記載のスクロール制御装置。
【0136】
[項目4]
前記決定部は、水平方向のスクロールがロック状態でなく、垂直方向のスクロールがロック状態である場合、垂直方向にスクロールせず、水平方向にスクロールする水平スクロールにスクロール方向を決定することを特徴とする項目2または3に記載のスクロール制御装置。
【0137】
[項目5]
前記決定部は、垂直方向のスクロールがロック状態でなく、水平方向のスクロールがロック状態である場合、水平方向にスクロールせず、垂直方向にスクロールする垂直スクロールにスクロール方向を決定することを特徴とする項目2から4のいずれかに記載のスクロール制御装置。
【0138】
[項目6]
前記決定部は、水平方向のスクロールと垂直方向のスクロールがともにロック状態でない場合、水平方向にも垂直方向にもスクロールする2次元スクロールに決定することを特徴とする項目2から5のいずれかに記載のスクロール制御装置。
【0139】
[項目7]
前記所定の閾値をドラッグ操作の過程で最大値から最小値へ変化させる閾値調整部をさらに含み、
前記判定部は、前記閾値調整部により調整された前記所定の閾値を用いて水平方向、垂直方向のスクロールのロック状態をそれぞれ判定することを特徴とする項目2から6のいずれかに記載のスクロール制御装置。
【0140】
[項目8]
タッチスクリーンの水平方向のサイズと垂直方向のサイズの比にもとづいて、水平方向のスクロールのロックの判定に用いられる前記所定の閾値と素直方向のスクロールのロックの判定に用いられる前記所定の閾値の比が設定されることを特徴とする項目1から7のいずれかに記載のスクロール制御装置。
【符号の説明】
【0141】
10 タッチ位置取得部、 20 閾値調整部、 22 X方向移動量取得部、 24 Y方向移動量取得部、 30 スクロール方向決定部、 32 X方向ロック判定部、 34 Y方向ロック判定部、 40 スクロール制御部、 42 X方向移動量リセット部、 44 Y方向移動量リセット部、 45 タッチ領域判定部、 50 表示部、 100 スクロール制御装置、 200 携帯端末、 210 タッチスクリーン、 220 ボタン、 230 指、 240 不感領域。

【特許請求の範囲】
【請求項1】
タッチスクリーン上のドラッグ操作におけるタッチ開始点を原点とする現在のタッチ点の水平方向および垂直方向の少なくとも一方の座標値を所定の閾値と比較した結果に応じて、画面の水平方向および垂直方向の少なくとも一方のスクロールを制限する制御部を含むことを特徴とするスクロール制御装置。
【請求項2】
タッチスクリーン上のドラッグ操作の水平方向の移動量と垂直方向の移動量を取得する移動量取得部と、
前記ドラッグ操作におけるタッチ開始点を原点とする現在のタッチ点の水平方向および垂直方向の少なくとも一方の座標値が所定の閾値未満である場合、前記ドラッグ操作の水平方向および垂直方向の少なくとも一方の移動量をゼロにリセットする移動量リセット部とをさらに備え、
前記制御部は、前記移動量リセット部による処理を経た水平方向および垂直方向の移動量に応じて画面をスクロールすることを特徴とする請求項1に記載のスクロール制御装置。
【請求項3】
前記制御部は、前記移動量リセット部による処理を経た水平方向および垂直方向の移動量に応じたベクトル方向に画面をスクロールすることを特徴とする請求項2に記載のスクロール制御装置。
【請求項4】
前記制御部は、水平方向の移動量が前記移動量リセット部によりゼロにリセットされず、垂直方向の移動量が前記移動量リセット部によりゼロにリセットされる場合、画面を垂直方向にスクロールせず、水平方向にスクロールすることを特徴とする請求項2から3のいずれかに記載のスクロール制御装置。
【請求項5】
前記制御部は、垂直方向の移動量が前記移動量リセット部によりゼロにリセットされず、水平方向の移動量が前記移動量リセット部によりゼロにリセットされる場合、画面を水平方向にスクロールせず、垂直方向にスクロールすることを特徴とする請求項2から4のいずれかに記載のスクロール制御装置。
【請求項6】
前記制御部は、水平方向の移動量と垂直方向の移動量がともに前記移動量リセット部によりゼロにリセットされない場合、画面を水平方向にも垂直方向にもスクロールすることを特徴とする請求項2から5のいずれかに記載のスクロール制御装置。
【請求項7】
前記所定の閾値をドラッグ操作の過程で最大値から最小値へ変化させる閾値調整部をさらに含み、
前記移動量リセット部は、現在のタッチ点の水平方向、垂直方向の座標値がそれぞれ前記閾値調整部により調整された前記所定の閾値未満である場合、前記ドラッグ操作の水平方向、垂直方向の移動量をゼロにリセットすることを特徴とする請求項2から6のいずれかに記載のスクロール制御装置。
【請求項8】
タッチスクリーンの水平方向のサイズと垂直方向のサイズの比にもとづいて、水平方向の移動量をリセットする判定に用いられる前記所定の閾値と垂直方向の移動量をリセットする判定に用いられる前記所定の閾値の比が設定されることを特徴とする請求項1から7のいずれかに記載のスクロール制御装置。
【請求項9】
タッチスクリーン上のドラッグ操作におけるタッチ開始点を原点とする現在のタッチ点の水平方向、垂直方向の座標値がそれぞれ所定の閾値未満である場合、水平方向、垂直方向のスクロールをロック状態にする判定部と、
水平方向のスクロールおよび垂直方向のスクロールのロック状態に応じて画面のスクロール方向を決定する決定部とをさらに備え、
前記制御部は、決定されたスクロール方向に画面をスクロールすることを特徴とする請求項1に記載のスクロール制御装置。
【請求項10】
タッチスクリーン上のドラッグ操作により画面をスクロールさせて表示する端末装置であって、
前記ドラッグ操作におけるタッチ開始点を原点とする現在のタッチ点の水平方向および垂直方向の少なくとも一方の座標値を所定の閾値と比較した結果に応じて画面の水平方向および垂直方向の少なくとも一方のスクロールが制限された状態で画面をスクロールして表示する表示部を含むことを特徴とする端末装置。
【請求項11】
タッチスクリーン上のドラッグ操作におけるタッチ開始点を原点とする現在のタッチ点の水平方向および垂直方向の少なくとも一方の座標値を所定の閾値と比較した結果に応じて、画面の水平方向および垂直方向の少なくとも一方のスクロールを制限することを特徴とするスクロール制御方法。
【請求項12】
タッチスクリーン上のドラッグ操作におけるタッチ開始点を原点とする現在のタッチ点の水平方向および垂直方向の少なくとも一方の座標値を所定の閾値と比較する機能と、
比較した結果に応じて、画面の水平方向および垂直方向の少なくとも一方のスクロールを制限する機能とをコンピュータの実現させることを特徴とするプログラム。
【請求項13】
タッチスクリーン上のドラッグ操作におけるタッチ開始点を原点とする現在のタッチ点の位置座標がドラッグ操作におけるタッチ開始点を中心とする所定の水平方向と垂直方向の閾値で決定されるいずれの分割領域にあるかを判定した結果を受け取る機能と、
その判定結果に応じて、画面の水平方向および垂直方向の少なくとも一方のスクロールを制限する機能とをコンピュータの実現させることを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3A】
image rotate

【図3B】
image rotate

【図4】
image rotate

【図5A】
image rotate

【図5B】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8A】
image rotate

【図8B】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21A】
image rotate

【図21B】
image rotate

【図21C】
image rotate

【図22A】
image rotate

【図22B】
image rotate

【図22C】
image rotate

【図23A】
image rotate

【図23B】
image rotate

【図23C】
image rotate


【公開番号】特開2013−92942(P2013−92942A)
【公開日】平成25年5月16日(2013.5.16)
【国際特許分類】
【出願番号】特願2011−235341(P2011−235341)
【出願日】平成23年10月26日(2011.10.26)
【出願人】(310021766)株式会社ソニー・コンピュータエンタテインメント (417)
【Fターム(参考)】