表示制御装置及び表示制御方法
【課題】辿るべき経路が画面の外にはみ出ず、経路に沿った追跡が正確にできる表示制御装置などを提供する。
【解決手段】ディスプレイ上でドラッグ操作されたときのドラッグ速度とドラッグされた方向を検出する検出手段1401と、検出された方向のベクトルの大きさとして、検出されたドラッグ速度に基づいて、スクロールが開始された際のディスプレイに表示された地点がドラッグ操作により移動した距離を算出する算出手段1402と、ディスプレイ上での位置を指し示すカーソルが経路線上のみ移動可能とされる制限スクロールの場合、算出された距離分に相当する大きさを有する検出された方向のベクトルを、経路線に平行な方向のベクトルとして投影させる投影手段1403と、投影されたベクトルの大きさの分だけ、かつ投影されたベクトルと逆方向に経路線を移動させて経路線を表示する表示制御手段1404とを備える。
【解決手段】ディスプレイ上でドラッグ操作されたときのドラッグ速度とドラッグされた方向を検出する検出手段1401と、検出された方向のベクトルの大きさとして、検出されたドラッグ速度に基づいて、スクロールが開始された際のディスプレイに表示された地点がドラッグ操作により移動した距離を算出する算出手段1402と、ディスプレイ上での位置を指し示すカーソルが経路線上のみ移動可能とされる制限スクロールの場合、算出された距離分に相当する大きさを有する検出された方向のベクトルを、経路線に平行な方向のベクトルとして投影させる投影手段1403と、投影されたベクトルの大きさの分だけ、かつ投影されたベクトルと逆方向に経路線を移動させて経路線を表示する表示制御手段1404とを備える。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ディスプレイ上に表示しきれない表示対象の一部を表示させる表示制御装置及び表示制御方法に関する。
【背景技術】
【0002】
コンピュータグラフィックスにより地理空間や概念空間を示す空間を描き、その空間の中をユーザが入力デバイスを通じて自由に移動でき、さらにその空間を拡大、縮小できる技術がある(例えば、特許文献1を参照)。その空間内では、地理空間の場合には経路を示した線であり、概念空間の場合にはある概念を示した線である。ユーザがそれらの線の全体像や線の一部の周辺に何が存在するか見るためには見るための操作が必要となってきた。
【0003】
ここで、画面に描かれた地理空間や概念空間の中を、ユーザがタッチパネル、マウス、スティックデバイスなどの入力デバイスを通じて自由に移動できる環境があるとする。その中で、地図上に描かれた運転経路や、ある点と他の点を結んだ概念的な線(折れ線、曲線など)を辿って見たい場合、ユーザは、入力デバイスへの入力を通じて、移動や拡大、縮小をこまめに繰り返して行い、線を追っていく必要がある。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2002−243489号公報(要約)
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、入力が強すぎる(例えば、スクロールを勢いよく強く行うなど)と辿るべき経路が画面の外にはみ出たり、入力が弱すぎる(例えば、スクロールを弱く軽く行うなど)となかなか線に沿って先に進まなかったりする。また、拡大の中心を線上としなければ、辿るべき線が画面の外にはみ出て消えてしまったりするなどの問題があった。
【0006】
本発明は、上記の問題点に鑑み、辿るべき経路が画面の外にはみ出ず、経路に沿った追跡が正確にできる表示制御装置及び表示制御方法を提供することを目的とする。
【0007】
すなわち、タッチパネルやコントローラなどによるユーザの操作に際し、地図空間や概念空間のスクロール移動を経路などの線上(レール上)でのみしかできないように拘束を与えて、さらにそれに加えて、地図上などを無制限に移動できる「自由スクロール」モードと、決められた線上もしくは限定領域内のみスクロールできる「制限スクロール」モードとの2つのモードを提供し、かつ、前述の2つのモードの切り替えも新たなボタンを押すことなく、同様のストロークやドラッグで行うことができるジェスチャー認識の機能を備えたインターフェースを提案する。
【0008】
具体的には、スクロールを制限させたい線にレールのような質感をもたせ、画面の中心のカーソルなどのある注目点をレールの近くに持って行き、レールに平行してなぞると、カーソルとレールが絡んで、レール上のみでスクロールされるようになる。また、レールの方向に対して垂直な方向に強く引っ張るとカーソルがレールから解き放たれ、カーソルが自由に動き、「自由スクロール」モードに戻るというものである。
【課題を解決するための手段】
【0009】
上記目的を達成するために、本発明によれば、地図を表示するディスプレイ上での所定の経路を示す経路線を前記ディスプレイに表示し、ユーザによるスクロールのための前記ディスプレイ上でのドラッグ操作に応じて前記経路線を移動させ、前記ディスプレイに表示されていない前記経路線の他の部分を表示させる表示制御装置であって、前記ディスプレイ上でドラッグ操作されたときのドラッグ速度及び前記ドラッグ操作に基づいてドラッグされた方向を検出する検出手段と、検出された前記方向のベクトルの大きさとして、検出された前記ドラッグ速度に基づいて、前記スクロールが開始された際の前記ディスプレイに表示された地点が前記スクロールにより移動した距離を算出する算出手段と、前記ディスプレイ上での位置を指し示すカーソルが前記経路線上のみ移動可能とされる制限スクロールの場合、算出された前記距離分に相当する大きさを有する前記検出された方向のベクトルを、前記経路線に平行な方向のベクトルとして投影させる投影手段と、投影されたベクトルの大きさの分だけ、かつ投影されたベクトルと逆方向に前記経路線を移動させて前記経路線を表示する表示制御手段とを、備える表示制御装置が提供される。この構成により、辿るべき経路が画面の外にはみ出ず、経路に沿った追跡が正確にできる。なお、経路とは、例えばある地点からある地点までのルート(例えば、出発地点及び到着地点を入力することにより算出される最短距離ルート、最短時間ルートなど)を言う。また、ここでは、経路線を表示の対象としているが、経路線に限られるものではなく、後述する概念を示す概念線などであってもよい。また、上述する経路線は、後述するスクロールレールに相当する。また、ここでの投影は、経路線と平行な方向のベクトルの大きさを算出することと等価であり、投影させずに経路線と平行な方向のベクトルの大きさを算出できれば投影させなくてもよい。また 、ドラッグ操作が後述するハプティックデバイスによって行われる場合、ドラッグ速度は、例えばハプティックデバイスを静止状態(外部からの力が加わっていない初期の状態)から傾けた角度に応じて変化し、最大に傾けた場合に最大速度となる。ハプティックデバイスを傾けることを止めると、後述するように摩擦力などが設定されていれば、ある程度進むと自動的にスクロールが止まる。
【0010】
また、本発明の表示制御装置において、現在表示されている表示倍率での前記経路線の傾き方向を示すベクトルを代表ベクトルとする場合、前記代表ベクトルに対して、前記ユーザの前記ドラッグ操作が所定の第1の操作であるか否かを判断する判断手段と、前記所定の第1の操作であると判断された場合、前記制限スクロールによる表示制御を解除し、前記スクロールを、前記カーソルの移動を前記経路線上以外も可能とさせる自由スクロールに切り替える切替手段とを更に備え、前記判断手段が、前記経路線の表示制御が前記自由スクロールの場合、前記代表ベクトルに対して、前記ユーザの前記ドラッグ操作が所定の第2の操作であるか否かを判断し、前記所定の第2の操作であると判断した場合、前記切替手段は、前記スクロールを、前記自由スクロールから前記制限スクロールに切り替えることは、本発明の好ましい態様である。この構成により、用途に合わせて用いることができる。ここで、経路線の傾き方向とは、所定の基準線(例えば、現在表示されている表示倍率での水平方向を示す線や、ある方位方向(東西方向や南北方向など)を示す線など)に対する傾きを言う。
【0011】
また、本発明の表示制御装置において、前記代表ベクトルを算出する代表ベクトル算出手段を更に備え、前記代表ベクトル算出手段が、現在の前記経路線の表示制御が前記制限スクロールによるものである場合には、前記カーソルからの前記経路線上における所定の範囲内にある地点の座標情報及び前記カーソルのある地点の座標情報と、現在表示されている表示倍率の情報とを取得し、前記各地点における前記経路線を示す微小ベクトルに、前記表示倍率に応じた所定の関数値を掛け合わせて前記代表ベクトルを算出し、現在の前記経路線の表示制御が前記自由スクロールによるものである場合には、前記カーソルから最も近い位置にある前記経路線上の地点を基準点とし、前記基準点からの前記経路線上における所定の範囲内にある地点の座標情報及び前記基準点の座標情報と、現在表示されている表示倍率の情報とを取得し、前記各地点における前記経路線を示す微小ベクトルに、前記表示倍率に応じた所定の関数値を掛け合わせて前記代表ベクトルを算出することは、本発明の好ましい態様である。この構成により、適切なベクトルを算出することができる。
【0012】
また、本発明の表示制御装置において、前記所定の関数値が、窓関数による値及び/又は重み関数による値であることは、本発明の好ましい態様である。この構成により、代表ベクトルの効率的な算出処理を行うことができる。
【0013】
また、本発明の表示制御装置において、前記所定の第1の操作は、前記代表ベクトルに対して略垂直方向の向きにドラッグする操作であり、前記所定の第2の操作は、前記代表ベクトルに対して略平行方向の向きにドラッグする操作であることは、本発明の好ましい態様である。この構成により、制限スクロールと自由スクロールの切り替えを容易に行うことができる。
【0014】
また、本発明の表示制御装置において、前記経路線の表示制御が前記制限スクロールの場合で、前記ドラッグ操作を所定の入力デバイスを用いて行う場合、前記入力デバイスを介した前記ユーザの入力方向と、前記代表ベクトルの方向とが所定の関係にある場合に、前記入力デバイスに対して振動及び/又は反発力を与えるデバイス制御手段を更に備えることは、本発明の好ましい態様である。この構成により、画面を注視しなくても、制限スクロールと自由スクロールの切り替えを容易に行うことができる。
【0015】
また、本発明の表示制御装置において、前記経路線の表示制御が前記制限スクロールで、前記ドラッグ操作を所定の入力デバイスを用いて行う場合であって、現在表示されている表示倍率での前記経路線の傾き方向を示すベクトルを代表ベクトルとする場合、前記投影手段が、前記入力デバイスを介した前記ユーザの入力方向のベクトルと、所定の時間前の前記ユーザの入力方向のベクトルとの差分を取った差分方向ベクトルを前記代表ベクトルに投影させ、前記差分方向ベクトルから投影された投影ベクトルを差し引いたベクトルの成分の値が所定の値より大きい場合に、前記制限スクロールを、前記カーソルの移動を前記経路線上以外にも可能とさせる自由スクロールに切り替える切替手段を更に備えることは、本発明の好ましい態様である。この構成により、ユーザが初期に強くコントローラを倒して急カーブ(上あがりのカーブ)をむかえても、さらに与えられた時間Δt内に相対的にコントローラを強く倒さない限り、経路から脱線しないため、安心してスクロールすることができる。
【0016】
また、本発明の表示制御装置において、前記切替手段は、前記経路線の表示制御が前記自由スクロールの場合であって、前記所定の入力デバイスを介した前記ドラッグ操作による前記カーソルの速度が所定の速度より遅く、かつ前記カーソルと前記ディスプレイ上に表示された前記経路線との距離が所定の距離より短い場合に、前記自由スクロールを前記制限スクロールに切り替えることは、本発明の好ましい態様である。この構成により、自由スクロールのモードから制限スクロールのモードへの切り替えを容易にすることができる。
【0017】
また、本発明の表示制御装置において、前記入力デバイスを介した前記ユーザの入力方向と、前記代表ベクトルの方向とが所定の関係にある場合に、前記入力デバイスに対して振動及び/又は反発力を与えるデバイス制御手段を更に備えることは、本発明の好ましい態様である。この構成により、経路の方向が変わったと誤脱線することなく感じることができる。
【0018】
また、本発明によれば、地図を表示するディスプレイ上での所定の経路を示す経路線を前記ディスプレイに表示し、ユーザによるスクロールのための前記ディスプレイ上でのドラッグ操作に応じて前記経路線を移動させ、前記ディスプレイに表示されていない前記経路線の他の部分を表示させる表示制御方法であって、前記ディスプレイ上でドラッグ操作されたときのドラッグ速度及び前記ドラッグ操作に基づいてドラッグされた方向を検出する検出ステップと、検出された前記方向のベクトルの大きさとして、検出された前記ドラッグ速度に基づいて、前記スクロールが開始された際の前記ディスプレイに表示された地点が前記スクロールにより移動した距離を算出する算出ステップと、前記ディスプレイ上での位置を指し示すカーソルが前記経路線上のみ移動可能とされる制限スクロールの場合、算出された前記距離分に相当する大きさを有する前記検出された方向のベクトルを、前記経路線に平行な方向のベクトルとして投影させる投影ステップと、投影されたベクトルの大きさの分だけ、かつ投影されたベクトルと逆方向に前記経路線を移動させて前記経路線を表示する表示制御ステップとを、有する表示制御方法が提供される。この構成により、辿るべき経路が画面の外にはみ出ず、経路に沿った追跡が正確にできる。
【0019】
また、本発明の表示制御方法において、現在表示されている表示倍率での前記経路線の傾き方向を示すベクトルを代表ベクトルとする場合、前記代表ベクトルに対して、前記ユーザの前記ドラッグ操作が所定の第1の操作であるか否かを判断する判断ステップと、前記所定の第1の操作であると判断された場合、前記制限スクロールによる表示制御を解除し、前記スクロールを、前記カーソルの移動を前記経路線上以外も可能とさせる自由スクロールに切り替える切替ステップとを更に有し、前記経路線の表示制御が前記自由スクロールの場合、前記代表ベクトルに対して、前記ユーザの前記ドラッグ操作が所定の第2の操作であるか否かを判断し、前記所定の第2の操作であると判断した場合、前記スクロールを、前記自由スクロールから前記制限スクロールに切り替えることは、本発明の好ましい態様である。この構成により、用途に合わせて用いることができる。
【0020】
また、本発明の表示制御方法において、前記代表ベクトルを算出する代表ベクトル算出ステップを更に備え、前記代表ベクトル算出ステップで、現在の前記経路線の表示制御が前記制限スクロールによるものである場合には、前記カーソルからの前記経路線上における所定の範囲内にある地点の座標情報及び前記カーソルのある地点の座標情報と、現在表示されている表示倍率の情報とを取得し、前記各地点における前記経路線を示す微小ベクトルに、前記表示倍率に応じた所定の関数値を掛け合わせて前記代表ベクトルを算出し、現在の前記経路線の表示制御が前記自由スクロールによるものである場合には、前記カーソルから最も近い位置にある前記経路線上の地点を基準点とし、前記基準点からの前記経路線上における所定の範囲内にある地点の座標情報及び前記基準点の座標情報と、現在表示されている表示倍率の情報とを取得し、前記各地点における前記経路線を示す微小ベクトルに、前記表示倍率に応じた所定の関数値を掛け合わせて前記代表ベクトルを算出することは、本発明の好ましい態様である。この構成により、適切なベクトルを算出することができる。
【0021】
また、本発明の表示制御方法において、前記所定の関数値が、窓関数による値及び/又は重み関数による値であることは、本発明の好ましい態様である。この構成により、代表ベクトルの効率的な算出処理を行うことができる。
【0022】
また、本発明の表示制御方法において、前記所定の第1の操作は、前記代表ベクトルに対して略垂直方向の向きにドラッグする操作であり、前記所定の第2の操作は、前記代表ベクトルに対して略平行方向の向きにドラッグする操作であることは、本発明の好ましい態様である。この構成により、制限スクロールと自由スクロールの切り替えを容易に行うことができる。
【0023】
また、本発明の表示制御方法において、前記経路線の表示制御が前記制限スクロールの場合で、前記ドラッグ操作を所定の入力デバイスを用いて行う場合、前記入力デバイスを介した前記ユーザの入力方向と、前記代表ベクトルの方向とが所定の関係にある場合に、前記入力デバイスに対して振動及び/又は反発力を与えるデバイス制御ステップを更に有することは、本発明の好ましい態様である。この構成により、画面を注視しなくても、制限スクロールと自由スクロールの切り替えを容易に行うことができる。
【0024】
また、本発明の表示制御方法において、前記経路線の表示制御が前記制限スクロールで、前記ドラッグ操作を所定の入力デバイスを用いて行う場合であって、現在表示されている表示倍率での前記経路線の傾き方向を示すベクトルを代表ベクトルとする場合、前記入力デバイスを介した前記ユーザの入力方向のベクトルと、所定の時間前の前記ユーザの入力方向のベクトルとの差分を取った差分方向ベクトルを前記代表ベクトルに投影させる投影ステップと、前記差分方向ベクトルから投影された投影ベクトルを差し引いたベクトルの成分の値が所定の値より大きい場合に、前記制限スクロールを、前記カーソルの移動を前記経路線上以外にも可能とさせる自由スクロールに切り替える切替ステップを更に有することは、本発明の好ましい態様である。この構成により、ユーザが初期に強くコントローラを倒して急カーブ(上あがりのカーブ)をむかえても、さらに与えられた時間Δt内に相対的にコントローラを強く倒さない限り、経路から脱線しないため、安心してスクロールすることができる。
【0025】
また、本発明の表示制御方法において、前記経路線の表示制御が前記自由スクロールの場合であって、前記所定の入力デバイスを介した前記ドラッグ操作による前記カーソルの速度が所定の速度より遅く、かつ前記カーソルと前記ディスプレイ上に表示された前記経路線との距離が所定の距離より短い場合に、前記自由スクロールを前記制限スクロールに切り替えることは、本発明の好ましい態様である。この構成により、自由スクロールのモードから制限スクロールのモードへの切り替えを容易にすることができる。
【0026】
また、本発明の表示制御方法において、前記入力デバイスを介した前記ユーザの入力方向と、前記代表ベクトルの方向とが所定の関係にある場合に、前記入力デバイスに対して振動及び/又は反発力を与えるデバイス制御ステップを更に有することは、本発明の好ましい態様である。この構成により、経路の方向が変わったと誤脱線することなく感じることができる。
【発明の効果】
【0027】
本発明の表示制御装置及び表示制御方法は、上記構成を有し、辿るべき経路が画面の外にはみ出ず、経路に沿った追跡が正確にできる。すなわち、ユーザは、指のストローク、マウスのドラッグ、コントローラの入力などだけで終始、新たなボタンを押すなどの行為をすることなく様々な操作ができる。すなわち、地図空間や概念空間内を自由にスクロール(自由スクロール)できたり、経路や曲線上のみをスクロールする制限スクロールができたりする。また、それらの切り替え(自由スクロールと制限スクロールとの切り替え)も、曲線がレールのようなものでそこに画面が乗っているという直感的な解釈(感覚)を受け、レールに沿ってなぞったり、レールから外れようと垂直に動いたりして行うことができる。
【0028】
さらに、本発明でいうレールの形状とは、ユーザが任意に決める拡大、縮小値によって異なるため、あくまで「画面に見えている形状」をレールの現在の形状として計算される。また、このレールに沿って走る質感は、ハプティクデバイスなどに応用でき、レールから外れようとする場合は余計なボタンを押すなどの操作もなく、反発力のより大きくかかる方向に向けて入力デバイスに力を入れれば、レールからの解放が達成できるという極めて直感的な方法で行うことができる。
【図面の簡単な説明】
【0029】
【図1a】本発明の第1の実施の形態におけるある地理空間内に経路が描かれている様子を示す図である。
【図1b】本発明の第1の実施の形態におけるタッチパネルなどでドラッグによりユーザの指が移動した分だけ、地理空間内を地図が動いている様子を示す図である。
【図2a】本発明の第1の実施の形態におけるユーザが操作する前の制限スクロールの初期の状態を示す図である。
【図2b】本発明の第1の実施の形態におけるタッチパネル上のある一点をユーザが触れ、画面右上の方向にドラッグしようとしている状態を示す図である。
【図2c】本発明の第1の実施の形態における図2bのドラッグしようとしている右上の方向のベクトルをスクロールレールの方向ベクトルに投影した際のベクトルを示している図である。
【図2d】本発明の第1の実施の形態における図2bの状態から実際に指をドラッグさせた場合の指の新しい地点と、画面がスクロールした状態の様子を示している図である。
【図2e】本発明の第1の実施の形態における指を離した後もスクロールレールの上に沿って動き続ける様子を示す図である。
【図2f】本発明の第1の実施の形態における図2eに引き続き、スクロールレールの向きが変わってもスクロールレールに沿ってスクロールしていく様子を示す図である。
【図3a】本発明の第1の実施の形態におけるスクロールレールを示す図である。
【図3b】本発明の第1の実施の形態における図3aを拡大した図である。
【図3c】本発明の第1の実施の形態における図3aの代表ベクトルを示す図である。
【図3d】本発明の第1の実施の形態における図3bの代表ベクトルを示す図である。
【図4a】本発明の第1の実施の形態における画面に表示されるスクロールレールの線、曲線を示す図である。
【図4b】本発明の第1の実施の形態における線や曲線が実際には線に沿った等間隔の距離に配置された多数の点からなることを示す図である。
【図4c】本発明の第1の実施の形態における図4bの各点が隣同士の座標の差分をとることで、多数の微小ベクトルで表現できることを示す図である。
【図5a】本発明の第1の実施の形態におけるスクロールレール、注目する点、注目する点の周辺を示す図である。
【図5b】本発明の第1の実施の形態におけるスクロールレールに沿った距離に応じて縦に並べられたスクロールレールの微小ベクトル群を示す図である。
【図5c】本発明の第1の実施の形態における微小ベクトルに掛ける窓関数を示す図である。
【図5d】本発明の第1の実施の形態における微小ベクトルに掛ける重み関数を示す図である。
【図5e】本発明の第1の実施の形態における図5aでのスクロールレールの代表ベクトルを示す図である。
【図6a】本発明の第1の実施の形態におけるスクロールレール、注目する点、注目する点の周辺を示す他の図である。
【図6b】本発明の第1の実施の形態におけるスクロールレールに沿った距離に応じて縦に並べられたスクロールレールの微小ベクトル群を示す他の図である。
【図6c】本発明の第1の実施の形態における微小ベクトルに掛ける窓関数を示す他の図である。
【図6d】本発明の第1の実施の形態における微小ベクトルに掛ける重み関数を示す他の図である。
【図6e】本発明の第1の実施の形態における図6aでのスクロールレールの代表ベクトルを示す図である。
【図7】本発明の第1の実施の形態における代表ベクトルを求めるためのフローについて説明するためのフローチャートである。
【図8a】本発明の第1の実施の形態における自由スクロールモードの画面とスクロールレールの状態を示す図である。
【図8b】本発明の第1の実施の形態における自由スクロールにより、注目点がスクロールレール近傍に持ってこられた場合を示す図である。
【図8c】本発明の第1の実施の形態における注目点がさらにスクロールレールに近づいた場合を示す図である。
【図8d】本発明の第1の実施の形態における制限スクロールモードに切り替えるためのジェスチャーについて説明するための図である。
【図8e】本発明の第1の実施の形態における注目点がスクロールレールの上に吸着され、制限スクロールモードに切り替わる様子を示す図である。
【図9】本発明の第1の実施の形態における自由スクロールモードから制限スクロールモードへの切り替えフローを説明するためのフローチャートである。
【図10a】本発明の第1の実施の形態の制限スクロールモードにおける状態を示しており、注目の点がスクロールレール上にある様子を示す図である。
【図10b】本発明の第1の実施の形態におけるタッチパネルなどに指をタッチした様子を示す図である。
【図10c】本発明の第1の実施の形態におけるドラッグしようとする方向ベクトルが、代表ベクトルに投影された成分と、それに垂直な成分とに成分分解をされた様子を示す図である。
【図10d】本発明の第1の実施の形態の図10cの状態から、実際にドラッグを行って代表ベクトルに平行な成分分だけスクロールレールに沿って画面が移動した様子を示す図である。
【図10e】本発明の第1の実施の形態のドラッグが行われたものの、代表ベクトルと垂直な軸に投影されたベクトル成分が強い様子を示す図である。
【図10f】本発明の第1の実施の形態における代表ベクトルと垂直な軸に平行に、正の方向と負の方向に繰り返し、何回か暴れるような動作をする様子を示す図である。
【図10g】本発明の第1の実施の形態におけるスクロールレールから注目の点が解き放たれ、自由スクロールモードに切り替わる様子を示す図である。
【図11】本発明の第1の実施の形態における制限スクロールモードから自由スクロールモードへの切り替えフローを説明するための図である。
【図12a】本発明の第1の実施の形態におけるスクロールレールが枝のように分岐した場合を示す図である。
【図12b】本発明の第1の実施の形態におけるスクロールレールが枝のように分岐した他の場合を示す図である。
【図13a】本発明の第1の実施の形態における入力デバイスの一例のスティック型デバイスを示す図である。
【図13b】本発明の第1の実施の形態における入力デバイスの一例のボタン型デバイスを示す図である。
【図13c】本発明の第1の実施の形態における代表ベクトルが右上がりになっている場合を示す図である。
【図13d】本発明の第1の実施の形態における任意の2次元の方向にユーザが入力した際の反発力Fを示す図である。
【図13e】本発明の第1の実施の形態におけるユーザからの入力を示す図である。
【図14】本発明の第1及び第2の実施の形態に係る表示制御装置の構成の一例を示す図である。
【図15】本発明の第1の実施の形態に係る表示制御装置による処理フローの一例を示すフローチャートである。
【図16a】本発明の第2の実施の形態におけるスティック型のコントローラ(ハプティックコントローラ)を示す図である。
【図16b】本発明の第2の実施の形態におけるスティック型のコントローラを真上から見た図である。
【図17a】本発明の第2の実施の形態における前(前方)に倒れたスティック型のコントローラを示す図である。
【図17b】本発明の第2の実施の形態における前(前方)に倒れたスティック型のコントローラを真上から見た図である。
【図18a】本発明の第2の実施の形態における後ろ(後方)に少し倒れたスティック型のコントローラを示す図である。
【図18b】本発明の第2の実施の形態における後ろ(後方)に少し倒れたスティック型のコントローラを真上から見た図である。
【図19a】本発明の第2の実施の形態における後ろ(後方)に倒れたスティック型のコントローラを示す図である。
【図19b】本発明の第2の実施の形態における後ろ(後方)に倒れたスティック型のコントローラを真上から見た図である。
【図20a】本発明の第2の実施の形態における北を向いた経路の地図を示す図である。
【図20b】本発明の第2の実施の形態における前(前方)に倒れたスティック型のコントローラを示す図である。
【図20c】本発明の第2の実施の形態における前(前方)に倒れたスティック型のコントローラを真上から見た図である。
【図21a】本発明の第2の実施の形態における北東を向いた経路の地図を示す図である。
【図21b】本発明の第2の実施の形態における前(前方)に倒れたスティック型のコントローラを示す図である。
【図21c】本発明の第2の実施の形態における前(前方)に倒れたスティック型のコントローラを真上から見た図である。
【図22a】本発明の第2の実施の形態における北東を向いた経路の地図を示す図である。
【図22b】本発明の第2の実施の形態における右前(右前方)に倒れたスティック型のコントローラを示す図である。
【図22c】本発明の第2の実施の形態における右前(右前方)に倒れたスティック型のコントローラを真上から見た図である。
【図23a】本発明の第2の実施の形態における北東を向いた経路の地図を示す図である。
【図23b】本発明の第2の実施の形態における前(前方)に倒れたスティック型のコントローラを示す図である。
【図23c】本発明の第2の実施の形態における前(前方)に倒れたスティック型のコントローラを真上から見た図である。
【図23d】本発明の第2の実施の形態における前(前方)に倒れたスティック型のコントローラのt秒前との差を示す図である。
【図23e】本発明の第2の実施の形態における前(前方)に倒れたスティック型のコントローラのt秒前との差を真上から見た図である。
【図23f】本発明の第2の実施の形態における前(前方)に倒れたスティック型のコントローラのt秒前との差を真上から見た図である。
【図24】本発明の第2の実施の形態における斥力を計算するためのフローの一例を示すフローチャートである。
【図25a】本発明の第2の実施の形態における急激に曲がる経路の一例を示した図である。
【図25b】本発明の第2の実施の形態における急激に曲がる経路の他の一例を示した図である。
【図26a】本発明の第2の実施の形態における急激に曲がる経路で、ユーザが経路に沿って進もうとしている一例を示した図である。
【図26b】本発明の第2の実施の形態における急激に曲がる経路で、ユーザが経路から外れようとしている一例を示した図である。
【図27】本発明の第2の実施の形態における制限スクロールから自由スクロールへの切り替えの判断をする部分のフローの一例を示すフローチャートである。
【図28】本発明の第2の実施の形態における制限スクロールから自由スクロールへの切り替えのための全体フローの一例を示すフローチャートである。
【図29a】本発明の第2の実施の形態における自由スクロールでカーソルが経路に近づいた状態を示す図である。
【図29b】本発明の第2の実施の形態における自由スクロールでカーソルが経路に近づいた状態と経路上の経路点を示す図である。
【図30】本発明の第2の実施の形態における自由スクロールから制限スクロールへの切り替えのための全体フローの一例を示すフローチャートである。
【発明を実施するための形態】
【0030】
<第1の実施の形態>
以下、本発明の第1の実施の形態について述べる。ここで、本発明で用いられる言葉の定義を行う。経路や概念を示した線、線分、曲線を「スクロールレール」と呼ぶ。本発明では、地理空間、概念空間などの2次元及び3次元空間内を、タッチパネル、マウス、コントローラなどのデバイスを介したユーザの入力により移動できる。空間内を自由に移動できる場合を「自由スクロール」、前述のスクロールレール上のみに制限された形で移動できる場合を「制限スクロール」と呼ぶ。
【0031】
図1aは、ある地理空間内に経路が描かれている様子を示す。画面の中心にカーソルが描画されている。図1bは、タッチパネルなどでドラッグによりユーザの指が移動した分だけ、地理空間内を地図が動いている様子を示す。ユーザは、地理空間に描画されているスクロールレールとは無関係に自由にスクロールできるため、この場合、自由スクロールモード(単に、自由スクロールとも言う)となる。スクロールには既存技術の弾くという操作が使われる。
【0032】
現在位置がスクロールするというのは、弾く前のドラッグしている間に一定時間ごとにドラッグによるスクロール速度(ドラッグ速度とも言う)をサンプリングしておき、指がタッチパネルから離れる直前でのドラッグによるスクロール速度をもって、そのままスクロールし続けることである。その後は、摩擦力などを設定しておき、ある程度進むと自動的にスクロールが止まるようにも設定できる。
【0033】
本発明が提案するもう1つのモードの制限スクロールについて図2a〜図2fを用いて説明する。図2a〜図2fでは、画面の中心のカーソルが地理空間に描かれた経路上にある。タッチパネルなどでドラッグにより指が移動したベクトルが、画面中心のカーソルのある経路上の点からの経路方向のベクトルへの投影された成分だけ移動することになる。図2aはユーザが操作する前の制限スクロールの初期の状態を示す。画面の中心はスクロールレールの上にある。
【0034】
図2bは、タッチパネル上のある一点をユーザが触れ、画面右上の方向にドラッグしようとしている状態を示す。図2cは、図2bのドラッグしようとしている右上の方向のベクトルをスクロールレールの方向ベクトルに投影した際のベクトルを示している。図2dは、図2bの状態から実際に指をドラッグさせた場合の指の新しい地点と、画面がスクロールした状態の様子を示している。これにより、ドラッグによるベクトルをスクロールレールに投影したベクトルの分だけ、逆方向に移動していることがわかる。
【0035】
図2eは、指を離した後もスクロールレールの上に沿って動き続ける様子を示す。図2fは、図2eに引き続き、スクロールレールの向きが変わってもスクロールレールに沿ってスクロールしていく様子を示す。以上により、単純に自由スクロール、制限スクロールでのそれぞれの動きについて述べた。
【0036】
次に、自由スクロールから制限スクロールへの切り替え、制限スクロールから自由スクロールへの切り替えについて説明する。そのために、まず、本発明で定義する「代表ベクトル」について説明する。スクロールレール上のある一点を中心に、拡大、縮小(拡大縮小値)によりスクロールレールを画面の範囲で見た場合のスクロールレールのベクトルを代表ベクトルと言う。
【0037】
代表ベクトルの一例を図3aと図3cの場合と、図3bと図3dの場合の2つの例を用いて説明する。まず、図3aと図3cの場合について説明する。図3cでは、具体的に画面の中心点がスクロールレールの上に置かれている。画面の中心周辺のスクロールレールは右上がりのため、代表ベクトルも右上がりとなる。一方、図3bと図3dの場合は、図3aと図3cの場合と全く同じスクロールレールであり、その中心点も、図3cと図3dでは全く同じものとなる。唯一違うのは、図3dが図3cを拡大したものであることで(拡大縮小値)、その関係が図3aと図3bに示されている。そのため、代表ベクトルは、図3bと図3dの場合、画面の中心あたりのスクロールレールが右下がりのため、代表ベクトルも右下がりとなる。
【0038】
このように、代表ベクトルは、与えられたスクロールリスト、着目している位置、拡大縮小値に依存する。実際にどのように代表ベクトルが計算されるべきかについて細かく説明する。図4a〜図4cは、経路や概念線を示すスクロールレールがどのように数学的に表されるかについて示す。図4aは、画面に表示されるスクロールレールの線、曲線を示す。図4bは、それらの線や曲線が、実際には線に沿った等間隔の距離に配置された多数の点からなることを示す。それぞれの点が、2次元の場合、3次元の場合に応じて座標を持つ。
【0039】
なお、実際に線をデータとして格納する場合、線の折れた部分のみの座標をデータとして持つのが主流であるが、ここでは、これらの点が等間隔の距離で配置されたデータで生成されたとして説明する。図4cは、図4bの各点が隣同士の座標の差分をとることで、多数の微小ベクトルで表現できることを示す。図4a〜図4cで述べた、多数の微小ベクトルで表現されるスクロールリストが、どのように代表ベクトルとして計算されるかについて図5a〜図5e、図6a〜図6e、図7を用いて説明する。
【0040】
図5a〜図5eでは図3aと図3cの場合について説明し、図6a〜図6eでは図3bと図3dの場合について説明する。まず、図5a〜図5eについて説明する。図5aは、スクロールレール、注目する点(以下、注目点とも言う)、注目する点の周辺を示す。図5bは、スクロールレールに沿った距離に応じて縦に並べられたスクロールレールの微小ベクトル群を示す。図5cは、微小ベクトルに掛ける窓関数を示す。図5dは、微小ベクトルに掛ける重み関数を示す。図5eは、図5aでのスクロールレールの代表ベクトルを示す。
【0041】
図5aではスクロールレールが描かれ、この場合は画面の中心である注目する点がスクロールレール上に存在する。スクロールレール上において、注目する点からスクロールレールに沿った距離に応じて、多数の微小ベクトルを縦に模式的に並べて図5bに表示されている。図5b、図5c、図5dにおいて、縦軸は、注目する点からスクロールレールに沿った符号をもった距離を意味する。スクロールレールが1つの曲線であり、その曲線上のある注目する点から、曲線に沿ってある方向に遠ざかっていくものを正の距離として縦軸の正の方向に、また前述と逆方向に遠ざかっていくものを負の距離として縦軸の負の方向に配置している。縦軸の「0」の部分が注目する点そのものとなる。それぞれの点に応じて模式的に、図5aで表示されるスクロールレール上に存在する多数の微小ベクトルを図5bに描画している。
【0042】
代表ベクトルとは、スクロールレール上の注目する点を中心として、拡大縮小値に対応して画面内で表示される範囲内での、スクロールレール全体の方向を代表して表現するものであるため、注目する点とある領域内のみの微小ベクトルを考慮したい。そのため、離れた位置にある微小ベクトルは考慮に入れないため、図5cに示したような窓関数で遠くに存在するものを削除することができる。つまり、図5bに示す各微小ベクトルに窓関数などを掛けることで、それぞれの微小ベクトルを加工できる。窓関数は信号処理に使われる一般的な関数であり、窓関数Wi(x)は、x=0周辺では1を返し、x=0から正方向や負の方向に離れた位置では0を返す。なお、窓関数を数式(1)に示す。widthは窓の幅となる。
【0043】
【数1】
【0044】
窓関数の中心x=0は、図5aのスクロールレール上の注目する点、たいてい画面の中心位置となる。窓関数の幅widthは、図5aにおける空間でユーザが決める拡大縮小値に依存する。図5cと後述の図6cは同じ窓関数であるが、幅widthは図5cのほうが大きい。それは、図5a〜図5eが図3aのスクロールレールに対応し、図6a〜図6eが図3aを拡大した図3bのスクロールレールに対応しているからである。つまり、ユーザがスクロールレールを拡大すれば、拡大されたスクロールレールの小さな部分を見ているためwidthは小さくなり、縮小すればスクロールレールの大きな範囲を見ているためwidthが大きくなる。widthが大きくなると、図4cで示したような微小ベクトルの数が膨大に増えるため、ある周期によるサンプリングされた微小ベクトルのみを考慮に入れるなどの計算方法が可能である。
【0045】
さらに、注目する点の近傍のスクロールレール上のベクトルにウエイト(重み)を置きたい場合は、図5dに示すように、注目する点で最大の値1を返し、遠ざかるほど0に近くなる重み関数We(x)をスクロールレール上の微小ベクトルに掛けて重みを変更することができる。重み関数Weは必要に応じて任意の関数を使うことができるが、ここでは例としてガウス関数を用い、それを数式(2)に示す。
【0046】
【数2】
【0047】
ここで、cは定数で、ガウス関数の幅と関連する。cの値は重みをどれだけ広げるかに依存する。これらの処理を隔てて、加工されたスクロールレール上の多数の微小ベクトルをすべて足し合わせたベクトルが図5eに示すような代表ベクトルとなる。
【0048】
図6a〜図6eも、図5a〜図5eと全く同様の方法で代表ベクトルを計算する。図6aは、スクロールレール、注目する点、注目する点の周辺を示す。図6bは、スクロールレールに沿った距離に応じて縦に並べられたスクロールレールの微小ベクトル群を示す。図6cは微小ベクトルに掛ける窓関数を示す。図6dは微小ベクトルに掛ける重み関数を示す。図6eは、図6aでのスクロールレールの代表ベクトルを示す。
【0049】
図5a〜図5eと図6a〜図6eでは、代表ベクトルを求めるためのスクロールレール上の位置が同じにもかかわらず、拡大縮小値が異なるため、全く異なる代表ベクトルが得られる。これは、代表ベクトルというものが、ユーザが「画面に見える」スクロールレールの形状として定義されているため、画面の拡大縮小を行えば、見えるおおまかな形状も異なるので代表ベクトルも異なるのは当然となる。このユーザインターフェースの発想に立ったスクロールレールの「見かけの形状」を算出するところに本発明の特徴がある。
【0050】
この代表ベクトルを求めるための手順について図7を用いて説明する。代表ベクトルを決定するのに必要な現在のスクロールレール上の座標と拡大縮小値を取得する(ステップS701)。代表ベクトルを決定するのに使うスクロールレール上の座標を窓関数の中心位置にもっていき、与えられた拡大縮小値によって窓関数の幅widthを変え、スクロールレールを構成する各微小ベクトルに窓関数を掛ける(ステップS702)。代表ベクトルを決定するのに使うスクロールレール上の座標を重み関数の中心位置にもっていき、与えられた拡大縮小値によって重み関数の幅widthを変え、スクロールレールを構成する各微小ベクトルに重み関数を掛ける(ステップS703)。これらの処理を施した各微小ベクトルを足し合わせて代表ベクトルを算出する(ステップS704)。代表ベクトルの算出の仕方を数式(3)に示す。数式(3)で、スクロールレール上のある地点xにおける微小ベクトルをV微小ベクトル(x)とした。
【0051】
【数3】
【0052】
分母は、微小ベクトルの長さであり、規格化を行っている。以上で、スクロールレールの代表ベクトルについて説明した。
【0053】
次に、自由スクロールから制限スクロールに切り替える方法について図8a〜図8e、図9を用いて説明する。図8aは、自由スクロールモードの画面とスクロールレールの状態を示す。自由スクロールモードのため、とりわけ注目点(注目する点)である画面の中心点がスクロールレール上にない。図8bは、自由スクロールにより、注目点がスクロールレール近傍に持ってこられた場合を示す。注目点と最も近いスクロールレール上の点を見つけ、その点から注目点までの距離をスクロールレールとの距離dと定義する。
【0054】
図8cは、さらに注目点がスクロールレールに近づいた場合を示す。ここで、注目点に最も近いスクロールレール上の点(最も近い点)と現在の拡大縮小値とから、スクロールレールの代表ベクトルが求まる。図8dに示すように、図8cで求まった代表ベクトルにほぼ平行に画面をドラッグさせることで、あたかも注目点をスクロールレール上に引っ掛けるようなスクロール制限モードに切り替えるためのジェスチャーを行う。図8eに示すように、代表ベクトルに平行な方向へのドラッグによるジェスチャーがうまくいけば、注目点がスクロールレールの上に吸着され、スクロールレール上に乗っかり制限スクロールモード(単に、制限スクロールとも言う)に切り替わる。
【0055】
図8a〜図8eで説明した内容、すなわちどのように自由スクロールモードから制限スクロールモードに変わるかについて図9を用いて説明する。まず、ユーザから、タッチパネルやコントローラなどで座標の移動(新しい位置への移動)や拡大縮小値の変更リクエストを受け付ける(ステップS901)。画面の中心点、もしくは任意に決められた画面内の注目点が、スクロールレールに近いか(所定の距離であるか)どうかを判断する(ステップS902)。近いかどうかの判断は、注目点に最も近いスクロールレール上の点を探し、その点と注目点との距離が事前に決められた所定の閾値を超えたかどうかで行う。
【0056】
ステップS902で、スクロールレールが、画面内の注目点から所定の閾値より遠いと判断された場合は、そのまま自由スクロールモードとして、リクエストされた新しい地点へ移動し、新しい拡大縮小値で描画を行う(ステップS907)。ステップS902で、スクロールレールから画面内の注目点までの距離が所定の閾値より小さい場合、ユーザが注目点をスクロールレール上に持っていき、制限スクロールモードに切り替えようとしている可能性がある。そのため、まず、先ほど求めた、注目点から一番近いスクロールレール上の点を仮のスクロールレール上の注目点として用いる。
【0057】
すなわち、注目点に最も近いスクロールレール上の点の座標を現在地とし、現時点での拡大縮小値を使って新たに代表ベクトルを計算する(ステップS903)。代表ベクトルの求め方は図5a〜図5e、図6a〜図6eを用いて説明した。代表ベクトルと、ユーザの入力によるドラッグ方向のベクトルとの類似を調べる(ステップS904)。具体的には、代表ベクトルに投影したユーザの入力によるドラッグ方向のベクトルの成分を求める。このベクトルの絶対値が大きいほど、スクロールレールの方向を意味する代表ベクトルと平行に近いことを意味する。
【0058】
ステップS904で求めた投影されたベクトルの長さ、つまり絶対値が事前に決められた所定の値より大きいか否かを判断し(ステップS905)、大きいとき、ユーザがスクロールレールの方向とある程度同じ方向にドラッグしていると判断できる。ステップS902のスクロールレールから近い距離に画面内の注目点があることも考慮して、最終的にユーザが画面内の注目点をスクロールレールの近くまで持っていき、スクロールレールに平行に近い方向でドラッグさせていると判断できる。これは「制限スクロール」モードへの切り替えへのジェスチャーによるリクエストと判断して「制限スクロール」モードに切り替える(ステップS906)。具体的には、画面の注目点をスクロールレール上に吸着していくアニメーションなどを再生する。
【0059】
次に、制限スクロールから自由スクロールに切り替える方法について図10a〜図10g、図11を用いて説明する。図10aは、制限スクロールモードにおける状態を示しており、注目の点がスクロールレール上にある。現在の拡大縮小値とスクロールレール上の注目の点の座標とから代表ベクトルが計算されている。図10bは、タッチパネルなどに指をタッチした様子を示す。図10cは、指でドラッグしようとしており、そのドラッグしようとする方向ベクトルが、代表ベクトルに投影された成分と、それに垂直な成分とに成分分解をされた様子を示す。
【0060】
図10dは、図10cの状態から、実際にドラッグを行って代表ベクトルに平行な成分分だけスクロールレールに沿って画面が移動した様子を示す。図10eは、図10dと同様にドラッグが行われたものの、代表ベクトルと垂直な軸に投影されたベクトル成分が強い様子を示す。事前に決められたベクトルの強さの閾値より大きい場合は、ユーザがスクロールレールから外れようという動きをしていると判断し、図10gに示すようなスクロールレールから注目の点が解き放たれ(解除され)、自由スクロールモードに切り替わる。さらなる工夫としては、切り替わりが、簡単に行われないようにするために、図10fに示すように、代表ベクトルと垂直な軸に平行に、正の方向と負の方向に繰り返し、何回か暴れるような動作をすると、自由スクロールに切り替わるようにするなどの条件を加えることも可能である。
【0061】
図10a〜図10gで述べたような処理、すなわち制限スクロールから自由スクロールにいかに切り替わるかについて図11を用いて説明する。ユーザから、タッチパネルやコントローラなどで座標の移動や拡大縮小値の変更リクエストを受け付ける(ステップS1101)。リクエストのあった座標、拡大縮小値から、代表ベクトルを計算する(ステップS1102)。ユーザからの入力によるベクトルを、代表ベクトルと平行な軸への投影ベクトルと、それに垂直な軸への投影ベクトルとに分ける。なお、それぞれのベクトルを「スクロールベクトル」、「ゆがみベクトル」と呼ぶ。
【0062】
ユーザがタッチパネルに触れたままである、或いは、コントローラを傾けたままであるなど操作入力中であるか否かを判断し(ステップS1103)、操作入力中である場合は、ユーザは制限スクロールから逃れようと入力を続けている可能性があるため、ステップS1104に移行する。逆に、ユーザがコントローラデバイスから手を離した場合は、ユーザは自由スクロールへ逃れようとしていないと判断し、ステップS1106に移行し、「スクロールベクトル」の強さの分だけ、スクロールレールに沿った制限されたスクロールで画面を移動させる。
【0063】
ステップS1104では、「ゆがみベクトル」が事前に決められた一定の値より大きいか否かを判断し(ステップS1104)、大きいと判断した場合、ステップS1105に移行し、制限スクロールから自由スクロールに切り替えられる。一方、「ゆがみベクトル」が一定の値より小さい場合は、ステップS1106へ移行する。
【0064】
更なる工夫として、ステップS1104でのゆがみが大きくて、スクロールレールから離れ、自由スクロールに変わる新たな条件として「ゆがみベクトル」の強さを設定することができる。すなわち、絶対値が閾値より大きく、かつ正の方向と負の方向が切り替わってユーザの入力が行われるなどと設定することができる。これは、図10fで述べた、代表ベクトルと垂直の方向に正方向、負の方向に暴れて揺らすというジェスチャーが行われてはじめて自由スクロールに切り替われるという設定をしたことになる。このような設定すれば、スクロールレールから安易に注目の点が外れてしまうという誤動作をおきにくくすることが可能である。
【0065】
本発明では、図12a、図12bに示すような、スクロールレールが枝のように分岐した場合でも使える。代表ベクトルは、現在地周辺の分岐したすべての微小ベクトルの計算がされ、図12bのように不幸にして分岐点に注目の点がある場合は、スクロールモードの切り替えを行わせないなどの条件を課せばよい。
【0066】
次に、本発明に適用されるハプティック操作デバイス(以下、ハプティックデバイス、デバイスとも言う)について説明する。ハプティックデバイスでは、ユーザの入力に対し、任意の方向に斥力、反発力、振動を発生させることができる。デバイスの例としては、図13aに示すようなスティック型デバイス、図13bに示すようなボタン型デバイスがある。本発明では、デバイスの形状は問わず、スクロールできる空間が2次元の場合は2次元の任意の方向への入力ができ、3次元の場合は3次元の任意の方向への入力ができ、何らかの入力に対する反発力、振動をもたらすハプティックデバイスを考える。
【0067】
仮に、図13cに示すように、代表ベクトルが右上がりになっている場合を考える。図13dは、代表ベクトルが右上がりの場合に、ユーザが任意の2次元の方向に入力した際の反発力Fを示す。図13eでは、コントロールデバイスに移動しようとユーザから入力がなされた場合を考える。入力の力ベクトルが、原点からx軸に対し、αの角度の方向のベクトルになされたとする。ここでは、力の強さは規格化され1とする。また、その時の規格化された代表ベクトルを(Cosθ、Sinθ)とすると、ユーザの入力ベクトルに対する反発力ベクトルFは数式(4)で表される。
【0068】
【数4】
【0069】
当然、代表ベクトルの方向角度θが、入力する力の方向角度αと同じであれば、数式(4)での反発力Fは0となる。これは、代表ベクトルと平行に近い方向に入力すればするほど反発力Fは0であり、逆に代表ベクトルに垂直な方向に入力すればするほど反発力Fは、入力しようとする方向と逆方向に斥力として大きくなる。これにより、ユーザは、画面を注視しなくても、反発力の少ない方向にスティックなどの入力デバイスを持っていけば、制限スクロールモードで、経路などのスクロールレールに沿って移動できる。
【0070】
また、自由スクロールモードに切り替えたい場合は、あえて反発力のある方向にスティックなどで力を入れれば、それが代表ベクトルと垂直に近い方向であるから、スクロールレールから外れ、自由スクロールモードに切り替えることができる。反発力ではなく、振動によるハプティックデバイスの場合は、数式(4)の絶対値をとり、その値の強さに応じて振動させるようにしてもよい。
【0071】
さらに、本発明を使った応用例として、制限スクロールから自由スクロールへの切り替えによって、制限スクロールでの機能を停止させたり再生させたりもできる。具体的には、例えば、制限スクロールモードになると、スクロールレールに沿って画面上の地図などが移動するアニメーション移動を自動的に開始させる自動スクロール機能があるとする。とりわけ、上述したハプティクデバイスの場合は、デバイスが勝手に動き、スクロールレールに沿って画面が自動的に移動(スクロール)し始める機能である。この自動スクロール機能を一時的に止めるには、ユーザはデバイスが勝手に動かないよう握り、また自動スクロール機能を停止させるには、自動的にスクロールしようとする代表べクトルの方向に対して垂直な方向にタッチパネルの指を移動(ドラッグ)させる、もしくはデバイスに反発力を感じながら移動させることでスクロールレールから離れ、制限スクロールから自由スクロールのモードになり、自動スクロール機能が停止する。
【0072】
ここで、本発明の実施の形態に係る表示制御装置の構成の一例について図14を用いて説明する。図14に示すように、表示制御装置1400は、検出手段1401、算出手段1402、投影手段1403、表示制御手段1404、判断手段1405、切替手段1406、代表ベクトル算出手段1407、デバイス制御手段1408から構成されている。検出手段1401は、ディスプレイ上でドラッグ操作されたときのドラッグ速度及びドラッグ操作に基づいてドラッグされた方向を検出する。このドラッグ速度は、上述したように、ドラッグして弾く際、弾く前にドラッグしている間に一定時間ごとにドラッグによるドラッグ速度をサンプリングしておき、指がタッチパネルから離れる直前でのドラッグによる速度をドラッグ速度とする。
【0073】
算出手段1402は、検出された方向のベクトルの大きさとして、検出されたドラッグ速度に基づいて、スクロールが開始された際のディスプレイに表示された地点がスクロールにより移動した距離を算出する。具体的には、図2cに示すドラッグ方向を示すベクトルの大きさを算出する。投影手段1403は、ディスプレイ上での位置を指し示すカーソルが経路線上のみ移動可能とされる制限スクロールの場合、算出された距離分に相当する大きさを有する検出された方向のベクトルを、経路線に平行な方向のベクトルとして投影させる。
【0074】
表示制御手段1404は、投影されたベクトルの大きさの分だけ、かつ投影されたベクトルと逆方向に経路線を移動させて経路線を表示する。判断手段1405は、代表ベクトルに対して、ユーザのドラッグ操作が所定の第1の操作であるか否かを判断する。なお、所定の第1の操作は、代表ベクトルに対して略垂直方向の向きにドラッグする操作である。切替手段1406は、所定の第1の操作であると判断された場合、制限スクロールによる表示制御を解除し、ユーザのスクロールを自由スクロールに切り替える。
【0075】
代表ベクトル算出手段1407は、制限スクロールによるものである場合には、カーソルからの経路線上における所定の範囲内にある地点の座標情報及びカーソルのある地点の座標情報と、現在表示されている表示倍率の情報とを取得し、各地点における経路線を示す微小ベクトルに、表示倍率に応じた所定の関数値を掛け合わせて代表ベクトルを算出し、自由スクロールによるものである場合には、カーソルから最も近い位置にある経路線上の地点を基準点とし、基準点からの経路線上における所定の範囲内にある地点の座標情報及び基準点の座標情報と、現在表示されている表示倍率の情報とを取得し、各地点における経路線を示す微小ベクトルに、表示倍率に応じた所定の関数値を掛け合わせて代表ベクトルを算出する。
【0076】
デバイス制御手段1408は、制限スクロールの場合で、ドラッグ操作を所定の入力デバイス(図13に示すようなデバイスなど)を用いて行う場合、入力デバイスを介したユーザの入力方向と、代表ベクトルの方向とが所定の関係にある場合に、入力デバイスに対して振動及び/又は反発力を与える。
【0077】
次に、本発明の実施の形態に係る表示制御装置による処理フローの一例について図15を用いて説明する。図15に示すように、検出手段1401は、ディスプレイ上でドラッグ操作されたときのドラッグ速度及びドラッグ操作に基づいてドラッグされた方向を検出する(ステップS1501)。算出手段1402は、検出された方向のベクトルの大きさとして、検出されたドラッグ速度に基づいて、スクロールが開始された際のディスプレイに表示された地点がスクロールにより移動した距離を算出する(ステップS1502)。
【0078】
投影手段1403は、ディスプレイ上での位置を指し示すカーソルが経路線上のみ移動可能とされる制限スクロールの場合、算出された距離分に相当する大きさを有する検出された方向のベクトルを、経路線に平行な方向のベクトルとして投影させる(ステップS1503)。表示制御手段1404は、投影されたベクトルの大きさの分だけ、かつ投影されたベクトルと逆方向に経路線を移動させて経路線を表示する(ステップS1504)。なお、表示制御装置による制限スクロールと自由スクロールとの間の切り替えの処理フロー、代表ベクトルの生成フローなどについては上述しているため省略する。
【0079】
<第2の実施の形態>
第2の実施の形態では、第1の実施の形態における制限スクロールモードから自由スクロールモードへの切り替わり、すなわちスクロールレールから脱線すべきか否かの判定方法を発展させた判定方法と、第1の実施の形態より簡潔な自由スクロールモードから制限スクロールモードへの切り替わりの判定方法について説明する。
【0080】
まず、制限スクロールモードから自由スクロールモードへの切り替わりについて述べる。第2の実施の形態では、脱線判定の際に地図をスクロールする方向ベクトルそのものではなく、方向ベクトルの時間差分のベクトルを用いる。これにより、第2の実施の形態では、第1の実施の形態でカバーできなかったケース、すなわち経路の形状が大きく曲がっている際、曲がりきれずに誤ってスクロールレールから脱線して、ユーザの意図に反して自由スクロールになってしまうケースを防止する効果を狙う。
【0081】
第2の実施の形態の詳細を述べるにあたって、定義されるベクトルについて図16aから図19bを用いて説明する。まず、図16a、図16b、図17a、図17b、図18a、図18b、図19a、図19bでは、地図上でコントローラを操作する場合のコントローラの「方向ベクトル」の定義について述べる。図16aは、コントローラがゼロの位置にある状態を示す。ゼロの位置とは、コントローラに対して何らユーザから力が加わっていない状態でのコントローラの位置(初期位置)のことを言う。
【0082】
図16aにはコントローラの外観が示され、図16bには図16aのコントローラを真上から見たものが示され、コントローラの可動範囲が正方形で示され、コントローラの先(先端)を真上から投影した様子(黒丸がコントローラの先を投影したもの)が示されている。この場合、コントローラには力が加わっていないので可動範囲の中心(真ん中)で静止している状態である。図17a、図17bには、図16bのゼロの位置からユーザが力を加えてコントローラを前(前方)に倒した状態が示されている。図17aにはコントローラが傾いている様子が示され、図17bにはコントローラの先の位置が前に移動している様子が示されている。
【0083】
図18a、図18bには、図17a、図17bとは逆の方向にコントローラが倒された様子が示され、図18aには図17aとは逆にコントローラが少し傾く様子が示され、図18bには可動範囲内でコントローラの先の投影が逆の方向に移動している様子が示されている。図19a、図19bには、図18a、図18bと同じ方向にコントローラが倒されているが、図18a、図18bよりさらにコントローラが倒された様子が示されている。
【0084】
ここで、第2の実施の形態では、ゼロの位置からどれだけコントローラを移動させたかを表す指標を「差分方向ベクトル」と呼び、以下の数式のように定義する。コントローラの方向ベクトルをX(x、y)とし、時間Δt以前でのコントローラの方向ベクトルをXΔt前(xΔt前、yΔt前 )とすると、差分方向ベクトルは数式5のように定義され、条件式は数式6から数式9のように定義される。
【0085】
数式5:D(X、XΔt前)=(x−xΔt前、y−yΔt前 )
数式6:if(x≧0≧xΔt前) OR(x≦0≦xΔt前 ) xΔt前=0、
数式7:if(xΔt前≧x≧0)OR(0≧x≧xΔt前 ) x=0、xΔt前=0、
数式8:if(y≧0≧yΔt前 )OR(y≦0≦yΔt前 ) yΔt前=0
数式9:if(yΔt前≧y≧0)OR(0≧y≧yΔt前 ) y=0、yΔt前=0
【0086】
差分方向ベクトルの直感的解釈は、コントローラを前述のゼロの位置(中心)からどれだけ“外側”に移動させたかx成分とy成分で調べた量となる。したがって、コントローラを正方形の可動範囲領域の外側から中心に戻しただけの場合は0(ゼロ)となり、中心に戻してさらに進めた場合は、中心からさらに進めた分だけのベクトルが加算されたものとなる。これを、具体的に図16a、図16b、図17a、図17b、図18a、図18b、図19a、図19bを用いて説明する。
【0087】
コントローラがゼロの位置である図16a、図16bの状態から前に倒れた図17a、図17bの状態へ変わった場合、差分方向ベクトルは図17bの方向ベクトルの値そのものとなる。図17a、図17bのようにコントローラが前に倒された状態から図18a、図18bのように後ろに倒された状態へ移った場合は、コントローラのゼロの位置からの移動量は、図17aに示すコントローラの位置から加算されるのではなく、中心の位置からの分のみが加算されるので、図18bに示す方向ベクトルそのものが差分方向ベクトルとなる。図18a、図18bに示す状態から図19a、図19bに示す状態にコントローラが移動した場合、差分方向ベクトルは図19bに示す方向ベクトルから図18bの方向ベクトルを引いた値となる。
【0088】
次に、第1の実施の形態で説明したハプティックコントローラ(上記ハプティックデバイスに相当し、単にコントローラとも言う)に加わる斥力(上記反発力とも言う)の発生について図20a〜c、図21a〜c、図22a〜cを用いて説明する。第1の実施の形態で説明したように、代表ベクトルは、図20aに示されるような地図上の経路の形状にしたがって計算される。なお、第2の実施の形態における代表ベクトルの算出方法については、第1の実施の形態におけるものと同一であるため説明を省略する。図20bのように、コントローラを経路に沿って(代表ベクトルに沿って)平行に倒せば何ら斥力を受けることなく、地図が経路に沿ってスクロールされる。そのときのコントローラを真上から見た様子が図20cに示されている。
【0089】
図21aでは経路が右側に傾いているため、図21bのようにコントローラをそのまま前に倒すと右方向に斥力を感じるようになる。その様子が図21cに示されている。図22aは図21aと同一で経路が右に傾いており、図22bに示されるように経路に平行にコントローラを右に傾けて前に倒すと図22cのように斥力を受けることなく、経路の代表ベクトルに沿って地図をスクロールさせることができる。
【0090】
図23a〜fでは、図20a〜cの例をもとに斥力の計算方法について述べる。図23aは、図21aや図22aと同様に代表ベクトルが右上がりである。図23bでは、コントローラが前に倒され、方向ベクトルが前を向いている様子が示されている。図23cでは、コントロールの位置を表す方向ベクトルと経路の形状を表す代表ベクトルの向きを調べ、方向ベクトルを代表ベクトルと平行な成分と垂直な成分に分け、それぞれを「スクロールベクトル」、「ゆがみベクトル」と定義している様子が示されている。
【0091】
ゆがみベクトルは経路の方向に反してコントローラを動かそうとしているベクトルを意味し、そのベクトルの長さが、事前に決められたある一定の値よりも大きい場合には、ゆがみベクトルと逆の方向の斥力をハプティックコントローラに与える。これにより、経路から外れた方向にコントローラを移動させようとすると経路の両側に設置された壁にぶつかったような感覚を、触覚を通してユーザに与えることができる。この代表ベクトルと方向ベクトルから、ゆがみベクトルを計算して斥力を与える流れは第1の実施の形態で述べてあり、図24にも示されている。
【0092】
図23d、図23eは、第2の実施の形態で新しく導入する「差分方向ベクトル」と「差分ゆがみベクトル」の定義について説明するためのものである。これらは、後述するように、スクロールレールから脱線させるか、とどまらせるかの切り替え判定(「制限スクロール」→「自由スクロール」の切り替え判定)に用いられる値となる。図23d、図23e、図23fには、それぞれコントローラが2つずつ描画されている。それらは、ある瞬間のコントローラの状態と、それよりもΔt秒前のコントローラの状態とを示している。
【0093】
図23fは図23eの様子を拡大したものである。それぞれの場合のコントローラの位置をX、XΔt前とする。差分方向ベクトルは、コントローラの先端を真上から投影した位置Xと、Δt時間前の位置XΔt前との差として前述の数式5で定義される。さらに、差分ゆがみベクトルを求めるため、前述の数式5の差分方向ベクトルの代表ベクトルPへの投影を考え、代表ベクトルに平行な成分のベクトルSは数式10のように表される。
【0094】
数式10:S=(D(X、XΔt前)・P)×P
ここで、代表ベクトルPは規格化されており、「・」はベクトルの内積を意味する。差分ゆがみベクトルは、投影されたベクトルの垂直成分なので数式11のように表される。
数式11:D(X、XΔt前 )−S
なお、差分ゆがみベクトルを求めるにあたって、上記では数式5のように最初にコントローラの位置の差をとって代表ベクトルに投影したが、2つのコントローラの位置を先に投影させてゆがみベクトルを求め、それぞれのゆがみベクトルを求めてから差分をとっても数式11と数学的には同じである。
【0095】
ここで、上記定義事項を踏まえて第2の実施の形態について説明する。図25a、図25bには、スクロールレール(経路)の形状が急激に変わる急カーブや折れ線のような経路の一例が示されている。このような経路において、ユーザがタッチパネルによるドラッグやコントローラで経路に沿って地図をスクロールしている場合に、突然の経路の形状(経路の方向)の変化に気づかず、同じ方向に沿って地図をスクロールさせて、ユーザの意図に反してそのまま経路から脱線(離脱)してしまう場合がある。
【0096】
経路の形状が突然変わった場合、当然、前述のような方法で斥力も突然発生するが、ユーザがそれ以前のスクロールでコントローラに力を入れすぎていた場合には、経路の突然の曲がり角で斥力を乗り越え、誤って経路から脱線してしまう。これは、例えば高速度の車で走っていて道が突然曲がっていた場合、斥力を感じても曲がりきれず意図に反して道路から逸脱してしまうものと同様である。ここで、第1の実施の形態では、経路から脱線すべきかどうか判定する際に、スクロールしようとする方向ベクトルの値と経路の形状を表す代表ベクトルの値を単純に比較している。これでは、上記のような問題が生じてしまう。
【0097】
これを防止するため、第2の実施の形態では、ユーザが地図をスクロールさせようとした方向ベクトルと、それと時間Δtの分だけ以前の方向ベクトルとの差分を取ったベクトルである差分方向ベクトルを計算し、経路の代表ベクトルと比較することで、経路から脱線すべきかを判定するため上記の誤判定を解決することができる。
【0098】
以下に、第2の実施の形態における方向ベクトルの時間差分(差分方向ベクトル)が、判定のよい標本となる理由について、ある瞬間の地点での判定の具体例を挙げて説明する。図26aと図26bに示される経路は全く同じ経路であり、両者とも地点Eではコントローラが同じ右倒れ状態となっている。しかし、両者の意図は異なる。図26aでは、地点Aからずっとコントローラが右に倒され、経路に沿って左から右へスクロールされてきた。ユーザは、不幸にして経路の形状が突然右方向から上方向に変わったのに気づかず、コントローラを相変わらず右に倒したままにし、地点Eを通過する瞬間が図26aには示されている。ユーザは経路に沿ってスクロールさせたいという意図がある。
【0099】
図26bでは、ユーザは地点Aから地点Dまで経路に沿ってスクロールさせてきた。しかし、ユーザは途中でスクロールをやめ、地点Dや地点Eで経路から離れて周辺を見たいと思った。そこで、ユーザはコントローラを一旦ゼロの位置に戻して経路から脱線させようと経路と垂直な方向、すなわち地点Eで上向きの経路の方向(代表ベクトルの方向)と垂直な右方向にコントローラを意図的に倒し、その瞬間が図26bには示されている。
【0100】
第1の実施の形態では現在地点(例えば、地点E)にいる瞬間でのコントローラの状態を見るため、上記2つの例のどちらが経路から脱線しようとしているのか、あるいは経路に留まろうとしているのか区別することができない。地点Eでは、経路は上を向いているので代表ベクトルは上向きである。両者(図26a、図26b)とも、ユーザは右方向にスクロールさせている(方向ベクトルが右方向である)ことから、第1の実施の形態では両者とも経路から脱線すべきと判定してしまう。
【0101】
その解決方法としては、地点Eでの瞬間ではなく地点Eに達するまでの過去の過程を見ることが必要となる。第2の実施の形態では、判別する地点でのコントローラやタッチパネルでスクロールさせようとしている方向ベクトルと、そこから時間Δt秒前の過去の方向ベクトルとの差分を取った差分方向ベクトルを計算することで解決できる。差分方向ベクトルが得られれば、判定する地点での代表ベクトルと比較して代表ベクトルと垂直な方向の成分(差分ゆがみベクトルの成分)を計算し、その成分の値がある閾値より大きい場合は、経路からの脱線をしようとしていると判断する。
【0102】
図26aの地点Dでは、地点Cと地点Dにおける差分方向ベクトルは0(ゼロ)となる。また、図26aの地点E では、地点Dと地点Eにおける差分方向ベクトルは0(ゼロ)となる。よって、脱線は行われない。一方、図26bの地点Dでは、地点Cと地点Dにおける差分方向ベクトルは数式6によりやはり0(ゼロ)となる。コントローラをゼロの位置に戻そうとしているだけであるためである。また、図26bの地点Eでは、地点Dと地点Eにおける差分方向ベクトルは、地点Dでコントローラをゼロの位置に戻してから地点Eで右方向に移動(1だけ移動)したため1となる。よって、脱線が地点Eで行われる。
【0103】
この時間Δt内での差分によって判断することで、ユーザが地点Aからどれだけ初期に強くコントローラを右に倒して急カーブ(上あがりのカーブ)をむかえても、地点D、E周辺で、さらに与えられた時間Δt内に相対的に右にコントローラを強く倒さない限り、経路から脱線しないので安心してスクロールをさせることができる。もちろん、第1の実施の形態で述べたように、コントローラの場合は、コントローラの方向ベクトルのうち、経路における代表ベクトルと垂直な成分の分だけ上記で定義した斥力を感じるため、ユーザは経路の方向が変わったなと誤脱線することなく感じることができる。
【0104】
ユーザは、カーブ状の経路において斥力を感じながら経路の方向が変わり始めたと感じ、カーブに沿って地図をスクロールさせることができる。そこであえて、経路から脱線して自由スクロールモードに切り替えたい場合は、斥力の方向にさらに強くコントローラを倒すか、一度コントローラをゼロの位置の方へ戻してから斥力のある方向にコントローラを倒すことで切り替えができる。
【0105】
ここで、第2の実施の形態における制限スクロールから自由スクロールへの切り替えの判断を表示制御装置が行う際の一部のフローの一例を図27に示す。ここでは、コントローラによるドラッグ操作でスクロールする場合について説明するが、タッチパネルによるドラッグ操作でスクロールする場合でも同様に考えられる。なお、以下の各処理は、例えば図14に示される表示制御装置の各構成要素が適宜行うものである。図27に示すように、まず、表示制御装置は、コントローラの位置(x、y)とそれ以前(時間Δt前)のコントローラの位置(xbefore、ybefore)を取得する(ステップS2701)。すなわち、方向ベクトルをそれぞれ取得する。
【0106】
取得された(x、y)、(xbefore、ybefore)に上述した数式6から9を適用して差分方向ベクトルを計算する(ステップS2702)。計算された差分方向ベクトルを代表ベクトルに投影させ、投影された投影ベクトル(ベクトルS)を取得し、差分方向ベクトルから投影ベクトルを差し引いたベクトルを差分ゆがみベクトルとする。すなわち、計算された差分方向ベクトルの代表ベクトルに垂直な成分を差分ゆがみベクトルとする(ステップS2703)。差分ゆがみベクトルの成分の値が一定の値より大きいか否かを判断する(ステップS2704)。一定の値より大きい場合には自由スクロールへの切り替えリクエストにより切り替えが行われる(ステップS2705)。
【0107】
図28では、表示制御装置による制限スクロールから自由スクロールへの切り替えのための全体フローの一例が示されている。ここでは、コントローラによるドラッグ操作でスクロールする場合について説明するが、タッチパネルによるドラッグ操作でスクロールする場合でも同様に考えられる。なお、以下の各処理は、例えば図14に示される表示制御装置の各構成要素が適宜行うものである。図28に示すように、表示制御装置は、新しい位置への移動、拡大縮小値の変更のリクエストを受け付ける(ステップS2801)。受け付け後に、代表ベクトルが計算される(ステップS2802)。
【0108】
そして、コントローラの新たな位置を記録し(ステップS2803)、斥力を計算し、計算された斥力をコントローラへ与えるための処理(例えば、コントローラに対して斥力を与えるための制御信号などを生成して送信する処理)を行う(ステップS2804)。その後、制限スクロールから自由スクロールへの切り替えをするか否か判断する(ステップS2805:図27参照)。切り替えるべきと判断されると、制限スクロールから自由スクロールに切り替えられる(ステップS2806)。切り替えるべきでないと判断されると、スクロールのベクトルの強さの分だけスクロールレールに沿って地図を移動させる(ステップS2807)。
【0109】
次に、逆に自由スクロールモードから制限スクロールモードへの簡単な切り替えについて説明する。第2の実施の形態では、図29aに示すように、地図をスクロールする際の注目点となるカーソルと近くにある経路との間の距離(距離L)が、ある一定の値よりも小さく(近く)、かつ、カーソルがスクロールされる際の速度Vの絶対値|V|が、ある一定の速度より小さくなったときに自由スクロールモードから制限スクロールモードへ切り替えられる。これにより、ユーザが自由に地図をスクロールさせてカーソルを経路の近くに持っていき、その周辺でカーソルの速度を緩める若しくは止めるなどすると、カーソルが経路というレールに吸着され、経路に沿ってのみ移動する制限スクロールに切り替わる。
【0110】
カーソルから経路までの距離の計算は、図29bに示すように、経路上にある多数の標本点からカーソルまでの距離を測り、カーソルに一番近い経路点(標本点)を用いることで計算できる。なお、経路上の経路点の間隔は、表示されるピクセルの何倍かの値で固定されており、拡大縮小する経路の絶対的距離には依存しないようにしておく。
【0111】
ここで、第2の実施の形態における自由スクロールから制限スクロールへの切り替えの判断を表示制御装置が行う際のフローの一例を図30に示す。なお、以下の各処理は、例えば図14に示される表示制御装置の各構成要素が適宜行うものである。図30に示すように、表示制御装置は、スクロールがされたか否かを判断する(ステップS3001)。スクロールされたと判断すると、地図のスクロールの速度の絶対値が、事前に決められたある一定の値(所定の値)より小さいか否かを判断する(ステップS3002)。一定の値より小さいと判断されると、地図データから近傍のブロック(エリア)の経路データを読み取る(ステップS3003)。現在の拡大縮小率に合わせて経路に複数の経路点(標本点)をとる(ステップS3004)。そして、各経路点から現在のカーソルの位置との距離をとり、その距離が最小となる経路点を見つける(ステップS3005)。最小の距離が事前に決められたある値より小さいか否かを判断する(ステップS3006)。小さいと判断されると、一番近い経路点にカーソルが吸着され、制限スクロールに切り替わる(ステップS3007)。
【産業上の利用可能性】
【0112】
本発明に係る表示制御装置及び表示制御方法は、辿るべき経路が画面の外にはみ出ず、経路に沿った追跡が正確にできるため、ディスプレイ上に表示しきれない表示対象の一部を表示させる表示制御装置及び表示制御方法などに有用である。
【符号の説明】
【0113】
1400 表示制御装置
1401 検出手段
1402 算出手段
1403 投影手段
1404 表示制御手段
1405 判断手段
1406 切替手段
1407 代表ベクトル算出手段
1408 デバイス制御手段
【技術分野】
【0001】
本発明は、ディスプレイ上に表示しきれない表示対象の一部を表示させる表示制御装置及び表示制御方法に関する。
【背景技術】
【0002】
コンピュータグラフィックスにより地理空間や概念空間を示す空間を描き、その空間の中をユーザが入力デバイスを通じて自由に移動でき、さらにその空間を拡大、縮小できる技術がある(例えば、特許文献1を参照)。その空間内では、地理空間の場合には経路を示した線であり、概念空間の場合にはある概念を示した線である。ユーザがそれらの線の全体像や線の一部の周辺に何が存在するか見るためには見るための操作が必要となってきた。
【0003】
ここで、画面に描かれた地理空間や概念空間の中を、ユーザがタッチパネル、マウス、スティックデバイスなどの入力デバイスを通じて自由に移動できる環境があるとする。その中で、地図上に描かれた運転経路や、ある点と他の点を結んだ概念的な線(折れ線、曲線など)を辿って見たい場合、ユーザは、入力デバイスへの入力を通じて、移動や拡大、縮小をこまめに繰り返して行い、線を追っていく必要がある。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2002−243489号公報(要約)
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、入力が強すぎる(例えば、スクロールを勢いよく強く行うなど)と辿るべき経路が画面の外にはみ出たり、入力が弱すぎる(例えば、スクロールを弱く軽く行うなど)となかなか線に沿って先に進まなかったりする。また、拡大の中心を線上としなければ、辿るべき線が画面の外にはみ出て消えてしまったりするなどの問題があった。
【0006】
本発明は、上記の問題点に鑑み、辿るべき経路が画面の外にはみ出ず、経路に沿った追跡が正確にできる表示制御装置及び表示制御方法を提供することを目的とする。
【0007】
すなわち、タッチパネルやコントローラなどによるユーザの操作に際し、地図空間や概念空間のスクロール移動を経路などの線上(レール上)でのみしかできないように拘束を与えて、さらにそれに加えて、地図上などを無制限に移動できる「自由スクロール」モードと、決められた線上もしくは限定領域内のみスクロールできる「制限スクロール」モードとの2つのモードを提供し、かつ、前述の2つのモードの切り替えも新たなボタンを押すことなく、同様のストロークやドラッグで行うことができるジェスチャー認識の機能を備えたインターフェースを提案する。
【0008】
具体的には、スクロールを制限させたい線にレールのような質感をもたせ、画面の中心のカーソルなどのある注目点をレールの近くに持って行き、レールに平行してなぞると、カーソルとレールが絡んで、レール上のみでスクロールされるようになる。また、レールの方向に対して垂直な方向に強く引っ張るとカーソルがレールから解き放たれ、カーソルが自由に動き、「自由スクロール」モードに戻るというものである。
【課題を解決するための手段】
【0009】
上記目的を達成するために、本発明によれば、地図を表示するディスプレイ上での所定の経路を示す経路線を前記ディスプレイに表示し、ユーザによるスクロールのための前記ディスプレイ上でのドラッグ操作に応じて前記経路線を移動させ、前記ディスプレイに表示されていない前記経路線の他の部分を表示させる表示制御装置であって、前記ディスプレイ上でドラッグ操作されたときのドラッグ速度及び前記ドラッグ操作に基づいてドラッグされた方向を検出する検出手段と、検出された前記方向のベクトルの大きさとして、検出された前記ドラッグ速度に基づいて、前記スクロールが開始された際の前記ディスプレイに表示された地点が前記スクロールにより移動した距離を算出する算出手段と、前記ディスプレイ上での位置を指し示すカーソルが前記経路線上のみ移動可能とされる制限スクロールの場合、算出された前記距離分に相当する大きさを有する前記検出された方向のベクトルを、前記経路線に平行な方向のベクトルとして投影させる投影手段と、投影されたベクトルの大きさの分だけ、かつ投影されたベクトルと逆方向に前記経路線を移動させて前記経路線を表示する表示制御手段とを、備える表示制御装置が提供される。この構成により、辿るべき経路が画面の外にはみ出ず、経路に沿った追跡が正確にできる。なお、経路とは、例えばある地点からある地点までのルート(例えば、出発地点及び到着地点を入力することにより算出される最短距離ルート、最短時間ルートなど)を言う。また、ここでは、経路線を表示の対象としているが、経路線に限られるものではなく、後述する概念を示す概念線などであってもよい。また、上述する経路線は、後述するスクロールレールに相当する。また、ここでの投影は、経路線と平行な方向のベクトルの大きさを算出することと等価であり、投影させずに経路線と平行な方向のベクトルの大きさを算出できれば投影させなくてもよい。また 、ドラッグ操作が後述するハプティックデバイスによって行われる場合、ドラッグ速度は、例えばハプティックデバイスを静止状態(外部からの力が加わっていない初期の状態)から傾けた角度に応じて変化し、最大に傾けた場合に最大速度となる。ハプティックデバイスを傾けることを止めると、後述するように摩擦力などが設定されていれば、ある程度進むと自動的にスクロールが止まる。
【0010】
また、本発明の表示制御装置において、現在表示されている表示倍率での前記経路線の傾き方向を示すベクトルを代表ベクトルとする場合、前記代表ベクトルに対して、前記ユーザの前記ドラッグ操作が所定の第1の操作であるか否かを判断する判断手段と、前記所定の第1の操作であると判断された場合、前記制限スクロールによる表示制御を解除し、前記スクロールを、前記カーソルの移動を前記経路線上以外も可能とさせる自由スクロールに切り替える切替手段とを更に備え、前記判断手段が、前記経路線の表示制御が前記自由スクロールの場合、前記代表ベクトルに対して、前記ユーザの前記ドラッグ操作が所定の第2の操作であるか否かを判断し、前記所定の第2の操作であると判断した場合、前記切替手段は、前記スクロールを、前記自由スクロールから前記制限スクロールに切り替えることは、本発明の好ましい態様である。この構成により、用途に合わせて用いることができる。ここで、経路線の傾き方向とは、所定の基準線(例えば、現在表示されている表示倍率での水平方向を示す線や、ある方位方向(東西方向や南北方向など)を示す線など)に対する傾きを言う。
【0011】
また、本発明の表示制御装置において、前記代表ベクトルを算出する代表ベクトル算出手段を更に備え、前記代表ベクトル算出手段が、現在の前記経路線の表示制御が前記制限スクロールによるものである場合には、前記カーソルからの前記経路線上における所定の範囲内にある地点の座標情報及び前記カーソルのある地点の座標情報と、現在表示されている表示倍率の情報とを取得し、前記各地点における前記経路線を示す微小ベクトルに、前記表示倍率に応じた所定の関数値を掛け合わせて前記代表ベクトルを算出し、現在の前記経路線の表示制御が前記自由スクロールによるものである場合には、前記カーソルから最も近い位置にある前記経路線上の地点を基準点とし、前記基準点からの前記経路線上における所定の範囲内にある地点の座標情報及び前記基準点の座標情報と、現在表示されている表示倍率の情報とを取得し、前記各地点における前記経路線を示す微小ベクトルに、前記表示倍率に応じた所定の関数値を掛け合わせて前記代表ベクトルを算出することは、本発明の好ましい態様である。この構成により、適切なベクトルを算出することができる。
【0012】
また、本発明の表示制御装置において、前記所定の関数値が、窓関数による値及び/又は重み関数による値であることは、本発明の好ましい態様である。この構成により、代表ベクトルの効率的な算出処理を行うことができる。
【0013】
また、本発明の表示制御装置において、前記所定の第1の操作は、前記代表ベクトルに対して略垂直方向の向きにドラッグする操作であり、前記所定の第2の操作は、前記代表ベクトルに対して略平行方向の向きにドラッグする操作であることは、本発明の好ましい態様である。この構成により、制限スクロールと自由スクロールの切り替えを容易に行うことができる。
【0014】
また、本発明の表示制御装置において、前記経路線の表示制御が前記制限スクロールの場合で、前記ドラッグ操作を所定の入力デバイスを用いて行う場合、前記入力デバイスを介した前記ユーザの入力方向と、前記代表ベクトルの方向とが所定の関係にある場合に、前記入力デバイスに対して振動及び/又は反発力を与えるデバイス制御手段を更に備えることは、本発明の好ましい態様である。この構成により、画面を注視しなくても、制限スクロールと自由スクロールの切り替えを容易に行うことができる。
【0015】
また、本発明の表示制御装置において、前記経路線の表示制御が前記制限スクロールで、前記ドラッグ操作を所定の入力デバイスを用いて行う場合であって、現在表示されている表示倍率での前記経路線の傾き方向を示すベクトルを代表ベクトルとする場合、前記投影手段が、前記入力デバイスを介した前記ユーザの入力方向のベクトルと、所定の時間前の前記ユーザの入力方向のベクトルとの差分を取った差分方向ベクトルを前記代表ベクトルに投影させ、前記差分方向ベクトルから投影された投影ベクトルを差し引いたベクトルの成分の値が所定の値より大きい場合に、前記制限スクロールを、前記カーソルの移動を前記経路線上以外にも可能とさせる自由スクロールに切り替える切替手段を更に備えることは、本発明の好ましい態様である。この構成により、ユーザが初期に強くコントローラを倒して急カーブ(上あがりのカーブ)をむかえても、さらに与えられた時間Δt内に相対的にコントローラを強く倒さない限り、経路から脱線しないため、安心してスクロールすることができる。
【0016】
また、本発明の表示制御装置において、前記切替手段は、前記経路線の表示制御が前記自由スクロールの場合であって、前記所定の入力デバイスを介した前記ドラッグ操作による前記カーソルの速度が所定の速度より遅く、かつ前記カーソルと前記ディスプレイ上に表示された前記経路線との距離が所定の距離より短い場合に、前記自由スクロールを前記制限スクロールに切り替えることは、本発明の好ましい態様である。この構成により、自由スクロールのモードから制限スクロールのモードへの切り替えを容易にすることができる。
【0017】
また、本発明の表示制御装置において、前記入力デバイスを介した前記ユーザの入力方向と、前記代表ベクトルの方向とが所定の関係にある場合に、前記入力デバイスに対して振動及び/又は反発力を与えるデバイス制御手段を更に備えることは、本発明の好ましい態様である。この構成により、経路の方向が変わったと誤脱線することなく感じることができる。
【0018】
また、本発明によれば、地図を表示するディスプレイ上での所定の経路を示す経路線を前記ディスプレイに表示し、ユーザによるスクロールのための前記ディスプレイ上でのドラッグ操作に応じて前記経路線を移動させ、前記ディスプレイに表示されていない前記経路線の他の部分を表示させる表示制御方法であって、前記ディスプレイ上でドラッグ操作されたときのドラッグ速度及び前記ドラッグ操作に基づいてドラッグされた方向を検出する検出ステップと、検出された前記方向のベクトルの大きさとして、検出された前記ドラッグ速度に基づいて、前記スクロールが開始された際の前記ディスプレイに表示された地点が前記スクロールにより移動した距離を算出する算出ステップと、前記ディスプレイ上での位置を指し示すカーソルが前記経路線上のみ移動可能とされる制限スクロールの場合、算出された前記距離分に相当する大きさを有する前記検出された方向のベクトルを、前記経路線に平行な方向のベクトルとして投影させる投影ステップと、投影されたベクトルの大きさの分だけ、かつ投影されたベクトルと逆方向に前記経路線を移動させて前記経路線を表示する表示制御ステップとを、有する表示制御方法が提供される。この構成により、辿るべき経路が画面の外にはみ出ず、経路に沿った追跡が正確にできる。
【0019】
また、本発明の表示制御方法において、現在表示されている表示倍率での前記経路線の傾き方向を示すベクトルを代表ベクトルとする場合、前記代表ベクトルに対して、前記ユーザの前記ドラッグ操作が所定の第1の操作であるか否かを判断する判断ステップと、前記所定の第1の操作であると判断された場合、前記制限スクロールによる表示制御を解除し、前記スクロールを、前記カーソルの移動を前記経路線上以外も可能とさせる自由スクロールに切り替える切替ステップとを更に有し、前記経路線の表示制御が前記自由スクロールの場合、前記代表ベクトルに対して、前記ユーザの前記ドラッグ操作が所定の第2の操作であるか否かを判断し、前記所定の第2の操作であると判断した場合、前記スクロールを、前記自由スクロールから前記制限スクロールに切り替えることは、本発明の好ましい態様である。この構成により、用途に合わせて用いることができる。
【0020】
また、本発明の表示制御方法において、前記代表ベクトルを算出する代表ベクトル算出ステップを更に備え、前記代表ベクトル算出ステップで、現在の前記経路線の表示制御が前記制限スクロールによるものである場合には、前記カーソルからの前記経路線上における所定の範囲内にある地点の座標情報及び前記カーソルのある地点の座標情報と、現在表示されている表示倍率の情報とを取得し、前記各地点における前記経路線を示す微小ベクトルに、前記表示倍率に応じた所定の関数値を掛け合わせて前記代表ベクトルを算出し、現在の前記経路線の表示制御が前記自由スクロールによるものである場合には、前記カーソルから最も近い位置にある前記経路線上の地点を基準点とし、前記基準点からの前記経路線上における所定の範囲内にある地点の座標情報及び前記基準点の座標情報と、現在表示されている表示倍率の情報とを取得し、前記各地点における前記経路線を示す微小ベクトルに、前記表示倍率に応じた所定の関数値を掛け合わせて前記代表ベクトルを算出することは、本発明の好ましい態様である。この構成により、適切なベクトルを算出することができる。
【0021】
また、本発明の表示制御方法において、前記所定の関数値が、窓関数による値及び/又は重み関数による値であることは、本発明の好ましい態様である。この構成により、代表ベクトルの効率的な算出処理を行うことができる。
【0022】
また、本発明の表示制御方法において、前記所定の第1の操作は、前記代表ベクトルに対して略垂直方向の向きにドラッグする操作であり、前記所定の第2の操作は、前記代表ベクトルに対して略平行方向の向きにドラッグする操作であることは、本発明の好ましい態様である。この構成により、制限スクロールと自由スクロールの切り替えを容易に行うことができる。
【0023】
また、本発明の表示制御方法において、前記経路線の表示制御が前記制限スクロールの場合で、前記ドラッグ操作を所定の入力デバイスを用いて行う場合、前記入力デバイスを介した前記ユーザの入力方向と、前記代表ベクトルの方向とが所定の関係にある場合に、前記入力デバイスに対して振動及び/又は反発力を与えるデバイス制御ステップを更に有することは、本発明の好ましい態様である。この構成により、画面を注視しなくても、制限スクロールと自由スクロールの切り替えを容易に行うことができる。
【0024】
また、本発明の表示制御方法において、前記経路線の表示制御が前記制限スクロールで、前記ドラッグ操作を所定の入力デバイスを用いて行う場合であって、現在表示されている表示倍率での前記経路線の傾き方向を示すベクトルを代表ベクトルとする場合、前記入力デバイスを介した前記ユーザの入力方向のベクトルと、所定の時間前の前記ユーザの入力方向のベクトルとの差分を取った差分方向ベクトルを前記代表ベクトルに投影させる投影ステップと、前記差分方向ベクトルから投影された投影ベクトルを差し引いたベクトルの成分の値が所定の値より大きい場合に、前記制限スクロールを、前記カーソルの移動を前記経路線上以外にも可能とさせる自由スクロールに切り替える切替ステップを更に有することは、本発明の好ましい態様である。この構成により、ユーザが初期に強くコントローラを倒して急カーブ(上あがりのカーブ)をむかえても、さらに与えられた時間Δt内に相対的にコントローラを強く倒さない限り、経路から脱線しないため、安心してスクロールすることができる。
【0025】
また、本発明の表示制御方法において、前記経路線の表示制御が前記自由スクロールの場合であって、前記所定の入力デバイスを介した前記ドラッグ操作による前記カーソルの速度が所定の速度より遅く、かつ前記カーソルと前記ディスプレイ上に表示された前記経路線との距離が所定の距離より短い場合に、前記自由スクロールを前記制限スクロールに切り替えることは、本発明の好ましい態様である。この構成により、自由スクロールのモードから制限スクロールのモードへの切り替えを容易にすることができる。
【0026】
また、本発明の表示制御方法において、前記入力デバイスを介した前記ユーザの入力方向と、前記代表ベクトルの方向とが所定の関係にある場合に、前記入力デバイスに対して振動及び/又は反発力を与えるデバイス制御ステップを更に有することは、本発明の好ましい態様である。この構成により、経路の方向が変わったと誤脱線することなく感じることができる。
【発明の効果】
【0027】
本発明の表示制御装置及び表示制御方法は、上記構成を有し、辿るべき経路が画面の外にはみ出ず、経路に沿った追跡が正確にできる。すなわち、ユーザは、指のストローク、マウスのドラッグ、コントローラの入力などだけで終始、新たなボタンを押すなどの行為をすることなく様々な操作ができる。すなわち、地図空間や概念空間内を自由にスクロール(自由スクロール)できたり、経路や曲線上のみをスクロールする制限スクロールができたりする。また、それらの切り替え(自由スクロールと制限スクロールとの切り替え)も、曲線がレールのようなものでそこに画面が乗っているという直感的な解釈(感覚)を受け、レールに沿ってなぞったり、レールから外れようと垂直に動いたりして行うことができる。
【0028】
さらに、本発明でいうレールの形状とは、ユーザが任意に決める拡大、縮小値によって異なるため、あくまで「画面に見えている形状」をレールの現在の形状として計算される。また、このレールに沿って走る質感は、ハプティクデバイスなどに応用でき、レールから外れようとする場合は余計なボタンを押すなどの操作もなく、反発力のより大きくかかる方向に向けて入力デバイスに力を入れれば、レールからの解放が達成できるという極めて直感的な方法で行うことができる。
【図面の簡単な説明】
【0029】
【図1a】本発明の第1の実施の形態におけるある地理空間内に経路が描かれている様子を示す図である。
【図1b】本発明の第1の実施の形態におけるタッチパネルなどでドラッグによりユーザの指が移動した分だけ、地理空間内を地図が動いている様子を示す図である。
【図2a】本発明の第1の実施の形態におけるユーザが操作する前の制限スクロールの初期の状態を示す図である。
【図2b】本発明の第1の実施の形態におけるタッチパネル上のある一点をユーザが触れ、画面右上の方向にドラッグしようとしている状態を示す図である。
【図2c】本発明の第1の実施の形態における図2bのドラッグしようとしている右上の方向のベクトルをスクロールレールの方向ベクトルに投影した際のベクトルを示している図である。
【図2d】本発明の第1の実施の形態における図2bの状態から実際に指をドラッグさせた場合の指の新しい地点と、画面がスクロールした状態の様子を示している図である。
【図2e】本発明の第1の実施の形態における指を離した後もスクロールレールの上に沿って動き続ける様子を示す図である。
【図2f】本発明の第1の実施の形態における図2eに引き続き、スクロールレールの向きが変わってもスクロールレールに沿ってスクロールしていく様子を示す図である。
【図3a】本発明の第1の実施の形態におけるスクロールレールを示す図である。
【図3b】本発明の第1の実施の形態における図3aを拡大した図である。
【図3c】本発明の第1の実施の形態における図3aの代表ベクトルを示す図である。
【図3d】本発明の第1の実施の形態における図3bの代表ベクトルを示す図である。
【図4a】本発明の第1の実施の形態における画面に表示されるスクロールレールの線、曲線を示す図である。
【図4b】本発明の第1の実施の形態における線や曲線が実際には線に沿った等間隔の距離に配置された多数の点からなることを示す図である。
【図4c】本発明の第1の実施の形態における図4bの各点が隣同士の座標の差分をとることで、多数の微小ベクトルで表現できることを示す図である。
【図5a】本発明の第1の実施の形態におけるスクロールレール、注目する点、注目する点の周辺を示す図である。
【図5b】本発明の第1の実施の形態におけるスクロールレールに沿った距離に応じて縦に並べられたスクロールレールの微小ベクトル群を示す図である。
【図5c】本発明の第1の実施の形態における微小ベクトルに掛ける窓関数を示す図である。
【図5d】本発明の第1の実施の形態における微小ベクトルに掛ける重み関数を示す図である。
【図5e】本発明の第1の実施の形態における図5aでのスクロールレールの代表ベクトルを示す図である。
【図6a】本発明の第1の実施の形態におけるスクロールレール、注目する点、注目する点の周辺を示す他の図である。
【図6b】本発明の第1の実施の形態におけるスクロールレールに沿った距離に応じて縦に並べられたスクロールレールの微小ベクトル群を示す他の図である。
【図6c】本発明の第1の実施の形態における微小ベクトルに掛ける窓関数を示す他の図である。
【図6d】本発明の第1の実施の形態における微小ベクトルに掛ける重み関数を示す他の図である。
【図6e】本発明の第1の実施の形態における図6aでのスクロールレールの代表ベクトルを示す図である。
【図7】本発明の第1の実施の形態における代表ベクトルを求めるためのフローについて説明するためのフローチャートである。
【図8a】本発明の第1の実施の形態における自由スクロールモードの画面とスクロールレールの状態を示す図である。
【図8b】本発明の第1の実施の形態における自由スクロールにより、注目点がスクロールレール近傍に持ってこられた場合を示す図である。
【図8c】本発明の第1の実施の形態における注目点がさらにスクロールレールに近づいた場合を示す図である。
【図8d】本発明の第1の実施の形態における制限スクロールモードに切り替えるためのジェスチャーについて説明するための図である。
【図8e】本発明の第1の実施の形態における注目点がスクロールレールの上に吸着され、制限スクロールモードに切り替わる様子を示す図である。
【図9】本発明の第1の実施の形態における自由スクロールモードから制限スクロールモードへの切り替えフローを説明するためのフローチャートである。
【図10a】本発明の第1の実施の形態の制限スクロールモードにおける状態を示しており、注目の点がスクロールレール上にある様子を示す図である。
【図10b】本発明の第1の実施の形態におけるタッチパネルなどに指をタッチした様子を示す図である。
【図10c】本発明の第1の実施の形態におけるドラッグしようとする方向ベクトルが、代表ベクトルに投影された成分と、それに垂直な成分とに成分分解をされた様子を示す図である。
【図10d】本発明の第1の実施の形態の図10cの状態から、実際にドラッグを行って代表ベクトルに平行な成分分だけスクロールレールに沿って画面が移動した様子を示す図である。
【図10e】本発明の第1の実施の形態のドラッグが行われたものの、代表ベクトルと垂直な軸に投影されたベクトル成分が強い様子を示す図である。
【図10f】本発明の第1の実施の形態における代表ベクトルと垂直な軸に平行に、正の方向と負の方向に繰り返し、何回か暴れるような動作をする様子を示す図である。
【図10g】本発明の第1の実施の形態におけるスクロールレールから注目の点が解き放たれ、自由スクロールモードに切り替わる様子を示す図である。
【図11】本発明の第1の実施の形態における制限スクロールモードから自由スクロールモードへの切り替えフローを説明するための図である。
【図12a】本発明の第1の実施の形態におけるスクロールレールが枝のように分岐した場合を示す図である。
【図12b】本発明の第1の実施の形態におけるスクロールレールが枝のように分岐した他の場合を示す図である。
【図13a】本発明の第1の実施の形態における入力デバイスの一例のスティック型デバイスを示す図である。
【図13b】本発明の第1の実施の形態における入力デバイスの一例のボタン型デバイスを示す図である。
【図13c】本発明の第1の実施の形態における代表ベクトルが右上がりになっている場合を示す図である。
【図13d】本発明の第1の実施の形態における任意の2次元の方向にユーザが入力した際の反発力Fを示す図である。
【図13e】本発明の第1の実施の形態におけるユーザからの入力を示す図である。
【図14】本発明の第1及び第2の実施の形態に係る表示制御装置の構成の一例を示す図である。
【図15】本発明の第1の実施の形態に係る表示制御装置による処理フローの一例を示すフローチャートである。
【図16a】本発明の第2の実施の形態におけるスティック型のコントローラ(ハプティックコントローラ)を示す図である。
【図16b】本発明の第2の実施の形態におけるスティック型のコントローラを真上から見た図である。
【図17a】本発明の第2の実施の形態における前(前方)に倒れたスティック型のコントローラを示す図である。
【図17b】本発明の第2の実施の形態における前(前方)に倒れたスティック型のコントローラを真上から見た図である。
【図18a】本発明の第2の実施の形態における後ろ(後方)に少し倒れたスティック型のコントローラを示す図である。
【図18b】本発明の第2の実施の形態における後ろ(後方)に少し倒れたスティック型のコントローラを真上から見た図である。
【図19a】本発明の第2の実施の形態における後ろ(後方)に倒れたスティック型のコントローラを示す図である。
【図19b】本発明の第2の実施の形態における後ろ(後方)に倒れたスティック型のコントローラを真上から見た図である。
【図20a】本発明の第2の実施の形態における北を向いた経路の地図を示す図である。
【図20b】本発明の第2の実施の形態における前(前方)に倒れたスティック型のコントローラを示す図である。
【図20c】本発明の第2の実施の形態における前(前方)に倒れたスティック型のコントローラを真上から見た図である。
【図21a】本発明の第2の実施の形態における北東を向いた経路の地図を示す図である。
【図21b】本発明の第2の実施の形態における前(前方)に倒れたスティック型のコントローラを示す図である。
【図21c】本発明の第2の実施の形態における前(前方)に倒れたスティック型のコントローラを真上から見た図である。
【図22a】本発明の第2の実施の形態における北東を向いた経路の地図を示す図である。
【図22b】本発明の第2の実施の形態における右前(右前方)に倒れたスティック型のコントローラを示す図である。
【図22c】本発明の第2の実施の形態における右前(右前方)に倒れたスティック型のコントローラを真上から見た図である。
【図23a】本発明の第2の実施の形態における北東を向いた経路の地図を示す図である。
【図23b】本発明の第2の実施の形態における前(前方)に倒れたスティック型のコントローラを示す図である。
【図23c】本発明の第2の実施の形態における前(前方)に倒れたスティック型のコントローラを真上から見た図である。
【図23d】本発明の第2の実施の形態における前(前方)に倒れたスティック型のコントローラのt秒前との差を示す図である。
【図23e】本発明の第2の実施の形態における前(前方)に倒れたスティック型のコントローラのt秒前との差を真上から見た図である。
【図23f】本発明の第2の実施の形態における前(前方)に倒れたスティック型のコントローラのt秒前との差を真上から見た図である。
【図24】本発明の第2の実施の形態における斥力を計算するためのフローの一例を示すフローチャートである。
【図25a】本発明の第2の実施の形態における急激に曲がる経路の一例を示した図である。
【図25b】本発明の第2の実施の形態における急激に曲がる経路の他の一例を示した図である。
【図26a】本発明の第2の実施の形態における急激に曲がる経路で、ユーザが経路に沿って進もうとしている一例を示した図である。
【図26b】本発明の第2の実施の形態における急激に曲がる経路で、ユーザが経路から外れようとしている一例を示した図である。
【図27】本発明の第2の実施の形態における制限スクロールから自由スクロールへの切り替えの判断をする部分のフローの一例を示すフローチャートである。
【図28】本発明の第2の実施の形態における制限スクロールから自由スクロールへの切り替えのための全体フローの一例を示すフローチャートである。
【図29a】本発明の第2の実施の形態における自由スクロールでカーソルが経路に近づいた状態を示す図である。
【図29b】本発明の第2の実施の形態における自由スクロールでカーソルが経路に近づいた状態と経路上の経路点を示す図である。
【図30】本発明の第2の実施の形態における自由スクロールから制限スクロールへの切り替えのための全体フローの一例を示すフローチャートである。
【発明を実施するための形態】
【0030】
<第1の実施の形態>
以下、本発明の第1の実施の形態について述べる。ここで、本発明で用いられる言葉の定義を行う。経路や概念を示した線、線分、曲線を「スクロールレール」と呼ぶ。本発明では、地理空間、概念空間などの2次元及び3次元空間内を、タッチパネル、マウス、コントローラなどのデバイスを介したユーザの入力により移動できる。空間内を自由に移動できる場合を「自由スクロール」、前述のスクロールレール上のみに制限された形で移動できる場合を「制限スクロール」と呼ぶ。
【0031】
図1aは、ある地理空間内に経路が描かれている様子を示す。画面の中心にカーソルが描画されている。図1bは、タッチパネルなどでドラッグによりユーザの指が移動した分だけ、地理空間内を地図が動いている様子を示す。ユーザは、地理空間に描画されているスクロールレールとは無関係に自由にスクロールできるため、この場合、自由スクロールモード(単に、自由スクロールとも言う)となる。スクロールには既存技術の弾くという操作が使われる。
【0032】
現在位置がスクロールするというのは、弾く前のドラッグしている間に一定時間ごとにドラッグによるスクロール速度(ドラッグ速度とも言う)をサンプリングしておき、指がタッチパネルから離れる直前でのドラッグによるスクロール速度をもって、そのままスクロールし続けることである。その後は、摩擦力などを設定しておき、ある程度進むと自動的にスクロールが止まるようにも設定できる。
【0033】
本発明が提案するもう1つのモードの制限スクロールについて図2a〜図2fを用いて説明する。図2a〜図2fでは、画面の中心のカーソルが地理空間に描かれた経路上にある。タッチパネルなどでドラッグにより指が移動したベクトルが、画面中心のカーソルのある経路上の点からの経路方向のベクトルへの投影された成分だけ移動することになる。図2aはユーザが操作する前の制限スクロールの初期の状態を示す。画面の中心はスクロールレールの上にある。
【0034】
図2bは、タッチパネル上のある一点をユーザが触れ、画面右上の方向にドラッグしようとしている状態を示す。図2cは、図2bのドラッグしようとしている右上の方向のベクトルをスクロールレールの方向ベクトルに投影した際のベクトルを示している。図2dは、図2bの状態から実際に指をドラッグさせた場合の指の新しい地点と、画面がスクロールした状態の様子を示している。これにより、ドラッグによるベクトルをスクロールレールに投影したベクトルの分だけ、逆方向に移動していることがわかる。
【0035】
図2eは、指を離した後もスクロールレールの上に沿って動き続ける様子を示す。図2fは、図2eに引き続き、スクロールレールの向きが変わってもスクロールレールに沿ってスクロールしていく様子を示す。以上により、単純に自由スクロール、制限スクロールでのそれぞれの動きについて述べた。
【0036】
次に、自由スクロールから制限スクロールへの切り替え、制限スクロールから自由スクロールへの切り替えについて説明する。そのために、まず、本発明で定義する「代表ベクトル」について説明する。スクロールレール上のある一点を中心に、拡大、縮小(拡大縮小値)によりスクロールレールを画面の範囲で見た場合のスクロールレールのベクトルを代表ベクトルと言う。
【0037】
代表ベクトルの一例を図3aと図3cの場合と、図3bと図3dの場合の2つの例を用いて説明する。まず、図3aと図3cの場合について説明する。図3cでは、具体的に画面の中心点がスクロールレールの上に置かれている。画面の中心周辺のスクロールレールは右上がりのため、代表ベクトルも右上がりとなる。一方、図3bと図3dの場合は、図3aと図3cの場合と全く同じスクロールレールであり、その中心点も、図3cと図3dでは全く同じものとなる。唯一違うのは、図3dが図3cを拡大したものであることで(拡大縮小値)、その関係が図3aと図3bに示されている。そのため、代表ベクトルは、図3bと図3dの場合、画面の中心あたりのスクロールレールが右下がりのため、代表ベクトルも右下がりとなる。
【0038】
このように、代表ベクトルは、与えられたスクロールリスト、着目している位置、拡大縮小値に依存する。実際にどのように代表ベクトルが計算されるべきかについて細かく説明する。図4a〜図4cは、経路や概念線を示すスクロールレールがどのように数学的に表されるかについて示す。図4aは、画面に表示されるスクロールレールの線、曲線を示す。図4bは、それらの線や曲線が、実際には線に沿った等間隔の距離に配置された多数の点からなることを示す。それぞれの点が、2次元の場合、3次元の場合に応じて座標を持つ。
【0039】
なお、実際に線をデータとして格納する場合、線の折れた部分のみの座標をデータとして持つのが主流であるが、ここでは、これらの点が等間隔の距離で配置されたデータで生成されたとして説明する。図4cは、図4bの各点が隣同士の座標の差分をとることで、多数の微小ベクトルで表現できることを示す。図4a〜図4cで述べた、多数の微小ベクトルで表現されるスクロールリストが、どのように代表ベクトルとして計算されるかについて図5a〜図5e、図6a〜図6e、図7を用いて説明する。
【0040】
図5a〜図5eでは図3aと図3cの場合について説明し、図6a〜図6eでは図3bと図3dの場合について説明する。まず、図5a〜図5eについて説明する。図5aは、スクロールレール、注目する点(以下、注目点とも言う)、注目する点の周辺を示す。図5bは、スクロールレールに沿った距離に応じて縦に並べられたスクロールレールの微小ベクトル群を示す。図5cは、微小ベクトルに掛ける窓関数を示す。図5dは、微小ベクトルに掛ける重み関数を示す。図5eは、図5aでのスクロールレールの代表ベクトルを示す。
【0041】
図5aではスクロールレールが描かれ、この場合は画面の中心である注目する点がスクロールレール上に存在する。スクロールレール上において、注目する点からスクロールレールに沿った距離に応じて、多数の微小ベクトルを縦に模式的に並べて図5bに表示されている。図5b、図5c、図5dにおいて、縦軸は、注目する点からスクロールレールに沿った符号をもった距離を意味する。スクロールレールが1つの曲線であり、その曲線上のある注目する点から、曲線に沿ってある方向に遠ざかっていくものを正の距離として縦軸の正の方向に、また前述と逆方向に遠ざかっていくものを負の距離として縦軸の負の方向に配置している。縦軸の「0」の部分が注目する点そのものとなる。それぞれの点に応じて模式的に、図5aで表示されるスクロールレール上に存在する多数の微小ベクトルを図5bに描画している。
【0042】
代表ベクトルとは、スクロールレール上の注目する点を中心として、拡大縮小値に対応して画面内で表示される範囲内での、スクロールレール全体の方向を代表して表現するものであるため、注目する点とある領域内のみの微小ベクトルを考慮したい。そのため、離れた位置にある微小ベクトルは考慮に入れないため、図5cに示したような窓関数で遠くに存在するものを削除することができる。つまり、図5bに示す各微小ベクトルに窓関数などを掛けることで、それぞれの微小ベクトルを加工できる。窓関数は信号処理に使われる一般的な関数であり、窓関数Wi(x)は、x=0周辺では1を返し、x=0から正方向や負の方向に離れた位置では0を返す。なお、窓関数を数式(1)に示す。widthは窓の幅となる。
【0043】
【数1】
【0044】
窓関数の中心x=0は、図5aのスクロールレール上の注目する点、たいてい画面の中心位置となる。窓関数の幅widthは、図5aにおける空間でユーザが決める拡大縮小値に依存する。図5cと後述の図6cは同じ窓関数であるが、幅widthは図5cのほうが大きい。それは、図5a〜図5eが図3aのスクロールレールに対応し、図6a〜図6eが図3aを拡大した図3bのスクロールレールに対応しているからである。つまり、ユーザがスクロールレールを拡大すれば、拡大されたスクロールレールの小さな部分を見ているためwidthは小さくなり、縮小すればスクロールレールの大きな範囲を見ているためwidthが大きくなる。widthが大きくなると、図4cで示したような微小ベクトルの数が膨大に増えるため、ある周期によるサンプリングされた微小ベクトルのみを考慮に入れるなどの計算方法が可能である。
【0045】
さらに、注目する点の近傍のスクロールレール上のベクトルにウエイト(重み)を置きたい場合は、図5dに示すように、注目する点で最大の値1を返し、遠ざかるほど0に近くなる重み関数We(x)をスクロールレール上の微小ベクトルに掛けて重みを変更することができる。重み関数Weは必要に応じて任意の関数を使うことができるが、ここでは例としてガウス関数を用い、それを数式(2)に示す。
【0046】
【数2】
【0047】
ここで、cは定数で、ガウス関数の幅と関連する。cの値は重みをどれだけ広げるかに依存する。これらの処理を隔てて、加工されたスクロールレール上の多数の微小ベクトルをすべて足し合わせたベクトルが図5eに示すような代表ベクトルとなる。
【0048】
図6a〜図6eも、図5a〜図5eと全く同様の方法で代表ベクトルを計算する。図6aは、スクロールレール、注目する点、注目する点の周辺を示す。図6bは、スクロールレールに沿った距離に応じて縦に並べられたスクロールレールの微小ベクトル群を示す。図6cは微小ベクトルに掛ける窓関数を示す。図6dは微小ベクトルに掛ける重み関数を示す。図6eは、図6aでのスクロールレールの代表ベクトルを示す。
【0049】
図5a〜図5eと図6a〜図6eでは、代表ベクトルを求めるためのスクロールレール上の位置が同じにもかかわらず、拡大縮小値が異なるため、全く異なる代表ベクトルが得られる。これは、代表ベクトルというものが、ユーザが「画面に見える」スクロールレールの形状として定義されているため、画面の拡大縮小を行えば、見えるおおまかな形状も異なるので代表ベクトルも異なるのは当然となる。このユーザインターフェースの発想に立ったスクロールレールの「見かけの形状」を算出するところに本発明の特徴がある。
【0050】
この代表ベクトルを求めるための手順について図7を用いて説明する。代表ベクトルを決定するのに必要な現在のスクロールレール上の座標と拡大縮小値を取得する(ステップS701)。代表ベクトルを決定するのに使うスクロールレール上の座標を窓関数の中心位置にもっていき、与えられた拡大縮小値によって窓関数の幅widthを変え、スクロールレールを構成する各微小ベクトルに窓関数を掛ける(ステップS702)。代表ベクトルを決定するのに使うスクロールレール上の座標を重み関数の中心位置にもっていき、与えられた拡大縮小値によって重み関数の幅widthを変え、スクロールレールを構成する各微小ベクトルに重み関数を掛ける(ステップS703)。これらの処理を施した各微小ベクトルを足し合わせて代表ベクトルを算出する(ステップS704)。代表ベクトルの算出の仕方を数式(3)に示す。数式(3)で、スクロールレール上のある地点xにおける微小ベクトルをV微小ベクトル(x)とした。
【0051】
【数3】
【0052】
分母は、微小ベクトルの長さであり、規格化を行っている。以上で、スクロールレールの代表ベクトルについて説明した。
【0053】
次に、自由スクロールから制限スクロールに切り替える方法について図8a〜図8e、図9を用いて説明する。図8aは、自由スクロールモードの画面とスクロールレールの状態を示す。自由スクロールモードのため、とりわけ注目点(注目する点)である画面の中心点がスクロールレール上にない。図8bは、自由スクロールにより、注目点がスクロールレール近傍に持ってこられた場合を示す。注目点と最も近いスクロールレール上の点を見つけ、その点から注目点までの距離をスクロールレールとの距離dと定義する。
【0054】
図8cは、さらに注目点がスクロールレールに近づいた場合を示す。ここで、注目点に最も近いスクロールレール上の点(最も近い点)と現在の拡大縮小値とから、スクロールレールの代表ベクトルが求まる。図8dに示すように、図8cで求まった代表ベクトルにほぼ平行に画面をドラッグさせることで、あたかも注目点をスクロールレール上に引っ掛けるようなスクロール制限モードに切り替えるためのジェスチャーを行う。図8eに示すように、代表ベクトルに平行な方向へのドラッグによるジェスチャーがうまくいけば、注目点がスクロールレールの上に吸着され、スクロールレール上に乗っかり制限スクロールモード(単に、制限スクロールとも言う)に切り替わる。
【0055】
図8a〜図8eで説明した内容、すなわちどのように自由スクロールモードから制限スクロールモードに変わるかについて図9を用いて説明する。まず、ユーザから、タッチパネルやコントローラなどで座標の移動(新しい位置への移動)や拡大縮小値の変更リクエストを受け付ける(ステップS901)。画面の中心点、もしくは任意に決められた画面内の注目点が、スクロールレールに近いか(所定の距離であるか)どうかを判断する(ステップS902)。近いかどうかの判断は、注目点に最も近いスクロールレール上の点を探し、その点と注目点との距離が事前に決められた所定の閾値を超えたかどうかで行う。
【0056】
ステップS902で、スクロールレールが、画面内の注目点から所定の閾値より遠いと判断された場合は、そのまま自由スクロールモードとして、リクエストされた新しい地点へ移動し、新しい拡大縮小値で描画を行う(ステップS907)。ステップS902で、スクロールレールから画面内の注目点までの距離が所定の閾値より小さい場合、ユーザが注目点をスクロールレール上に持っていき、制限スクロールモードに切り替えようとしている可能性がある。そのため、まず、先ほど求めた、注目点から一番近いスクロールレール上の点を仮のスクロールレール上の注目点として用いる。
【0057】
すなわち、注目点に最も近いスクロールレール上の点の座標を現在地とし、現時点での拡大縮小値を使って新たに代表ベクトルを計算する(ステップS903)。代表ベクトルの求め方は図5a〜図5e、図6a〜図6eを用いて説明した。代表ベクトルと、ユーザの入力によるドラッグ方向のベクトルとの類似を調べる(ステップS904)。具体的には、代表ベクトルに投影したユーザの入力によるドラッグ方向のベクトルの成分を求める。このベクトルの絶対値が大きいほど、スクロールレールの方向を意味する代表ベクトルと平行に近いことを意味する。
【0058】
ステップS904で求めた投影されたベクトルの長さ、つまり絶対値が事前に決められた所定の値より大きいか否かを判断し(ステップS905)、大きいとき、ユーザがスクロールレールの方向とある程度同じ方向にドラッグしていると判断できる。ステップS902のスクロールレールから近い距離に画面内の注目点があることも考慮して、最終的にユーザが画面内の注目点をスクロールレールの近くまで持っていき、スクロールレールに平行に近い方向でドラッグさせていると判断できる。これは「制限スクロール」モードへの切り替えへのジェスチャーによるリクエストと判断して「制限スクロール」モードに切り替える(ステップS906)。具体的には、画面の注目点をスクロールレール上に吸着していくアニメーションなどを再生する。
【0059】
次に、制限スクロールから自由スクロールに切り替える方法について図10a〜図10g、図11を用いて説明する。図10aは、制限スクロールモードにおける状態を示しており、注目の点がスクロールレール上にある。現在の拡大縮小値とスクロールレール上の注目の点の座標とから代表ベクトルが計算されている。図10bは、タッチパネルなどに指をタッチした様子を示す。図10cは、指でドラッグしようとしており、そのドラッグしようとする方向ベクトルが、代表ベクトルに投影された成分と、それに垂直な成分とに成分分解をされた様子を示す。
【0060】
図10dは、図10cの状態から、実際にドラッグを行って代表ベクトルに平行な成分分だけスクロールレールに沿って画面が移動した様子を示す。図10eは、図10dと同様にドラッグが行われたものの、代表ベクトルと垂直な軸に投影されたベクトル成分が強い様子を示す。事前に決められたベクトルの強さの閾値より大きい場合は、ユーザがスクロールレールから外れようという動きをしていると判断し、図10gに示すようなスクロールレールから注目の点が解き放たれ(解除され)、自由スクロールモードに切り替わる。さらなる工夫としては、切り替わりが、簡単に行われないようにするために、図10fに示すように、代表ベクトルと垂直な軸に平行に、正の方向と負の方向に繰り返し、何回か暴れるような動作をすると、自由スクロールに切り替わるようにするなどの条件を加えることも可能である。
【0061】
図10a〜図10gで述べたような処理、すなわち制限スクロールから自由スクロールにいかに切り替わるかについて図11を用いて説明する。ユーザから、タッチパネルやコントローラなどで座標の移動や拡大縮小値の変更リクエストを受け付ける(ステップS1101)。リクエストのあった座標、拡大縮小値から、代表ベクトルを計算する(ステップS1102)。ユーザからの入力によるベクトルを、代表ベクトルと平行な軸への投影ベクトルと、それに垂直な軸への投影ベクトルとに分ける。なお、それぞれのベクトルを「スクロールベクトル」、「ゆがみベクトル」と呼ぶ。
【0062】
ユーザがタッチパネルに触れたままである、或いは、コントローラを傾けたままであるなど操作入力中であるか否かを判断し(ステップS1103)、操作入力中である場合は、ユーザは制限スクロールから逃れようと入力を続けている可能性があるため、ステップS1104に移行する。逆に、ユーザがコントローラデバイスから手を離した場合は、ユーザは自由スクロールへ逃れようとしていないと判断し、ステップS1106に移行し、「スクロールベクトル」の強さの分だけ、スクロールレールに沿った制限されたスクロールで画面を移動させる。
【0063】
ステップS1104では、「ゆがみベクトル」が事前に決められた一定の値より大きいか否かを判断し(ステップS1104)、大きいと判断した場合、ステップS1105に移行し、制限スクロールから自由スクロールに切り替えられる。一方、「ゆがみベクトル」が一定の値より小さい場合は、ステップS1106へ移行する。
【0064】
更なる工夫として、ステップS1104でのゆがみが大きくて、スクロールレールから離れ、自由スクロールに変わる新たな条件として「ゆがみベクトル」の強さを設定することができる。すなわち、絶対値が閾値より大きく、かつ正の方向と負の方向が切り替わってユーザの入力が行われるなどと設定することができる。これは、図10fで述べた、代表ベクトルと垂直の方向に正方向、負の方向に暴れて揺らすというジェスチャーが行われてはじめて自由スクロールに切り替われるという設定をしたことになる。このような設定すれば、スクロールレールから安易に注目の点が外れてしまうという誤動作をおきにくくすることが可能である。
【0065】
本発明では、図12a、図12bに示すような、スクロールレールが枝のように分岐した場合でも使える。代表ベクトルは、現在地周辺の分岐したすべての微小ベクトルの計算がされ、図12bのように不幸にして分岐点に注目の点がある場合は、スクロールモードの切り替えを行わせないなどの条件を課せばよい。
【0066】
次に、本発明に適用されるハプティック操作デバイス(以下、ハプティックデバイス、デバイスとも言う)について説明する。ハプティックデバイスでは、ユーザの入力に対し、任意の方向に斥力、反発力、振動を発生させることができる。デバイスの例としては、図13aに示すようなスティック型デバイス、図13bに示すようなボタン型デバイスがある。本発明では、デバイスの形状は問わず、スクロールできる空間が2次元の場合は2次元の任意の方向への入力ができ、3次元の場合は3次元の任意の方向への入力ができ、何らかの入力に対する反発力、振動をもたらすハプティックデバイスを考える。
【0067】
仮に、図13cに示すように、代表ベクトルが右上がりになっている場合を考える。図13dは、代表ベクトルが右上がりの場合に、ユーザが任意の2次元の方向に入力した際の反発力Fを示す。図13eでは、コントロールデバイスに移動しようとユーザから入力がなされた場合を考える。入力の力ベクトルが、原点からx軸に対し、αの角度の方向のベクトルになされたとする。ここでは、力の強さは規格化され1とする。また、その時の規格化された代表ベクトルを(Cosθ、Sinθ)とすると、ユーザの入力ベクトルに対する反発力ベクトルFは数式(4)で表される。
【0068】
【数4】
【0069】
当然、代表ベクトルの方向角度θが、入力する力の方向角度αと同じであれば、数式(4)での反発力Fは0となる。これは、代表ベクトルと平行に近い方向に入力すればするほど反発力Fは0であり、逆に代表ベクトルに垂直な方向に入力すればするほど反発力Fは、入力しようとする方向と逆方向に斥力として大きくなる。これにより、ユーザは、画面を注視しなくても、反発力の少ない方向にスティックなどの入力デバイスを持っていけば、制限スクロールモードで、経路などのスクロールレールに沿って移動できる。
【0070】
また、自由スクロールモードに切り替えたい場合は、あえて反発力のある方向にスティックなどで力を入れれば、それが代表ベクトルと垂直に近い方向であるから、スクロールレールから外れ、自由スクロールモードに切り替えることができる。反発力ではなく、振動によるハプティックデバイスの場合は、数式(4)の絶対値をとり、その値の強さに応じて振動させるようにしてもよい。
【0071】
さらに、本発明を使った応用例として、制限スクロールから自由スクロールへの切り替えによって、制限スクロールでの機能を停止させたり再生させたりもできる。具体的には、例えば、制限スクロールモードになると、スクロールレールに沿って画面上の地図などが移動するアニメーション移動を自動的に開始させる自動スクロール機能があるとする。とりわけ、上述したハプティクデバイスの場合は、デバイスが勝手に動き、スクロールレールに沿って画面が自動的に移動(スクロール)し始める機能である。この自動スクロール機能を一時的に止めるには、ユーザはデバイスが勝手に動かないよう握り、また自動スクロール機能を停止させるには、自動的にスクロールしようとする代表べクトルの方向に対して垂直な方向にタッチパネルの指を移動(ドラッグ)させる、もしくはデバイスに反発力を感じながら移動させることでスクロールレールから離れ、制限スクロールから自由スクロールのモードになり、自動スクロール機能が停止する。
【0072】
ここで、本発明の実施の形態に係る表示制御装置の構成の一例について図14を用いて説明する。図14に示すように、表示制御装置1400は、検出手段1401、算出手段1402、投影手段1403、表示制御手段1404、判断手段1405、切替手段1406、代表ベクトル算出手段1407、デバイス制御手段1408から構成されている。検出手段1401は、ディスプレイ上でドラッグ操作されたときのドラッグ速度及びドラッグ操作に基づいてドラッグされた方向を検出する。このドラッグ速度は、上述したように、ドラッグして弾く際、弾く前にドラッグしている間に一定時間ごとにドラッグによるドラッグ速度をサンプリングしておき、指がタッチパネルから離れる直前でのドラッグによる速度をドラッグ速度とする。
【0073】
算出手段1402は、検出された方向のベクトルの大きさとして、検出されたドラッグ速度に基づいて、スクロールが開始された際のディスプレイに表示された地点がスクロールにより移動した距離を算出する。具体的には、図2cに示すドラッグ方向を示すベクトルの大きさを算出する。投影手段1403は、ディスプレイ上での位置を指し示すカーソルが経路線上のみ移動可能とされる制限スクロールの場合、算出された距離分に相当する大きさを有する検出された方向のベクトルを、経路線に平行な方向のベクトルとして投影させる。
【0074】
表示制御手段1404は、投影されたベクトルの大きさの分だけ、かつ投影されたベクトルと逆方向に経路線を移動させて経路線を表示する。判断手段1405は、代表ベクトルに対して、ユーザのドラッグ操作が所定の第1の操作であるか否かを判断する。なお、所定の第1の操作は、代表ベクトルに対して略垂直方向の向きにドラッグする操作である。切替手段1406は、所定の第1の操作であると判断された場合、制限スクロールによる表示制御を解除し、ユーザのスクロールを自由スクロールに切り替える。
【0075】
代表ベクトル算出手段1407は、制限スクロールによるものである場合には、カーソルからの経路線上における所定の範囲内にある地点の座標情報及びカーソルのある地点の座標情報と、現在表示されている表示倍率の情報とを取得し、各地点における経路線を示す微小ベクトルに、表示倍率に応じた所定の関数値を掛け合わせて代表ベクトルを算出し、自由スクロールによるものである場合には、カーソルから最も近い位置にある経路線上の地点を基準点とし、基準点からの経路線上における所定の範囲内にある地点の座標情報及び基準点の座標情報と、現在表示されている表示倍率の情報とを取得し、各地点における経路線を示す微小ベクトルに、表示倍率に応じた所定の関数値を掛け合わせて代表ベクトルを算出する。
【0076】
デバイス制御手段1408は、制限スクロールの場合で、ドラッグ操作を所定の入力デバイス(図13に示すようなデバイスなど)を用いて行う場合、入力デバイスを介したユーザの入力方向と、代表ベクトルの方向とが所定の関係にある場合に、入力デバイスに対して振動及び/又は反発力を与える。
【0077】
次に、本発明の実施の形態に係る表示制御装置による処理フローの一例について図15を用いて説明する。図15に示すように、検出手段1401は、ディスプレイ上でドラッグ操作されたときのドラッグ速度及びドラッグ操作に基づいてドラッグされた方向を検出する(ステップS1501)。算出手段1402は、検出された方向のベクトルの大きさとして、検出されたドラッグ速度に基づいて、スクロールが開始された際のディスプレイに表示された地点がスクロールにより移動した距離を算出する(ステップS1502)。
【0078】
投影手段1403は、ディスプレイ上での位置を指し示すカーソルが経路線上のみ移動可能とされる制限スクロールの場合、算出された距離分に相当する大きさを有する検出された方向のベクトルを、経路線に平行な方向のベクトルとして投影させる(ステップS1503)。表示制御手段1404は、投影されたベクトルの大きさの分だけ、かつ投影されたベクトルと逆方向に経路線を移動させて経路線を表示する(ステップS1504)。なお、表示制御装置による制限スクロールと自由スクロールとの間の切り替えの処理フロー、代表ベクトルの生成フローなどについては上述しているため省略する。
【0079】
<第2の実施の形態>
第2の実施の形態では、第1の実施の形態における制限スクロールモードから自由スクロールモードへの切り替わり、すなわちスクロールレールから脱線すべきか否かの判定方法を発展させた判定方法と、第1の実施の形態より簡潔な自由スクロールモードから制限スクロールモードへの切り替わりの判定方法について説明する。
【0080】
まず、制限スクロールモードから自由スクロールモードへの切り替わりについて述べる。第2の実施の形態では、脱線判定の際に地図をスクロールする方向ベクトルそのものではなく、方向ベクトルの時間差分のベクトルを用いる。これにより、第2の実施の形態では、第1の実施の形態でカバーできなかったケース、すなわち経路の形状が大きく曲がっている際、曲がりきれずに誤ってスクロールレールから脱線して、ユーザの意図に反して自由スクロールになってしまうケースを防止する効果を狙う。
【0081】
第2の実施の形態の詳細を述べるにあたって、定義されるベクトルについて図16aから図19bを用いて説明する。まず、図16a、図16b、図17a、図17b、図18a、図18b、図19a、図19bでは、地図上でコントローラを操作する場合のコントローラの「方向ベクトル」の定義について述べる。図16aは、コントローラがゼロの位置にある状態を示す。ゼロの位置とは、コントローラに対して何らユーザから力が加わっていない状態でのコントローラの位置(初期位置)のことを言う。
【0082】
図16aにはコントローラの外観が示され、図16bには図16aのコントローラを真上から見たものが示され、コントローラの可動範囲が正方形で示され、コントローラの先(先端)を真上から投影した様子(黒丸がコントローラの先を投影したもの)が示されている。この場合、コントローラには力が加わっていないので可動範囲の中心(真ん中)で静止している状態である。図17a、図17bには、図16bのゼロの位置からユーザが力を加えてコントローラを前(前方)に倒した状態が示されている。図17aにはコントローラが傾いている様子が示され、図17bにはコントローラの先の位置が前に移動している様子が示されている。
【0083】
図18a、図18bには、図17a、図17bとは逆の方向にコントローラが倒された様子が示され、図18aには図17aとは逆にコントローラが少し傾く様子が示され、図18bには可動範囲内でコントローラの先の投影が逆の方向に移動している様子が示されている。図19a、図19bには、図18a、図18bと同じ方向にコントローラが倒されているが、図18a、図18bよりさらにコントローラが倒された様子が示されている。
【0084】
ここで、第2の実施の形態では、ゼロの位置からどれだけコントローラを移動させたかを表す指標を「差分方向ベクトル」と呼び、以下の数式のように定義する。コントローラの方向ベクトルをX(x、y)とし、時間Δt以前でのコントローラの方向ベクトルをXΔt前(xΔt前、yΔt前 )とすると、差分方向ベクトルは数式5のように定義され、条件式は数式6から数式9のように定義される。
【0085】
数式5:D(X、XΔt前)=(x−xΔt前、y−yΔt前 )
数式6:if(x≧0≧xΔt前) OR(x≦0≦xΔt前 ) xΔt前=0、
数式7:if(xΔt前≧x≧0)OR(0≧x≧xΔt前 ) x=0、xΔt前=0、
数式8:if(y≧0≧yΔt前 )OR(y≦0≦yΔt前 ) yΔt前=0
数式9:if(yΔt前≧y≧0)OR(0≧y≧yΔt前 ) y=0、yΔt前=0
【0086】
差分方向ベクトルの直感的解釈は、コントローラを前述のゼロの位置(中心)からどれだけ“外側”に移動させたかx成分とy成分で調べた量となる。したがって、コントローラを正方形の可動範囲領域の外側から中心に戻しただけの場合は0(ゼロ)となり、中心に戻してさらに進めた場合は、中心からさらに進めた分だけのベクトルが加算されたものとなる。これを、具体的に図16a、図16b、図17a、図17b、図18a、図18b、図19a、図19bを用いて説明する。
【0087】
コントローラがゼロの位置である図16a、図16bの状態から前に倒れた図17a、図17bの状態へ変わった場合、差分方向ベクトルは図17bの方向ベクトルの値そのものとなる。図17a、図17bのようにコントローラが前に倒された状態から図18a、図18bのように後ろに倒された状態へ移った場合は、コントローラのゼロの位置からの移動量は、図17aに示すコントローラの位置から加算されるのではなく、中心の位置からの分のみが加算されるので、図18bに示す方向ベクトルそのものが差分方向ベクトルとなる。図18a、図18bに示す状態から図19a、図19bに示す状態にコントローラが移動した場合、差分方向ベクトルは図19bに示す方向ベクトルから図18bの方向ベクトルを引いた値となる。
【0088】
次に、第1の実施の形態で説明したハプティックコントローラ(上記ハプティックデバイスに相当し、単にコントローラとも言う)に加わる斥力(上記反発力とも言う)の発生について図20a〜c、図21a〜c、図22a〜cを用いて説明する。第1の実施の形態で説明したように、代表ベクトルは、図20aに示されるような地図上の経路の形状にしたがって計算される。なお、第2の実施の形態における代表ベクトルの算出方法については、第1の実施の形態におけるものと同一であるため説明を省略する。図20bのように、コントローラを経路に沿って(代表ベクトルに沿って)平行に倒せば何ら斥力を受けることなく、地図が経路に沿ってスクロールされる。そのときのコントローラを真上から見た様子が図20cに示されている。
【0089】
図21aでは経路が右側に傾いているため、図21bのようにコントローラをそのまま前に倒すと右方向に斥力を感じるようになる。その様子が図21cに示されている。図22aは図21aと同一で経路が右に傾いており、図22bに示されるように経路に平行にコントローラを右に傾けて前に倒すと図22cのように斥力を受けることなく、経路の代表ベクトルに沿って地図をスクロールさせることができる。
【0090】
図23a〜fでは、図20a〜cの例をもとに斥力の計算方法について述べる。図23aは、図21aや図22aと同様に代表ベクトルが右上がりである。図23bでは、コントローラが前に倒され、方向ベクトルが前を向いている様子が示されている。図23cでは、コントロールの位置を表す方向ベクトルと経路の形状を表す代表ベクトルの向きを調べ、方向ベクトルを代表ベクトルと平行な成分と垂直な成分に分け、それぞれを「スクロールベクトル」、「ゆがみベクトル」と定義している様子が示されている。
【0091】
ゆがみベクトルは経路の方向に反してコントローラを動かそうとしているベクトルを意味し、そのベクトルの長さが、事前に決められたある一定の値よりも大きい場合には、ゆがみベクトルと逆の方向の斥力をハプティックコントローラに与える。これにより、経路から外れた方向にコントローラを移動させようとすると経路の両側に設置された壁にぶつかったような感覚を、触覚を通してユーザに与えることができる。この代表ベクトルと方向ベクトルから、ゆがみベクトルを計算して斥力を与える流れは第1の実施の形態で述べてあり、図24にも示されている。
【0092】
図23d、図23eは、第2の実施の形態で新しく導入する「差分方向ベクトル」と「差分ゆがみベクトル」の定義について説明するためのものである。これらは、後述するように、スクロールレールから脱線させるか、とどまらせるかの切り替え判定(「制限スクロール」→「自由スクロール」の切り替え判定)に用いられる値となる。図23d、図23e、図23fには、それぞれコントローラが2つずつ描画されている。それらは、ある瞬間のコントローラの状態と、それよりもΔt秒前のコントローラの状態とを示している。
【0093】
図23fは図23eの様子を拡大したものである。それぞれの場合のコントローラの位置をX、XΔt前とする。差分方向ベクトルは、コントローラの先端を真上から投影した位置Xと、Δt時間前の位置XΔt前との差として前述の数式5で定義される。さらに、差分ゆがみベクトルを求めるため、前述の数式5の差分方向ベクトルの代表ベクトルPへの投影を考え、代表ベクトルに平行な成分のベクトルSは数式10のように表される。
【0094】
数式10:S=(D(X、XΔt前)・P)×P
ここで、代表ベクトルPは規格化されており、「・」はベクトルの内積を意味する。差分ゆがみベクトルは、投影されたベクトルの垂直成分なので数式11のように表される。
数式11:D(X、XΔt前 )−S
なお、差分ゆがみベクトルを求めるにあたって、上記では数式5のように最初にコントローラの位置の差をとって代表ベクトルに投影したが、2つのコントローラの位置を先に投影させてゆがみベクトルを求め、それぞれのゆがみベクトルを求めてから差分をとっても数式11と数学的には同じである。
【0095】
ここで、上記定義事項を踏まえて第2の実施の形態について説明する。図25a、図25bには、スクロールレール(経路)の形状が急激に変わる急カーブや折れ線のような経路の一例が示されている。このような経路において、ユーザがタッチパネルによるドラッグやコントローラで経路に沿って地図をスクロールしている場合に、突然の経路の形状(経路の方向)の変化に気づかず、同じ方向に沿って地図をスクロールさせて、ユーザの意図に反してそのまま経路から脱線(離脱)してしまう場合がある。
【0096】
経路の形状が突然変わった場合、当然、前述のような方法で斥力も突然発生するが、ユーザがそれ以前のスクロールでコントローラに力を入れすぎていた場合には、経路の突然の曲がり角で斥力を乗り越え、誤って経路から脱線してしまう。これは、例えば高速度の車で走っていて道が突然曲がっていた場合、斥力を感じても曲がりきれず意図に反して道路から逸脱してしまうものと同様である。ここで、第1の実施の形態では、経路から脱線すべきかどうか判定する際に、スクロールしようとする方向ベクトルの値と経路の形状を表す代表ベクトルの値を単純に比較している。これでは、上記のような問題が生じてしまう。
【0097】
これを防止するため、第2の実施の形態では、ユーザが地図をスクロールさせようとした方向ベクトルと、それと時間Δtの分だけ以前の方向ベクトルとの差分を取ったベクトルである差分方向ベクトルを計算し、経路の代表ベクトルと比較することで、経路から脱線すべきかを判定するため上記の誤判定を解決することができる。
【0098】
以下に、第2の実施の形態における方向ベクトルの時間差分(差分方向ベクトル)が、判定のよい標本となる理由について、ある瞬間の地点での判定の具体例を挙げて説明する。図26aと図26bに示される経路は全く同じ経路であり、両者とも地点Eではコントローラが同じ右倒れ状態となっている。しかし、両者の意図は異なる。図26aでは、地点Aからずっとコントローラが右に倒され、経路に沿って左から右へスクロールされてきた。ユーザは、不幸にして経路の形状が突然右方向から上方向に変わったのに気づかず、コントローラを相変わらず右に倒したままにし、地点Eを通過する瞬間が図26aには示されている。ユーザは経路に沿ってスクロールさせたいという意図がある。
【0099】
図26bでは、ユーザは地点Aから地点Dまで経路に沿ってスクロールさせてきた。しかし、ユーザは途中でスクロールをやめ、地点Dや地点Eで経路から離れて周辺を見たいと思った。そこで、ユーザはコントローラを一旦ゼロの位置に戻して経路から脱線させようと経路と垂直な方向、すなわち地点Eで上向きの経路の方向(代表ベクトルの方向)と垂直な右方向にコントローラを意図的に倒し、その瞬間が図26bには示されている。
【0100】
第1の実施の形態では現在地点(例えば、地点E)にいる瞬間でのコントローラの状態を見るため、上記2つの例のどちらが経路から脱線しようとしているのか、あるいは経路に留まろうとしているのか区別することができない。地点Eでは、経路は上を向いているので代表ベクトルは上向きである。両者(図26a、図26b)とも、ユーザは右方向にスクロールさせている(方向ベクトルが右方向である)ことから、第1の実施の形態では両者とも経路から脱線すべきと判定してしまう。
【0101】
その解決方法としては、地点Eでの瞬間ではなく地点Eに達するまでの過去の過程を見ることが必要となる。第2の実施の形態では、判別する地点でのコントローラやタッチパネルでスクロールさせようとしている方向ベクトルと、そこから時間Δt秒前の過去の方向ベクトルとの差分を取った差分方向ベクトルを計算することで解決できる。差分方向ベクトルが得られれば、判定する地点での代表ベクトルと比較して代表ベクトルと垂直な方向の成分(差分ゆがみベクトルの成分)を計算し、その成分の値がある閾値より大きい場合は、経路からの脱線をしようとしていると判断する。
【0102】
図26aの地点Dでは、地点Cと地点Dにおける差分方向ベクトルは0(ゼロ)となる。また、図26aの地点E では、地点Dと地点Eにおける差分方向ベクトルは0(ゼロ)となる。よって、脱線は行われない。一方、図26bの地点Dでは、地点Cと地点Dにおける差分方向ベクトルは数式6によりやはり0(ゼロ)となる。コントローラをゼロの位置に戻そうとしているだけであるためである。また、図26bの地点Eでは、地点Dと地点Eにおける差分方向ベクトルは、地点Dでコントローラをゼロの位置に戻してから地点Eで右方向に移動(1だけ移動)したため1となる。よって、脱線が地点Eで行われる。
【0103】
この時間Δt内での差分によって判断することで、ユーザが地点Aからどれだけ初期に強くコントローラを右に倒して急カーブ(上あがりのカーブ)をむかえても、地点D、E周辺で、さらに与えられた時間Δt内に相対的に右にコントローラを強く倒さない限り、経路から脱線しないので安心してスクロールをさせることができる。もちろん、第1の実施の形態で述べたように、コントローラの場合は、コントローラの方向ベクトルのうち、経路における代表ベクトルと垂直な成分の分だけ上記で定義した斥力を感じるため、ユーザは経路の方向が変わったなと誤脱線することなく感じることができる。
【0104】
ユーザは、カーブ状の経路において斥力を感じながら経路の方向が変わり始めたと感じ、カーブに沿って地図をスクロールさせることができる。そこであえて、経路から脱線して自由スクロールモードに切り替えたい場合は、斥力の方向にさらに強くコントローラを倒すか、一度コントローラをゼロの位置の方へ戻してから斥力のある方向にコントローラを倒すことで切り替えができる。
【0105】
ここで、第2の実施の形態における制限スクロールから自由スクロールへの切り替えの判断を表示制御装置が行う際の一部のフローの一例を図27に示す。ここでは、コントローラによるドラッグ操作でスクロールする場合について説明するが、タッチパネルによるドラッグ操作でスクロールする場合でも同様に考えられる。なお、以下の各処理は、例えば図14に示される表示制御装置の各構成要素が適宜行うものである。図27に示すように、まず、表示制御装置は、コントローラの位置(x、y)とそれ以前(時間Δt前)のコントローラの位置(xbefore、ybefore)を取得する(ステップS2701)。すなわち、方向ベクトルをそれぞれ取得する。
【0106】
取得された(x、y)、(xbefore、ybefore)に上述した数式6から9を適用して差分方向ベクトルを計算する(ステップS2702)。計算された差分方向ベクトルを代表ベクトルに投影させ、投影された投影ベクトル(ベクトルS)を取得し、差分方向ベクトルから投影ベクトルを差し引いたベクトルを差分ゆがみベクトルとする。すなわち、計算された差分方向ベクトルの代表ベクトルに垂直な成分を差分ゆがみベクトルとする(ステップS2703)。差分ゆがみベクトルの成分の値が一定の値より大きいか否かを判断する(ステップS2704)。一定の値より大きい場合には自由スクロールへの切り替えリクエストにより切り替えが行われる(ステップS2705)。
【0107】
図28では、表示制御装置による制限スクロールから自由スクロールへの切り替えのための全体フローの一例が示されている。ここでは、コントローラによるドラッグ操作でスクロールする場合について説明するが、タッチパネルによるドラッグ操作でスクロールする場合でも同様に考えられる。なお、以下の各処理は、例えば図14に示される表示制御装置の各構成要素が適宜行うものである。図28に示すように、表示制御装置は、新しい位置への移動、拡大縮小値の変更のリクエストを受け付ける(ステップS2801)。受け付け後に、代表ベクトルが計算される(ステップS2802)。
【0108】
そして、コントローラの新たな位置を記録し(ステップS2803)、斥力を計算し、計算された斥力をコントローラへ与えるための処理(例えば、コントローラに対して斥力を与えるための制御信号などを生成して送信する処理)を行う(ステップS2804)。その後、制限スクロールから自由スクロールへの切り替えをするか否か判断する(ステップS2805:図27参照)。切り替えるべきと判断されると、制限スクロールから自由スクロールに切り替えられる(ステップS2806)。切り替えるべきでないと判断されると、スクロールのベクトルの強さの分だけスクロールレールに沿って地図を移動させる(ステップS2807)。
【0109】
次に、逆に自由スクロールモードから制限スクロールモードへの簡単な切り替えについて説明する。第2の実施の形態では、図29aに示すように、地図をスクロールする際の注目点となるカーソルと近くにある経路との間の距離(距離L)が、ある一定の値よりも小さく(近く)、かつ、カーソルがスクロールされる際の速度Vの絶対値|V|が、ある一定の速度より小さくなったときに自由スクロールモードから制限スクロールモードへ切り替えられる。これにより、ユーザが自由に地図をスクロールさせてカーソルを経路の近くに持っていき、その周辺でカーソルの速度を緩める若しくは止めるなどすると、カーソルが経路というレールに吸着され、経路に沿ってのみ移動する制限スクロールに切り替わる。
【0110】
カーソルから経路までの距離の計算は、図29bに示すように、経路上にある多数の標本点からカーソルまでの距離を測り、カーソルに一番近い経路点(標本点)を用いることで計算できる。なお、経路上の経路点の間隔は、表示されるピクセルの何倍かの値で固定されており、拡大縮小する経路の絶対的距離には依存しないようにしておく。
【0111】
ここで、第2の実施の形態における自由スクロールから制限スクロールへの切り替えの判断を表示制御装置が行う際のフローの一例を図30に示す。なお、以下の各処理は、例えば図14に示される表示制御装置の各構成要素が適宜行うものである。図30に示すように、表示制御装置は、スクロールがされたか否かを判断する(ステップS3001)。スクロールされたと判断すると、地図のスクロールの速度の絶対値が、事前に決められたある一定の値(所定の値)より小さいか否かを判断する(ステップS3002)。一定の値より小さいと判断されると、地図データから近傍のブロック(エリア)の経路データを読み取る(ステップS3003)。現在の拡大縮小率に合わせて経路に複数の経路点(標本点)をとる(ステップS3004)。そして、各経路点から現在のカーソルの位置との距離をとり、その距離が最小となる経路点を見つける(ステップS3005)。最小の距離が事前に決められたある値より小さいか否かを判断する(ステップS3006)。小さいと判断されると、一番近い経路点にカーソルが吸着され、制限スクロールに切り替わる(ステップS3007)。
【産業上の利用可能性】
【0112】
本発明に係る表示制御装置及び表示制御方法は、辿るべき経路が画面の外にはみ出ず、経路に沿った追跡が正確にできるため、ディスプレイ上に表示しきれない表示対象の一部を表示させる表示制御装置及び表示制御方法などに有用である。
【符号の説明】
【0113】
1400 表示制御装置
1401 検出手段
1402 算出手段
1403 投影手段
1404 表示制御手段
1405 判断手段
1406 切替手段
1407 代表ベクトル算出手段
1408 デバイス制御手段
【特許請求の範囲】
【請求項1】
地図を表示するディスプレイ上での所定の経路を示す経路線を前記ディスプレイに表示し、ユーザによるスクロールのための前記ディスプレイ上でのドラッグ操作に応じて前記経路線を移動させ、前記ディスプレイに表示されていない前記経路線の他の部分を表示させる表示制御装置であって、
前記ディスプレイ上でドラッグ操作されたときのドラッグ速度及び前記ドラッグ操作に基づいてドラッグされた方向を検出する検出手段と、
検出された前記方向のベクトルの大きさとして、検出された前記ドラッグ速度に基づいて、前記スクロールが開始された際の前記ディスプレイに表示された地点が前記スクロールにより移動した距離を算出する算出手段と、
前記ディスプレイ上での位置を指し示すカーソルが前記経路線上のみ移動可能とされる制限スクロールの場合、算出された前記距離分に相当する大きさを有する前記検出された方向のベクトルを、前記経路線に平行な方向のベクトルとして投影させる投影手段と、
投影されたベクトルの大きさの分だけ、かつ投影されたベクトルと逆方向に前記経路線を移動させて前記経路線を表示する表示制御手段とを、
備える表示制御装置。
【請求項2】
現在表示されている表示倍率での前記経路線の傾き方向を示すベクトルを代表ベクトルとする場合、
前記代表ベクトルに対して、前記ユーザの前記ドラッグ操作が所定の第1の操作であるか否かを判断する判断手段と、
前記所定の第1の操作であると判断された場合、前記制限スクロールによる表示制御を解除し、前記スクロールを、前記カーソルの移動を前記経路線上以外も可能とさせる自由スクロールに切り替える切替手段とを更に備え、
前記判断手段が、前記経路線の表示制御が前記自由スクロールの場合、前記代表ベクトルに対して、前記ユーザの前記ドラッグ操作が所定の第2の操作であるか否かを判断し、前記所定の第2の操作であると判断した場合、
前記切替手段は、前記スクロールを、前記自由スクロールから前記制限スクロールに切り替える請求項1に記載の表示制御装置。
【請求項3】
前記代表ベクトルを算出する代表ベクトル算出手段を更に備え、
前記代表ベクトル算出手段は、
現在の前記経路線の表示制御が前記制限スクロールによるものである場合には、
前記カーソルからの前記経路線上における所定の範囲内にある地点の座標情報及び前記カーソルのある地点の座標情報と、現在表示されている表示倍率の情報とを取得し、前記各地点における前記経路線を示す微小ベクトルに、前記表示倍率に応じた所定の関数値を掛け合わせて前記代表ベクトルを算出し、
現在の前記経路線の表示制御が前記自由スクロールによるものである場合には、
前記カーソルから最も近い位置にある前記経路線上の地点を基準点とし、前記基準点からの前記経路線上における所定の範囲内にある地点の座標情報及び前記基準点の座標情報と、現在表示されている表示倍率の情報とを取得し、前記各地点における前記経路線を示す微小ベクトルに、前記表示倍率に応じた所定の関数値を掛け合わせて前記代表ベクトルを算出する請求項2に記載の表示制御装置。
【請求項4】
前記所定の関数値は、窓関数による値及び/又は重み関数による値である請求項3に記載の表示制御装置。
【請求項5】
前記所定の第1の操作は、前記代表ベクトルに対して略垂直方向の向きにドラッグする操作であり、前記所定の第2の操作は、前記代表ベクトルに対して略平行方向の向きにドラッグする操作である請求項2から4のいずれか1つに記載の表示制御装置。
【請求項6】
前記経路線の表示制御が前記制限スクロールの場合で、前記ドラッグ操作を所定の入力デバイスを用いて行う場合、
前記入力デバイスを介した前記ユーザの入力方向と、前記代表ベクトルの方向とが所定の関係にある場合に、前記入力デバイスに対して振動及び/又は反発力を与えるデバイス制御手段を更に備える請求項2から5のいずれか1つに記載の表示制御装置。
【請求項7】
前記経路線の表示制御が前記制限スクロールで、前記ドラッグ操作を所定の入力デバイスを用いて行う場合であって、現在表示されている表示倍率での前記経路線の傾き方向を示すベクトルを代表ベクトルとする場合、
前記投影手段が、前記入力デバイスを介した前記ユーザの入力方向のベクトルと、所定の時間前の前記ユーザの入力方向のベクトルとの差分を取った差分方向ベクトルを前記代表ベクトルに投影させ、
前記差分方向ベクトルから投影された投影ベクトルを差し引いたベクトルの成分の値が所定の値より大きい場合に、前記制限スクロールを、前記カーソルの移動を前記経路線上以外にも可能とさせる自由スクロールに切り替える切替手段を更に備える請求項1に記載の表示制御装置。
【請求項8】
前記切替手段は、前記経路線の表示制御が前記自由スクロールの場合であって、前記所定の入力デバイスを介した前記ドラッグ操作による前記カーソルの速度が所定の速度より遅く、かつ前記カーソルと前記ディスプレイ上に表示された前記経路線との距離が所定の距離より短い場合に、前記自由スクロールを前記制限スクロールに切り替える請求項7に記載の表示制御装置。
【請求項9】
前記入力デバイスを介した前記ユーザの入力方向と、前記代表ベクトルの方向とが所定の関係にある場合に、前記入力デバイスに対して振動及び/又は反発力を与えるデバイス制御手段を更に備える請求項7に記載の表示制御装置。
【請求項10】
地図を表示するディスプレイ上での所定の経路を示す経路線を前記ディスプレイに表示し、ユーザによるスクロールのための前記ディスプレイ上でのドラッグ操作に応じて前記経路線を移動させ、前記ディスプレイに表示されていない前記経路線の他の部分を表示させる表示制御方法であって、
前記ディスプレイ上でドラッグ操作されたときのドラッグ速度及び前記ドラッグ操作に基づいてドラッグされた方向を検出する検出ステップと、
検出された前記方向のベクトルの大きさとして、検出された前記ドラッグ速度に基づいて、前記スクロールが開始された際の前記ディスプレイに表示された地点が前記スクロールにより移動した距離を算出する算出ステップと、
前記ディスプレイ上での位置を指し示すカーソルが前記経路線上のみ移動可能とされる制限スクロールの場合、算出された前記距離分に相当する大きさを有する前記検出された方向のベクトルを、前記経路線に平行な方向のベクトルとして投影させる投影ステップと、
投影されたベクトルの大きさの分だけ、かつ投影されたベクトルと逆方向に前記経路線を移動させて前記経路線を表示する表示制御ステップとを、
有する表示制御方法。
【請求項11】
現在表示されている表示倍率での前記経路線の傾き方向を示すベクトルを代表ベクトルとする場合、
前記代表ベクトルに対して、前記ユーザの前記ドラッグ操作が所定の第1の操作であるか否かを判断する判断ステップと、
前記所定の第1の操作であると判断された場合、前記制限スクロールによる表示制御を解除し、前記スクロールを、前記カーソルの移動を前記経路線上以外も可能とさせる自由スクロールに切り替える切替ステップとを更に有し、
前記経路線の表示制御が前記自由スクロールの場合、前記代表ベクトルに対して、前記ユーザの前記ドラッグ操作が所定の第2の操作であるか否かを判断し、前記所定の第2の操作であると判断した場合、前記スクロールを、前記自由スクロールから前記制限スクロールに切り替える請求項10に記載の表示制御方法。
【請求項12】
前記代表ベクトルを算出する代表ベクトル算出ステップを更に備え、
前記代表ベクトル算出ステップでは、
現在の前記経路線の表示制御が前記制限スクロールによるものである場合には、
前記カーソルからの前記経路線上における所定の範囲内にある地点の座標情報及び前記カーソルのある地点の座標情報と、現在表示されている表示倍率の情報とを取得し、前記各地点における前記経路線を示す微小ベクトルに、前記表示倍率に応じた所定の関数値を掛け合わせて前記代表ベクトルを算出し、
現在の前記経路線の表示制御が前記自由スクロールによるものである場合には、
前記カーソルから最も近い位置にある前記経路線上の地点を基準点とし、前記基準点からの前記経路線上における所定の範囲内にある地点の座標情報及び前記基準点の座標情報と、現在表示されている表示倍率の情報とを取得し、前記各地点における前記経路線を示す微小ベクトルに、前記表示倍率に応じた所定の関数値を掛け合わせて前記代表ベクトルを算出する請求項11に記載の表示制御方法。
【請求項13】
前記所定の関数値は、窓関数による値及び/又は重み関数による値である請求項12に記載の表示制御方法。
【請求項14】
前記所定の第1の操作は、前記代表ベクトルに対して略垂直方向の向きにドラッグする操作であり、前記所定の第2の操作は、前記代表ベクトルに対して略平行方向の向きにドラッグする操作である請求項11から13のいずれか1つに記載の表示制御方法。
【請求項15】
前記経路線の表示制御が前記制限スクロールの場合で、前記ドラッグ操作を所定の入力デバイスを用いて行う場合、
前記入力デバイスを介した前記ユーザの入力方向と、前記代表ベクトルの方向とが所定の関係にある場合に、前記入力デバイスに対して振動及び/又は反発力を与えるデバイス制御ステップを更に有する請求項11から14のいずれか1つに記載の表示制御方法。
【請求項16】
前記経路線の表示制御が前記制限スクロールで、前記ドラッグ操作を所定の入力デバイスを用いて行う場合であって、現在表示されている表示倍率での前記経路線の傾き方向を示すベクトルを代表ベクトルとする場合、
前記入力デバイスを介した前記ユーザの入力方向のベクトルと、所定の時間前の前記ユーザの入力方向のベクトルとの差分を取った差分方向ベクトルを前記代表ベクトルに投影させる投影ステップと、
前記差分方向ベクトルから投影された投影ベクトルを差し引いたベクトルの成分の値が所定の値より大きい場合に、前記制限スクロールを、前記カーソルの移動を前記経路線上以外にも可能とさせる自由スクロールに切り替える切替ステップを更に有する請求項10に記載の表示制御方法。
【請求項17】
前記経路線の表示制御が前記自由スクロールの場合であって、前記所定の入力デバイスを介した前記ドラッグ操作による前記カーソルの速度が所定の速度より遅く、かつ前記カーソルと前記ディスプレイ上に表示された前記経路線との距離が所定の距離より短い場合に、前記自由スクロールを前記制限スクロールに切り替える請求項16に記載の表示制御方法。
【請求項18】
前記入力デバイスを介した前記ユーザの入力方向と、前記代表ベクトルの方向とが所定の関係にある場合に、前記入力デバイスに対して振動及び/又は反発力を与えるデバイス制御ステップを更に有する請求項16に記載の表示制御方法。
【請求項1】
地図を表示するディスプレイ上での所定の経路を示す経路線を前記ディスプレイに表示し、ユーザによるスクロールのための前記ディスプレイ上でのドラッグ操作に応じて前記経路線を移動させ、前記ディスプレイに表示されていない前記経路線の他の部分を表示させる表示制御装置であって、
前記ディスプレイ上でドラッグ操作されたときのドラッグ速度及び前記ドラッグ操作に基づいてドラッグされた方向を検出する検出手段と、
検出された前記方向のベクトルの大きさとして、検出された前記ドラッグ速度に基づいて、前記スクロールが開始された際の前記ディスプレイに表示された地点が前記スクロールにより移動した距離を算出する算出手段と、
前記ディスプレイ上での位置を指し示すカーソルが前記経路線上のみ移動可能とされる制限スクロールの場合、算出された前記距離分に相当する大きさを有する前記検出された方向のベクトルを、前記経路線に平行な方向のベクトルとして投影させる投影手段と、
投影されたベクトルの大きさの分だけ、かつ投影されたベクトルと逆方向に前記経路線を移動させて前記経路線を表示する表示制御手段とを、
備える表示制御装置。
【請求項2】
現在表示されている表示倍率での前記経路線の傾き方向を示すベクトルを代表ベクトルとする場合、
前記代表ベクトルに対して、前記ユーザの前記ドラッグ操作が所定の第1の操作であるか否かを判断する判断手段と、
前記所定の第1の操作であると判断された場合、前記制限スクロールによる表示制御を解除し、前記スクロールを、前記カーソルの移動を前記経路線上以外も可能とさせる自由スクロールに切り替える切替手段とを更に備え、
前記判断手段が、前記経路線の表示制御が前記自由スクロールの場合、前記代表ベクトルに対して、前記ユーザの前記ドラッグ操作が所定の第2の操作であるか否かを判断し、前記所定の第2の操作であると判断した場合、
前記切替手段は、前記スクロールを、前記自由スクロールから前記制限スクロールに切り替える請求項1に記載の表示制御装置。
【請求項3】
前記代表ベクトルを算出する代表ベクトル算出手段を更に備え、
前記代表ベクトル算出手段は、
現在の前記経路線の表示制御が前記制限スクロールによるものである場合には、
前記カーソルからの前記経路線上における所定の範囲内にある地点の座標情報及び前記カーソルのある地点の座標情報と、現在表示されている表示倍率の情報とを取得し、前記各地点における前記経路線を示す微小ベクトルに、前記表示倍率に応じた所定の関数値を掛け合わせて前記代表ベクトルを算出し、
現在の前記経路線の表示制御が前記自由スクロールによるものである場合には、
前記カーソルから最も近い位置にある前記経路線上の地点を基準点とし、前記基準点からの前記経路線上における所定の範囲内にある地点の座標情報及び前記基準点の座標情報と、現在表示されている表示倍率の情報とを取得し、前記各地点における前記経路線を示す微小ベクトルに、前記表示倍率に応じた所定の関数値を掛け合わせて前記代表ベクトルを算出する請求項2に記載の表示制御装置。
【請求項4】
前記所定の関数値は、窓関数による値及び/又は重み関数による値である請求項3に記載の表示制御装置。
【請求項5】
前記所定の第1の操作は、前記代表ベクトルに対して略垂直方向の向きにドラッグする操作であり、前記所定の第2の操作は、前記代表ベクトルに対して略平行方向の向きにドラッグする操作である請求項2から4のいずれか1つに記載の表示制御装置。
【請求項6】
前記経路線の表示制御が前記制限スクロールの場合で、前記ドラッグ操作を所定の入力デバイスを用いて行う場合、
前記入力デバイスを介した前記ユーザの入力方向と、前記代表ベクトルの方向とが所定の関係にある場合に、前記入力デバイスに対して振動及び/又は反発力を与えるデバイス制御手段を更に備える請求項2から5のいずれか1つに記載の表示制御装置。
【請求項7】
前記経路線の表示制御が前記制限スクロールで、前記ドラッグ操作を所定の入力デバイスを用いて行う場合であって、現在表示されている表示倍率での前記経路線の傾き方向を示すベクトルを代表ベクトルとする場合、
前記投影手段が、前記入力デバイスを介した前記ユーザの入力方向のベクトルと、所定の時間前の前記ユーザの入力方向のベクトルとの差分を取った差分方向ベクトルを前記代表ベクトルに投影させ、
前記差分方向ベクトルから投影された投影ベクトルを差し引いたベクトルの成分の値が所定の値より大きい場合に、前記制限スクロールを、前記カーソルの移動を前記経路線上以外にも可能とさせる自由スクロールに切り替える切替手段を更に備える請求項1に記載の表示制御装置。
【請求項8】
前記切替手段は、前記経路線の表示制御が前記自由スクロールの場合であって、前記所定の入力デバイスを介した前記ドラッグ操作による前記カーソルの速度が所定の速度より遅く、かつ前記カーソルと前記ディスプレイ上に表示された前記経路線との距離が所定の距離より短い場合に、前記自由スクロールを前記制限スクロールに切り替える請求項7に記載の表示制御装置。
【請求項9】
前記入力デバイスを介した前記ユーザの入力方向と、前記代表ベクトルの方向とが所定の関係にある場合に、前記入力デバイスに対して振動及び/又は反発力を与えるデバイス制御手段を更に備える請求項7に記載の表示制御装置。
【請求項10】
地図を表示するディスプレイ上での所定の経路を示す経路線を前記ディスプレイに表示し、ユーザによるスクロールのための前記ディスプレイ上でのドラッグ操作に応じて前記経路線を移動させ、前記ディスプレイに表示されていない前記経路線の他の部分を表示させる表示制御方法であって、
前記ディスプレイ上でドラッグ操作されたときのドラッグ速度及び前記ドラッグ操作に基づいてドラッグされた方向を検出する検出ステップと、
検出された前記方向のベクトルの大きさとして、検出された前記ドラッグ速度に基づいて、前記スクロールが開始された際の前記ディスプレイに表示された地点が前記スクロールにより移動した距離を算出する算出ステップと、
前記ディスプレイ上での位置を指し示すカーソルが前記経路線上のみ移動可能とされる制限スクロールの場合、算出された前記距離分に相当する大きさを有する前記検出された方向のベクトルを、前記経路線に平行な方向のベクトルとして投影させる投影ステップと、
投影されたベクトルの大きさの分だけ、かつ投影されたベクトルと逆方向に前記経路線を移動させて前記経路線を表示する表示制御ステップとを、
有する表示制御方法。
【請求項11】
現在表示されている表示倍率での前記経路線の傾き方向を示すベクトルを代表ベクトルとする場合、
前記代表ベクトルに対して、前記ユーザの前記ドラッグ操作が所定の第1の操作であるか否かを判断する判断ステップと、
前記所定の第1の操作であると判断された場合、前記制限スクロールによる表示制御を解除し、前記スクロールを、前記カーソルの移動を前記経路線上以外も可能とさせる自由スクロールに切り替える切替ステップとを更に有し、
前記経路線の表示制御が前記自由スクロールの場合、前記代表ベクトルに対して、前記ユーザの前記ドラッグ操作が所定の第2の操作であるか否かを判断し、前記所定の第2の操作であると判断した場合、前記スクロールを、前記自由スクロールから前記制限スクロールに切り替える請求項10に記載の表示制御方法。
【請求項12】
前記代表ベクトルを算出する代表ベクトル算出ステップを更に備え、
前記代表ベクトル算出ステップでは、
現在の前記経路線の表示制御が前記制限スクロールによるものである場合には、
前記カーソルからの前記経路線上における所定の範囲内にある地点の座標情報及び前記カーソルのある地点の座標情報と、現在表示されている表示倍率の情報とを取得し、前記各地点における前記経路線を示す微小ベクトルに、前記表示倍率に応じた所定の関数値を掛け合わせて前記代表ベクトルを算出し、
現在の前記経路線の表示制御が前記自由スクロールによるものである場合には、
前記カーソルから最も近い位置にある前記経路線上の地点を基準点とし、前記基準点からの前記経路線上における所定の範囲内にある地点の座標情報及び前記基準点の座標情報と、現在表示されている表示倍率の情報とを取得し、前記各地点における前記経路線を示す微小ベクトルに、前記表示倍率に応じた所定の関数値を掛け合わせて前記代表ベクトルを算出する請求項11に記載の表示制御方法。
【請求項13】
前記所定の関数値は、窓関数による値及び/又は重み関数による値である請求項12に記載の表示制御方法。
【請求項14】
前記所定の第1の操作は、前記代表ベクトルに対して略垂直方向の向きにドラッグする操作であり、前記所定の第2の操作は、前記代表ベクトルに対して略平行方向の向きにドラッグする操作である請求項11から13のいずれか1つに記載の表示制御方法。
【請求項15】
前記経路線の表示制御が前記制限スクロールの場合で、前記ドラッグ操作を所定の入力デバイスを用いて行う場合、
前記入力デバイスを介した前記ユーザの入力方向と、前記代表ベクトルの方向とが所定の関係にある場合に、前記入力デバイスに対して振動及び/又は反発力を与えるデバイス制御ステップを更に有する請求項11から14のいずれか1つに記載の表示制御方法。
【請求項16】
前記経路線の表示制御が前記制限スクロールで、前記ドラッグ操作を所定の入力デバイスを用いて行う場合であって、現在表示されている表示倍率での前記経路線の傾き方向を示すベクトルを代表ベクトルとする場合、
前記入力デバイスを介した前記ユーザの入力方向のベクトルと、所定の時間前の前記ユーザの入力方向のベクトルとの差分を取った差分方向ベクトルを前記代表ベクトルに投影させる投影ステップと、
前記差分方向ベクトルから投影された投影ベクトルを差し引いたベクトルの成分の値が所定の値より大きい場合に、前記制限スクロールを、前記カーソルの移動を前記経路線上以外にも可能とさせる自由スクロールに切り替える切替ステップを更に有する請求項10に記載の表示制御方法。
【請求項17】
前記経路線の表示制御が前記自由スクロールの場合であって、前記所定の入力デバイスを介した前記ドラッグ操作による前記カーソルの速度が所定の速度より遅く、かつ前記カーソルと前記ディスプレイ上に表示された前記経路線との距離が所定の距離より短い場合に、前記自由スクロールを前記制限スクロールに切り替える請求項16に記載の表示制御方法。
【請求項18】
前記入力デバイスを介した前記ユーザの入力方向と、前記代表ベクトルの方向とが所定の関係にある場合に、前記入力デバイスに対して振動及び/又は反発力を与えるデバイス制御ステップを更に有する請求項16に記載の表示制御方法。
【図1a】
【図1b】
【図2a】
【図2b】
【図2c】
【図2d】
【図2e】
【図2f】
【図3a】
【図3b】
【図3c】
【図3d】
【図4a】
【図4b】
【図4c】
【図5a】
【図5b】
【図5c】
【図5d】
【図5e】
【図6a】
【図6b】
【図6c】
【図6d】
【図6e】
【図7】
【図8a】
【図8b】
【図8c】
【図8d】
【図8e】
【図9】
【図10a】
【図10b】
【図10c】
【図10d】
【図10e】
【図10f】
【図10g】
【図11】
【図12a】
【図12b】
【図13a】
【図13b】
【図13c】
【図13d】
【図13e】
【図14】
【図15】
【図16a】
【図16b】
【図17a】
【図17b】
【図18a】
【図18b】
【図19a】
【図19b】
【図20a】
【図20b】
【図20c】
【図21a】
【図21b】
【図21c】
【図22a】
【図22b】
【図22c】
【図23a】
【図23b】
【図23c】
【図23d】
【図23e】
【図23f】
【図24】
【図25a】
【図25b】
【図26a】
【図26b】
【図27】
【図28】
【図29a】
【図29b】
【図30】
【図1b】
【図2a】
【図2b】
【図2c】
【図2d】
【図2e】
【図2f】
【図3a】
【図3b】
【図3c】
【図3d】
【図4a】
【図4b】
【図4c】
【図5a】
【図5b】
【図5c】
【図5d】
【図5e】
【図6a】
【図6b】
【図6c】
【図6d】
【図6e】
【図7】
【図8a】
【図8b】
【図8c】
【図8d】
【図8e】
【図9】
【図10a】
【図10b】
【図10c】
【図10d】
【図10e】
【図10f】
【図10g】
【図11】
【図12a】
【図12b】
【図13a】
【図13b】
【図13c】
【図13d】
【図13e】
【図14】
【図15】
【図16a】
【図16b】
【図17a】
【図17b】
【図18a】
【図18b】
【図19a】
【図19b】
【図20a】
【図20b】
【図20c】
【図21a】
【図21b】
【図21c】
【図22a】
【図22b】
【図22c】
【図23a】
【図23b】
【図23c】
【図23d】
【図23e】
【図23f】
【図24】
【図25a】
【図25b】
【図26a】
【図26b】
【図27】
【図28】
【図29a】
【図29b】
【図30】
【公開番号】特開2011−227473(P2011−227473A)
【公開日】平成23年11月10日(2011.11.10)
【国際特許分類】
【出願番号】特願2011−60948(P2011−60948)
【出願日】平成23年3月18日(2011.3.18)
【出願人】(502324066)株式会社デンソーアイティーラボラトリ (332)
【Fターム(参考)】
【公開日】平成23年11月10日(2011.11.10)
【国際特許分類】
【出願日】平成23年3月18日(2011.3.18)
【出願人】(502324066)株式会社デンソーアイティーラボラトリ (332)
【Fターム(参考)】
[ Back to top ]