以下、本技術に係る実施形態を、図面を参照しながら説明する。
[PCの構成]
図1は、本技術に係る一実施形態の情報処理装置を示すブロック図である。情報処理装置としては、例えばPC(Personal Computer)やスマートフォンなど、表示部を有しオブジェクトのスクロール操作を行うことができる情報処理装置に本技術を適用できる。
図1に示すように、情報処理装置100は、CPU(Central processing Unit)を含む制御部111、ROM(Read Only Memory)112、RAM(Random Access Memory)113、入出力インターフェース115、及びこれらを互いに接続する内部バス114と、タッチスクリーン117とを備える。
制御部111は、必要に応じてRAM113等に適宜アクセスし、各演算処理を行いながら情報処理装置100の各ブロック全体を統括的に制御する。制御部111は、表示制御部119と算出部120を有する。算出部120は、複数のオブジェクトのスクロールの際の、隣接する2つのオブジェクト間の意味的距離に応じてスクロール時の隣接する2つのオブジェクト間の距離を算出し、また、スクロール時のオブジェクトが表示位置変化するときの速度を、スクロール距離に応じて算出する。表示制御部119は、算出部120による算出結果に応じて複数のオブジェクトをスクロールさせる。
ROM112は、表示制御部119に実行させるOS、プログラムや各種パラメータなどのファームウェアが固定的に記憶されている不揮発性のメモリである。ROM112には、情報処理装置100の表示部(図2における符号116)に複数のオブジェクトを表示させるステップと、オブジェクトのスクロールの際に、複数のオブジェクトのうち隣接する2つのオブジェクト間の意味的距離に応じて、隣接する2つのオブジェクト間の距離が隣接する2つのオブジェクト毎に異なるように複数のオブジェクトをスクロールさせるステップを実行させるプログラムが記憶されている。
RAM113は、表示制御部119の作業用領域などとして用いられ、OS、実行中の各種アプリケーションプログラム、処理中の各種データを一時的に保持する。
入出力インターフェース115には、タッチスクリーン117、記憶部としてのHDD118、ネットワーク150等が接続される。
HDD118には、上記OSや各種アプリケーションプログラム、各種データが記憶される。ネットワーク50は、無線又は有線によってネットワークに接続する。タッチスクリーン117は、例えば入力装置としてのタッチパネルと表示装置としての液晶パネルとで構成される。
タッチスクリーン117のタッチパネルは、液晶パネルの表面上に重畳して配設される透明な感圧式の入力装置である。タッチパネルは、タッチスクリーン117内の任意の箇所に対するユーザの入力操作を受け付ける。ユーザが指又はタッチペンを用いてタッチパネルにタッチ操作やドラッグ操作などのジェスチャー操作をすると、タッチパネルは、当該ジェスチャー操作に対応する位置の座標を判断して表示制御部119に出力する。なお、入力装置としては、表示部に対するユーザのジェスチャー操作を判断可能であれば、タッチパネル以外にも、接触式や非接触式にかかわらず、任意の位置判断デバイスを使用してもよい。
タッチスクリーン117の液晶パネルは、液晶ディスプレイ等の表示部(図2における符号116)と、該表示部116を表示駆動する表示駆動部と有する。上記表示駆動部は、バス114を介して入力される各種の表示データを上記表示部に表示させるための画素駆動回路で構成されている。画素駆動回路は、上記表示部においてマトリクス状に配置されている各画素について、それぞれ所定の水平/垂直駆動タイミングで画像信号に基づく駆動信号を印加し、表示を実行させる。
このように構成された情報処理装置100では、図2に示すように、例えばタッチスクリーンの表示部116に、複数のオブジェクト10C〜10Hが表示可能である。例えば情報処理装置100で26枚の画像を撮影し、これらの26枚の画像をそれぞれサムネイル化してオブジェクト10A〜10Zとする。これらオブジェクト10A〜10Zのうち例えば6枚をサムネイル化して表示部116にオブジェクト10として表示する。複数、ここでは26枚のオブジェクト10A〜10Zは、最初のオブジェクト10Aと最後のオブジェクト10Zを有する。オブジェクト10は、表示部116に水平方向に沿って配列されて表示され、左から右に向かってオブジェクト10A、オブジェクト10B、オブジェクト10C・・・というように配列される。最初のオブジェクト10Aは最も左側にあるオブジェクトであり、最後のプロジェクト10Zは最も右側にあるオブジェクトである。
図3は図2の部分拡大図であり、スクロールの様子を示す。図3に示すように、複数のオブジェクト10は、非スクロール時においては、表示部116に水平方向に等間隔で配置される。等間隔で配置されたオブジェクト10の、隣接する2つのオブジェクト10間の距離は例えば105ドット(以下ドットを略す。)で、オブジェクト10の幅は例えば100となっている。各オブジェクト10は、それが撮影された時間の時間情報を付随している。オブジェクト10は、図面上、時間昇順に左から右に順に並んでおり、図面上、左から右に向かって古い時間情報を付随したものから新しい時間情報を付随したものが並んで配置される。オブジェクト10のスクロールは、表示部116表面に指を接触し、表示部116表面上で指を移動することにより行われる。
26枚のオブジェクト10のうち所望のオブジェクトを選択する際、所望のオブジェクト10が表示部116に表示されていないときは、まず図3に示すように例えば表示されているオブジェクト10Fにユーザが指をタッチダウンさせる。そして、右あるいは左方向に指を動かしてオブジェクト10をスクロールさせ、所望のオブジェクト10を表示部116に表示させることができる。例えば、表示されているオブジェクト10よりも時間情報が新しいオブジェクト10を見たいときには、表示部116に指をタッチダウンさせた状態で、指を図面上、左方向に移動させ、オブジェクト10をスクロールする。他方、表示されているオブジェクト10よりも時間情報が古いオブジェクト10を見たいときには、表示部116に指をタッチダウンさせた状態で、指を図面上、右方向に移動させ、オブジェクト10をスクロールする。尚、図3において、指でタッチダウンしたオブジェクト10Fは、指でタッチダウンされていないオブジェクト10C〜10E、10G及び10Hと区別がしやすいように太枠で図示している。実際には、指でタッチダウンしたオブジェクト10Fは他のオブジェクト10C〜10E、10G及び10Hと同じ太さの枠であってもよい。また、図3のように太枠にする等、指でタッチダウンしたオブジェクト10Fと指でタッチダウンされていないオブジェクト10C〜10E、10G及び10Hとを区別するように表示してもよい。
[スクロール操作によるオブジェクト動作]
次に、以上のように構成された情報処理装置100の表示制御方法について、図面を用いて説明する。
複数のオブジェクトのうち隣接する2つのオブジェクトからなるオブジェクト対毎に、スクロールの際の隣接するオブジェクト間の予め設定された最小距離aと、算出部120により算出された隣接するオブジェクト間の意味的距離に応じた距離bを有している。そして、表示制御部119は、隣接オブジェクト間の距離dが、bを越えたとき、あるいは、aよりも小さくなったときに、隣接オブジェクト間の距離dがa≦d≦bとなるよう複数のオブジェクトをスクロールさせる。ここでは、いずれのオブジェクト対においてもa=100とした。bは、各オブジェクト対毎に設けられる数値であり、ここでは意味的距離としての時間間隔距離に応じて数値が設定される。
次に、スクロールの際のオブジェクトの基本的な動作について説明する。
図4は、スクロールの際の複数のオブジェクト10a〜10d間の位置関係を示す。隣接する2つのオブジェクト間の意味的距離としての時間間隔距離に応じて、スクロールの際の隣接するオブジェクト間距離を、オブジェクト対毎に異ならせている。各オブジェクト10a〜10dはそれぞれ時間情報を付随している。
例えば、時間情報として、オブジェクト10aはその撮影時間である2010年1月1日午前10時、オブジェクト10bはその撮影時間である2010年1月1日午前11時、オブジェクト10cはその撮影時間である2010年1月1日午後1時、オブジェクト10dはその撮影時間である2010年1月1日午後4時を付随している。隣接するオブジェクト10aと10bからなる第1のオブジェクト対11の時間間隔距離は1時間、隣接するオブジェクト10bと10cからなる第2のオブジェクト対12の時間間隔距離は2時間、隣接するオブジェクト10cと10dからなる第3のオブジェクト対13の時間間隔距離は3時間となる。従って、第1のオブジェクト対11と、第2のオブジェクト対12と、第3のオブジェクト対13は、時間間隔距離の比が1:2:3となる。意味的距離である時間間隔距離に応じた距離を、第1のオブジェクト対11においてはb1、第2のオブジェクト対12においてはb2、第3のオブジェクト対13においてはb3とした場合、b1:b2:b3=1:2:3となる。オブジェクト10a〜10dは、各隣接オブジェクト間距離が最も離間するとき、隣接するオブジェクト10aと10bとの距離d1と、隣接するオブジェクト10bと10cとの距離d2と、隣接するオブジェクト10cと10dとの距離d3が、d1:d2:d3=1:2:3となるように、表示位置を変えてスクロールされる。
このように、隣接する2つのオブジェクト間の意味的距離に応じて、オブジェクト対毎のオブジェクト間距離が異なるようにオブジェクト10をスクロールさせることにより、スクロールの際、各オブジェクト間の時間間隔距離を視覚で直感的に把握することができ、オブジェクトに付随する時間情報を直感できる。
複数のオブジェクトのスクロールの際の、隣接するオブジェクト間の時間間隔距離に応じた隣接するオブジェクト間の距離の算出は、算出部120によって行われる。そして、表示制御部119によって、算出部120による算出結果に応じて複数のオブジェクト10をスクロールさせる。
例えば、4つのオブジェクト10a〜10dが等間隔に順に左から右に表示された状態で、オブジェクト10aをユーザがタッチダウンし、左方向に指を移動させたとする。オブジェクト10aの表示位置を変えるように左方向に指を移動させることにより、図4に示すように、まずオブジェクト10aとオブジェクト10bとの距離dが大きくなり、オブジェクト10aとオブジェクト10bとの距離dがd1を越えるまで、すなわち
a≦d(オブジェクト10aとオブジェクト10bとの距離)≦d1
を満たす間は、オブジェクト10bの表示位置は変わらないので、同様にオブジェクト10c、オブジェクト10dの表示位置も変わらない。
更に、オブジェクト10aの表示位置を変えるように左方向にスクロールすることによってオブジェクト10aとオブジェクト10bとの距離dがd1を越えると、オブジェクト10bは、
a≦d(オブジェクト10aとオブジェクト10bとの距離)≦d1を満たすように、オブジェクト10aに接近するようにスクロールされる。スクロールによりオブジェクト10bの表示位置が変わることにより、オブジェクト10bとオブジェクト10cとの距離dも変化する。スクロールにより、オブジェクト10bとオブジェクト10cとの距離dが大きくなり、オブジェクト10bとオブジェクト10cとの距離dがd2を越えるまで、すなわち
a≦d(オブジェクト10bとオブジェクト10cとの距離)≦d2
を満たす間は、オブジェクト10cの表示位置は変わらないので、同様にオブジェクト10dの表示位置も変わらない。
更に、オブジェクト10aの表示位置を変えるように左方向にスクロールすることによってオブジェクト10bとオブジェクト10cとの距離dがd2を越えると、オブジェクト10cは、
a≦d(オブジェクト10bとオブジェクト10cとの距離)≦d2
を満たすように、オブジェクト10bに接近するようにスクロールされる。スクロールによりオブジェクト10cの表示位置が変わることにより、オブジェクト10cとオブジェクト10dとの距離dも変化する。スクロールにより、オブジェクト10cとオブジェクト10dとの距離dが大きくなり、オブジェクト10cとオブジェクト10dとの距離dがd3を越えるまで、すなわち
a≦d(オブジェクト10cとオブジェクト10dとの距離)≦d3
を満たす間は、オブジェクト10dの表示位置は変わらない。
更に、スクロールによりオブジェクト10cの表示位置が変わることにより、オブジェクト10cとオブジェクト10dとの距離dも変化し、オブジェクト10cとオブジェクト10dとの距離dがd3を超えると、オブジェクト10dは、
a≦d(オブジェクト10cとオブジェクト10dとの距離)≦d3
を満たすように、オブジェクト10cに接近するようにスクロールされる。
このように、スクロールにより最初に表示位置が変化したオブジェクトから順に、その隣のオブジェクト、そして更にその隣のオブジェクトというように連鎖的にオブジェクトがスクロールされる。そして、スクロールの際、各オブジェクト間が最も離間するときは、図4に示すように、隣接するオブジェクト10aと10bとの距離d1と、隣接するオブジェクト10bと10cとの距離d2と、隣接するオブジェクト10cと10dとの距離d3が、d1: d2: d3=1:2:3となるように位置する。
また、上述においては、図4に示すように、同じタイミングで、d1: d2: d3=1:2:3となるようにオブジェクト10a〜10dが表示される例を示したが、これに限られない。例えば、あるタイミングで、オブジェクト10aとオブジェクト10bとの距離はd1で、オブジェクト10bとオブジェクト10cとの距離はd2ではなく、オブジェクト10cとオブジェクト10dとの距離はd3でない配列で、オブジェクト10a〜10dが表示部に表示される。そして、別のタイミングで、オブジェクト10aとオブジェクト10bとの距離はd1でなく、オブジェクト10bとオブジェクト10cとの距離はd2で、オブジェクト10cとオブジェクト10dとの距離はd3でない配列で、オブジェクト10aから10dが表示部に表示される。更に別のタイミングで、オブジェクト10aとオブジェクト10bとの距離はd1でなく、オブジェクト10bとオブジェクト10cとの距離はd2ではなく、オブジェクト10cとオブジェクト10dとの距離はd3である配列で、オブジェクト10a〜10dが表示部に表示される。このように、オブジェクト対の隣接オブジェクト間距離dがbとなるときのタイミングが、オブジェクト対毎に異なるようにしてもよい。
図5は、スクロールの際、隣接するオブジェクト間の距離dがa≦d≦bを満たさない場合のオブジェクトの動作を示し、隣接するオブジェクト同士が重なる度合いが許容範囲以上となった場合のオブジェクトの動作を示す。
ここでは、スクロールの際の隣接するオブジェクト同士が重なる度合いの許容範囲を設けており、許容範囲のうち隣接するオブジェクト同士が重なり合う領域がもっとも広いときの隣接するオブジェクト間の距離をcとする。ここではいずれのオブジェクト対においてもc=50とし、c<aである。
図5に示すように、スクロールにより、2つの隣接するオブジェクト10a及び10bが許容範囲を超えて重なったとき(隣接するオブジェクト間距離d<c)、表示制御部119は、オブジェクト10aとオブジェクト10bとの距離dがc(c=50)となるよう、オブジェクト10a又はオブジェクト10b、あるいはオブジェクト10a及び10bの双方を、d=50となるよう強制的にスクロールして、その表示位置を補正する。隣接するオブジェクト同士の距離が50の状態とは、隣接するオブジェクトの両方がそれぞれ半分の領域が部分的に重なり、もう半分の領域が重ならず表示されている状態である。このように、隣接するオブジェクト同士が重なる度合いの許容範囲を設け、その許容範囲を超えたときは強制的に隣接間距離が50となうように表示位置を補正することにより、隣接するオブジェクトが完全に重なりあうことがなく、一方のオブジェクトが隠れてしまうということがない。
図6は、スクロールの際、隣接するオブジェクト間の距離dがa≦d≦bを満たさない場合のオブジェクトの動作を示し、隣接するオブジェクト同士が重なる度合いが
c(ここではc=50)<d<a(ここではa=100)となった場合のオブジェクトの動作を示す。
図6に示すように、隣接するオブジェクト間の距離dが50<d<100となったとき、表示制御部119は、隣接するオブジェクト10a及び10b間の距離dがa(a=100)となるよう、オブジェクト10aとオブジェクト10bとが反発する動きとなるように、オブジェクト10a又はオブジェクト10b、あるいはオブジェクト10a及び10bの双方をスクロールさせる。このオブジェクトの表示位置が変わるときの速度は、図8に示すように、オブジェクトのスクロール距離に応じて異なり、スクロール距離が大きいほどオブジェクトの速度が大きくなる。これにより、スクロール距離がオブジェクト毎で異なっても、オブジェクトの表示位置の変化に要する時間を各オブジェクトでほぼ同じとすることができる。尚、スクロール距離とは、オブジェクトの表示位置変化量である。図8は、図5〜図7に対応する、スクロール時におけるスクロール距離(横軸)と速度(縦軸)との関係を示すものである。また、ここでは、反発後の隣接オブジェクト間距離dを100としたが、これに限定されず、a≦d≦bを満たせばよい。これにより、隣接するオブジェクトが完全に重なりあうことがなく、一方のオブジェクトが隠れてしまうということがない。
図7は、スクロールの際、隣接するオブジェクト間の距離dがa≦d≦bを満たさない場合のオブジェクトの動作を示し、隣接するオブジェクト間距離dがd>bの場合のオブジェクトの動作を示す。
図7に示すように、スクロールにより、オブジェクト10aとオブジェクト10bとの距離dが、d>b(ここでは、b=107として説明する。)のとき、表示制御部119は、オブジェクト10aとオブジェクト10bとの距離dがa(a=100)となるように、オブジェクト10aとオブジェクト10bとが接近するようにオブジェクト10a又はオブジェクト10b、あるいはオブジェクト10a及び10bの双方をスクロールさせる。このオブジェクトの表示位置が変わるときの速度は、図8に示すように、オブジェクトのスクロール距離に応じて異なり、スクロール距離が大きいほどオブジェクトの速度が大きくなる。これにより、スクロール距離がオブジェクト毎で異なっても、オブジェクトの表示位置の変化に要する時間を各オブジェクトでほぼ同じとすることができる。また、ここでは、接近後の隣接オブジェクト間距離dを100としたが、これに限定されず、a≦d≦bを満たせばよい。
次に、図9〜図11に示すフローチャートを用いて、上述の情報処理装置100の表示制御方法について説明する。尚、図11において、自オブジェクトの右に隣接するオブジェクトを右オブジェクト、自オブジェクトの左に隣接するオブジェクトを左オブジェクトと称している。
情報処理装置100で例えばカメラアプリが起動されると、図2に示すように、表示制御部119は、表示部116上に6つのオブジェクトを表示させる。ここでは、26枚のオブジェクト10A〜10Zをスクロールして表示する場合を説明する。オブジェクト10A〜10Zは、情報処理装置100のカメラ機能で撮影された画像である。オブジェクト10は、図面上、時間昇順に左から右に順に並んでおり、左から右に向かって古い時間情報を付随するものから新しい時間情報を付随するものが並んで配列される。オブジェクト10A〜10Zは、最初のオブジェクト10A(最も古い時間情報が付随されたオブジェクト)と最後のオブジェクト10Z(最も新しい時間情報が付随されたオブジェクト)を有する。カメラアプリ起動時、表示部116には、例えば、最も古い時間情報が付随されたオブジェクト10Aから順に6枚のオブジェクト10A〜10Fが表示される。以下の説明においては、起動時画面をスクロールして図2に示すようにオブジェクト10C〜10Hが表示された表示部116をスクロールする場合を例にあげる。図3に示すように、非スクロール状態の表示部116では、幅100の6つのオブジェクト10C〜10Hが、等間隔、ここでは、隣接する各オブジェクトの中心線間距離dが105となるように表示される。
以下のステップは、各オブジェクトで同時に処理が行われる。図9に示すように、まず、表示制御部119は、ユーザによる、いずれかのオブジェクトへのタッチダウンがあった否かを判断する(ステップ101(S101))。
表示制御部119はタッチダウンがないと判断(No)すると、ステップ102(S102)に進み、スクロールは生じない。
表示制御部119は、タッチダウンがあったと判断(Yes)すると、タッチダウン位置が自オブジェクト内であるか否かを判断する(ステップ103(S103))。
表示制御部119は、S103でタッチダウン位置は自オブジェクト内であると判断(Yes)すると、自オブジェクトをスクロールオブジェクトと定義する(ステップ104(S104))。例えば、図3においては、ユーザによってタッチダウンされたオブジェクト10Fがスクロールオブジェクトと定義される。スクロールオブジェクトと定義されたオブジェクトは図10に示すステップに進む。図9及び図10に示す丸で括った数字の1及び丸で括った数字の3は、図10に示すステップが図9に示すS104とS106との間に入ることを示す。
表示制御部119は、S103でタッチダウン位置は自オブジェクト内でないと判断(No)すると、自オブジェクトを連鎖オブジェクトと定義する(ステップ105(S105))。例えば、図3においては、ユーザによってタッチダウンされたオブジェクト10F以外のオブジェクト10A〜10E及び10G〜10Zが連鎖オブジェクトと定義される。連鎖オブジェクトと定義されたオブジェクトは図11に示すステップに進む。図9及び図11に示す丸で括った数字の2及び丸で括った数字の3は、図11に示すステップが図9に示すS105とS106との間に入ることを示す。
次に、図10を用いてスクロールオブジェクトと定義されたオブジェクトの表示制御方法について説明する。
表示制御部119は、S104でスクロールオブジェクトと定義されたオブジェクト10Fに指がタッチダウンされた状態で表示部116上で指が水平方向に移動しているか否かを判断する(ステップ201(S201))。
表示制御部119は、S201で指移動がないと判断(No)すると、ステップ202(S202)に進み、スクロールオブジェクトである自オブジェクト(図3においてはオブジェクト10F)のスクロールは生じない。
表示制御部119は、S201で指移動があったと判断(Yes)すると、例えば図12や図13等のように、スクロールオブジェクトである自オブジェクト10Fを指の移動に応じた位置に表示するようにオブジェクト10Fをスクロールさせる(ステップ203(S203))。
次に、表示制御部119は、指が自オブジェクト10Fから離れ、タッチアップされたか否かを判断する(ステップ204(S204))。
表示制御部119は、S204でタッチアップされたと判断(Yes)すると、図9のステップ106(S106)に進む。表示制御部119は、S204でタッチアップされていないと判断(No)すると、ステップ201(S201)に戻る。
次に、図11を用いて連鎖オブジェクトと定義されたオブジェクトの表示制御方法にてついて説明する。ここでは、図11に示す処理が行われる自オブジェクトとその右に隣接するオブジェクトとの距離をd1とし、自オブジェクトとその左に隣接するオブジェクトとの距離をd2とする。スクロールの際の隣接するオブジェクト間の予め設定された最小距離a=100とし、自オブジェクトとその右に隣接するオブジェクトとの時間間隔距離に応じた数値をb1とし、自オブジェクトとその左に隣接するオブジェクトとの時間間隔距離に応じた数値をb2とする。b1及びb2の値は、自オブジェクトとその右に隣接するオブジェクトとの時間間隔距離、自オブジェクトとその左に隣接するオブジェクトとの時間間隔距離に応じて、算出部120により算出される。上述したように、自オブジェクトと右隣接オブジェクトとの距離d1が100≦d1≦b1を満たさないときは、100≦d1≦b1を満たすようにオブジェクトがスクロールされる。また、同様に、自オブジェクトと左隣接オブジェクトとの距離d2が100≦d2≦b2を満たさないときは、100≦d2≦b2を満たすようにオブジェクトがスクロールされる。以下、図11のフローチャートを用いてオブジェクトの動きについて説明する。
表示制御部119は、表示部116上に指がタッチダウンされた状態で表示部116上を指が水平方向に移動しているか否かを判断する(ステップ301(S301))。
表示制御部119は、S301で指移動がないと判断(No)すると、ステップ303(S303)に進み、連鎖オブジェクトである自オブジェクトをスクロールさせない。表示制御部119がS301で指移動があると判断(Yes)すると、ステップ302(S302)に進む。
S302で、表示制御部119は、自オブジェクトが最後のオブジェクトか否かを判断する。表示制御部119がS302で自オブジェクトが最後のオブジェクトであると判断(Yes)すると、ステップ310(S310)に進む。尚、図11においては、S302とS310とのつながりに丸で括った数字の5を用いている。ここで、最後のオブジェクトは、一番右側にあるオブジェクトであるので、最後のオブジェクトからみて右に隣接するオブジェクトはないため、最後のオブジェクトはその左に隣接するオブジェクトとだけ参照することになる。
S310で、表示制御部119は、自オブジェクトとその左に隣接するオブジェクトとの距離d2が100≦d2≦b2であるか否かを判断する。S310で、表示制御部119は、100≦d2≦b2であると判断(Yes)すると、自オブジェクトのスクロールを生じさせない(ステップ311(S311))。その後、ステップ312(S312)に進む。
S310で、表示制御部119が、100≦d2≦b2でないと判断(No)すると、ステップ316(S316)に進む。S316で、表示制御部119は、d2>b2か否かを判断する。
S316で、表示制御部119は、d2>b2であると判断(Yes)すると、自オブジェクトを左オブジェクトに接近させる(ステップ317(S317))。その後、S312に進む。尚、図11においては、S317とS312とのつながりに丸で括った数字の4を用いている。以下同様に、図11において、S321とつながりのあるステップとS321とのつながりに丸で括った数字の4を用いている。
表示制御部119は、S316でd2>b2でないと判断(No)すると、d2<50か否か(ステップ323(S323)を判断する。表示制御部119はS323でd2<50である(Yes)と判断すると、自オブジェクトを左オブジェクトに対してd2=50となるように反発させてスクロールさせる(ステップ324(S324))。言い換えると、自オブジェクトを右オブジェクトに近づくようにスクロールさせる。その後、S312に進む。
表示制御部119はS323でd2<50でないと(No)と判断すると、自オブジェクトを左オブジェクトに対してd2=100となるように反発させてスクロールさせる(ステップ325(S325))。言い換えると、自オブジェクトを右オブジェクトに近づくようにスクロールさせる。その後、S312に進む。
表示制御部119は、S302で自オブジェクトが最後のオブジェクトでないと判断(No)すると、ステップ304(S304)に進む。S304で、表示制御部119は、自オブジェクトが最初のオブジェクトか否かを判断する(ステップ304(S304))。
表示制御部119がS304で自オブジェクトが最初のオブジェクトであると判断(Yes)すると、ステップ305(S305)に進む。ここで、最初のオブジェクトは、一番左側にあるオブジェクトであるので、最初のオブジェクトからみて左に隣接するオブジェクトはないため、最初のオブジェクトはその右に隣接するオブジェクトとだけ参照することになる。
S305で、表示制御部119は、自オブジェクトとその右に隣接するオブジェクトとの距離d1が100≦d1≦b1であるか否かを判断する。表示制御部119は、S305で100≦d1≦b1であると判断(Yes)すると、自オブジェクトのスクロールを生じさせない(ステップ306(S306))。その後、S312に進む。
S305で、表示制御部119が、100≦d1≦b1でないと判断(No)すると、ステップ307(S307)に進む。S307で、表示制御部119は、d1>b1か否かを判断する。
表示制御部119は、S307でd1>b1であると判断(Yes)すると、自オブジェクトを右オブジェクトに接近させるようにスクロールさせる(ステップ308(S308))。その後、ステップ312(S312に)進む。
表示制御部119は、S307でd1>b1でないと判断(No)すると、d1<50か否かを判断する(ステップ327(S327))。尚、図11においては、S307とS327とのつながりに丸で括った数字の6を用いている。表示制御部119は、S327でd1<50である(Yes)と判断すると、自オブジェクトを右オブジェクトに対してd1=50となるように反発させるようにスクロールさせる(ステップ328(S328))。言い換えると、自オブジェクトを左オブジェクトに近づくようにスクロールさせる。その後、S312に進む。
表示制御部119は、S327でd1<50でないと(No)と判断すると、自オブジェクトを右オブジェクトに対してd1=100となるように反発させるようにスクロールさせる(ステップ329(S329))。言い換えると、自オブジェクトを左オブジェクトに近づくようにスクロールさせる。その後、S312に進む。
表示制御部119がS304で自オブジェクトは最初のオブジェクトでないと判断(No)すると、ステップ309(S309)に進む。S309で、表示制御部119は、自オブジェクトとその右に隣接するオブジェクトとの距離d1が100≦d1≦b1であるか否かを判断する。表示制御部119は、S309で100≦d1≦b1であると判断(Yes)すると、自オブジェクトとその左に隣接するオブジェクトとの距離d2が100≦d2≦b2であるか否かを判断する(ステップ310(S310))。表示制御部119は、S310でYesと判断されると、自オブジェクトのスクロールは生じさせない(ステップ311(S311))。その後、ステップ312(S312)に進む。
表示制御部119は、S309で100≦d1≦b1でないと判断(No)すると、ステップ313(S313)に進む。S313で、表示制御部119は、d1>b1か否かを判断する。
表示制御部119は、S313でd1>b1であると判断(Yes)すると、自オブジェクトとその左に隣接するオブジェクトとの距離d2が100≦d2≦b2であるか否かを判断する(ステップ314(S314))。表示制御部119は、S314で100≦d2≦b2であると判断(Yes)すると、自オブジェクトを右オブジェクトに接近させる(ステップ315(S315))。その後、S312に進む。
表示制御部119は、S310で100≦d2≦b2でないと判断(No)すると、ステップ316(S316)に進む。S316で、表示制御部119は、d2>b2か否かを判断する。表示制御部119は、S316でd2>b2であると判断(Yes)すると、自オブジェクトを左オブジェクトに接近させるようにスクロールさせる(ステップ317(S317))。その後、S312に進む。
S316で表示制御部119がd2>b2でないと判断(No)すると、表示制御部119は、d2<50か否かを判断する(ステップ323(S323))。表示制御部119は、S323でd2<50であると判断(Yes)すると、自オブジェクトを左オブジェクトに対してd2=50となるように反発させるようにスクロールさせる(ステップ324(S324))。その後、S312に進む。
表示制御部119は、S323でd2<50でないと判断(No)すると、自オブジェクトを左オブジェクトに対してd2=100となるように反発させるようにスクロールさせる(ステップ325(S325))。その後、S312に進む。
表示制御部119は、S314で100≦d2≦b2でないと判断(No)すると、d2>b2か否かを判断する(ステップ318(S318))。表示制御部119は、S318でd2>b2であると判断(Yes)すると、d1≧d2か否かを判断する(ステップ319(S319))。表示制御部119は、S319でd1≧d2であると判断(Yes)すると、自オブジェクトを右オブジェクトに接近させるようにスクロールさせる(ステップ320(S320))。その後、S312に進む。
表示制御部119は、S318でd2>b2でないと判断(No)すると、自オブジェクトを右オブジェクトに接近させるようにスクロールさせる(ステップ321(S321))。その後、S312に進む。
表示制御部119は、S319でd1≧d2でないと判断(No)すると、自オブジェクトを左オブジェクトに接近させるようにスクロールさせる(ステップ322(S322))。その後、S312に進む。
表示制御部119は、S313でd1>b1でないと判断(No)すると、自オブジェクトとその左に隣接するオブジェクトとの距離d2が100≦d2≦b2であるか否かを判断する(ステップ326(S326))。表示制御部119は、S326で100≦d2≦b2であると判断(Yes)すると、d1<50か否かを判断する(ステップ327(S327)。S327で、表示制御部119は、S327でd1<50である(Yes)と判断すると、自オブジェクトを右オブジェクトに対してd1=50となるように反発させるようにスクロールさせる(ステップ328(S328))。その後、S312に進む。
表示制御部119は、S327でd1<50でないと(No)と判断すると、自オブジェクトを左オブジェクトに対してd1=100となるように反発させるようにスクロールさせる(ステップ329(S329))。その後、S312に進む。
表示制御部119は、S326で100≦d2≦b2でないと判断(No)すると、d2>b2か否か(ステップ330(S330)を判断する。表示制御部119は、S330でd2>b2であると判断(Yes)すると、自オブジェクトを左オブジェクトに接近させるようにスクロールさせる(ステップ331(S331))。その後、S312に進む。
表示制御部119は、S330でd2>b2でないと判断(No)すると、d1=d2か否かを判断する(ステップ332(S332))。表示制御部119は、S332でd1=d2であると判断(Yes)すると、自オブジェクトをスクロールさせない(ステップ333(S333))。その後、S312に進む。
S332で、表示制御部119がd1=d2でないと判断(No)すると、d1>d2か否かを判断する(ステップ334(S334))。表示制御部119は、S334でd1>d2であると判断(Yes)すると、自オブジェクトを左オブジェクトに対して反発させるようにスクロールさせる(ステップ335(S335))。その後、S312に進む。
表示制御部119は、S334でd1>d2でないと判断(No)すると、自オブジェクトを右オブジェクトに対して反発させるようにスクロールさせる(ステップ336(S336))。その後、S312に進む。
S312において、表示制御部119は、タッチアップがあるか否かを判断する。表示制御部119が、タッチアップありと判断(Yes)すると、図9のS106に進む。タッチアップがないと判断(No)すると、S301に戻る。
表示制御部119は、S204及びS312でタッチアップされたと判断(Yes)すると、スクロールオブジェクトを指の移動に応じた位置に表示させ、更に各オブジェクト間距離がいずれも105というように等間隔となるように、表示部116に表示させる(ステップ106(S106))。その後、ステップ107(S107)に進む。
S107において、表示制御部119は、表示部116に最初のオブジェクト10Aが表示されているか否かを判断する。表示制御部119が、最初のオブジェクト10Aが表示部に表示されていると判断(Yes)すると、ステップ110(S110)に進む。S110では、表示制御部119は、最初のオブジェクト10Aが所定の表示部左側に位置し、各オブジェクト間距離がいずれも105というように等間隔となるようにオブジェクト10をスクロールさせて表示部116に表示させる。ここで、所定の表示部左側とは、カメラアプリ起動時の初期画面に複数のオブジェクトが表示されたときの最も左側に位置するオブジェクトの表示位置であり、例えば図2におけるオブジェクト10Cが表示される位置である。
S107において、表示制御部119が、最初のオブジェクト10Aが表示部116に表示されていないと判断(No)すると、表示部に最後のオブジェクト10Zが表示部116に表示されているか否かを判断する(ステップ108(S108))。
S108において、表示制御部119が、最後のオブジェクト10Zが表示部116に表示されていないと判断(No)すると、S106で表示された表示画面と変わりなく、オブジェクトの表示位置の変化がない(ステップ109(S109))。
S108において、表示制御部119が、最後のオブジェクト10Zが表示部116に表示されていると判断(Yes)すると、ステップ111(S111)に進む。S111では、表示制御部119は、最後のオブジェクト10Zが所定の表示部右側に位置し、各オブジェクト間距離がいずれも105というように等間隔となるようにオブジェクトをスクロールさせて表示部116に表示させる。ここで、所定の表示部右側とは、カメラアプリ起動時の初期画面に複数のオブジェクトが表示されたときの最も右側に位置するオブジェクトの表示位置であり、例えば図2におけるオブジェクト10Hが表示される位置である。
以上のように、図9〜図11のフローチャートに従って、オブジェクト10はスクロールされる。
次に、図3、図9〜図14を用いて、オブジェクトの具体的な動きの例を説明する。図3、図12〜図14においては、隣接する2つのオブジェクトからなるオブジェクト対は、いずれも時間間隔距離が等しく、a=100、b=107とする。すなわち、隣接する2つのオブジェクト間距離dが、100≦d≦107を満たさないとき、隣接する2つのオブジェクト間距離dが変化するようにオブジェクトはスクロールされ、100≦d≦107を満たすときはオブジェクトがスクロールされない不感帯となる。図3、図12〜図14は、オブジェクト10Fにタッチダウンしてスクロールしたときの表示部116上のオブジェクト表示の経時変化を示す。上述したように、図9〜図11に示すステップはオブジェクト毎に行われる。
まず、図3に示すようにオブジェクト10C〜10Hが表示された表示部116のオブジェクト10Fに指をタッチダウンさせると、図9に示すS101でYesと判断される。オブジェクト10Fは、S103でYesと判断され、S104でスクロールオブジェクトと定義される。オブジェクト10C〜10E、10G、10Hは、S103でNoと判断され、S105で連鎖オブジェクトと定義される。スクロールオブジェクトと定義されたオブジェクトは、図10に示すフローチャートに進む。連鎖オブジェクトと定義されたオブジェクトは、図11に示すフローチャートに進む。
図12に示すように、スクロールオブジェクトと定義されたオブジェクト10Fに指をタッチダウンした状態で指移動があると、図10に示すS201でYesと判断され、オブジェクト10Fは、S203で指移動に応じた位置にスクロールされる。図12においては、オブジェクト10Fは、図面右方向に5スクロールされている。次に、S204に進み、S204でタッチアップなしと判断されるとS201に戻る。
図12に示すように、オブジェクト10Fがスクロールされることにより、オブジェクト10Eとその右に隣接するオブジェクト10Fとの距離d1は110となり、b1=107を超える。図11に示すS301で表示部116上で指移動ありと判断(Yes)されると、S302に進む。オブジェクト10Eは、S302で最後のオブジェクトでない(No)と判断され、続いて、S304で最初のオブジェクトでない(No)と判断され、S309に進む。S309において、オブジェクト10Eの右に隣接するオブジェクト10Fと、オブジェクト10Eとの距離d1はb1=107を超えるためS313に進み、S313でYesと判断されてS314に進む。オブジェクト10Eの左隣接オブジェクト10Dとオブジェクト10Eとの距離d2は105であり、S314でYesと判断され、S315に進む。S315で、オブジェクト10Eは右オブジェクトであるオブジェクト10Fに接近するようにスクロールされる。次に、S312に進み、S312でタッチアップなしと判断されるとS301に戻る。
図12に示すように、オブジェクト10Fがスクロールされることにより、オブジェクト10Gとその左に隣接するオブジェクト10Fとの距離d2は100となり、100≦d2≦107の範囲にある。オブジェクト10Cとオブジェクト10Eとの距離、オブジェクト10Dとオブジェクト10Eとの距離、オブジェクト10Gとオブジェクト10Hとの距離は、いずれも105となり、100≦d≦107の範囲となる。図11に示すように、S301で表示部116上で指移動ありと判断(Yes)されると、S302に進む。オブジェクト10C、10D、10G、10Hはいずれも、S302で最後のオブジェクトでない(No)と判断され、続いて、S304で最初のオブジェクトでない(No)と判断され、S309に進む。オブジェクト10C、10D、10G、10Hのいずれのオブジェクトも、その右に隣接するオブジェクトとの間の距離d1が、100≦d1≦107を満たしているので、S309でYesと判断され、S310に進む。続いて、オブジェクト10C、10D、10G、10Hのいずれのオブジェクトも、その左に隣接するオブジェクトとの間の距離d2が、100≦d2≦107を満たしているので、S310でYesと判断され、S311でスクロールなしと判断される。次に、S312でタッチアップなしと判断されるとS301に戻る。尚、オブジェクト10Cにおいて、表示部116には左隣接オブジェクトにあたるオブジェクト10Bの表示はないが、オブジェクト10Cは最初のオブジェクト10Aではないので、左側に参照するオブジェクト(10B)が存在する。同様に、オブジェクト10Hにおいても、表示部116には右隣接オブジェクトにあたるオブジェクト10Iの表示はないが、右側に参照するオブジェクト(10I)が存在する。
次に、図13に示すように、更にオブジェクト10Fに指をタッチダウンした状態で指移動があると、S201でYesと判断され、オブジェクト10Fは、S203で指移動に応じた位置にスクロールされる。図13においては、オブジェクト10Fは、その右に隣接するオブジェクト10Gに重なるようにスクロールされている。次に、S204に進み、S204でタッチアップなしと判断されるとS201に戻る。
図13に示すように、オブジェクト10Fがスクロールされることにより、オブジェクト10Fとオブジェクト10Gとの距離dはd=48となる。また、オブジェクト10Eとオブジェクト10Fとの距離dはd=150、オブジェクト10Dとオブジェクト10Eとの距離は170となる。オブジェクトCとオブジェクトDとの距離d及びオブジェクトGとオブジェクトHとの距離dは、いずれも105である。尚、図12に示すオブジェクト10Fの表示位置から図13に示すオブジェクト10Fの表示位置に変化するまでの間、図9〜図11に示すフローチャートに沿って処理が複数回行われ、各オブジェクト間距離は図13に示すような数値となる。
図13におけるオブジェクト10Eの動きについて図11に従って説明する。図11に示すS301で表示部116上で指移動ありと判断(Yes)されると、S302に進む。オブジェクト10Eは、S302で最後のオブジェクトでない(No)と判断され、続いて、S304で最初のオブジェクトでない(No)と判断され、S309に進む。S309において、オブジェクト10Eとその右に隣接するオブジェクト10Fとの距離d1は150となりb1=107を超えるため、S309でNoと判断されてS313に進み、続いてS313でYesと判断されてS314に進む。オブジェクト10Eとその左隣接オブジェクト10Dと距離d2は170となり、b2=107を超えるため、S314でNoと判断され、続いてS318でYesと判断され、S319に進む。オブジェクト10Eにおいて、右隣接オブジェクトとの距離d1≧左隣接オブジェクトとの距離d2でないため、S319でNoと判断され、S322でオブジェクト10Eは左隣接オブジェクト10Dに接近するようにスクロールされる。次に、S312に進み、S312でタッチアップなしと判断されるとS301に戻る。
図13におけるオブジェクト10Dの動きについて図11に従って説明する。図11に示すS301で表示部116上で指移動ありと判断(Yes)されると、S302に進む。オブジェクト10Dは、S302で最後のオブジェクトでない(No)と判断され、続いて、S304で最初のオブジェクトでない(No)と判断され、S309に進む。S309において、オブジェクト10Dとその右に隣接するオブジェクト10Eとの距離d1は170となりb1=107を超えるため、S309でNoと判断されてS313に進み、続いてS313でYesと判断されてS314に進む。オブジェクト10Dとその左隣接オブジェクト10Cとの距離d2は105であるため、S314でYesと判断され、S315に進む。S315でオブジェクト10Dは右隣接オブジェクト10Eに接近するようにスクロールされる。次に、S312に進み、S312でタッチアップなしと判断されるとS301に戻る。
図13におけるオブジェクト10Gの動きについて図11に従って説明する。図11に示すS301で表示部116上で指移動ありと判断(Yes)されると、S302に進む。オブジェクト10Gは、S302で最後のオブジェクトでない(No)と判断され、続いて、S304で最初のオブジェクトでない(No)と判断され、S309に進む。S309において、オブジェクト10Gとその右に隣接するオブジェクト10Hとの距離d1は105となるため、S309でYesと判断されてS310に進む。オブジェクト10Gとその左隣接オブジェクト10Fとの距離d2は48であるため、S310でNoと判断されS316に進み、S316でNoと判断されてS323に進み、続いてS323でYesと判断され、S324に進む。S324でオブジェクト10Gは、左隣接オブジェクト10Fとの間の距離d2がd2=50となるように、オブジェクト10Fに対して反発するようにスクロールされる。言い換えると、オブジェクト10Gは、右隣接オブジェクトであるオブジェクト10Hに向かう方向(図面右方向)にスクロールされる。次に、S312に進み、S312でタッチアップなしと判断されるとS301に戻る。
図13におけるオブジェクト10Cとオブジェクト10Hの動きについて図11に従って説明する。図11に示すS301で表示部116上で指移動ありと判断(Yes)されると、S302に進む。オブジェクト10C、10Hはいずれも、S302で最後のオブジェクトでない(No)と判断され、続いて、S304で最初のオブジェクトでない(No)と判断され、S309に進む。オブジェクト10C、10Hのいずれのオブジェクトも、その右に隣接するオブジェクトとの間の距離d1が、100≦d1≦107を満たしているので、S309でYesと判断され、S310に進む。続いて、オブジェクト10C10Hのいずれのオブジェクトも、その左に隣接するオブジェクトとの間の距離d2が、100≦d2≦107を満たしているので、S310でYesと判断され、S311でスクロールなしと判断される。次に、S312に進み、S312でタッチアップなしと判断されるとS301に戻る。
次に、図13から図14に示すよう各オブジェクトの表示位置が変化し、図14に示すように、オブジェクト10Fとオブジェクト10Gとの距離dはd=50となる。また、オブジェクト10Eとオブジェクト10Fとの距離dはd=105、オブジェクト10Dとオブジェクト10Eとの距離は150となる。オブジェクトCとオブジェクトDとの距離は170、オブジェクトGとオブジェクトHとの距離は103となる。尚、図13に示すオブジェクト10Fの表示位置から図14に示すオブジェクト10Fの表示位置に変化するまでの間、図9〜図11に示すフローチャートに沿って処理が複数回行われ、各オブジェクト間距離は図14に示すような数値となる。
図14におけるオブジェクト10Eの動きについて図11に従って説明する。図11に示すS301で表示部116上で指移動ありと判断(Yes)されると、S302に進む。オブジェクト10Eは、S302で最後のオブジェクトでない(No)と判断され、続いて、S304で最初のオブジェクトでない(No)と判断され、S309に進む。オブジェクト10Eとその右に隣接するオブジェクト10Fとの距離d1は105となるため、S309でYesと判断されてS310に進む。オブジェクト10Eとその左に隣接するオブジェクト10Dとの距離d2は150となり、b2=107を超えるため、S310でNoと判断されてS316に進む。S316でYesと判断されて、S317でオブジェクト10Eは左隣接オブジェクト10Dに接近するようにスクロールされる。次に、S312に進み、S312でタッチアップなしと判断されるとS301に戻る。
図14におけるオブジェクト10Dの動きについて図11に従って説明する。図11に示すS301で表示部116上で指移動ありと判断(Yes)されると、S302に進む。オブジェクト10Dは、S302で最後のオブジェクトでない(No)と判断され、続いて、S304で最初のオブジェクトでない(No)と判断され、S309に進む。S309において、オブジェクト10Dとその右に隣接するオブジェクト10Eとの距離d1は150となりb1=107を超えるため、S309でNoと判断されてS313に進み、続いてS313でYesと判断されてS314に進む。オブジェクト10Dとその左隣接オブジェクト10Cとの距離d2は170であるため、S314でNoと判断されS318に進み、S315でYesと判断され、S319に進む。オブジェクト10Dは、右隣接オブジェクトとの距離d1が150で、左隣接オブジェクトd2との距離が170であるので、S319で右隣接オブジェクトとの距離(d1)≧左隣接オブジェクトとの距離(d2)ではない(No)と判断され、S322でオブジェクト10Dは左隣接オブジェクト10Cに接近するようにスクロールされる。次に、S312に進み、S312でタッチアップなしと判断されるとS301に戻る。
図14におけるオブジェクト10Gの動きについて図11に従って説明する。図11に示すS301で表示部116上で指移動ありと判断(Yes)されると、S302に進む。オブジェクト10Gは、S302で最後のオブジェクトでない(No)と判断され、続いて、S304で最初のオブジェクトでない(No)と判断され、S309に進む。オブジェクト10Gとその右に隣接するオブジェクト10Hとの距離dは103となるため、S309でYesと判断されてS310に進む。オブジェクト10Gとその左隣接オブジェクト10Fとの距離d2は50であるため、S310でNoと判断されS316に進み、S316でNoと判断されてS323に進み、続いてS323でNoと判断され、S325に進む。S325でオブジェクト10Gは、左隣接オブジェクト10Fとの間の距離d2がd2=100となるように、オブジェクト10Fに対して反発するようにスクロールされる。言い換えると、オブジェクト10Gは、右隣接オブジェクトであるオブジェクト10Hに向かう方向(図面右方向)にスクロールされる。次に、S312に進み、S312でタッチアップなしと判断されるとS301に戻る。
図14におけるオブジェクト10Cの動きについて図11に従って説明する。図11に示すS301で表示部116上で指移動ありと判断(Yes)されると、S302に進む。オブジェクト10Cは、S302で最後のオブジェクトでない(No)と判断され、続いて、S304で最初のオブジェクトでない(No)と判断され、S309に進む。オブジェクト10Cとその右に隣接するオブジェクト10Dとの間の距離d1は170となりb=107を超えるので、S309でNoと判断されてS313に進み、S313でYesと判断されてS314に進む。オブジェクト10Cとその左に隣接するオブジェクト10Bとの間の距離d2は105であるので、S314でYesと判断され、S315でオブジェクト10Cは右隣接オブジェクトであるオブジェクト10Dに接近するようにスクロールされる。次に、S312に進み、S312でタッチアップなしと判断されるとS301に戻る。
図14におけるオブジェクト10Hの動きについて図11に従って説明する。図11に示すS301で表示部116上で指移動ありと判断(Yes)されると、S302に進む。オブジェクト10Hは、S302で最後のオブジェクトでない(No)と判断され、続いて、S304で最初のオブジェクトでない(No)と判断され、S309に進む。オブジェクト10Hは、その右に隣接するオブジェクト10Iとの間の距離d1が、100≦d1≦107を満たしているので、S309でYesと判断され、S310に進む。続いて、オブジェクト10Hとその左に隣接するオブジェクトとの間の距離d2が100≦d2≦107を満たしているので、S310でYesと判断され、S311でスクロールなしと判断される。次に、S312に進み、S312でタッチアップなしと判断されるとS301に戻る。
指がタッチアップされると、スクロールオブジェクト10Fにおいては図10に示すS204でYesと判断され、連鎖オブジェクトにおいては図11に示すS312でYesと判断され、図9のS106に進む。S106で、図15に示すように、スクロールオブジェクト10Fはタッチアップされた位置に表示され、その他のオブジェクトは、オブジェクト10Fを基準にして等間隔、ここではオブジェクト中心間距離dが105となるように、オブジェクト10B〜10Hが配列される。次に、表示部116に最初のオブジェクト10Aが表示されていないので、S107でNoと判断され、S108に進む。S108で、表示部に最後のオブジェクトが表示されていないので、S108でNoと判断されてS109に進む。S109で、S106で表示されたオブジェクトの表示位置に変化がないと判断され、スクロール後の表示画面は図15に示す表示となる。
次に、図16〜図19を用いて、S301〜S329におけるオブジェクトの具体的な動きの例を説明する。図16〜図19においては、隣接する2つのオブジェクトからなるオブジェクト対は、オブジェクト対毎に時間間隔距離(b)が異なり、全てのオブジェクト対においてa=100とする。オブジェクト10Cとオブジェクト10Dとのオブジェクト対においては、b=107とし、オブジェクト10Cとオブジェクト10Dとの距離dが100≦d≦107のときは不感帯となる。オブジェクト10Dとオブジェクト10Eとのオブジェクト対においては、b=170とし、オブジェクト10Dとオブジェクト10Eとの距離dが100≦d≦170のときは不感帯となる。オブジェクト10Eとオブジェクト10Fとのオブジェクト対においては、b=120とし、オブジェクト10Eとオブジェクト10Fとの距離dが100≦d≦120のときは不感帯となる。オブジェクト10Fとオブジェクト10Gとのオブジェクト対においては、b=110とし、オブジェクト10Fとオブジェクト10Gとの距離dが100≦d≦110のときは不感帯となる。オブジェクト10Gとオブジェクト10Hとのオブジェクト対においては、b=107とし、オブジェクト10Gとオブジェクト10Hとの距離dが100≦d≦107のときは不感帯となる。図16〜図19は、オブジェクト10Fにタッチダウンしてスクロールしたときの表示部116上のオブジェクト表示位置の経時変化を示す。
まず、図16に示すようにオブジェクト10C〜10Hが表示された表示部116のオブジェクト10Fに指をタッチダウンさせると、図9に示すようにS101でYesと判断される。オブジェクト10Fは、S103でYesと判断され、S104でスクロールオブジェクトと定義される。オブジェクト10C〜10E、10G、10Hは、S103でNoと判断され、S105で連鎖オブジェクトと定義される。スクロールオブジェクトと定義されたオブジェクトは、図10に示すフローチャートに進む。連鎖オブジェクトと定義されたオブジェクトは、図11に示すフローチャートに進む。
図17に示すように、スクロールオブジェクトと定義されたオブジェクト10Fに指をタッチダウンした状態で指移動があると、図10のS201でYesと判断され、オブジェクト10Fは、S203で指移動に応じた位置にスクロールされる。図12においては、オブジェクト10Fは、図面右方向に5スクロールされている。次に、S204に進み、S204でタッチアップなしと判断されるとS201に戻る。
図17に示すように、オブジェクト10Fがスクロールされることにより、オブジェクト10Eとオブジェクト10Fとの距離dは110となる。図11に示すS301で表示部116上で指移動ありと判断(Yes)されると、S302に進む。オブジェクト10Eは、S302で最後のオブジェクトでない(No)と判断され、続いて、S304で最初のオブジェクトでない(No)と判断され、S309に進む。S309において、オブジェクト10Eとその右に隣接するオブジェクト10Fとの距離d1はb1=120を超えていないので、S310に進む。オブジェクト10Eとその左隣接オブジェクト10Dとの距離d2は105であり不感帯の範囲に入るので、S310でYesと判断され、S311でオブジェクト10Fはスクロールなしと判断される。次に、S312に進み、S312でタッチアップなしと判断されるとS301に戻る。
図17に示すように、オブジェクト10Fがスクロールされることにより、オブジェクト10Fとオブジェクト10Gとの距離dは100となり、100≦d≦110の範囲にある。オブジェクト10Cとオブジェクト10Dとの距離、オブジェクト10Dとオブジェクト10Eとの距離、オブジェクト10Gとオブジェクト10Hとの距離は、いずれも105となり、100≦d≦bの範囲となる。図11に示すS301で表示部116上で指移動ありと判断(Yes)されると、S302に進む。オブジェクト10C、10D、10G、10Hはいずれも、S302で最後のオブジェクトでない(No)と判断され、続いて、S304で最初のオブジェクトでない(No)と判断され、S309に進む。オブジェクト10C、10D、10G、10Hのいずれのオブジェクトも、その右に隣接するオブジェクトとの間の距離d1が、100≦d1≦b1を満たしているので、S309でYesと判断され、S310に進む。続いて、オブジェクト10C、10D、10G、10Hのいずれのオブジェクトも、その左に隣接するオブジェクトとの間の距離d2が、100≦d2≦b2を満たしているので、S310でYesと判断され、S311でスクロールなしと判断される。次に、S312でタッチアップなしと判断されるとS301に戻る。尚、オブジェクト10Cにおいて、表示部116には左隣接オブジェクトにあたるオブジェクト10Bの表示はないが、オブジェクト10Cは最初のオブジェクト10Aではないので、左側に参照するオブジェクト(10B)が存在する。同様に、オブジェクト10Hにおいても、表示部116には右隣接オブジェクトにあたるオブジェクト10Iの表示はないが、右側に参照するオブジェクト(10I)が存在する。
次に、図18に示すように、更にオブジェクト10Fに指をタッチダウンした状態で指移動があると、図10のS201でYesと判断され、オブジェクト10Fは、S203で指移動に応じた位置にスクロールされる。図18においては、オブジェクト10Fは、その右に隣接するオブジェクト10Gに重なるようにスクロールされている。次に、S204に進み、S204でタッチアップなしと判断されるとS201に戻る。
図18に示すように、オブジェクト10Fがスクロールされることにより、オブジェクト10Fとオブジェクト10Gとの距離dはd=48となる。また、オブジェクト10Eとオブジェクト10Fとの距離dはd=130、オブジェクト10Dとオブジェクト10Eとの距離は170となる。オブジェクトCとオブジェクトDとの距離d及びオブジェクトGとオブジェクトHとの距離dは、いずれも105である。尚、図17に示すオブジェクト10Fの表示位置から図18に示すオブジェクト10Fの表示位置に変化するまでの間、図9〜図11に示すフローチャートに沿って処理が複数回行われ、各オブジェクト間距離は図18に示すような数値となる。
図18におけるオブジェクト10Eの動きについて図11に従って説明する。図11に示すS301で表示部116上で指移動ありと判断(Yes)されると、S302に進む。オブジェクト10Eは、S302で最後のオブジェクトでない(No)と判断され、続いて、S304で最初のオブジェクトでない(No)と判断され、S309に進む。S309において、オブジェクト10Eとその右に隣接するオブジェクト10Fとの距離d1は130となりb1=120を超えるため、S309でNoと判断されてS313に進み、続いてS313でYesと判断されてS314に進む。オブジェクト10Eとその左隣接オブジェクト10Dとの距離d2は170となり不感帯の範囲に入るので、S314でYesと判断され、S315でオブジェクト10Eは右隣接オブジェクト10Fに接近するようにスクロールされる。次に、S312に進み、S312でタッチアップなしと判断されるとS301に戻る。
図18におけるオブジェクト10Dの動きについて図11に従って説明する。図11に示すS301で表示部116上で指移動ありと判断(Yes)されると、S302に進む。オブジェクト10Dは、S302で最後のオブジェクトでない(No)と判断され、続いて、S304で最初のオブジェクトでない(No)と判断され、S309に進む。S309において、オブジェクト10Dとその右に隣接するオブジェクト10Eとの距離d1は170となり不感帯の範囲に入るので、S309でYesと判断されてS310に進む。オブジェクト10Dとその左隣接オブジェクト10Cとの距離d2は105であり不感帯の範囲に入るため、S310でYesと判断され、S311でオブジェクト10Dはスクロールなしと判断される。次に、S312に進み、S312でタッチアップなしと判断されるとS301に戻る。
図18におけるオブジェクト10Gの動きについて図11に従って説明する。図11に示すS301で表示部116上で指移動ありと判断(Yes)されると、S302に進む。オブジェクト10Gは、S302で最後のオブジェクトでない(No)と判断され、続いて、S304で最初のオブジェクトでない(No)と判断され、S309に進む。S309において、オブジェクト10Gとその右に隣接するオブジェクト10Hとの距離dは105となるため、S309でYesと判断されてS310に進む。オブジェクト10Gとその左隣接オブジェクト10Fとの距離dは48であるため、S310でNoと判断されS316に進み、S316でNoと判断されてS323に進み、続いてS323でYesと判断され、S324に進む。S324でオブジェクト10Gは、左隣接オブジェクト10Fとの間の距離d2がd2=50となるように、オブジェクト10Fに対して反発するようにスクロールされる。言い換えると、オブジェクト10Gは、右隣接オブジェクトであるオブジェクト10Hに向かう方向(図面右方向)にスクロールされる。次に、S312に進み、S312でタッチアップなしと判断されるとS301に戻る。
図18におけるオブジェクト10Cとオブジェクト10Hの動きについて図11に従って説明する。図11に示すS301で表示部116上で指移動ありと判断(Yes)されると、S302に進む。オブジェクト10C、10Hはいずれも、S302で最後のオブジェクトでない(No)と判断され、続いて、S304で最初のオブジェクトでない(No)と判断され、S309に進む。オブジェクト10C、10Hのいずれのオブジェクトも、その右に隣接するオブジェクトとの間の距離d1が、100≦d1≦b1を満たしているので、S309でYesと判断され、S310に進む。続いて、オブジェクト10C、10Hのいずれのオブジェクトも、その左に隣接するオブジェクトとの間の距離d2が、100≦d2≦b2を満たしているので、S310でYesと判断され、S311でスクロールなしと判断される。次に、S312に進み、S312でタッチアップなしと判断されるとS301に戻る。
次に、図18から図19に示すよう各オブジェクトの表示位置が変化し、図19に示すように、オブジェクト10Fとオブジェクト10Gとの距離dはd=50となる。また、オブジェクト10Eとオブジェクト10Fとの距離dはd=120、オブジェクト10Dとオブジェクト10Eとの距離は180となる。オブジェクトCとオブジェクトDとの距離は110、オブジェクトGとオブジェクトHとの距離は103となる。尚、図18に示すオブジェクト10Fの表示位置から図19に示すオブジェクト10Fの表示位置に変化するまでの間、図9〜図11に示すフローチャートに沿って処理が複数回行われ、各オブジェクト間距離は図19に示すような数値となる。
図19におけるオブジェクト10Eの動きについて図11に従って説明する。図11に示すS301で表示部116上で指移動ありと判断(Yes)されると、S302に進む。オブジェクト10Eは、S302で最後のオブジェクトでない(No)と判断され、続いて、S304で最初のオブジェクトでない(No)と判断され、S309に進む。オブジェクト10Eとその右に隣接するオブジェクト10Fとの距離d1は120となり不感帯の範囲に入るので、S309でYesと判断されてS310に進む。オブジェクト10Eとその左に隣接するオブジェクト10Dとの距離dは180となり、b2=170を超えているので、S310でNoと判断されてS316に進み、S316でYesと判断されて、S317に進む。S317で、オブジェクト10Eは左隣接オブジェクト10Dに接近するようにスクロールされる。次に、S312に進み、S312でタッチアップなしと判断されるとS301に戻る。
図19におけるオブジェクト10Dの動きについて図11に従って説明する。図11に示すS301で表示部116上で指移動ありと判断(Yes)されると、S302に進む。オブジェクト10Dは、S302で最後のオブジェクトでない(No)と判断され、続いて、S304で最初のオブジェクトでない(No)と判断され、S309に進む。S309において、オブジェクト10Dとその右に隣接するオブジェクト10Eとの距離d1は180となりb1=170を超えるため、S309でNoと判断されてS313に進み、続いてS313でYesと判断されてS314に進む。オブジェクト10Dとその左隣接オブジェクト10Cとの距離d2は110となり、b2=107を超えているため、S314でNoと判断されS318に進み、S318でYesと判断され、S319に進む。オブジェクト10Dは、右隣接オブジェクトとの距離が180で、左隣接オブジェクトとの距離が110であるので、S319で右隣接オブジェクトとの距離(d1)≧左隣接オブジェクトとの距離(d2)である(Yes)と判断され、S320でオブジェクト10Dは右隣接オブジェクト10Cに接近するようにスクロールされる。次に、S312に進み、S312でタッチアップなしと判断されるとS301に戻る。
図19におけるオブジェクト10Gの動きについて図11に従って説明する。図11に示すS301で表示部116上で指移動ありと判断(Yes)されると、S302に進む。オブジェクト10Gは、S302で最後のオブジェクトでない(No)と判断され、続いて、S304で最初のオブジェクトでない(No)と判断され、S309に進む。オブジェクト10Gとその右に隣接するオブジェクト10Hとの距離dは103となり不感帯の範囲に入るので、S309でYesと判断されてS310に進む。オブジェクト10Gとその左隣接オブジェクト10Fとの距離d2は50であるため、S310でNoと判断されS316に進み、S316でNoと判断されてS323に進み、続いてS323でNoと判断され、S325に進む。S325でオブジェクト10Gは、左隣接オブジェクト10Fとの間の距離d2がd2=100となるように、オブジェクト10Fに対して反発するようにスクロールされる。言い換えると、オブジェクト10Gは、右隣接オブジェクトであるオブジェクト10Hに向かう方向(図面右方向)にスクロールされる。次に、S312に進み、S312でタッチアップなしと判断されるとS301に戻る。
次に、オブジェクト10Cの動きについて図11に従って説明する。図11に示すS301で表示部116上で指移動ありと判断(Yes)されると、S302に進む。オブジェクト10Cは、S302で最後のオブジェクトでない(No)と判断され、続いて、S304で最初のオブジェクトでない(No)と判断され、S309に進む。オブジェクト10Cとその右に隣接するオブジェクト10Dとの間の距離d1は110となりb1=107を超えるので、S309でNoと判断されてS313に進み、S313でYesと判断されてS314に進む。オブジェクト10Cとその左に隣接するオブジェクト10Bとの間の距離d2は105であるので、S314でYesと判断され、S315でオブジェクト10Cは右隣接オブジェクトであるオブジェクト10Dに接近するようにスクロールされる。次に、S312に進み、S312でタッチアップなしと判断されるとS301に戻る。
次に、オブジェクト10Hの動きについて図11に従って説明する。図11に示すS301で表示部116上で指移動ありと判断(Yes)されると、S302に進む。オブジェクト10Hは、S302で最後のオブジェクトでない(No)と判断され、続いて、S304で最初のオブジェクトでない(No)と判断され、S309に進む。オブジェクト10Hは、その右に隣接するオブジェクト10Iとの間の距離d1が、100≦d1≦b1を満たしているので、S309でYesと判断され、S310に進む。続いて、オブジェクト10Hとその左に隣接するオブジェクトとの間の距離d2が100≦d2≦b2を満たしているので、S310でYesと判断され、S311でスクロールなしと判断される。次に、S312に進み、S312でタッチアップなしと判断されるとS301に戻る。
指がタッチアップされると、スクロールオブジェクト10Fにおいては図10に示すS204でYesと判断され、連鎖オブジェクトにおいては図11に示すS312でYesと判断され、図9のS106に進む。S106で、図15に示すように、スクロールオブジェクト10Fはタッチアップされた位置に表示され、その他のオブジェクトは、オブジェクト10Fを基準にして等間隔、ここではオブジェクト中心間距離dが105となるように、オブジェクト10B〜10Hが配列される。次に、表示部に最初のオブジェクト10Aが表示されていないので、S107でNoと判断され、S108に進む。S108で、表示部に最後のオブジェクトが表示されていないので、S108でNoと判断されてS109に進み、S109で、S106で表示されたオブジェクトの表示位置に変化がないと判断され、スクロール後の表示画面は図15に示す表示となる。
以上のように、隣接する2つのオブジェクト間の時間的距離に応じて、スクロール時の隣接する2つのオブジェクト間距離を設定しているので、スクロールの際に隣接するオブジェクト間の時間的関係を直感的に理解でき、これによりオブジェクトに付随する時間情報を直感できる。
ここで、S106で表示された表示部に最初のオブジェクト又は最後のオブジェクトが表示される場合のオブジェクトの動きについて、図9を用いて説明する。
ます、最初のオブジェクトが表示される場合について説明する。例えば図20(a)に示すように、オブジェクト10A〜10Fが等間隔で配置された表示部116のオブジェクト10Aに指をタッチダウンし、タッチダウンした状態で表示部116上で指を図面右方向に移動する。これにより、スクロールオブジェクトであるオブジェクト10Aは、図20(b)に示すように、S203で指移動に応じた位置にスクロールされる。また、表示部116に表示される連鎖オブジェクト10B〜10Dも、オブジェクト10Aの表示位置変化に伴い、図11のフローに沿ってその表示位置が変化する。そして、S204及びS312でタッチアップされたと判断(Yes)されると、S106で、オブジェクト10Aはタッチアップされた位置に表示され、その他のオブジェクトはオブジェクト10Aを基準にして等間隔となるように配列される。次に、S107で最初のオブジェクト10Aが表示部116に表示されていると判断(Yes)されてS110に進む。S110で、最初のオブジェクト10Aは、図20(c)に示すように、所定の表示部左側に位置し、その他のオブジェクトは、オブジェクト10Aを基準にして等間隔、ここでは隣接オブジェクト間距離が105で表示されるように、オブジェクトはスクロールされる。ここで所定の表示部左側とは、カメラ機能起動時の初期画面に表示された複数のオブジェクトのうち最も左側のオブジェクトが配置される位置である。
また、上述では、最初のオブジェクトがスクロールオブジェクトである場合を示したが、最初のオブジェクトが連鎖オブジェクトの場合においても同様である。例えば図21(a)に示すように、オブジェクト10B〜10Gが等間隔で配置された表示部116のオブジェクト10Cに指をタッチダウンし、タッチダウンした状態で表示部116上で指を図面右方向に移動する。これにより、スクロールオブジェクトであるオブジェクト10Cは、図21(b)に示すように、S203で指移動に応じた位置にスクロールされる。また、表示部116に表示される連鎖オブジェクト10A、10B、10D〜10Gも、オブジェクト10Aの表示位置変化に伴い、図11のフローに沿ってその表示位置が変化する。そして、S204及びS312でタッチアップされたと判断(Yes)されると、S106で、オブジェクト10Cはタッチアップされた位置に表示され、その他のオブジェクトはオブジェクト10Cを基準にして等間隔となるように配列される。次に、S107で最初のオブジェクト10Aが表示部116に表示されていると判断(Yes)されてS110に進む。S110で、最初のオブジェクト10Aは、図20(c)に示すように、所定の表示部左側に位置し、その他のオブジェクトは、オブジェクト10Aを基準にして等間隔、ここでは隣接オブジェクト間距離が105で表示されるように、オブジェクトはスクロールされる。
次に、最後のオブジェクトが表示される場合について説明する。例えば図22(a)に示すように、オブジェクト10U〜10Zが等間隔で配置された表示部116のオブジェクト10Zに指をタッチダウンし、タッチダウンした状態で表示部116上で指を図面左方向に移動する。これにより、スクロールオブジェクトであるオブジェクト10Zは、図22(b)に示すように、S203で指移動に応じた位置にスクロールされる。また、表示部116に表示される連鎖オブジェクト10U〜10Yも、オブジェクト10Zの表示位置変化に伴い、図11のフローに沿ってその表示位置が変化する。そして、S204及びS312でタッチアップされたと判断(Yes)されると、S106で、オブジェクト10Zはタッチアップされた位置に表示され、その他のオブジェクトはオブジェクト10Zを基準にして等間隔となるように配列される。次に、S107で最初のオブジェクト10Aが表示部116に表示されていないと判断(No)されてS108に進む。S108で、表示部に最後のオブジェクト10Zが表示されていると判断(Yes)されてS111に進む。S111で、最後のオブジェクト10Zは、図22(c)に示すように、所定の表示部右側に位置し、その他のオブジェクトは、オブジェクト10Zを基準にして等間隔、ここでは隣接オブジェクト間距離が105で表示されるように、オブジェクトはスクロールされる。ここで所定の表示部右側とは、カメラ機能起動時の初期画面に表示された複数のオブジェクトのうち最も右側のオブジェクトが配置される位置である。
また、上述では、最後のオブジェクトがスクロールオブジェクトである場合を示したが、最後のオブジェクトが連鎖オブジェクトの場合においても同様である。例えば図23(a)に示すように、オブジェクト10S〜10Xが等間隔で配置された表示部116のオブジェクト10Wに指をタッチダウンし、タッチダウンした状態で表示部116上で指を図面左方向に移動する。これにより、スクロールオブジェクトであるオブジェクト10Wは、図23(b)に示すように、S203で指移動に応じた位置にスクロールされる。また、表示部116に表示される連鎖オブジェクト10S〜10V、10X〜10Zも、オブジェクト10Wの表示位置変化に伴い、図11のフローに沿ってその表示位置が変化する。そして、S204及びS312でタッチアップされたと判断(Yes)されると、S106で、オブジェクト10Wはタッチアップされた位置に表示され、その他のオブジェクトはオブジェクト10Wを基準にして等間隔となるように配列される。次に、S107で最初のオブジェクト10Aが表示部116に表示されていないと判断(No)されてS108に進む。S108で、表示部に最後のオブジェクト10Zが表示されていると判断(Yes)されてS111に進む。S111で、最後のオブジェクト10Zは、図22(c)に示すように、所定の表示部右側に位置し、その他のオブジェクトは、オブジェクト10Zを基準にして等間隔、ここでは隣接オブジェクト間距離が105で表示されるように、オブジェクトはスクロールされる。
このように、タッチアップ時に最初のオブジェクト又は最後のオブジェクトが表示される場合、最初のオブジェクト又は最後のオブジェクト後が所定の表示位置にくるようにスクロールすることにより、より多くのオブジェクトを表示できる。
[本技術に係るスクロール操作の利点]
情報処理装置100によれば、スクロールの際に、隣接するオブジェクト間の時間関係が直感的に理解でき、これによりオブジェクトに付随する時間情報を直感できる。
複数のオブジェクトの隣接するオブジェクト間距離が等間隔となるようにオブジェクトをスクロールする表示制御方法が考えられる。しかしながら、このような表示制御方法では、個々のオブジェクト自体にしか意味がなく、隣接するオブジェクト間の関係はわからない。これに対し、本技術では、隣接するオブジェクト間の意味的距離に応じてオブジェクトの動きを制御しているので、スクロール時のオブジェクトの動きにより、直感的に隣接するオブジェクト間の関係が理解できる。
[変形例]
上述の実施形態では、オブジェクトのスクロールが水平方向で行われるが、垂直方向で行われてもよい。また、複数のオブジェクトは、時間昇順に並んでいたが時間降順に並んでいてもよい。
また、上述の実施形態では、カメラ機能による撮影画像をサムネイル化したものをオブジェクトとしたが、ビデオ機能による撮影画像をサムネイル化したものをオブジェクトとしたり、記録された音楽情報をアルバム毎にオブジェクト化したりしてもよい。
また、上述の実施形態では、各オブジェクトが時間情報を付随し、この時間情報を基に隣接するオブジェクト間の意味的距離としての時間間隔距離を算出している例を挙げたがこれに限られない。例えば各オブジェクトが位置情報を付随し、この位置情報を基に隣接するオブジェクト間の意味的距離としての位置間隔距離を算出してもよい。例えば、撮影画像をサムネイル化したものをオブジェクトとし、各オブジェクトに撮影場所を位置情報として付随させる。そして、1つのオブジェクトの撮影場所とその隣のオブジェクトの撮影場所との距離を、位置間隔距離とすることができる。仮に、3つのオブジェクトA、B、Cがあり、オブジェクトAの撮影場所からオブジェクトBの撮影場所までの距離を10kmとし、オブジェクトBの撮影場所からオブジェクトCの撮影場所までの距離20kmとした場合、スクロール時におけるオブジェクトA、B間の不感帯となる最大距離b1とオブジェクトB、C間の不感帯となる最大距離b2を、b1:b2=1:2とすることができる。これにより、スクロール時に各オブジェクト間の位置間隔距離を直感的に把握することができる。
また、例えば、各オブジェクトがカテゴリー情報を付随し、このカテゴリー情報を基に隣接するオブジェクト間の意味的距離としてカテゴリー間隔距離を算出してもよい。例えば、複数の音楽アルバムを録音し、各アルバムをオブジェクト化し、各オブジェクトに音楽ジャンルやアーチスト等のカテゴリー情報を持たせる。ここでは、カテゴリー情報がアーチスト情報である場合を例に挙げて説明する。この場合、アーチストのアーチスト名の先頭の文字によって、隣接するオブジェクト間のカテゴリー間隔距離が決定される。具体的には、アーチスト名の先頭の文字がアルファベット順で何番目に位置するかで各オブジェクトのアーチスト情報を数字化し、Aであれば1、Bであれば2、Cであれば3・・・Yであれば25、Zであれば26というようにアーチスト情報を数字化する。例えば、3つのオブジェクトA、B、Cがあり、オブジェクトAのアーチスト名の先頭の文字がアルファベットの3番目の文字であるCとし、オブジェクトBのアーチスト名の先頭の文字がアルファベットの4番目の文字であるDとし、オブジェクトCのアーチスト名の先頭の文字がアルファベットの10番目の文字であるJとする。この場合、オブジェクトA、B間の距離は1、オブジェクトB、C間の距離は6となり、スクロール時におけるオブジェクトA、B間の不感帯となる最大距離b1とオブジェクトB、C間の不感帯となる最大距離b2を、b1:b2=1:6とすることができる。これにより、スクロール時に各オブジェクト間のカテゴリー間隔距離を直感的に把握することができる。
また、上述の実施形態では、各オブジェクトの時間情報を基に時間間隔距離を算出していたが、複数のオブジェクトを1つのグループとして複数のグループを作り、各グループの時間情報を基に、隣接するグループ間の時間間隔距離を算出してもよい。例えば、2010年1月に撮影されたオブジェクトA〜Dを第1グループとし、2010年2月に撮影されたオブジェクトE〜Gをオブジェクトからなる第2グループとし、2010年8月に撮影されたオブジェクトH〜Zをオブジェクトからなる第3グループとする。この場合、第1グループと第2グループとの時間間隔は1ヶ月となり、第2グループと第3グループとの時間間隔は6ヶ月となる。スクロール時、第1グループのみが表示部に表示されるときは、第1グループのオブジェクトA〜Dは等間隔でスクロールされるように制御する。スクロール時、第1グループの最後のオブジェクトDと第2グループの最初のオブジェクトEとが表示部に表示されるときは、オブジェクトDとオブジェクトEとの最大距離d1が、オブジェクトA〜Dにおける隣接オブジェクト間距離よりも長くなるように設定する。そして、スクロール時、第2グループの最後のオブジェクトGと第3グループの最初のオブジェクトHとが表示部に表示されるときは、オブジェクトGとオブジェクトHとの最大距離d2が、d1の6倍となるように設定する。これにより、スクロール時に、隣接するグループ間の時間間隔距離を直感的に把握することができる。
また、上述の実施形態においては、オブジェクトを水平方向にスクロールする例を説明したが、図24に示すように、水平方向以外にも斜め方向にスクロール可能としてもよく、例えば表示部116の上部から下部にオブジェクトの表示位置を変更できるようにしてもよい。図24(a)に示すように、表示部116の上部に位置したオブジェクト10A〜10Fをスクロールする際、例えばオブジェクト10Cをタッチダウンし、図24(b)に示すように、指を斜め方向に移動する。図24(b)に示すように、斜め方向にオブジェクト10をスクロールする場合においても、隣接するオブジェクト間の時間間隔距離により、スクロール時の各オブジェクト間距離を異ならせることができる。そして、タッチダウンしたオブジェクト10Cが所望の位置となるように指を移動し、タッチアップすることによって、オブジェクト10Cは指の移動に応じた位置に表示される。オブジェクト10B〜10Gは、オブジェクト10Cを基準として等間隔に水平方向に配列して表示されるようにスクロールされる。
尚、本技術は以下のような構成をとることもできる。
(1)複数のオブジェクトを表示可能な表示部と、
前記複数のオブジェクトのスクロールの際の、前記複数のオブジェクトのうち隣接する2つのオブジェクト間の意味的距離に応じて前記隣接する2つのオブジェクト間の距離を算出する算出部と、
前記算出部による算出結果に応じて前記複数のオブジェクトをスクロールさせる表示制御部と
を具備する情報処理装置。
(2)前記(1)に記載の情報処理装置であって、前記隣接する2つのオブジェクト間の距離をdとし、前記スクロールの際の前記隣接する2つのオブジェクト間の予め設定された最小距離をaとし、前記算出部により算出された前記隣接する2つのオブジェクト間の前記意味的距離に応じた距離をbとしたとき、前記表示制御部は、前記隣接する2つのオブジェクト間の距離dが、前記bを越えたとき、あるいは、前記aよりも小さくなったときに、前記隣接する2つのオブジェクト間の距離dがa≦d≦bとなるよう前記複数のオブジェクトをスクロールさせる情報処理装置。
(3)前記(1)又は(2)に記載の情報処理装置であって、前記算出部は、前記複数のオブジェクト各々のスクロール時の速度を、前記複数のオブジェクト各々のスクロール距離に応じて算出し、前記表示制御部は、前記算出部により算出された速度で前記複数のオブジェクトをスクロールさせる情報処理装置。
(4)前記(3)に記載の情報処理装置であって、算出部は、前記スクロール距離が大きいほど前記速度が大きくなるように前記速度を算出する。
(5)前記(2)に記載の情報処理装置であって、前記スクロールの際の前記隣接する2つのオブジェクト同士が重なる度合いの許容範囲を設け、前記許容範囲のうち前記隣接する2つのオブジェクト同士が重なり合う領域がもっとも広いときの前記隣接する2つのオブジェクト間の距離をcとし、c<aとしたとき、前記表示制御部は、d<cとなったときは前記隣接する2つのオブジェクト間の距離dが前記cとなるように前記複数のオブジェクトをスクロールさせる情報処理装置。
(6)前記(1)〜(5)いずれかに記載の情報処理装置であって、前記意味的距離とは、前記複数のオブジェクトそれぞれに付随する時間情報を基に算出された前記隣接するオブジェクト間の時間間隔距離である情報処理装置。
(7)前記(1)〜(6)いずれかに記載の情報処理装置であって、前記複数のオブジェクトは、最初のオブジェクトと最後のオブジェクトを有し、前記表示制御部は、前記最初のオブジェクトが前記表示部に表示される際は、前記最初のオブジェクトが前記表示部の所定の位置に表示されるように制御する情報処理装置。
(8)前記(1)〜(6)いずれかに記載の情報処理装置であって、前記複数のオブジェクトは、最初のオブジェクトと最後のオブジェクトを有し、
前記表示制御部は、前記最初のオブジェクトが前記表示部に表示されず、前記最後のオブジェクトが前記表示部に表示される際は、前記最後のオブジェクトが前記表示部の所定の位置に表示されるように制御する情報処理装置。
(9)表示部に複数のオブジェクトを表示し、
前記複数のオブジェクトのスクロールの際に、前記複数のオブジェクトのうち隣接する2つのオブジェクト間の意味的距離に応じて、前記隣接する2つのオブジェクト間の距離が前記隣接する2つのオブジェクト毎に異なるようにスクロールさせる
表示制御方法。
(10)前記(9)に記載の表示制御方法であって、前記隣接する2つのオブジェクト間の距離をdとし、前記スクロールの際の前記隣接する2つのオブジェクト間の予め設定された最小距離をaとし、前記算出部により算出された前記隣接する2つのオブジェクト間の前記意味的距離に応じた距離をbとしたとき、前記隣接する2つのオブジェクト間の距離dが、前記bを越えたとき、あるいは、前記aよりも小さくなったときに、前記隣接する2つのオブジェクト間の距離dがa≦d≦bとなるよう前記複数のオブジェクトをスクロールさせる表示制御方法。
(11)前記(9)又は(10)に記載の表示制御方法であって、前記オブジェクトは、前記オブジェクトのスクロール距離に応じた速度でスクロールさせる表示制御方法。
(12)前記(11)に記載の情報処理装置であって、前記速度は前記スクロール距離が大きいほど大きい表示制御方法。
(13)前記(10)に記載の表示制御方法であって、前記スクロールの際の前記隣接する2つのオブジェクト同士が重なる度合いの許容範囲を設け、前記許容範囲のうち前記隣接する2つのオブジェクト同士が重なり合う領域がもっとも広いときの前記隣接する2つのオブジェクト間の距離をcとし、c<aとしたとき、d<cとなったときは前記隣接する2つのオブジェクト間の距離dが前記cとなるように前記複数のオブジェクトをスクロールさせる表示制御方法。
(14)前記(9)〜(13)いずれかに記載の表示制御方法であって、前記意味的距離とは、前記複数のオブジェクトそれぞれに付随する時間情報を基に算出された前記隣接するオブジェクト間の時間間隔距離である表示制御方法。
(15)前記(9)〜(14)いずれかに記載の表示制御方法であって、前記複数のオブジェクトは、最初のオブジェクトと最後のオブジェクトを有し、前記最初のオブジェクトが前記表示部に表示される際は、前記最初のオブジェクトが前記表示部の所定の位置に表示される表示制御方法。
(16)前記(9)〜(14)いずれかに記載の表示制御方法であって、前記複数のオブジェクトは、最初のオブジェクトと最後のオブジェクトを有し、前記最初のオブジェクトが前記表示部に表示されず、前記最後のオブジェクトが前記表示部に表示される際は、前記最後のオブジェクトが前記表示部の所定の位置に表示される表示制御方法。
(17)表示部を有する情報処理装置に、
前記表示部に複数のオブジェクトを表示させるステップと、
前記オブジェクトのスクロールの際に、前記複数のオブジェクトのうち隣接する2つのオブジェクト間の意味的距離に応じて、前記隣接する2つのオブジェクト間の距離が前記隣接する2つのオブジェクト毎に異なるように前記複数のオブジェクトをスクロールさせるステップ
を実行させるプログラム。
(18)前記(17)に記載のプログラムであって、前記隣接する2つのオブジェクト間の距離をdとし、前記スクロールの際の前記隣接する2つのオブジェクト間の予め設定された最小距離をaとし、前記算出部により算出された前記隣接する2つのオブジェクト間の前記意味的距離に応じた距離をbとしたとき、前記隣接する2つのオブジェクト間の距離dが、前記bを越えたとき、あるいは、前記aよりも小さくなったときに、前記隣接する2つのオブジェクト間の距離dがa≦d≦bとなるよう前記複数のオブジェクトをスクロールさせるステップを実行させるプログラム。
(19)前記(17)又は(18)に記載のプログラムであって、前記オブジェクトは、前記オブジェクトのスクロール距離に応じた速度でスクロールさせるプログラム。
(20)前記(19)に記載のプログラムであって、前記速度は前記スクロール距離が大きいほど大きいプログラム。
(21)前記(18)に記載のプログラムであって、前記スクロールの際の前記隣接する2つのオブジェクト同士が重なる度合いの許容範囲を設け、前記許容範囲のうち前記隣接する2つのオブジェクト同士が重なり合う領域がもっとも広いときの前記隣接する2つのオブジェクト間の距離をcとし、c<aとしたとき、d<cとなったときは前記隣接する2つのオブジェクト間の距離dが前記cとなるように前記複数のオブジェクトをスクロールさせるステップを実行させるプログラム。
(22)前記(9)〜(13)いずれかに記載のプログラムであって、前記意味的距離とは、前記複数のオブジェクトそれぞれに付随する時間情報を基に算出された前記隣接するオブジェクト間の時間間隔距離であるプログラム。
(23)前記(17)〜(22)いずれかに記載のプログラムであって、前記複数のオブジェクトは、最初のオブジェクトと最後のオブジェクトを有し、前記最初のオブジェクトが前記表示部に表示される際は、前記最初のオブジェクトが前記表示部の所定の位置に表示されるステップを実行させるプログラム。
(24)前記(17)〜(22)いずれかに記載のプログラムであって、前記複数のオブジェクトは、最初のオブジェクトと最後のオブジェクトを有し、前記最初のオブジェクトが前記表示部に表示されず、前記最後のオブジェクトが前記表示部に表示される際は、前記最後のオブジェクトが前記表示部の所定の位置に表示されるステップを実行させるプログラム。