(57)【要約】【課題】辿るべき経路が画面の外にはみ出ず、経路に沿った追跡が正確にできる表示制御装置などを提供する。【解決手段】ディスプレイ上でドラッグ操作されたときのドラッグ速度とドラッグされた方向を検出する検出手段１４０１と、検出された方向のベクトルの大きさとして、検出されたドラッグ速度に基づいて、スクロールが開始された際のディスプレイに表示された地点がドラッグ操作により移動した距離を算出する算出手段１４０２と、ディスプレイ上での位置を指し示すカーソルが経路線上のみ移動可能とされる制限スクロールの場合、算出された距離分に相当する大きさを有する検出された方向のベクトルを、経路線に平行な方向のベクトルとして投影させる投影手段１４０３と、投影されたベクトルの大きさの分だけ、かつ投影されたベクトルと逆方向に経路線を移動させて経路線を表示する表示制御手段１４０４とを備える。【選択図】図１４
2011227473.tif 000002
【特許請求の範囲】
【請求項１】
地図を表示するディスプレイ上での所定の経路を示す経路線を前記ディスプレイに表示し、ユーザによるスクロールのための前記ディスプレイ上でのドラッグ操作に応じて前記経路線を移動させ、前記ディスプレイに表示されていない前記経路線の他の部分を表示させる表示制御装置であって、
前記ディスプレイ上でドラッグ操作されたときのドラッグ速度及び前記ドラッグ操作に基づいてドラッグされた方向を検出する検出手段と、
検出された前記方向のベクトルの大きさとして、検出された前記ドラッグ速度に基づいて、前記スクロールが開始された際の前記ディスプレイに表示された地点が前記スクロールにより移動した距離を算出する算出手段と、
前記ディスプレイ上での位置を指し示すカーソルが前記経路線上のみ移動可能とされる制限スクロールの場合、算出された前記距離分に相当する大きさを有する前記検出された方向のベクトルを、前記経路線に平行な方向のベクトルとして投影させる投影手段と、
投影されたベクトルの大きさの分だけ、かつ投影されたベクトルと逆方向に前記経路線を移動させて前記経路線を表示する表示制御手段とを、
備える表示制御装置。
【請求項２】
現在表示されている表示倍率での前記経路線の傾き方向を示すベクトルを代表ベクトルとする場合、
前記代表ベクトルに対して、前記ユーザの前記ドラッグ操作が所定の第１の操作であるか否かを判断する判断手段と、
前記所定の第１の操作であると判断された場合、前記制限スクロールによる表示制御を解除し、前記スクロールを、前記カーソルの移動を前記経路線上以外も可能とさせる自由スクロールに切り替える切替手段とを更に備え、
前記判断手段が、前記経路線の表示制御が前記自由スクロールの場合、前記代表ベクトルに対して、前記ユーザの前記ドラッグ操作が所定の第２の操作であるか否かを判断し、前記所定の第２の操作であると判断した場合、
前記切替手段は、前記スクロールを、前記自由スクロールから前記制限スクロールに切り替える請求項１に記載の表示制御装置。
【請求項３】
前記代表ベクトルを算出する代表ベクトル算出手段を更に備え、
前記代表ベクトル算出手段は、
現在の前記経路線の表示制御が前記制限スクロールによるものである場合には、
前記カーソルからの前記経路線上における所定の範囲内にある地点の座標情報及び前記カーソルのある地点の座標情報と、現在表示されている表示倍率の情報とを取得し、前記各地点における前記経路線を示す微小ベクトルに、前記表示倍率に応じた所定の関数値を掛け合わせて前記代表ベクトルを算出し、
現在の前記経路線の表示制御が前記自由スクロールによるものである場合には、
前記カーソルから最も近い位置にある前記経路線上の地点を基準点とし、前記基準点からの前記経路線上における所定の範囲内にある地点の座標情報及び前記基準点の座標情報と、現在表示されている表示倍率の情報とを取得し、前記各地点における前記経路線を示す微小ベクトルに、前記表示倍率に応じた所定の関数値を掛け合わせて前記代表ベクトルを算出する請求項２に記載の表示制御装置。
【請求項４】
前記所定の関数値は、窓関数による値及び／又は重み関数による値である請求項３に記載の表示制御装置。
【請求項５】
前記所定の第１の操作は、前記代表ベクトルに対して略垂直方向の向きにドラッグする操作であり、前記所定の第２の操作は、前記代表ベクトルに対して略平行方向の向きにドラッグする操作である請求項２から４のいずれか１つに記載の表示制御装置。
【請求項６】
前記経路線の表示制御が前記制限スクロールの場合で、前記ドラッグ操作を所定の入力デバイスを用いて行う場合、
前記入力デバイスを介した前記ユーザの入力方向と、前記代表ベクトルの方向とが所定の関係にある場合に、前記入力デバイスに対して振動及び／又は反発力を与えるデバイス制御手段を更に備える請求項２から５のいずれか１つに記載の表示制御装置。
【請求項７】
前記経路線の表示制御が前記制限スクロールで、前記ドラッグ操作を所定の入力デバイスを用いて行う場合であって、現在表示されている表示倍率での前記経路線の傾き方向を示すベクトルを代表ベクトルとする場合、
前記投影手段が、前記入力デバイスを介した前記ユーザの入力方向のベクトルと、所定の時間前の前記ユーザの入力方向のベクトルとの差分を取った差分方向ベクトルを前記代表ベクトルに投影させ、
前記差分方向ベクトルから投影された投影ベクトルを差し引いたベクトルの成分の値が所定の値より大きい場合に、前記制限スクロールを、前記カーソルの移動を前記経路線上以外にも可能とさせる自由スクロールに切り替える切替手段を更に備える請求項１に記載の表示制御装置。
【請求項８】
前記切替手段は、前記経路線の表示制御が前記自由スクロールの場合であって、前記所定の入力デバイスを介した前記ドラッグ操作による前記カーソルの速度が所定の速度より遅く、かつ前記カーソルと前記ディスプレイ上に表示された前記経路線との距離が所定の距離より短い場合に、前記自由スクロールを前記制限スクロールに切り替える請求項７に記載の表示制御装置。
【請求項９】
前記入力デバイスを介した前記ユーザの入力方向と、前記代表ベクトルの方向とが所定の関係にある場合に、前記入力デバイスに対して振動及び／又は反発力を与えるデバイス制御手段を更に備える請求項７に記載の表示制御装置。
【請求項１０】
地図を表示するディスプレイ上での所定の経路を示す経路線を前記ディスプレイに表示し、ユーザによるスクロールのための前記ディスプレイ上でのドラッグ操作に応じて前記経路線を移動させ、前記ディスプレイに表示されていない前記経路線の他の部分を表示させる表示制御方法であって、
前記ディスプレイ上でドラッグ操作されたときのドラッグ速度及び前記ドラッグ操作に基づいてドラッグされた方向を検出する検出ステップと、
検出された前記方向のベクトルの大きさとして、検出された前記ドラッグ速度に基づいて、前記スクロールが開始された際の前記ディスプレイに表示された地点が前記スクロールにより移動した距離を算出する算出ステップと、
前記ディスプレイ上での位置を指し示すカーソルが前記経路線上のみ移動可能とされる制限スクロールの場合、算出された前記距離分に相当する大きさを有する前記検出された方向のベクトルを、前記経路線に平行な方向のベクトルとして投影させる投影ステップと、
投影されたベクトルの大きさの分だけ、かつ投影されたベクトルと逆方向に前記経路線を移動させて前記経路線を表示する表示制御ステップとを、
有する表示制御方法。
【請求項１１】
現在表示されている表示倍率での前記経路線の傾き方向を示すベクトルを代表ベクトルとする場合、
前記代表ベクトルに対して、前記ユーザの前記ドラッグ操作が所定の第１の操作であるか否かを判断する判断ステップと、
前記所定の第１の操作であると判断された場合、前記制限スクロールによる表示制御を解除し、前記スクロールを、前記カーソルの移動を前記経路線上以外も可能とさせる自由スクロールに切り替える切替ステップとを更に有し、
前記経路線の表示制御が前記自由スクロールの場合、前記代表ベクトルに対して、前記ユーザの前記ドラッグ操作が所定の第２の操作であるか否かを判断し、前記所定の第２の操作であると判断した場合、前記スクロールを、前記自由スクロールから前記制限スクロールに切り替える請求項１０に記載の表示制御方法。
【請求項１２】
前記代表ベクトルを算出する代表ベクトル算出ステップを更に備え、
前記代表ベクトル算出ステップでは、
現在の前記経路線の表示制御が前記制限スクロールによるものである場合には、
前記カーソルからの前記経路線上における所定の範囲内にある地点の座標情報及び前記カーソルのある地点の座標情報と、現在表示されている表示倍率の情報とを取得し、前記各地点における前記経路線を示す微小ベクトルに、前記表示倍率に応じた所定の関数値を掛け合わせて前記代表ベクトルを算出し、
現在の前記経路線の表示制御が前記自由スクロールによるものである場合には、
前記カーソルから最も近い位置にある前記経路線上の地点を基準点とし、前記基準点からの前記経路線上における所定の範囲内にある地点の座標情報及び前記基準点の座標情報と、現在表示されている表示倍率の情報とを取得し、前記各地点における前記経路線を示す微小ベクトルに、前記表示倍率に応じた所定の関数値を掛け合わせて前記代表ベクトルを算出する請求項１１に記載の表示制御方法。
【請求項１３】
前記所定の関数値は、窓関数による値及び／又は重み関数による値である請求項１２に記載の表示制御方法。
【請求項１４】
前記所定の第１の操作は、前記代表ベクトルに対して略垂直方向の向きにドラッグする操作であり、前記所定の第２の操作は、前記代表ベクトルに対して略平行方向の向きにドラッグする操作である請求項１１から１３のいずれか１つに記載の表示制御方法。
【請求項１５】
前記経路線の表示制御が前記制限スクロールの場合で、前記ドラッグ操作を所定の入力デバイスを用いて行う場合、
前記入力デバイスを介した前記ユーザの入力方向と、前記代表ベクトルの方向とが所定の関係にある場合に、前記入力デバイスに対して振動及び／又は反発力を与えるデバイス制御ステップを更に有する請求項１１から１４のいずれか１つに記載の表示制御方法。
【請求項１６】
前記経路線の表示制御が前記制限スクロールで、前記ドラッグ操作を所定の入力デバイスを用いて行う場合であって、現在表示されている表示倍率での前記経路線の傾き方向を示すベクトルを代表ベクトルとする場合、
前記入力デバイスを介した前記ユーザの入力方向のベクトルと、所定の時間前の前記ユーザの入力方向のベクトルとの差分を取った差分方向ベクトルを前記代表ベクトルに投影させる投影ステップと、
前記差分方向ベクトルから投影された投影ベクトルを差し引いたベクトルの成分の値が所定の値より大きい場合に、前記制限スクロールを、前記カーソルの移動を前記経路線上以外にも可能とさせる自由スクロールに切り替える切替ステップを更に有する請求項１０に記載の表示制御方法。
【請求項１７】
前記経路線の表示制御が前記自由スクロールの場合であって、前記所定の入力デバイスを介した前記ドラッグ操作による前記カーソルの速度が所定の速度より遅く、かつ前記カーソルと前記ディスプレイ上に表示された前記経路線との距離が所定の距離より短い場合に、前記自由スクロールを前記制限スクロールに切り替える請求項１６に記載の表示制御方法。
【請求項１８】
前記入力デバイスを介した前記ユーザの入力方向と、前記代表ベクトルの方向とが所定の関係にある場合に、前記入力デバイスに対して振動及び／又は反発力を与えるデバイス制御ステップを更に有する請求項１６に記載の表示制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディスプレイ上に表示しきれない表示対象の一部を表示させる表示制御装置及び表示制御方法に関する。
【背景技術】
【０００２】
コンピュータグラフィックスにより地理空間や概念空間を示す空間を描き、その空間の中をユーザが入力デバイスを通じて自由に移動でき、さらにその空間を拡大、縮小できる技術がある（例えば、特許文献１を参照）。その空間内では、地理空間の場合には経路を示した線であり、概念空間の場合にはある概念を示した線である。ユーザがそれらの線の全体像や線の一部の周辺に何が存在するか見るためには見るための操作が必要となってきた。
【０００３】
ここで、画面に描かれた地理空間や概念空間の中を、ユーザがタッチパネル、マウス、スティックデバイスなどの入力デバイスを通じて自由に移動できる環境があるとする。その中で、地図上に描かれた運転経路や、ある点と他の点を結んだ概念的な線（折れ線、曲線など）を辿って見たい場合、ユーザは、入力デバイスへの入力を通じて、移動や拡大、縮小をこまめに繰り返して行い、線を追っていく必要がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００２−２４３４８９号公報（要約）
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、入力が強すぎる（例えば、スクロールを勢いよく強く行うなど）と辿るべき経路が画面の外にはみ出たり、入力が弱すぎる（例えば、スクロールを弱く軽く行うなど）となかなか線に沿って先に進まなかったりする。また、拡大の中心を線上としなければ、辿るべき線が画面の外にはみ出て消えてしまったりするなどの問題があった。
【０００６】
本発明は、上記の問題点に鑑み、辿るべき経路が画面の外にはみ出ず、経路に沿った追跡が正確にできる表示制御装置及び表示制御方法を提供することを目的とする。
【０００７】
すなわち、タッチパネルやコントローラなどによるユーザの操作に際し、地図空間や概念空間のスクロール移動を経路などの線上（レール上）でのみしかできないように拘束を与えて、さらにそれに加えて、地図上などを無制限に移動できる「自由スクロール」モードと、決められた線上もしくは限定領域内のみスクロールできる「制限スクロール」モードとの２つのモードを提供し、かつ、前述の２つのモードの切り替えも新たなボタンを押すことなく、同様のストロークやドラッグで行うことができるジェスチャー認識の機能を備えたインターフェースを提案する。
【０００８】
具体的には、スクロールを制限させたい線にレールのような質感をもたせ、画面の中心のカーソルなどのある注目点をレールの近くに持って行き、レールに平行してなぞると、カーソルとレールが絡んで、レール上のみでスクロールされるようになる。また、レールの方向に対して垂直な方向に強く引っ張るとカーソルがレールから解き放たれ、カーソルが自由に動き、「自由スクロール」モードに戻るというものである。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本発明によれば、地図を表示するディスプレイ上での所定の経路を示す経路線を前記ディスプレイに表示し、ユーザによるスクロールのための前記ディスプレイ上でのドラッグ操作に応じて前記経路線を移動させ、前記ディスプレイに表示されていない前記経路線の他の部分を表示させる表示制御装置であって、前記ディスプレイ上でドラッグ操作されたときのドラッグ速度及び前記ドラッグ操作に基づいてドラッグされた方向を検出する検出手段と、検出された前記方向のベクトルの大きさとして、検出された前記ドラッグ速度に基づいて、前記スクロールが開始された際の前記ディスプレイに表示された地点が前記スクロールにより移動した距離を算出する算出手段と、前記ディスプレイ上での位置を指し示すカーソルが前記経路線上のみ移動可能とされる制限スクロールの場合、算出された前記距離分に相当する大きさを有する前記検出された方向のベクトルを、前記経路線に平行な方向のベクトルとして投影させる投影手段と、投影されたベクトルの大きさの分だけ、かつ投影されたベクトルと逆方向に前記経路線を移動させて前記経路線を表示する表示制御手段とを、備える表示制御装置が提供される。この構成により、辿るべき経路が画面の外にはみ出ず、経路に沿った追跡が正確にできる。なお、経路とは、例えばある地点からある地点までのルート（例えば、出発地点及び到着地点を入力することにより算出される最短距離ルート、最短時間ルートなど）を言う。また、ここでは、経路線を表示の対象としているが、経路線に限られるものではなく、後述する概念を示す概念線などであってもよい。また、上述する経路線は、後述するスクロールレールに相当する。また、ここでの投影は、経路線と平行な方向のベクトルの大きさを算出することと等価であり、投影させずに経路線と平行な方向のベクトルの大きさを算出できれば投影させなくてもよい。また 、ドラッグ操作が後述するハプティックデバイスによって行われる場合、ドラッグ速度は、例えばハプティックデバイスを静止状態（外部からの力が加わっていない初期の状態）から傾けた角度に応じて変化し、最大に傾けた場合に最大速度となる。ハプティックデバイスを傾けることを止めると、後述するように摩擦力などが設定されていれば、ある程度進むと自動的にスクロールが止まる。
【００１０】
また、本発明の表示制御装置において、現在表示されている表示倍率での前記経路線の傾き方向を示すベクトルを代表ベクトルとする場合、前記代表ベクトルに対して、前記ユーザの前記ドラッグ操作が所定の第１の操作であるか否かを判断する判断手段と、前記所定の第１の操作であると判断された場合、前記制限スクロールによる表示制御を解除し、前記スクロールを、前記カーソルの移動を前記経路線上以外も可能とさせる自由スクロールに切り替える切替手段とを更に備え、前記判断手段が、前記経路線の表示制御が前記自由スクロールの場合、前記代表ベクトルに対して、前記ユーザの前記ドラッグ操作が所定の第２の操作であるか否かを判断し、前記所定の第２の操作であると判断した場合、前記切替手段は、前記スクロールを、前記自由スクロールから前記制限スクロールに切り替えることは、本発明の好ましい態様である。この構成により、用途に合わせて用いることができる。ここで、経路線の傾き方向とは、所定の基準線（例えば、現在表示されている表示倍率での水平方向を示す線や、ある方位方向（東西方向や南北方向など）を示す線など）に対する傾きを言う。
【００１１】
また、本発明の表示制御装置において、前記代表ベクトルを算出する代表ベクトル算出手段を更に備え、前記代表ベクトル算出手段が、現在の前記経路線の表示制御が前記制限スクロールによるものである場合には、前記カーソルからの前記経路線上における所定の範囲内にある地点の座標情報及び前記カーソルのある地点の座標情報と、現在表示されている表示倍率の情報とを取得し、前記各地点における前記経路線を示す微小ベクトルに、前記表示倍率に応じた所定の関数値を掛け合わせて前記代表ベクトルを算出し、現在の前記経路線の表示制御が前記自由スクロールによるものである場合には、前記カーソルから最も近い位置にある前記経路線上の地点を基準点とし、前記基準点からの前記経路線上における所定の範囲内にある地点の座標情報及び前記基準点の座標情報と、現在表示されている表示倍率の情報とを取得し、前記各地点における前記経路線を示す微小ベクトルに、前記表示倍率に応じた所定の関数値を掛け合わせて前記代表ベクトルを算出することは、本発明の好ましい態様である。この構成により、適切なベクトルを算出することができる。
【００１２】
また、本発明の表示制御装置において、前記所定の関数値が、窓関数による値及び／又は重み関数による値であることは、本発明の好ましい態様である。この構成により、代表ベクトルの効率的な算出処理を行うことができる。
【００１３】
また、本発明の表示制御装置において、前記所定の第１の操作は、前記代表ベクトルに対して略垂直方向の向きにドラッグする操作であり、前記所定の第２の操作は、前記代表ベクトルに対して略平行方向の向きにドラッグする操作であることは、本発明の好ましい態様である。この構成により、制限スクロールと自由スクロールの切り替えを容易に行うことができる。
【００１４】
また、本発明の表示制御装置において、前記経路線の表示制御が前記制限スクロールの場合で、前記ドラッグ操作を所定の入力デバイスを用いて行う場合、前記入力デバイスを介した前記ユーザの入力方向と、前記代表ベクトルの方向とが所定の関係にある場合に、前記入力デバイスに対して振動及び／又は反発力を与えるデバイス制御手段を更に備えることは、本発明の好ましい態様である。この構成により、画面を注視しなくても、制限スクロールと自由スクロールの切り替えを容易に行うことができる。
【００１５】
また、本発明の表示制御装置において、前記経路線の表示制御が前記制限スクロールで、前記ドラッグ操作を所定の入力デバイスを用いて行う場合であって、現在表示されている表示倍率での前記経路線の傾き方向を示すベクトルを代表ベクトルとする場合、前記投影手段が、前記入力デバイスを介した前記ユーザの入力方向のベクトルと、所定の時間前の前記ユーザの入力方向のベクトルとの差分を取った差分方向ベクトルを前記代表ベクトルに投影させ、前記差分方向ベクトルから投影された投影ベクトルを差し引いたベクトルの成分の値が所定の値より大きい場合に、前記制限スクロールを、前記カーソルの移動を前記経路線上以外にも可能とさせる自由スクロールに切り替える切替手段を更に備えることは、本発明の好ましい態様である。この構成により、ユーザが初期に強くコントローラを倒して急カーブ（上あがりのカーブ）をむかえても、さらに与えられた時間Δｔ内に相対的にコントローラを強く倒さない限り、経路から脱線しないため、安心してスクロールすることができる。
【００１６】
また、本発明の表示制御装置において、前記切替手段は、前記経路線の表示制御が前記自由スクロールの場合であって、前記所定の入力デバイスを介した前記ドラッグ操作による前記カーソルの速度が所定の速度より遅く、かつ前記カーソルと前記ディスプレイ上に表示された前記経路線との距離が所定の距離より短い場合に、前記自由スクロールを前記制限スクロールに切り替えることは、本発明の好ましい態様である。この構成により、自由スクロールのモードから制限スクロールのモードへの切り替えを容易にすることができる。
【００１７】
また、本発明の表示制御装置において、前記入力デバイスを介した前記ユーザの入力方向と、前記代表ベクトルの方向とが所定の関係にある場合に、前記入力デバイスに対して振動及び／又は反発力を与えるデバイス制御手段を更に備えることは、本発明の好ましい態様である。この構成により、経路の方向が変わったと誤脱線することなく感じることができる。
【００１８】
また、本発明によれば、地図を表示するディスプレイ上での所定の経路を示す経路線を前記ディスプレイに表示し、ユーザによるスクロールのための前記ディスプレイ上でのドラッグ操作に応じて前記経路線を移動させ、前記ディスプレイに表示されていない前記経路線の他の部分を表示させる表示制御方法であって、前記ディスプレイ上でドラッグ操作されたときのドラッグ速度及び前記ドラッグ操作に基づいてドラッグされた方向を検出する検出ステップと、検出された前記方向のベクトルの大きさとして、検出された前記ドラッグ速度に基づいて、前記スクロールが開始された際の前記ディスプレイに表示された地点が前記スクロールにより移動した距離を算出する算出ステップと、前記ディスプレイ上での位置を指し示すカーソルが前記経路線上のみ移動可能とされる制限スクロールの場合、算出された前記距離分に相当する大きさを有する前記検出された方向のベクトルを、前記経路線に平行な方向のベクトルとして投影させる投影ステップと、投影されたベクトルの大きさの分だけ、かつ投影されたベクトルと逆方向に前記経路線を移動させて前記経路線を表示する表示制御ステップとを、有する表示制御方法が提供される。この構成により、辿るべき経路が画面の外にはみ出ず、経路に沿った追跡が正確にできる。
【００１９】
また、本発明の表示制御方法において、現在表示されている表示倍率での前記経路線の傾き方向を示すベクトルを代表ベクトルとする場合、前記代表ベクトルに対して、前記ユーザの前記ドラッグ操作が所定の第１の操作であるか否かを判断する判断ステップと、前記所定の第１の操作であると判断された場合、前記制限スクロールによる表示制御を解除し、前記スクロールを、前記カーソルの移動を前記経路線上以外も可能とさせる自由スクロールに切り替える切替ステップとを更に有し、前記経路線の表示制御が前記自由スクロールの場合、前記代表ベクトルに対して、前記ユーザの前記ドラッグ操作が所定の第２の操作であるか否かを判断し、前記所定の第２の操作であると判断した場合、前記スクロールを、前記自由スクロールから前記制限スクロールに切り替えることは、本発明の好ましい態様である。この構成により、用途に合わせて用いることができる。
【００２０】
また、本発明の表示制御方法において、前記代表ベクトルを算出する代表ベクトル算出ステップを更に備え、前記代表ベクトル算出ステップで、現在の前記経路線の表示制御が前記制限スクロールによるものである場合には、前記カーソルからの前記経路線上における所定の範囲内にある地点の座標情報及び前記カーソルのある地点の座標情報と、現在表示されている表示倍率の情報とを取得し、前記各地点における前記経路線を示す微小ベクトルに、前記表示倍率に応じた所定の関数値を掛け合わせて前記代表ベクトルを算出し、現在の前記経路線の表示制御が前記自由スクロールによるものである場合には、前記カーソルから最も近い位置にある前記経路線上の地点を基準点とし、前記基準点からの前記経路線上における所定の範囲内にある地点の座標情報及び前記基準点の座標情報と、現在表示されている表示倍率の情報とを取得し、前記各地点における前記経路線を示す微小ベクトルに、前記表示倍率に応じた所定の関数値を掛け合わせて前記代表ベクトルを算出することは、本発明の好ましい態様である。この構成により、適切なベクトルを算出することができる。
【００２１】
また、本発明の表示制御方法において、前記所定の関数値が、窓関数による値及び／又は重み関数による値であることは、本発明の好ましい態様である。この構成により、代表ベクトルの効率的な算出処理を行うことができる。
【００２２】
また、本発明の表示制御方法において、前記所定の第１の操作は、前記代表ベクトルに対して略垂直方向の向きにドラッグする操作であり、前記所定の第２の操作は、前記代表ベクトルに対して略平行方向の向きにドラッグする操作であることは、本発明の好ましい態様である。この構成により、制限スクロールと自由スクロールの切り替えを容易に行うことができる。
【００２３】
また、本発明の表示制御方法において、前記経路線の表示制御が前記制限スクロールの場合で、前記ドラッグ操作を所定の入力デバイスを用いて行う場合、前記入力デバイスを介した前記ユーザの入力方向と、前記代表ベクトルの方向とが所定の関係にある場合に、前記入力デバイスに対して振動及び／又は反発力を与えるデバイス制御ステップを更に有することは、本発明の好ましい態様である。この構成により、画面を注視しなくても、制限スクロールと自由スクロールの切り替えを容易に行うことができる。
【００２４】
また、本発明の表示制御方法において、前記経路線の表示制御が前記制限スクロールで、前記ドラッグ操作を所定の入力デバイスを用いて行う場合であって、現在表示されている表示倍率での前記経路線の傾き方向を示すベクトルを代表ベクトルとする場合、前記入力デバイスを介した前記ユーザの入力方向のベクトルと、所定の時間前の前記ユーザの入力方向のベクトルとの差分を取った差分方向ベクトルを前記代表ベクトルに投影させる投影ステップと、前記差分方向ベクトルから投影された投影ベクトルを差し引いたベクトルの成分の値が所定の値より大きい場合に、前記制限スクロールを、前記カーソルの移動を前記経路線上以外にも可能とさせる自由スクロールに切り替える切替ステップを更に有することは、本発明の好ましい態様である。この構成により、ユーザが初期に強くコントローラを倒して急カーブ（上あがりのカーブ）をむかえても、さらに与えられた時間Δｔ内に相対的にコントローラを強く倒さない限り、経路から脱線しないため、安心してスクロールすることができる。
【００２５】
また、本発明の表示制御方法において、前記経路線の表示制御が前記自由スクロールの場合であって、前記所定の入力デバイスを介した前記ドラッグ操作による前記カーソルの速度が所定の速度より遅く、かつ前記カーソルと前記ディスプレイ上に表示された前記経路線との距離が所定の距離より短い場合に、前記自由スクロールを前記制限スクロールに切り替えることは、本発明の好ましい態様である。この構成により、自由スクロールのモードから制限スクロールのモードへの切り替えを容易にすることができる。
【００２６】
また、本発明の表示制御方法において、前記入力デバイスを介した前記ユーザの入力方向と、前記代表ベクトルの方向とが所定の関係にある場合に、前記入力デバイスに対して振動及び／又は反発力を与えるデバイス制御ステップを更に有することは、本発明の好ましい態様である。この構成により、経路の方向が変わったと誤脱線することなく感じることができる。
【発明の効果】
【００２７】
本発明の表示制御装置及び表示制御方法は、上記構成を有し、辿るべき経路が画面の外にはみ出ず、経路に沿った追跡が正確にできる。すなわち、ユーザは、指のストローク、マウスのドラッグ、コントローラの入力などだけで終始、新たなボタンを押すなどの行為をすることなく様々な操作ができる。すなわち、地図空間や概念空間内を自由にスクロール（自由スクロール）できたり、経路や曲線上のみをスクロールする制限スクロールができたりする。また、それらの切り替え（自由スクロールと制限スクロールとの切り替え）も、曲線がレールのようなものでそこに画面が乗っているという直感的な解釈（感覚）を受け、レールに沿ってなぞったり、レールから外れようと垂直に動いたりして行うことができる。
【００２８】
さらに、本発明でいうレールの形状とは、ユーザが任意に決める拡大、縮小値によって異なるため、あくまで「画面に見えている形状」をレールの現在の形状として計算される。また、このレールに沿って走る質感は、ハプティクデバイスなどに応用でき、レールから外れようとする場合は余計なボタンを押すなどの操作もなく、反発力のより大きくかかる方向に向けて入力デバイスに力を入れれば、レールからの解放が達成できるという極めて直感的な方法で行うことができる。
【図面の簡単な説明】
【００２９】
【図１ａ】本発明の第１の実施の形態におけるある地理空間内に経路が描かれている様子を示す図である。
【図１ｂ】本発明の第１の実施の形態におけるタッチパネルなどでドラッグによりユーザの指が移動した分だけ、地理空間内を地図が動いている様子を示す図である。
【図２ａ】本発明の第１の実施の形態におけるユーザが操作する前の制限スクロールの初期の状態を示す図である。
【図２ｂ】本発明の第１の実施の形態におけるタッチパネル上のある一点をユーザが触れ、画面右上の方向にドラッグしようとしている状態を示す図である。
【図２ｃ】本発明の第１の実施の形態における図２ｂのドラッグしようとしている右上の方向のベクトルをスクロールレールの方向ベクトルに投影した際のベクトルを示している図である。
【図２ｄ】本発明の第１の実施の形態における図２ｂの状態から実際に指をドラッグさせた場合の指の新しい地点と、画面がスクロールした状態の様子を示している図である。
【図２ｅ】本発明の第１の実施の形態における指を離した後もスクロールレールの上に沿って動き続ける様子を示す図である。
【図２ｆ】本発明の第１の実施の形態における図２ｅに引き続き、スクロールレールの向きが変わってもスクロールレールに沿ってスクロールしていく様子を示す図である。
【図３ａ】本発明の第１の実施の形態におけるスクロールレールを示す図である。
【図３ｂ】本発明の第１の実施の形態における図３ａを拡大した図である。
【図３ｃ】本発明の第１の実施の形態における図３ａの代表ベクトルを示す図である。
【図３ｄ】本発明の第１の実施の形態における図３ｂの代表ベクトルを示す図である。
【図４ａ】本発明の第１の実施の形態における画面に表示されるスクロールレールの線、曲線を示す図である。
【図４ｂ】本発明の第１の実施の形態における線や曲線が実際には線に沿った等間隔の距離に配置された多数の点からなることを示す図である。
【図４ｃ】本発明の第１の実施の形態における図４ｂの各点が隣同士の座標の差分をとることで、多数の微小ベクトルで表現できることを示す図である。
【図５ａ】本発明の第１の実施の形態におけるスクロールレール、注目する点、注目する点の周辺を示す図である。
【図５ｂ】本発明の第１の実施の形態におけるスクロールレールに沿った距離に応じて縦に並べられたスクロールレールの微小ベクトル群を示す図である。
【図５ｃ】本発明の第１の実施の形態における微小ベクトルに掛ける窓関数を示す図である。
【図５ｄ】本発明の第１の実施の形態における微小ベクトルに掛ける重み関数を示す図である。
【図５ｅ】本発明の第１の実施の形態における図５ａでのスクロールレールの代表ベクトルを示す図である。
【図６ａ】本発明の第１の実施の形態におけるスクロールレール、注目する点、注目する点の周辺を示す他の図である。
【図６ｂ】本発明の第１の実施の形態におけるスクロールレールに沿った距離に応じて縦に並べられたスクロールレールの微小ベクトル群を示す他の図である。
【図６ｃ】本発明の第１の実施の形態における微小ベクトルに掛ける窓関数を示す他の図である。
【図６ｄ】本発明の第１の実施の形態における微小ベクトルに掛ける重み関数を示す他の図である。
【図６ｅ】本発明の第１の実施の形態における図６ａでのスクロールレールの代表ベクトルを示す図である。
【図７】本発明の第１の実施の形態における代表ベクトルを求めるためのフローについて説明するためのフローチャートである。
【図８ａ】本発明の第１の実施の形態における自由スクロールモードの画面とスクロールレールの状態を示す図である。
【図８ｂ】本発明の第１の実施の形態における自由スクロールにより、注目点がスクロールレール近傍に持ってこられた場合を示す図である。
【図８ｃ】本発明の第１の実施の形態における注目点がさらにスクロールレールに近づいた場合を示す図である。
【図８ｄ】本発明の第１の実施の形態における制限スクロールモードに切り替えるためのジェスチャーについて説明するための図である。
【図８ｅ】本発明の第１の実施の形態における注目点がスクロールレールの上に吸着され、制限スクロールモードに切り替わる様子を示す図である。
【図９】本発明の第１の実施の形態における自由スクロールモードから制限スクロールモードへの切り替えフローを説明するためのフローチャートである。
【図１０ａ】本発明の第１の実施の形態の制限スクロールモードにおける状態を示しており、注目の点がスクロールレール上にある様子を示す図である。
【図１０ｂ】本発明の第１の実施の形態におけるタッチパネルなどに指をタッチした様子を示す図である。
【図１０ｃ】本発明の第１の実施の形態におけるドラッグしようとする方向ベクトルが、代表ベクトルに投影された成分と、それに垂直な成分とに成分分解をされた様子を示す図である。
【図１０ｄ】本発明の第１の実施の形態の図１０ｃの状態から、実際にドラッグを行って代表ベクトルに平行な成分分だけスクロールレールに沿って画面が移動した様子を示す図である。
【図１０ｅ】本発明の第１の実施の形態のドラッグが行われたものの、代表ベクトルと垂直な軸に投影されたベクトル成分が強い様子を示す図である。
【図１０ｆ】本発明の第１の実施の形態における代表ベクトルと垂直な軸に平行に、正の方向と負の方向に繰り返し、何回か暴れるような動作をする様子を示す図である。
【図１０ｇ】本発明の第１の実施の形態におけるスクロールレールから注目の点が解き放たれ、自由スクロールモードに切り替わる様子を示す図である。
【図１１】本発明の第１の実施の形態における制限スクロールモードから自由スクロールモードへの切り替えフローを説明するための図である。
【図１２ａ】本発明の第１の実施の形態におけるスクロールレールが枝のように分岐した場合を示す図である。
【図１２ｂ】本発明の第１の実施の形態におけるスクロールレールが枝のように分岐した他の場合を示す図である。
【図１３ａ】本発明の第１の実施の形態における入力デバイスの一例のスティック型デバイスを示す図である。
【図１３ｂ】本発明の第１の実施の形態における入力デバイスの一例のボタン型デバイスを示す図である。
【図１３ｃ】本発明の第１の実施の形態における代表ベクトルが右上がりになっている場合を示す図である。
【図１３ｄ】本発明の第１の実施の形態における任意の２次元の方向にユーザが入力した際の反発力Ｆを示す図である。
【図１３ｅ】本発明の第１の実施の形態におけるユーザからの入力を示す図である。
【図１４】本発明の第１及び第２の実施の形態に係る表示制御装置の構成の一例を示す図である。
【図１５】本発明の第１の実施の形態に係る表示制御装置による処理フローの一例を示すフローチャートである。
【図１６ａ】本発明の第２の実施の形態におけるスティック型のコントローラ（ハプティックコントローラ）を示す図である。
【図１６ｂ】本発明の第２の実施の形態におけるスティック型のコントローラを真上から見た図である。
【図１７ａ】本発明の第２の実施の形態における前（前方）に倒れたスティック型のコントローラを示す図である。
【図１７ｂ】本発明の第２の実施の形態における前（前方）に倒れたスティック型のコントローラを真上から見た図である。
【図１８ａ】本発明の第２の実施の形態における後ろ（後方）に少し倒れたスティック型のコントローラを示す図である。
【図１８ｂ】本発明の第２の実施の形態における後ろ（後方）に少し倒れたスティック型のコントローラを真上から見た図である。
【図１９ａ】本発明の第２の実施の形態における後ろ（後方）に倒れたスティック型のコントローラを示す図である。
【図１９ｂ】本発明の第２の実施の形態における後ろ（後方）に倒れたスティック型のコントローラを真上から見た図である。
【図２０ａ】本発明の第２の実施の形態における北を向いた経路の地図を示す図である。
【図２０ｂ】本発明の第２の実施の形態における前（前方）に倒れたスティック型のコントローラを示す図である。
【図２０ｃ】本発明の第２の実施の形態における前（前方）に倒れたスティック型のコントローラを真上から見た図である。
【図２１ａ】本発明の第２の実施の形態における北東を向いた経路の地図を示す図である。
【図２１ｂ】本発明の第２の実施の形態における前（前方）に倒れたスティック型のコントローラを示す図である。
【図２１ｃ】本発明の第２の実施の形態における前（前方）に倒れたスティック型のコントローラを真上から見た図である。
【図２２ａ】本発明の第２の実施の形態における北東を向いた経路の地図を示す図である。
【図２２ｂ】本発明の第２の実施の形態における右前（右前方）に倒れたスティック型のコントローラを示す図である。
【図２２ｃ】本発明の第２の実施の形態における右前（右前方）に倒れたスティック型のコントローラを真上から見た図である。
【図２３ａ】本発明の第２の実施の形態における北東を向いた経路の地図を示す図である。
【図２３ｂ】本発明の第２の実施の形態における前（前方）に倒れたスティック型のコントローラを示す図である。
【図２３ｃ】本発明の第２の実施の形態における前（前方）に倒れたスティック型のコントローラを真上から見た図である。
【図２３ｄ】本発明の第２の実施の形態における前（前方）に倒れたスティック型のコントローラのt秒前との差を示す図である。
【図２３ｅ】本発明の第２の実施の形態における前（前方）に倒れたスティック型のコントローラのt秒前との差を真上から見た図である。
【図２３ｆ】本発明の第２の実施の形態における前（前方）に倒れたスティック型のコントローラのt秒前との差を真上から見た図である。
【図２４】本発明の第２の実施の形態における斥力を計算するためのフローの一例を示すフローチャートである。
【図２５ａ】本発明の第２の実施の形態における急激に曲がる経路の一例を示した図である。
【図２５ｂ】本発明の第２の実施の形態における急激に曲がる経路の他の一例を示した図である。
【図２６ａ】本発明の第２の実施の形態における急激に曲がる経路で、ユーザが経路に沿って進もうとしている一例を示した図である。
【図２６ｂ】本発明の第２の実施の形態における急激に曲がる経路で、ユーザが経路から外れようとしている一例を示した図である。
【図２７】本発明の第２の実施の形態における制限スクロールから自由スクロールへの切り替えの判断をする部分のフローの一例を示すフローチャートである。
【図２８】本発明の第２の実施の形態における制限スクロールから自由スクロールへの切り替えのための全体フローの一例を示すフローチャートである。
【図２９ａ】本発明の第２の実施の形態における自由スクロールでカーソルが経路に近づいた状態を示す図である。
【図２９ｂ】本発明の第２の実施の形態における自由スクロールでカーソルが経路に近づいた状態と経路上の経路点を示す図である。
【図３０】本発明の第２の実施の形態における自由スクロールから制限スクロールへの切り替えのための全体フローの一例を示すフローチャートである。
【発明を実施するための形態】
【００３０】
＜第１の実施の形態＞
以下、本発明の第１の実施の形態について述べる。ここで、本発明で用いられる言葉の定義を行う。経路や概念を示した線、線分、曲線を「スクロールレール」と呼ぶ。本発明では、地理空間、概念空間などの２次元及び３次元空間内を、タッチパネル、マウス、コントローラなどのデバイスを介したユーザの入力により移動できる。空間内を自由に移動できる場合を「自由スクロール」、前述のスクロールレール上のみに制限された形で移動できる場合を「制限スクロール」と呼ぶ。
【００３１】
図１ａは、ある地理空間内に経路が描かれている様子を示す。画面の中心にカーソルが描画されている。図１ｂは、タッチパネルなどでドラッグによりユーザの指が移動した分だけ、地理空間内を地図が動いている様子を示す。ユーザは、地理空間に描画されているスクロールレールとは無関係に自由にスクロールできるため、この場合、自由スクロールモード（単に、自由スクロールとも言う）となる。スクロールには既存技術の弾くという操作が使われる。
【００３２】
現在位置がスクロールするというのは、弾く前のドラッグしている間に一定時間ごとにドラッグによるスクロール速度（ドラッグ速度とも言う）をサンプリングしておき、指がタッチパネルから離れる直前でのドラッグによるスクロール速度をもって、そのままスクロールし続けることである。その後は、摩擦力などを設定しておき、ある程度進むと自動的にスクロールが止まるようにも設定できる。
【００３３】
本発明が提案するもう１つのモードの制限スクロールについて図２ａ〜図２ｆを用いて説明する。図２ａ〜図２ｆでは、画面の中心のカーソルが地理空間に描かれた経路上にある。タッチパネルなどでドラッグにより指が移動したベクトルが、画面中心のカーソルのある経路上の点からの経路方向のベクトルへの投影された成分だけ移動することになる。図２ａはユーザが操作する前の制限スクロールの初期の状態を示す。画面の中心はスクロールレールの上にある。
【００３４】
図２ｂは、タッチパネル上のある一点をユーザが触れ、画面右上の方向にドラッグしようとしている状態を示す。図２ｃは、図２ｂのドラッグしようとしている右上の方向のベクトルをスクロールレールの方向ベクトルに投影した際のベクトルを示している。図２ｄは、図２ｂの状態から実際に指をドラッグさせた場合の指の新しい地点と、画面がスクロールした状態の様子を示している。これにより、ドラッグによるベクトルをスクロールレールに投影したベクトルの分だけ、逆方向に移動していることがわかる。
【００３５】
図２ｅは、指を離した後もスクロールレールの上に沿って動き続ける様子を示す。図２ｆは、図２ｅに引き続き、スクロールレールの向きが変わってもスクロールレールに沿ってスクロールしていく様子を示す。以上により、単純に自由スクロール、制限スクロールでのそれぞれの動きについて述べた。
【００３６】
次に、自由スクロールから制限スクロールへの切り替え、制限スクロールから自由スクロールへの切り替えについて説明する。そのために、まず、本発明で定義する「代表ベクトル」について説明する。スクロールレール上のある一点を中心に、拡大、縮小（拡大縮小値）によりスクロールレールを画面の範囲で見た場合のスクロールレールのベクトルを代表ベクトルと言う。
【００３７】
代表ベクトルの一例を図３ａと図３ｃの場合と、図３ｂと図３ｄの場合の２つの例を用いて説明する。まず、図３ａと図３ｃの場合について説明する。図３ｃでは、具体的に画面の中心点がスクロールレールの上に置かれている。画面の中心周辺のスクロールレールは右上がりのため、代表ベクトルも右上がりとなる。一方、図３ｂと図３ｄの場合は、図３ａと図３ｃの場合と全く同じスクロールレールであり、その中心点も、図３ｃと図３ｄでは全く同じものとなる。唯一違うのは、図３ｄが図３ｃを拡大したものであることで（拡大縮小値）、その関係が図３ａと図３ｂに示されている。そのため、代表ベクトルは、図３ｂと図３ｄの場合、画面の中心あたりのスクロールレールが右下がりのため、代表ベクトルも右下がりとなる。
【００３８】
このように、代表ベクトルは、与えられたスクロールリスト、着目している位置、拡大縮小値に依存する。実際にどのように代表ベクトルが計算されるべきかについて細かく説明する。図４ａ〜図４ｃは、経路や概念線を示すスクロールレールがどのように数学的に表されるかについて示す。図４ａは、画面に表示されるスクロールレールの線、曲線を示す。図４ｂは、それらの線や曲線が、実際には線に沿った等間隔の距離に配置された多数の点からなることを示す。それぞれの点が、２次元の場合、３次元の場合に応じて座標を持つ。
【００３９】
なお、実際に線をデータとして格納する場合、線の折れた部分のみの座標をデータとして持つのが主流であるが、ここでは、これらの点が等間隔の距離で配置されたデータで生成されたとして説明する。図４ｃは、図４ｂの各点が隣同士の座標の差分をとることで、多数の微小ベクトルで表現できることを示す。図４ａ〜図４ｃで述べた、多数の微小ベクトルで表現されるスクロールリストが、どのように代表ベクトルとして計算されるかについて図５ａ〜図５ｅ、図６ａ〜図６ｅ、図７を用いて説明する。
【００４０】
図５ａ〜図５ｅでは図３ａと図３ｃの場合について説明し、図６ａ〜図６ｅでは図３ｂと図３ｄの場合について説明する。まず、図５ａ〜図５ｅについて説明する。図５ａは、スクロールレール、注目する点（以下、注目点とも言う）、注目する点の周辺を示す。図５ｂは、スクロールレールに沿った距離に応じて縦に並べられたスクロールレールの微小ベクトル群を示す。図５ｃは、微小ベクトルに掛ける窓関数を示す。図５ｄは、微小ベクトルに掛ける重み関数を示す。図５ｅは、図５ａでのスクロールレールの代表ベクトルを示す。
【００４１】
図５ａではスクロールレールが描かれ、この場合は画面の中心である注目する点がスクロールレール上に存在する。スクロールレール上において、注目する点からスクロールレールに沿った距離に応じて、多数の微小ベクトルを縦に模式的に並べて図５ｂに表示されている。図５ｂ、図５ｃ、図５ｄにおいて、縦軸は、注目する点からスクロールレールに沿った符号をもった距離を意味する。スクロールレールが１つの曲線であり、その曲線上のある注目する点から、曲線に沿ってある方向に遠ざかっていくものを正の距離として縦軸の正の方向に、また前述と逆方向に遠ざかっていくものを負の距離として縦軸の負の方向に配置している。縦軸の「０」の部分が注目する点そのものとなる。それぞれの点に応じて模式的に、図５ａで表示されるスクロールレール上に存在する多数の微小ベクトルを図５ｂに描画している。
【００４２】
代表ベクトルとは、スクロールレール上の注目する点を中心として、拡大縮小値に対応して画面内で表示される範囲内での、スクロールレール全体の方向を代表して表現するものであるため、注目する点とある領域内のみの微小ベクトルを考慮したい。そのため、離れた位置にある微小ベクトルは考慮に入れないため、図５ｃに示したような窓関数で遠くに存在するものを削除することができる。つまり、図５ｂに示す各微小ベクトルに窓関数などを掛けることで、それぞれの微小ベクトルを加工できる。窓関数は信号処理に使われる一般的な関数であり、窓関数Ｗｉ（ｘ）は、ｘ＝０周辺では１を返し、ｘ＝０から正方向や負の方向に離れた位置では０を返す。なお、窓関数を数式（１）に示す。widthは窓の幅となる。
【００４３】
【数１】
2011227473.tif 000003
【００４４】
窓関数の中心ｘ＝０は、図５ａのスクロールレール上の注目する点、たいてい画面の中心位置となる。窓関数の幅widthは、図５ａにおける空間でユーザが決める拡大縮小値に依存する。図５ｃと後述の図６ｃは同じ窓関数であるが、幅widthは図５ｃのほうが大きい。それは、図５ａ〜図５ｅが図３ａのスクロールレールに対応し、図６ａ〜図６ｅが図３ａを拡大した図３ｂのスクロールレールに対応しているからである。つまり、ユーザがスクロールレールを拡大すれば、拡大されたスクロールレールの小さな部分を見ているためwidthは小さくなり、縮小すればスクロールレールの大きな範囲を見ているためwidthが大きくなる。widthが大きくなると、図４ｃで示したような微小ベクトルの数が膨大に増えるため、ある周期によるサンプリングされた微小ベクトルのみを考慮に入れるなどの計算方法が可能である。
【００４５】
さらに、注目する点の近傍のスクロールレール上のベクトルにウエイト（重み）を置きたい場合は、図５ｄに示すように、注目する点で最大の値１を返し、遠ざかるほど０に近くなる重み関数Ｗｅ（ｘ）をスクロールレール上の微小ベクトルに掛けて重みを変更することができる。重み関数Ｗｅは必要に応じて任意の関数を使うことができるが、ここでは例としてガウス関数を用い、それを数式（２）に示す。
【００４６】
【数２】
2011227473.tif 000004
【００４７】
ここで、ｃは定数で、ガウス関数の幅と関連する。ｃの値は重みをどれだけ広げるかに依存する。これらの処理を隔てて、加工されたスクロールレール上の多数の微小ベクトルをすべて足し合わせたベクトルが図５ｅに示すような代表ベクトルとなる。
【００４８】
図６ａ〜図６ｅも、図５ａ〜図５ｅと全く同様の方法で代表ベクトルを計算する。図６ａは、スクロールレール、注目する点、注目する点の周辺を示す。図６ｂは、スクロールレールに沿った距離に応じて縦に並べられたスクロールレールの微小ベクトル群を示す。図６ｃは微小ベクトルに掛ける窓関数を示す。図６ｄは微小ベクトルに掛ける重み関数を示す。図６ｅは、図６ａでのスクロールレールの代表ベクトルを示す。
【００４９】
図５ａ〜図５ｅと図６ａ〜図６ｅでは、代表ベクトルを求めるためのスクロールレール上の位置が同じにもかかわらず、拡大縮小値が異なるため、全く異なる代表ベクトルが得られる。これは、代表ベクトルというものが、ユーザが「画面に見える」スクロールレールの形状として定義されているため、画面の拡大縮小を行えば、見えるおおまかな形状も異なるので代表ベクトルも異なるのは当然となる。このユーザインターフェースの発想に立ったスクロールレールの「見かけの形状」を算出するところに本発明の特徴がある。
【００５０】
この代表ベクトルを求めるための手順について図７を用いて説明する。代表ベクトルを決定するのに必要な現在のスクロールレール上の座標と拡大縮小値を取得する（ステップＳ７０１）。代表ベクトルを決定するのに使うスクロールレール上の座標を窓関数の中心位置にもっていき、与えられた拡大縮小値によって窓関数の幅widthを変え、スクロールレールを構成する各微小ベクトルに窓関数を掛ける（ステップＳ７０２）。代表ベクトルを決定するのに使うスクロールレール上の座標を重み関数の中心位置にもっていき、与えられた拡大縮小値によって重み関数の幅widthを変え、スクロールレールを構成する各微小ベクトルに重み関数を掛ける（ステップＳ７０３）。これらの処理を施した各微小ベクトルを足し合わせて代表ベクトルを算出する（ステップＳ７０４）。代表ベクトルの算出の仕方を数式（３）に示す。数式（３）で、スクロールレール上のある地点ｘにおける微小ベクトルをＶ微小ベクトル（ｘ）とした。
【００５１】
【数３】
2011227473.tif 000005
【００５２】
分母は、微小ベクトルの長さであり、規格化を行っている。以上で、スクロールレールの代表ベクトルについて説明した。
【００５３】
次に、自由スクロールから制限スクロールに切り替える方法について図８ａ〜図８ｅ、図９を用いて説明する。図８ａは、自由スクロールモードの画面とスクロールレールの状態を示す。自由スクロールモードのため、とりわけ注目点（注目する点）である画面の中心点がスクロールレール上にない。図８ｂは、自由スクロールにより、注目点がスクロールレール近傍に持ってこられた場合を示す。注目点と最も近いスクロールレール上の点を見つけ、その点から注目点までの距離をスクロールレールとの距離ｄと定義する。
【００５４】
図８ｃは、さらに注目点がスクロールレールに近づいた場合を示す。ここで、注目点に最も近いスクロールレール上の点（最も近い点）と現在の拡大縮小値とから、スクロールレールの代表ベクトルが求まる。図８ｄに示すように、図８ｃで求まった代表ベクトルにほぼ平行に画面をドラッグさせることで、あたかも注目点をスクロールレール上に引っ掛けるようなスクロール制限モードに切り替えるためのジェスチャーを行う。図８ｅに示すように、代表ベクトルに平行な方向へのドラッグによるジェスチャーがうまくいけば、注目点がスクロールレールの上に吸着され、スクロールレール上に乗っかり制限スクロールモード（単に、制限スクロールとも言う）に切り替わる。
【００５５】
図８ａ〜図８ｅで説明した内容、すなわちどのように自由スクロールモードから制限スクロールモードに変わるかについて図９を用いて説明する。まず、ユーザから、タッチパネルやコントローラなどで座標の移動（新しい位置への移動）や拡大縮小値の変更リクエストを受け付ける（ステップＳ９０１）。画面の中心点、もしくは任意に決められた画面内の注目点が、スクロールレールに近いか（所定の距離であるか）どうかを判断する（ステップＳ９０２）。近いかどうかの判断は、注目点に最も近いスクロールレール上の点を探し、その点と注目点との距離が事前に決められた所定の閾値を超えたかどうかで行う。
【００５６】
ステップＳ９０２で、スクロールレールが、画面内の注目点から所定の閾値より遠いと判断された場合は、そのまま自由スクロールモードとして、リクエストされた新しい地点へ移動し、新しい拡大縮小値で描画を行う（ステップＳ９０７）。ステップＳ９０２で、スクロールレールから画面内の注目点までの距離が所定の閾値より小さい場合、ユーザが注目点をスクロールレール上に持っていき、制限スクロールモードに切り替えようとしている可能性がある。そのため、まず、先ほど求めた、注目点から一番近いスクロールレール上の点を仮のスクロールレール上の注目点として用いる。
【００５７】
すなわち、注目点に最も近いスクロールレール上の点の座標を現在地とし、現時点での拡大縮小値を使って新たに代表ベクトルを計算する（ステップＳ９０３）。代表ベクトルの求め方は図５ａ〜図５ｅ、図６ａ〜図６ｅを用いて説明した。代表ベクトルと、ユーザの入力によるドラッグ方向のベクトルとの類似を調べる（ステップＳ９０４）。具体的には、代表ベクトルに投影したユーザの入力によるドラッグ方向のベクトルの成分を求める。このベクトルの絶対値が大きいほど、スクロールレールの方向を意味する代表ベクトルと平行に近いことを意味する。
【００５８】
ステップＳ９０４で求めた投影されたベクトルの長さ、つまり絶対値が事前に決められた所定の値より大きいか否かを判断し（ステップＳ９０５）、大きいとき、ユーザがスクロールレールの方向とある程度同じ方向にドラッグしていると判断できる。ステップＳ９０２のスクロールレールから近い距離に画面内の注目点があることも考慮して、最終的にユーザが画面内の注目点をスクロールレールの近くまで持っていき、スクロールレールに平行に近い方向でドラッグさせていると判断できる。これは「制限スクロール」モードへの切り替えへのジェスチャーによるリクエストと判断して「制限スクロール」モードに切り替える（ステップＳ９０６）。具体的には、画面の注目点をスクロールレール上に吸着していくアニメーションなどを再生する。
【００５９】
次に、制限スクロールから自由スクロールに切り替える方法について図１０ａ〜図１０ｇ、図１１を用いて説明する。図１０ａは、制限スクロールモードにおける状態を示しており、注目の点がスクロールレール上にある。現在の拡大縮小値とスクロールレール上の注目の点の座標とから代表ベクトルが計算されている。図１０ｂは、タッチパネルなどに指をタッチした様子を示す。図１０ｃは、指でドラッグしようとしており、そのドラッグしようとする方向ベクトルが、代表ベクトルに投影された成分と、それに垂直な成分とに成分分解をされた様子を示す。
【００６０】
図１０ｄは、図１０ｃの状態から、実際にドラッグを行って代表ベクトルに平行な成分分だけスクロールレールに沿って画面が移動した様子を示す。図１０ｅは、図１０ｄと同様にドラッグが行われたものの、代表ベクトルと垂直な軸に投影されたベクトル成分が強い様子を示す。事前に決められたベクトルの強さの閾値より大きい場合は、ユーザがスクロールレールから外れようという動きをしていると判断し、図１０ｇに示すようなスクロールレールから注目の点が解き放たれ（解除され）、自由スクロールモードに切り替わる。さらなる工夫としては、切り替わりが、簡単に行われないようにするために、図１０ｆに示すように、代表ベクトルと垂直な軸に平行に、正の方向と負の方向に繰り返し、何回か暴れるような動作をすると、自由スクロールに切り替わるようにするなどの条件を加えることも可能である。
【００６１】
図１０ａ〜図１０ｇで述べたような処理、すなわち制限スクロールから自由スクロールにいかに切り替わるかについて図１１を用いて説明する。ユーザから、タッチパネルやコントローラなどで座標の移動や拡大縮小値の変更リクエストを受け付ける（ステップＳ１１０１）。リクエストのあった座標、拡大縮小値から、代表ベクトルを計算する（ステップＳ１１０２）。ユーザからの入力によるベクトルを、代表ベクトルと平行な軸への投影ベクトルと、それに垂直な軸への投影ベクトルとに分ける。なお、それぞれのベクトルを「スクロールベクトル」、「ゆがみベクトル」と呼ぶ。
【００６２】
ユーザがタッチパネルに触れたままである、或いは、コントローラを傾けたままであるなど操作入力中であるか否かを判断し（ステップＳ１１０３）、操作入力中である場合は、ユーザは制限スクロールから逃れようと入力を続けている可能性があるため、ステップＳ１１０４に移行する。逆に、ユーザがコントローラデバイスから手を離した場合は、ユーザは自由スクロールへ逃れようとしていないと判断し、ステップＳ１１０６に移行し、「スクロールベクトル」の強さの分だけ、スクロールレールに沿った制限されたスクロールで画面を移動させる。
【００６３】
ステップＳ１１０４では、「ゆがみベクトル」が事前に決められた一定の値より大きいか否かを判断し（ステップＳ１１０４）、大きいと判断した場合、ステップＳ１１０５に移行し、制限スクロールから自由スクロールに切り替えられる。一方、「ゆがみベクトル」が一定の値より小さい場合は、ステップＳ１１０６へ移行する。
【００６４】
更なる工夫として、ステップＳ１１０４でのゆがみが大きくて、スクロールレールから離れ、自由スクロールに変わる新たな条件として「ゆがみベクトル」の強さを設定することができる。すなわち、絶対値が閾値より大きく、かつ正の方向と負の方向が切り替わってユーザの入力が行われるなどと設定することができる。これは、図１０ｆで述べた、代表ベクトルと垂直の方向に正方向、負の方向に暴れて揺らすというジェスチャーが行われてはじめて自由スクロールに切り替われるという設定をしたことになる。このような設定すれば、スクロールレールから安易に注目の点が外れてしまうという誤動作をおきにくくすることが可能である。
【００６５】
本発明では、図１２ａ、図１２ｂに示すような、スクロールレールが枝のように分岐した場合でも使える。代表ベクトルは、現在地周辺の分岐したすべての微小ベクトルの計算がされ、図１２ｂのように不幸にして分岐点に注目の点がある場合は、スクロールモードの切り替えを行わせないなどの条件を課せばよい。
【００６６】
次に、本発明に適用されるハプティック操作デバイス（以下、ハプティックデバイス、デバイスとも言う）について説明する。ハプティックデバイスでは、ユーザの入力に対し、任意の方向に斥力、反発力、振動を発生させることができる。デバイスの例としては、図１３ａに示すようなスティック型デバイス、図１３ｂに示すようなボタン型デバイスがある。本発明では、デバイスの形状は問わず、スクロールできる空間が２次元の場合は２次元の任意の方向への入力ができ、３次元の場合は３次元の任意の方向への入力ができ、何らかの入力に対する反発力、振動をもたらすハプティックデバイスを考える。
【００６７】
仮に、図１３ｃに示すように、代表ベクトルが右上がりになっている場合を考える。図１３ｄは、代表ベクトルが右上がりの場合に、ユーザが任意の２次元の方向に入力した際の反発力Ｆを示す。図１３ｅでは、コントロールデバイスに移動しようとユーザから入力がなされた場合を考える。入力の力ベクトルが、原点からｘ軸に対し、αの角度の方向のベクトルになされたとする。ここでは、力の強さは規格化され１とする。また、その時の規格化された代表ベクトルを（Ｃｏｓθ、Ｓｉｎθ）とすると、ユーザの入力ベクトルに対する反発力ベクトルＦは数式（４）で表される。
【００６８】
【数４】
2011227473.tif 000006
【００６９】
当然、代表ベクトルの方向角度θが、入力する力の方向角度αと同じであれば、数式（４）での反発力Ｆは０となる。これは、代表ベクトルと平行に近い方向に入力すればするほど反発力Ｆは０であり、逆に代表ベクトルに垂直な方向に入力すればするほど反発力Ｆは、入力しようとする方向と逆方向に斥力として大きくなる。これにより、ユーザは、画面を注視しなくても、反発力の少ない方向にスティックなどの入力デバイスを持っていけば、制限スクロールモードで、経路などのスクロールレールに沿って移動できる。
【００７０】
また、自由スクロールモードに切り替えたい場合は、あえて反発力のある方向にスティックなどで力を入れれば、それが代表ベクトルと垂直に近い方向であるから、スクロールレールから外れ、自由スクロールモードに切り替えることができる。反発力ではなく、振動によるハプティックデバイスの場合は、数式（４）の絶対値をとり、その値の強さに応じて振動させるようにしてもよい。
【００７１】
さらに、本発明を使った応用例として、制限スクロールから自由スクロールへの切り替えによって、制限スクロールでの機能を停止させたり再生させたりもできる。具体的には、例えば、制限スクロールモードになると、スクロールレールに沿って画面上の地図などが移動するアニメーション移動を自動的に開始させる自動スクロール機能があるとする。とりわけ、上述したハプティクデバイスの場合は、デバイスが勝手に動き、スクロールレールに沿って画面が自動的に移動（スクロール）し始める機能である。この自動スクロール機能を一時的に止めるには、ユーザはデバイスが勝手に動かないよう握り、また自動スクロール機能を停止させるには、自動的にスクロールしようとする代表べクトルの方向に対して垂直な方向にタッチパネルの指を移動（ドラッグ）させる、もしくはデバイスに反発力を感じながら移動させることでスクロールレールから離れ、制限スクロールから自由スクロールのモードになり、自動スクロール機能が停止する。
【００７２】
ここで、本発明の実施の形態に係る表示制御装置の構成の一例について図１４を用いて説明する。図１４に示すように、表示制御装置１４００は、検出手段１４０１、算出手段１４０２、投影手段１４０３、表示制御手段１４０４、判断手段１４０５、切替手段１４０６、代表ベクトル算出手段１４０７、デバイス制御手段１４０８から構成されている。検出手段１４０１は、ディスプレイ上でドラッグ操作されたときのドラッグ速度及びドラッグ操作に基づいてドラッグされた方向を検出する。このドラッグ速度は、上述したように、ドラッグして弾く際、弾く前にドラッグしている間に一定時間ごとにドラッグによるドラッグ速度をサンプリングしておき、指がタッチパネルから離れる直前でのドラッグによる速度をドラッグ速度とする。
【００７３】
算出手段１４０２は、検出された方向のベクトルの大きさとして、検出されたドラッグ速度に基づいて、スクロールが開始された際のディスプレイに表示された地点がスクロールにより移動した距離を算出する。具体的には、図２ｃに示すドラッグ方向を示すベクトルの大きさを算出する。投影手段１４０３は、ディスプレイ上での位置を指し示すカーソルが経路線上のみ移動可能とされる制限スクロールの場合、算出された距離分に相当する大きさを有する検出された方向のベクトルを、経路線に平行な方向のベクトルとして投影させる。
【００７４】
表示制御手段１４０４は、投影されたベクトルの大きさの分だけ、かつ投影されたベクトルと逆方向に経路線を移動させて経路線を表示する。判断手段１４０５は、代表ベクトルに対して、ユーザのドラッグ操作が所定の第１の操作であるか否かを判断する。なお、所定の第１の操作は、代表ベクトルに対して略垂直方向の向きにドラッグする操作である。切替手段１４０６は、所定の第１の操作であると判断された場合、制限スクロールによる表示制御を解除し、ユーザのスクロールを自由スクロールに切り替える。
【００７５】
代表ベクトル算出手段１４０７は、制限スクロールによるものである場合には、カーソルからの経路線上における所定の範囲内にある地点の座標情報及びカーソルのある地点の座標情報と、現在表示されている表示倍率の情報とを取得し、各地点における経路線を示す微小ベクトルに、表示倍率に応じた所定の関数値を掛け合わせて代表ベクトルを算出し、自由スクロールによるものである場合には、カーソルから最も近い位置にある経路線上の地点を基準点とし、基準点からの経路線上における所定の範囲内にある地点の座標情報及び基準点の座標情報と、現在表示されている表示倍率の情報とを取得し、各地点における経路線を示す微小ベクトルに、表示倍率に応じた所定の関数値を掛け合わせて代表ベクトルを算出する。
【００７６】
デバイス制御手段１４０８は、制限スクロールの場合で、ドラッグ操作を所定の入力デバイス（図１３に示すようなデバイスなど）を用いて行う場合、入力デバイスを介したユーザの入力方向と、代表ベクトルの方向とが所定の関係にある場合に、入力デバイスに対して振動及び／又は反発力を与える。
【００７７】
次に、本発明の実施の形態に係る表示制御装置による処理フローの一例について図１５を用いて説明する。図１５に示すように、検出手段１４０１は、ディスプレイ上でドラッグ操作されたときのドラッグ速度及びドラッグ操作に基づいてドラッグされた方向を検出する（ステップＳ１５０１）。算出手段１４０２は、検出された方向のベクトルの大きさとして、検出されたドラッグ速度に基づいて、スクロールが開始された際のディスプレイに表示された地点がスクロールにより移動した距離を算出する（ステップＳ１５０２）。
【００７８】
投影手段１４０３は、ディスプレイ上での位置を指し示すカーソルが経路線上のみ移動可能とされる制限スクロールの場合、算出された距離分に相当する大きさを有する検出された方向のベクトルを、経路線に平行な方向のベクトルとして投影させる（ステップＳ１５０３）。表示制御手段１４０４は、投影されたベクトルの大きさの分だけ、かつ投影されたベクトルと逆方向に経路線を移動させて経路線を表示する（ステップＳ１５０４）。なお、表示制御装置による制限スクロールと自由スクロールとの間の切り替えの処理フロー、代表ベクトルの生成フローなどについては上述しているため省略する。
【００７９】
＜第２の実施の形態＞
第２の実施の形態では、第１の実施の形態における制限スクロールモードから自由スクロールモードへの切り替わり、すなわちスクロールレールから脱線すべきか否かの判定方法を発展させた判定方法と、第１の実施の形態より簡潔な自由スクロールモードから制限スクロールモードへの切り替わりの判定方法について説明する。
【００８０】
まず、制限スクロールモードから自由スクロールモードへの切り替わりについて述べる。第２の実施の形態では、脱線判定の際に地図をスクロールする方向ベクトルそのものではなく、方向ベクトルの時間差分のベクトルを用いる。これにより、第２の実施の形態では、第１の実施の形態でカバーできなかったケース、すなわち経路の形状が大きく曲がっている際、曲がりきれずに誤ってスクロールレールから脱線して、ユーザの意図に反して自由スクロールになってしまうケースを防止する効果を狙う。
【００８１】
第２の実施の形態の詳細を述べるにあたって、定義されるベクトルについて図１６ａから図１９ｂを用いて説明する。まず、図１６ａ、図１６ｂ、図１７ａ、図１７ｂ、図１８ａ、図１８ｂ、図１９ａ、図１９ｂでは、地図上でコントローラを操作する場合のコントローラの「方向ベクトル」の定義について述べる。図１６ａは、コントローラがゼロの位置にある状態を示す。ゼロの位置とは、コントローラに対して何らユーザから力が加わっていない状態でのコントローラの位置（初期位置）のことを言う。
【００８２】
図１６ａにはコントローラの外観が示され、図１６ｂには図１６ａのコントローラを真上から見たものが示され、コントローラの可動範囲が正方形で示され、コントローラの先（先端）を真上から投影した様子（黒丸がコントローラの先を投影したもの）が示されている。この場合、コントローラには力が加わっていないので可動範囲の中心（真ん中）で静止している状態である。図１７ａ、図１７ｂには、図１６ｂのゼロの位置からユーザが力を加えてコントローラを前（前方）に倒した状態が示されている。図１７ａにはコントローラが傾いている様子が示され、図１７ｂにはコントローラの先の位置が前に移動している様子が示されている。
【００８３】
図１８ａ、図１８ｂには、図１７ａ、図１７ｂとは逆の方向にコントローラが倒された様子が示され、図１８ａには図１７ａとは逆にコントローラが少し傾く様子が示され、図１８ｂには可動範囲内でコントローラの先の投影が逆の方向に移動している様子が示されている。図１９ａ、図１９ｂには、図１８ａ、図１８ｂと同じ方向にコントローラが倒されているが、図１８ａ、図１８ｂよりさらにコントローラが倒された様子が示されている。
【００８４】
ここで、第２の実施の形態では、ゼロの位置からどれだけコントローラを移動させたかを表す指標を「差分方向ベクトル」と呼び、以下の数式のように定義する。コントローラの方向ベクトルをＸ（ｘ、ｙ）とし、時間Δｔ以前でのコントローラの方向ベクトルをＸΔｔ前（ｘΔｔ前、ｙΔｔ前  ）とすると、差分方向ベクトルは数式５のように定義され、条件式は数式６から数式９のように定義される。
【００８５】
数式５：Ｄ（Ｘ、ＸΔｔ前）＝（ｘ−ｘΔｔ前、ｙ−ｙΔｔ前  ）
数式６：ｉｆ（ｘ≧０≧ｘΔｔ前) ＯＲ（ｘ≦０≦ｘΔｔ前 ）  ｘΔｔ前＝０、
数式７：ｉｆ（ｘΔｔ前≧ｘ≧０）ＯＲ（０≧ｘ≧ｘΔｔ前  ）   ｘ＝０、ｘΔｔ前＝０、
数式８：ｉｆ（ｙ≧０≧ｙΔｔ前  ）ＯＲ（ｙ≦０≦ｙΔｔ前  ）  ｙΔｔ前＝０
数式９：ｉｆ（ｙΔｔ前≧ｙ≧０）ＯＲ（０≧ｙ≧ｙΔｔ前  ）   ｙ＝０、ｙΔｔ前＝０
【００８６】
差分方向ベクトルの直感的解釈は、コントローラを前述のゼロの位置（中心）からどれだけ“外側”に移動させたかｘ成分とｙ成分で調べた量となる。したがって、コントローラを正方形の可動範囲領域の外側から中心に戻しただけの場合は０（ゼロ）となり、中心に戻してさらに進めた場合は、中心からさらに進めた分だけのベクトルが加算されたものとなる。これを、具体的に図１６ａ、図１６ｂ、図１７ａ、図１７ｂ、図１８ａ、図１８ｂ、図１９ａ、図１９ｂを用いて説明する。
【００８７】
コントローラがゼロの位置である図１６ａ、図１６ｂの状態から前に倒れた図１７ａ、図１７ｂの状態へ変わった場合、差分方向ベクトルは図１７ｂの方向ベクトルの値そのものとなる。図１７ａ、図１７ｂのようにコントローラが前に倒された状態から図１８ａ、図１８ｂのように後ろに倒された状態へ移った場合は、コントローラのゼロの位置からの移動量は、図１７ａに示すコントローラの位置から加算されるのではなく、中心の位置からの分のみが加算されるので、図１８ｂに示す方向ベクトルそのものが差分方向ベクトルとなる。図１８ａ、図１８ｂに示す状態から図１９ａ、図１９ｂに示す状態にコントローラが移動した場合、差分方向ベクトルは図１９ｂに示す方向ベクトルから図１８ｂの方向ベクトルを引いた値となる。
【００８８】
次に、第１の実施の形態で説明したハプティックコントローラ（上記ハプティックデバイスに相当し、単にコントローラとも言う）に加わる斥力（上記反発力とも言う）の発生について図２０ａ〜ｃ、図２１ａ〜ｃ、図２２ａ〜ｃを用いて説明する。第１の実施の形態で説明したように、代表ベクトルは、図２０ａに示されるような地図上の経路の形状にしたがって計算される。なお、第２の実施の形態における代表ベクトルの算出方法については、第１の実施の形態におけるものと同一であるため説明を省略する。図２０ｂのように、コントローラを経路に沿って（代表ベクトルに沿って）平行に倒せば何ら斥力を受けることなく、地図が経路に沿ってスクロールされる。そのときのコントローラを真上から見た様子が図２０ｃに示されている。
【００８９】
図２１ａでは経路が右側に傾いているため、図２１ｂのようにコントローラをそのまま前に倒すと右方向に斥力を感じるようになる。その様子が図２１ｃに示されている。図２２ａは図２１ａと同一で経路が右に傾いており、図２２ｂに示されるように経路に平行にコントローラを右に傾けて前に倒すと図２２ｃのように斥力を受けることなく、経路の代表ベクトルに沿って地図をスクロールさせることができる。
【００９０】
図２３ａ〜ｆでは、図２０ａ〜ｃの例をもとに斥力の計算方法について述べる。図２３ａは、図２１ａや図２２ａと同様に代表ベクトルが右上がりである。図２３ｂでは、コントローラが前に倒され、方向ベクトルが前を向いている様子が示されている。図２３ｃでは、コントロールの位置を表す方向ベクトルと経路の形状を表す代表ベクトルの向きを調べ、方向ベクトルを代表ベクトルと平行な成分と垂直な成分に分け、それぞれを「スクロールベクトル」、「ゆがみベクトル」と定義している様子が示されている。
【００９１】
ゆがみベクトルは経路の方向に反してコントローラを動かそうとしているベクトルを意味し、そのベクトルの長さが、事前に決められたある一定の値よりも大きい場合には、ゆがみベクトルと逆の方向の斥力をハプティックコントローラに与える。これにより、経路から外れた方向にコントローラを移動させようとすると経路の両側に設置された壁にぶつかったような感覚を、触覚を通してユーザに与えることができる。この代表ベクトルと方向ベクトルから、ゆがみベクトルを計算して斥力を与える流れは第１の実施の形態で述べてあり、図２４にも示されている。
【００９２】
図２３ｄ、図２３ｅは、第２の実施の形態で新しく導入する「差分方向ベクトル」と「差分ゆがみベクトル」の定義について説明するためのものである。これらは、後述するように、スクロールレールから脱線させるか、とどまらせるかの切り替え判定（「制限スクロール」→「自由スクロール」の切り替え判定）に用いられる値となる。図２３ｄ、図２３ｅ、図２３ｆには、それぞれコントローラが２つずつ描画されている。それらは、ある瞬間のコントローラの状態と、それよりもΔt秒前のコントローラの状態とを示している。
【００９３】
図２３ｆは図２３ｅの様子を拡大したものである。それぞれの場合のコントローラの位置をＸ、ＸΔｔ前とする。差分方向ベクトルは、コントローラの先端を真上から投影した位置Ｘと、Δｔ時間前の位置ＸΔｔ前との差として前述の数式５で定義される。さらに、差分ゆがみベクトルを求めるため、前述の数式５の差分方向ベクトルの代表ベクトルＰへの投影を考え、代表ベクトルに平行な成分のベクトルＳは数式１０のように表される。
【００９４】
数式１０：Ｓ＝（Ｄ（Ｘ、ＸΔｔ前）・Ｐ）×Ｐ
ここで、代表ベクトルＰは規格化されており、「・」はベクトルの内積を意味する。差分ゆがみベクトルは、投影されたベクトルの垂直成分なので数式１１のように表される。
数式１１：Ｄ（Ｘ、ＸΔｔ前 ）−Ｓ
なお、差分ゆがみベクトルを求めるにあたって、上記では数式５のように最初にコントローラの位置の差をとって代表ベクトルに投影したが、２つのコントローラの位置を先に投影させてゆがみベクトルを求め、それぞれのゆがみベクトルを求めてから差分をとっても数式１１と数学的には同じである。
【００９５】
ここで、上記定義事項を踏まえて第２の実施の形態について説明する。図２５ａ、図２５ｂには、スクロールレール（経路）の形状が急激に変わる急カーブや折れ線のような経路の一例が示されている。このような経路において、ユーザがタッチパネルによるドラッグやコントローラで経路に沿って地図をスクロールしている場合に、突然の経路の形状（経路の方向）の変化に気づかず、同じ方向に沿って地図をスクロールさせて、ユーザの意図に反してそのまま経路から脱線（離脱）してしまう場合がある。
【００９６】
経路の形状が突然変わった場合、当然、前述のような方法で斥力も突然発生するが、ユーザがそれ以前のスクロールでコントローラに力を入れすぎていた場合には、経路の突然の曲がり角で斥力を乗り越え、誤って経路から脱線してしまう。これは、例えば高速度の車で走っていて道が突然曲がっていた場合、斥力を感じても曲がりきれず意図に反して道路から逸脱してしまうものと同様である。ここで、第１の実施の形態では、経路から脱線すべきかどうか判定する際に、スクロールしようとする方向ベクトルの値と経路の形状を表す代表ベクトルの値を単純に比較している。これでは、上記のような問題が生じてしまう。
【００９７】
これを防止するため、第２の実施の形態では、ユーザが地図をスクロールさせようとした方向ベクトルと、それと時間Δｔの分だけ以前の方向ベクトルとの差分を取ったベクトルである差分方向ベクトルを計算し、経路の代表ベクトルと比較することで、経路から脱線すべきかを判定するため上記の誤判定を解決することができる。
【００９８】
以下に、第２の実施の形態における方向ベクトルの時間差分（差分方向ベクトル）が、判定のよい標本となる理由について、ある瞬間の地点での判定の具体例を挙げて説明する。図２６ａと図２６ｂに示される経路は全く同じ経路であり、両者とも地点Ｅではコントローラが同じ右倒れ状態となっている。しかし、両者の意図は異なる。図２６ａでは、地点Ａからずっとコントローラが右に倒され、経路に沿って左から右へスクロールされてきた。ユーザは、不幸にして経路の形状が突然右方向から上方向に変わったのに気づかず、コントローラを相変わらず右に倒したままにし、地点Ｅを通過する瞬間が図２６ａには示されている。ユーザは経路に沿ってスクロールさせたいという意図がある。
【００９９】
図２６ｂでは、ユーザは地点Ａから地点Ｄまで経路に沿ってスクロールさせてきた。しかし、ユーザは途中でスクロールをやめ、地点Ｄや地点Ｅで経路から離れて周辺を見たいと思った。そこで、ユーザはコントローラを一旦ゼロの位置に戻して経路から脱線させようと経路と垂直な方向、すなわち地点Ｅで上向きの経路の方向（代表ベクトルの方向）と垂直な右方向にコントローラを意図的に倒し、その瞬間が図２６ｂには示されている。
【０１００】
第１の実施の形態では現在地点（例えば、地点Ｅ）にいる瞬間でのコントローラの状態を見るため、上記２つの例のどちらが経路から脱線しようとしているのか、あるいは経路に留まろうとしているのか区別することができない。地点Ｅでは、経路は上を向いているので代表ベクトルは上向きである。両者（図２６ａ、図２６ｂ）とも、ユーザは右方向にスクロールさせている（方向ベクトルが右方向である）ことから、第１の実施の形態では両者とも経路から脱線すべきと判定してしまう。
【０１０１】
その解決方法としては、地点Ｅでの瞬間ではなく地点Ｅに達するまでの過去の過程を見ることが必要となる。第２の実施の形態では、判別する地点でのコントローラやタッチパネルでスクロールさせようとしている方向ベクトルと、そこから時間Δｔ秒前の過去の方向ベクトルとの差分を取った差分方向ベクトルを計算することで解決できる。差分方向ベクトルが得られれば、判定する地点での代表ベクトルと比較して代表ベクトルと垂直な方向の成分（差分ゆがみベクトルの成分）を計算し、その成分の値がある閾値より大きい場合は、経路からの脱線をしようとしていると判断する。
【０１０２】
図２６ａの地点Ｄでは、地点Ｃと地点Ｄにおける差分方向ベクトルは０（ゼロ）となる。また、図２６ａの地点Ｅ では、地点Ｄと地点Ｅにおける差分方向ベクトルは０（ゼロ）となる。よって、脱線は行われない。一方、図２６ｂの地点Ｄでは、地点Ｃと地点Ｄにおける差分方向ベクトルは数式６によりやはり０（ゼロ）となる。コントローラをゼロの位置に戻そうとしているだけであるためである。また、図２６ｂの地点Ｅでは、地点Ｄと地点Ｅにおける差分方向ベクトルは、地点Ｄでコントローラをゼロの位置に戻してから地点Ｅで右方向に移動（１だけ移動）したため１となる。よって、脱線が地点Ｅで行われる。
【０１０３】
この時間Δｔ内での差分によって判断することで、ユーザが地点Ａからどれだけ初期に強くコントローラを右に倒して急カーブ（上あがりのカーブ）をむかえても、地点Ｄ、Ｅ周辺で、さらに与えられた時間Δｔ内に相対的に右にコントローラを強く倒さない限り、経路から脱線しないので安心してスクロールをさせることができる。もちろん、第１の実施の形態で述べたように、コントローラの場合は、コントローラの方向ベクトルのうち、経路における代表ベクトルと垂直な成分の分だけ上記で定義した斥力を感じるため、ユーザは経路の方向が変わったなと誤脱線することなく感じることができる。
【０１０４】
ユーザは、カーブ状の経路において斥力を感じながら経路の方向が変わり始めたと感じ、カーブに沿って地図をスクロールさせることができる。そこであえて、経路から脱線して自由スクロールモードに切り替えたい場合は、斥力の方向にさらに強くコントローラを倒すか、一度コントローラをゼロの位置の方へ戻してから斥力のある方向にコントローラを倒すことで切り替えができる。
【０１０５】
ここで、第２の実施の形態における制限スクロールから自由スクロールへの切り替えの判断を表示制御装置が行う際の一部のフローの一例を図２７に示す。ここでは、コントローラによるドラッグ操作でスクロールする場合について説明するが、タッチパネルによるドラッグ操作でスクロールする場合でも同様に考えられる。なお、以下の各処理は、例えば図１４に示される表示制御装置の各構成要素が適宜行うものである。図２７に示すように、まず、表示制御装置は、コントローラの位置（ｘ、ｙ）とそれ以前（時間Δｔ前）のコントローラの位置（ｘbefore、ｙbefore）を取得する（ステップＳ２７０１）。すなわち、方向ベクトルをそれぞれ取得する。
【０１０６】
取得された（ｘ、ｙ）、（ｘbefore、ｙbefore）に上述した数式６から９を適用して差分方向ベクトルを計算する（ステップＳ２７０２）。計算された差分方向ベクトルを代表ベクトルに投影させ、投影された投影ベクトル（ベクトルＳ）を取得し、差分方向ベクトルから投影ベクトルを差し引いたベクトルを差分ゆがみベクトルとする。すなわち、計算された差分方向ベクトルの代表ベクトルに垂直な成分を差分ゆがみベクトルとする（ステップＳ２７０３）。差分ゆがみベクトルの成分の値が一定の値より大きいか否かを判断する（ステップＳ２７０４）。一定の値より大きい場合には自由スクロールへの切り替えリクエストにより切り替えが行われる（ステップＳ２７０５）。
【０１０７】
図２８では、表示制御装置による制限スクロールから自由スクロールへの切り替えのための全体フローの一例が示されている。ここでは、コントローラによるドラッグ操作でスクロールする場合について説明するが、タッチパネルによるドラッグ操作でスクロールする場合でも同様に考えられる。なお、以下の各処理は、例えば図１４に示される表示制御装置の各構成要素が適宜行うものである。図２８に示すように、表示制御装置は、新しい位置への移動、拡大縮小値の変更のリクエストを受け付ける（ステップＳ２８０１）。受け付け後に、代表ベクトルが計算される（ステップＳ２８０２）。
【０１０８】
そして、コントローラの新たな位置を記録し（ステップＳ２８０３）、斥力を計算し、計算された斥力をコントローラへ与えるための処理（例えば、コントローラに対して斥力を与えるための制御信号などを生成して送信する処理）を行う（ステップＳ２８０４）。その後、制限スクロールから自由スクロールへの切り替えをするか否か判断する（ステップＳ２８０５：図２７参照）。切り替えるべきと判断されると、制限スクロールから自由スクロールに切り替えられる（ステップＳ２８０６）。切り替えるべきでないと判断されると、スクロールのベクトルの強さの分だけスクロールレールに沿って地図を移動させる（ステップＳ２８０７）。
【０１０９】
次に、逆に自由スクロールモードから制限スクロールモードへの簡単な切り替えについて説明する。第２の実施の形態では、図２９ａに示すように、地図をスクロールする際の注目点となるカーソルと近くにある経路との間の距離（距離Ｌ）が、ある一定の値よりも小さく（近く）、かつ、カーソルがスクロールされる際の速度Ｖの絶対値｜Ｖ｜が、ある一定の速度より小さくなったときに自由スクロールモードから制限スクロールモードへ切り替えられる。これにより、ユーザが自由に地図をスクロールさせてカーソルを経路の近くに持っていき、その周辺でカーソルの速度を緩める若しくは止めるなどすると、カーソルが経路というレールに吸着され、経路に沿ってのみ移動する制限スクロールに切り替わる。
【０１１０】
カーソルから経路までの距離の計算は、図２９ｂに示すように、経路上にある多数の標本点からカーソルまでの距離を測り、カーソルに一番近い経路点（標本点）を用いることで計算できる。なお、経路上の経路点の間隔は、表示されるピクセルの何倍かの値で固定されており、拡大縮小する経路の絶対的距離には依存しないようにしておく。
【０１１１】
ここで、第２の実施の形態における自由スクロールから制限スクロールへの切り替えの判断を表示制御装置が行う際のフローの一例を図３０に示す。なお、以下の各処理は、例えば図１４に示される表示制御装置の各構成要素が適宜行うものである。図３０に示すように、表示制御装置は、スクロールがされたか否かを判断する（ステップＳ３００１）。スクロールされたと判断すると、地図のスクロールの速度の絶対値が、事前に決められたある一定の値（所定の値）より小さいか否かを判断する（ステップＳ３００２）。一定の値より小さいと判断されると、地図データから近傍のブロック（エリア）の経路データを読み取る（ステップＳ３００３）。現在の拡大縮小率に合わせて経路に複数の経路点（標本点）をとる（ステップＳ３００４）。そして、各経路点から現在のカーソルの位置との距離をとり、その距離が最小となる経路点を見つける（ステップＳ３００５）。最小の距離が事前に決められたある値より小さいか否かを判断する（ステップＳ３００６）。小さいと判断されると、一番近い経路点にカーソルが吸着され、制限スクロールに切り替わる（ステップＳ３００７）。
【産業上の利用可能性】
【０１１２】
本発明に係る表示制御装置及び表示制御方法は、辿るべき経路が画面の外にはみ出ず、経路に沿った追跡が正確にできるため、ディスプレイ上に表示しきれない表示対象の一部を表示させる表示制御装置及び表示制御方法などに有用である。
【符号の説明】
【０１１３】
１４００  表示制御装置
１４０１  検出手段
１４０２  算出手段
１４０３  投影手段
１４０４  表示制御手段
１４０５  判断手段
１４０６  切替手段
１４０７  代表ベクトル算出手段
１４０８  デバイス制御手段
【図１ａ】
2011227473.tif 000007
【図１ｂ】
2011227473.tif 000008
【図２ａ】
2011227473.tif 000009
【図２ｂ】
2011227473.tif 000010
【図２ｃ】
2011227473.tif 000011
【図２ｄ】
2011227473.tif 000012
【図２ｅ】
2011227473.tif 000013
【図２ｆ】
2011227473.tif 000014
【図３ａ】
2011227473.tif 000015
【図３ｂ】
2011227473.tif 000016
【図３ｃ】
2011227473.tif 000017
【図３ｄ】
2011227473.tif 000018
【図４ａ】
2011227473.tif 000019
【図４ｂ】
2011227473.tif 000020
【図４ｃ】
2011227473.tif 000021
【図５ａ】
2011227473.tif 000022
【図５ｂ】
2011227473.tif 000023
【図５ｃ】
2011227473.tif 000024
【図５ｄ】
2011227473.tif 000025
【図５ｅ】
2011227473.tif 000026
【図６ａ】
2011227473.tif 000027
【図６ｂ】
2011227473.tif 000028
【図６ｃ】
2011227473.tif 000029
【図６ｄ】
2011227473.tif 000030
【図６ｅ】
2011227473.tif 000031
【図７】
2011227473.tif 000032
【図８ａ】
2011227473.tif 000033
【図８ｂ】
2011227473.tif 000034
【図８ｃ】
2011227473.tif 000035
【図８ｄ】
2011227473.tif 000036
【図８ｅ】
2011227473.tif 000037
【図９】
2011227473.tif 000038
【図１０ａ】
2011227473.tif 000039
【図１０ｂ】
2011227473.tif 000040
【図１０ｃ】
2011227473.tif 000041
【図１０ｄ】
2011227473.tif 000042
【図１０ｅ】
2011227473.tif 000043
【図１０ｆ】
2011227473.tif 000044
【図１０ｇ】
2011227473.tif 000045
【図１１】
2011227473.tif 000046
【図１２ａ】
2011227473.tif 000047
【図１２ｂ】
2011227473.tif 000048
【図１３ａ】
2011227473.tif 000049
【図１３ｂ】
2011227473.tif 000050
【図１３ｃ】
2011227473.tif 000051
【図１３ｄ】
2011227473.tif 000052
【図１３ｅ】
2011227473.tif 000053
【図１４】
2011227473.tif 000054
【図１５】
2011227473.tif 000055
【図１６ａ】
2011227473.tif 000056
【図１６ｂ】
2011227473.tif 000057
【図１７ａ】
2011227473.tif 000058
【図１７ｂ】
2011227473.tif 000059
【図１８ａ】
2011227473.tif 000060
【図１８ｂ】
2011227473.tif 000061
【図１９ａ】
2011227473.tif 000062
【図１９ｂ】
2011227473.tif 000063
【図２０ａ】
2011227473.tif 000064
【図２０ｂ】
2011227473.tif 000065
【図２０ｃ】
2011227473.tif 000066
【図２１ａ】
2011227473.tif 000067
【図２１ｂ】
2011227473.tif 000068
【図２１ｃ】
2011227473.tif 000069
【図２２ａ】
2011227473.tif 000070
【図２２ｂ】
2011227473.tif 000071
【図２２ｃ】
2011227473.tif 000072
【図２３ａ】
2011227473.tif 000073
【図２３ｂ】
2011227473.tif 000074
【図２３ｃ】
2011227473.tif 000075
【図２３ｄ】
2011227473.tif 000076
【図２３ｅ】
2011227473.tif 000077
【図２３ｆ】
2011227473.tif 000078
【図２４】
2011227473.tif 000079
【図２５ａ】
2011227473.tif 000080
【図２５ｂ】
2011227473.tif 000081
【図２６ａ】
2011227473.tif 000082
【図２６ｂ】
2011227473.tif 000083
【図２７】
2011227473.tif 000084
【図２８】
2011227473.tif 000085
【図２９ａ】
2011227473.tif 000086
【図２９ｂ】
2011227473.tif 000087
【図３０】
2011227473.tif 000088