(57)【要約】【課題】３次元空間内の断面をユーザーの直感に合った方向に移動させることができる画像処理装置、画像処理方法、およびプログラムを提供する。【解決手段】実施形態の画像処理装置は、３次元空間情報記憶部と、投影部と、操作取得部と、基準ガイドレール決定部と、移動ベクトル計算部とを持つ。投影部は、３次元空間情報記憶部が記憶する断面平面の位置の情報に基づき、断面平面を投影面に投影して描画する。基準ガイドレール決定部は、操作取得部が取得したスライド操作の位置の情報に基づいて、基準ガイドレールを決定する。移動ベクトル計算部は、スライド操作の方向と移動量とに基づいて、基準ガイドレールと平行な２次元移動ベクトルを算出し、２次元移動ベクトルに対応する３次元移動ベクトルを算出し、算出された３次元移動ベクトルにしたがって断面平面の位置を変更する。【選択図】図１
2017224170.tif 000002
【特許請求の範囲】
【請求項１】
３次元空間内における断面平面の位置を記憶する３次元空間情報記憶部と、
前記３次元空間情報記憶部が記憶する前記断面平面の位置の情報に基づき、前記３次元空間内における前記断面平面を投影面に投影して描画する投影部と、
前記投影面が描画された画面の上でポイントをスライドさせるスライド操作を検知して前記スライド操作が行われた前記画面上の位置の情報を取得する操作取得部と、
前記操作取得部が取得した前記スライド操作の位置の情報に基づいて、前記３次元空間内において前記断面平面と定められた所定の角度で交わるガイドレールであって且つ前記ガイドレールを前記投影面に投影したときに前記スライド操作の位置の近傍に存在する基準ガイドレールを決定する基準ガイドレール決定部と、
前記スライド操作の方向とスライドさせたときの移動量とに基づいて、前記画面上における移動を表し前記基準ガイドレールと平行な２次元移動ベクトルを算出し、前記投影面上に存在する前記２次元移動ベクトルに対応して前記３次元空間内における移動の方向と移動量とを表す３次元移動ベクトルを算出し、算出された３次元移動ベクトルにしたがって前記３次元空間情報記憶部が記憶していた前記３次元空間内における前記断面平面の位置を変更する移動ベクトル計算部と、
を備える画像処理装置。
【請求項２】
予め設定された設定情報と前記断面平面の位置の情報とに基づいて、１個または複数のガイドレールに関する情報であるガイドレール情報を生成して前記３次元空間情報記憶部に書き込むガイドレール情報生成部、
をさらに備え、
前記基準ガイドレール決定部は、前記３次元空間情報記憶部を参照し、前記ガイドレール情報生成部によって生成されたガイドレールの中から前記基準ガイドレールを選択し決定する、
請求項１に記載の画像処理装置。
【請求項３】
前記基準ガイドレール決定部は、前記スライド操作が開始される時点で、前記投影面における当該スライド操作の始点ポイントの位置に対応する前記３次元空間内の点を通り且つ前記３次元空間において前記断面平面と定められた所定の角度で交わるガイドレールを求め、当該ガイドレールを前記基準ガイドレールとして決定する、
請求項１に記載の画像処理装置。
【請求項４】
前記投影部は、前記３次元空間内に存在する前記ガイドレールを前記投影面に投影して描画する、
請求項１から３までのいずれか一項に記載の画像処理装置。
【請求項５】
前記移動ベクトル計算部は、前記３次元空間において前記投影面と前記基準ガイドレールとが交わる最小角度であるα（０度≦α≦９０度）に基づき、前記スライド操作の移動量に対する前記２次元移動ベクトルの絶対値の比率がαに対して単調減少となるように、前記２次元移動ベクトルを算出する、
請求項１から４までのいずれか一項に記載の画像処理装置。
【請求項６】
前記移動ベクトル計算部は、前記スライド操作の方向と前記基準ガイドレールとが成す角度が予め定められた閾値よりも大きい場合には、前記断面平面を移動させる処理を行わない、
請求項１から５までのいずれか一項に記載の画像処理装置。
【請求項７】
３次元空間内における断面平面の位置を３次元空間情報記憶部に記憶させ、
前記３次元空間情報記憶部が記憶する前記断面平面の位置の情報に基づき、前記３次元空間における前記断面平面を投影面に投影して描画する投影過程と、
前記投影面が描画された画面の上でポイントをスライドさせるスライド操作を検知して前記スライド操作が行われた前記画面上の位置の情報を取得する操作取得過程と、
前記操作取得過程が取得した前記スライド操作の位置の情報に基づいて、前記３次元空間内において前記断面平面と定められた所定の角度で交わるガイドレールであって且つ前記ガイドレールを前記投影面に投影したときに前記スライド操作の位置の近傍に存在する基準ガイドレールを決定する基準ガイドレール決定過程と、
前記スライド操作の方向とスライドさせたときの移動量とに基づいて、前記画面上における移動を表し前記基準ガイドレールと平行な２次元移動ベクトルを算出し、前記投影面上に存在する前記２次元移動ベクトルに対応して前記３次元空間内における移動の方向と移動量とを表す３次元移動ベクトルを算出し、算出された３次元移動ベクトルにしたがって前記３次元空間情報記憶部が記憶していた前記３次元空間内における前記断面平面の位置を変更する移動ベクトル計算過程と、
を含む画像処理方法。
【請求項８】
コンピューターを、
３次元空間内における断面平面の位置を記憶する３次元空間情報記憶部と、
前記３次元空間情報記憶部が記憶する前記断面平面の位置の情報に基づき、前記３次元空間における前記断面平面を投影面に投影して描画する投影部と、
前記投影面が描画された画面の上でポイントをスライドさせるスライド操作を検知して前記スライド操作が行われた前記画面上の位置の情報を取得する操作取得部と、
前記操作取得部が取得した前記スライド操作の位置の情報に基づいて、前記３次元空間において前記断面平面と定められた所定の角度で交わるガイドレールであって且つ前記ガイドレールを前記投影面に投影したときに前記スライド操作の位置の近傍に存在する基準ガイドレールを決定する基準ガイドレール決定部と、
前記スライド操作の方向とスライドさせたときの移動量とに基づいて、前記画面上における移動を表し前記基準ガイドレールと平行な２次元移動ベクトルを算出し、前記投影面上に存在する前記２次元移動ベクトルに対応して前記３次元空間内における移動の方向と移動量とを表す３次元移動ベクトルを算出し、算出された３次元移動ベクトルにしたがって前記３次元空間情報記憶部が記憶していた前記３次元空間内における前記断面平面の位置を変更する移動ベクトル計算部と、
を備える画像処理装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、画像処理装置、画像処理方法、およびプログラムに関する。
【背景技術】
【０００２】
背景技術として、医用画像による診断や、３次元モデリングや、３次元コンピューターグラフィクス（３Ｄ−ＣＧ）等の分野で、３次元空間をコンピューター等のディスプレイ装置に表示する技術が存在する。この技術では、３次元空間を、その３次元空間内の所定の投影面に投影し、その投影面の画像をディスプレイ装置に表示する。また、３次元空間内に存在する断面を、上記の投影面に投影して表示する場合もある。
【０００３】
従来技術において、ユーザーが３次元空間内の断面を移動させることのできる機能を提供するものがある。このとき、ユーザーは、マウスやペンタブやタッチパネルなどといったポインティング手段によるユーザーインターフェースを介して、断面を移動させる。しかしながら、移動対象とする断面を表示している領域と３次元空間の投影面との間で視点が異なることにより、ユーザーが直感する移動方向と、実際の断面の移動方向とが合わない場合がある。このような場合、ユーザーにとっては直感的な操作が行えずフラストレーションが生じる可能性がある。
また、従来技術において、表示されているパラメーター数値をユーザーが変更することにより３次元空間内の断面を移動させる機能を提供するものがある。このとき、ポインティング手段を操作することによって画面上の矢印のボタンを押し、その結果としてパラメーター数値が変更される。しかしながら、数値を変更するための矢印の移動方向と、断面の移動方向とが合わない場合がある。この場合にも、ユーザーにとってはスムーズな操作が行えない可能性がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００２−２４５４８７号公報
【非特許文献】
【０００５】
【非特許文献１】「Documentation/4.5/Announcements - SlicerWiki」、［online］、平成２７年（２０１５年）１２月１５日、The community of Slicer developers、［平成２８年４月１０日検索］、インターネット＜URL：http://wiki.slicer.org/slicerWiki/index.php/Documentation/4.5/Announcements＞
【非特許文献２】「断面レンダリング」、［online］、平成２４年（２０１２年）３月４日、CGrad Project Blog、［平成２８年４月１０日検索］、インターネット＜URL：http://www.cgradproject.com/blog/archives/category/blender/%E6%96%AD%E9%9D%A2%E3%83%AC%E3%83%B3%E3%83%80%E3%83%AA%E3%83%B3%E3%82%B0＞
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明が解決しようとする課題は、３次元空間内の断面をユーザーの直感に合った方向に移動させることができる画像処理装置、画像処理方法、およびプログラムを提供することである。
【課題を解決するための手段】
【０００７】
実施形態の画像処理装置は、３次元空間情報記憶部と、投影部と、操作取得部と、基準ガイドレール決定部と、移動ベクトル計算部とを持つ。３次元空間情報記憶部は、３次元空間内における断面平面の位置を記憶する。投影部は、前記３次元空間情報記憶部が記憶する前記断面平面の位置の情報に基づき、前記３次元空間における前記断面平面を投影面に投影して描画する。操作取得部は、前記投影面が描画された画面の上でポイントをスライドさせるスライド操作を検知して前記スライド操作が行われた前記画面上の位置の情報を取得する。基準ガイドレール決定部は、前記操作取得部が取得した前記スライド操作の位置の情報に基づいて、前記３次元空間内において前記断面平面と定められた所定の角度で交わるガイドレールであって且つ前記ガイドレールを前記投影面に投影したときに前記スライド操作の位置の近傍に存在する基準ガイドレールを決定する。移動ベクトル計算部は、前記スライド操作の方向とスライドさせたときの移動量とに基づいて、前記画面上における移動を表し前記基準ガイドレールと平行な２次元移動ベクトルを算出し、前記投影面上に存在する前記２次元移動ベクトルに対応して前記３次元空間内における移動の方向と移動量とを表す３次元移動ベクトルを算出し、算出された３次元移動ベクトルにしたがって前記３次元空間情報記憶部が記憶していた前記３次元空間内における前記断面平面の位置を変更する。
【図面の簡単な説明】
【０００８】
【図１】第１の実施形態の画像処理装置の概略機能構成を示すブロック図。
【図２】第１の実施形態の画像処理装置による投影された３次元空間の例を示す概略図。
【図３】第１の実施形態の画像処理装置による投影された３次元空間の例を示す概略図。
【図４】第１の実施形態の３次元空間情報記憶部が記憶するデータの構成例を示す概略図。
【図５】第１の実施形態の２次元領域情報記憶部が記憶するデータの構成例を示す概略図。
【図６】第１の実施形態の画像処理装置による、断面平面を移動させるための処理手順を示すフローチャート。
【図７】第１の実施形態の基準ガイドレール決定部が基準ガイドレールを決定する処理を説明するための概略図（２次元領域の平面図）。
【図８】第１の実施形態の移動方向判定部が断面平面の移動方向を決定する処理を説明するための概略図。
【図９】第１の実施形態の移動方向判定部が断面平面を移動させるためのガイドベクトルを求める処理を説明するための概略図。
【発明を実施するための形態】
【０００９】
以下、実施形態の画像処理装置、画像処理方法、およびプログラムを、図面を参照して説明する。
【００１０】
（第１の実施形態）
図１は、本実施形態による画像処理装置の概略機能構成を示すブロック図である。図示するように、画像処理装置１は、２次元領域情報記憶部１２と、３次元空間情報記憶部１３と、操作取得部２１と、基準ガイドレール決定部２２と、移動方向判定部２３と、移動ベクトル計算部２４と、ガイドレール情報生成部３１と、投影部４１とを含んで構成される。
【００１１】
画像処理装置１は、仮想的な３次元空間における様々なオブジェクト等をモデル化し、それらのオブジェクト等を投影面に投影した結果得られる画像を画面等に表示する。画像処理装置１は、電子回路を用いた情報処理装置として実現される。２次元領域情報記憶部１２および３次元空間情報記憶部１３は、半導体メモリーや磁気ハードディスクなどの情報記憶媒体を用いて実現される。画像処理装置１を、コンピューターとプログラムによって実現するようにしてもよい。より具体的には、画像処理装置１は、パーソナルコンピューターやタブレット端末装置やスマートフォン（スマホ）などといった装置と、それらの装置が有するＣＰＵ（中央処理装置）で稼働するアプリケーションプログラム（アプリ）とで実現することもできる。画像処理装置１のユーザーは、例えば液晶ディスプレイ装置などの表示装置に表示される画像を見る。また、ユーザーは、マウスやタッチパネルやペンタブ等のポインティングデバイスを用いて、表示される画像に関する操作を行うことができる。以下において、画像処理装置１が処理対象として扱う空間を「３次元空間」と呼び、上記の投影面やディスプレイ装置の画面を「２次元領域」等と呼ぶ。画像処理装置１が３次元空間におけるオブジェクトの情報を記憶したり、それらのオブジェクトをレンダリングしたりする処理自体は、既存技術を用いて行うことができる。
【００１２】
また、画像処理装置１は、３次元空間内の断面平面を上記の投影面に投影させた状態で表示装置に表示する。そして、画像処理装置１は、ユーザーからの操作に基づき、この断面平面を３次元空間内で移動させる処理を行う。
ここで、断面平面とは、３次元空間を切った断面である。画像処理装置１は、３次元空間の状態をユーザーに提示するために、この断面平面における画像を表示する。なお、断面平面は、平面である。３次元空間における一点を座標（Ｘ，Ｙ，Ｚ）で表すとき、３次元空間のその点における状態は値Ｖ（Ｘ，Ｙ，Ｚ）で表され得る。３次元空間内の平面をＰとするとき、その断面平面の画像は、（Ｘ，Ｙ，Ｚ）∈Ｐなる点（Ｘ，Ｙ，Ｚ）における値Ｖ（Ｘ，Ｙ，Ｚ）の集合として表され得る。画像処理装置１は、このような断面平面を移動させるためのユーザーインターフェースを提供する。
なお、ユーザーの操作に基づいて断面平面を移動させる際に、画像処理装置１は、定められたガイドレールに沿って断面平面を移動させる。ガイドレールの位置等は、設定情報として予め定めておくものである。本実施形態において、ガイドレールは、断面平面と垂直である。ただし、ガイドレールと断面平面とが垂直でなくてもよい。ガイドレールと断面平面とが、９０度以外の所定の角度を成すように交わっている状況においても、断面平面をガイドレールに沿って移動させることは可能である。なお、ガイドレールを「ガイドライン」と呼んでもよい。
以下において、画像処理装置１を構成する各部の機能を説明する。
【００１３】
２次元領域情報記憶部１２は、２次元領域に関する情報を記憶する。２次元領域情報記憶部１２が記憶するデータの詳細については、別の図を参照しながら後で説明する。
３次元空間情報記憶部１３は、３次元空間に関する情報を記憶する。３次元空間情報記憶部１３は、少なくとも、３次元空間内における断面平面の位置を表す情報を記憶する。３次元空間情報記憶部１３が記憶するデータの詳細については、別の図を参照しながら後で説明する。
【００１４】
操作取得部２１と、基準ガイドレール決定部２２と、移動方向判定部２３と、移動ベクトル計算部２４とは、ユーザーによる操作に基づいて、断面平面を移動させるための計算等の処理を行うものである。
【００１５】
操作取得部２１は、ユーザーによる操作の内容やそのパラメーターを取得する。特に、操作取得部２１は、画面上でのユーザーによる操作の種類や、その操作が行われる位置の情報を取得する。操作の一種であるスライド操作に関しては、操作取得部２１は、投影面が描画された画面の上で、例えば指やポインティングスティック等の指示手段によって指示されたポイントをスライドさせるスライド操作を検知する。そして、操作取得部２１は、スライド操作が行われた画面上の位置の情報を取得する。スライド操作の位置の情報とは、画面上におけるスライド操作の開始ポイントの座標および終点ポイントの座標の情報である。
基準ガイドレール決定部２２は、操作取得部２１が取得したスライド操作の位置の情報、つまり開始ポイントの座標と終点ポイントの座標とに基づいて、次の処理を行う。即ち、基準ガイドレール決定部２２は、３次元空間内において断面平面と直交するガイドレールであって、且つスライド操作を検知したときにスライド操作の位置の近傍に投影面上で投影されているガイドレールを、基準ガイドレールとして決定する。なお、本実施形態の基準ガイドレール決定部２２は、３次元空間情報記憶部１３を参照し、ガイドレール情報生成部３１によって生成されていたガイドレールの中から基準ガイドレールを選択し決定する。
移動方向判定部２３は、スライド操作の方向に基づいて、断面平面を、基準ガイドレールが伸びる方向のいずれの側の方向に移動させるかを判定する。
【００１６】
移動ベクトル計算部２４は、スライド操作の方向とスライドさせたときの移動量とに基づいて、画面上における移動を表し基準ガイドレールと平行な２次元移動ベクトルを算出する。そして、移動ベクトル計算部２４は、投影面上に存在する２次元移動ベクトルに対応して３次元空間内における移動の方向と移動量とを表す３次元移動ベクトルを算出する。そして、移動ベクトル計算部２４は、算出した３次元移動ベクトルにしたがって３次元空間情報記憶部１３が記憶している３次元空間内における断面平面の位置を変更する。
なお、断面平面の位置が３次元空間情報記憶部１３上で書き換えられることによって、断面平面の再描画が行われる。具体的には、移動ベクトル計算部２４は、移動後の断面平面の位置の情報を投影部４１に渡す。移動ベクトル計算部２４から移動後の断面平面の位置の情報を受け取ると、投影部４１は移動後の断面平面を投影面に投影する。断面平面の移動後には、投影面のうち、少なくとも、移動前に断面平面があった位置に相当する部分と移動後に断面平面がある位置に相当する部分とは、再描画される。
【００１７】
ガイドレール情報生成部３１は、ガイドレール設定情報に基づいて、与えられる断面平面に直交するガイドレールの情報を生成し、３次元空間情報記憶部１３にガイドレール情報を書き込む。ガイドレール設定情報については後述する。
つまり、ガイドレール情報生成部３１は、予め設定されたガイドレール設定情報と断面平面の位置の情報とに基づいて、１個または複数のガイドレールに関する情報であるガイドレール情報を生成して３次元空間情報記憶部１３に書き込む。ガイドレール情報生成部３１が生成するガイドレール情報は、各ガイドレールの位置の情報（始点および終点の座標）である。また、ガイドレール情報生成部３１は、生成したガイドレール情報を投影部４１に渡すことにより、投影部４１に、ガイドレールを投影面に投影させる。
【００１８】
投影部４１は、３次元空間内のオブジェクトの情報に基づき、それらのオブジェクトを投影面に投影する。投影面に投影された画像は、画像処理装置１のディスプレイ装置にそのまま表示される。なお、投影部４１が投影面に投影するオブジェクトとしては、３次元空間の断面平面や、ガイドレールも含まれる。つまり、投影部４１は、３次元空間情報記憶部１３が記憶する断面平面の位置の情報に基づき、３次元空間における断面平面を投影面に投影して描画する。なお、投影部４１は、透視投影（perspective projection）を用いて投影しても、平行投影（parallel projection）を用いて投影してもよい。透視投影を行う場合には、投影部４１は、３次元空間情報記憶部１３が保持する視点座標の情報を参照する。
【００１９】
図２および図３は、画像処理装置１が表示する投影された３次元空間の表示例を示す概略図である。図２および図３が表示する画像は、３次元空間が投影面に投影された画像である。なお、図において、黒の四角形の枠は、３次元空間内の断面平面の外枠である。また、符号Ｇ１およびＧ２を付した黒い線分は、それぞれガイドレールである。また、図では、３次元空間内の地形が投影面に投影されている。また、図では、３次元空間内の断面平面にグレースケールによる画像が描かれている。つまり、画像処理装置１は、投影面に投影された、断面平面の外枠と、ガイドレールＧ１およびＧ２と、地形と、断面平面における画像とを表示している。なお、後述する手順により基準ガイドレールが決定された後には、画像処理装置１が、基準ガイドレールのみを表示するようにしてもよい。図２および図３は、気象データ（例えば、３次元空間内の水分量など）を表示している例である。この図の基となる気象データでは、３次元空間のうち、地表よりも上の部分の各座標に対応する数値データが含まれている。数値データは、画素値に変換され得る。画素値は、白黒画像の場合にはグレースケールの階調に対応し、カラー画像の場合には色に対応する。画像処理装置１は、３次元空間の各座標に対応した数値の、断面平面における断面図を、投影面に投影して表示する。
【００２０】
図示する例は気象データの例であるが、気象データに限らず、３次元空間に分布する数値データをグラフィカルに表示する用途で、この画像処理装置１を用いることができる。例えば、形状モデリング（自動車、建築物、精密機器部品等）や、医用データ表示（コンピュータートモグラフィー（ＣＴ）や、核磁気共鳴画像法（ＭＲＩ）による臓器等の３次元表示）や、その他の用途に、この画像処理装置１を用いることができる。
【００２１】
なお、図示した例では、ガイドレールの数は２本であったが、設定によりガイドレールの本数は任意である。１本以上のガイドレールを用いるように予め設定しておくこととする。また、図示した例では、断面平面は四角形の形状であり、４本の黒枠の線を用いて断面平面を表しているが、断面平面の形状や枠線の数や形状は任意である。また、図示した例では透視投影を用いているため、３次元空間において平行な複数のガイドレールは、投影面に投影された像では平行には描かれず、消失点（vanishing point）において交わる。なお、消失点は、無限遠に存在する。なお、透視投影ではなく平行投影を用いて投影面への投影を行うようにしてもよい。
【００２２】
次に画像処理装置１が用いるデータの構成について説明する。
【００２３】
図４は、３次元空間情報記憶部１３が記憶するデータの構成例を示す概略図である。図示するように、３次元空間情報記憶部１３は、ガイドレール設定情報と、断面平面情報と、ガイドレール情報と、視点情報と、投影面情報とを記憶する。
ガイドレール設定情報は、ガイドレールを生成するために予め設定しておく情報である。ガイドレール設定情報は、ガイドレールの個数（本数）を表す数値情報と、断面平面に対するガイドレールの位置の情報（個々のガイドレールごとの位置の情報）と、ガイドレールの長さの情報（個々のガイドレールごとの長さ）とを含む。断面平面の位置や向きは変わり得るが、断面平面の位置に対するガイドレールの位置の情報は、例えば、断面平面の下端左端（所定方向から見た左）や断面平面の下端右端などのように、断面平面に対する相対的な関係の情報として表し得る。ガイドレールの長さの情報は、３次元空間の座標系における長さの数値情報として表される。
ガイドレール設定情報は、ガイドレール情報生成部３１がガイドレール情報を生成する際に参照される。
【００２４】
断面平面情報は、断面平面の傾き情報と、断面平面の範囲の情報とを含む。断面平面の傾き情報は、３次元空間の座標系（例えば、ｘｙｚ直交座標）における平面の方程式の情報として表される。あるいは、断面平面の傾き情報は、断面平面の法線ベクトルの成分の情報として表される。断面平面の範囲の情報は、断面平面が範囲を有する場合（例えば、断面平面が４つの辺で囲まれた四角形の内部の範囲の視である場合）に、その範囲を表す。例えば、断面平面の範囲の情報は、断面平面の内部と外部とを区切る境界線の方程式の情報として表される。
【００２５】
ガイドレール情報は、ガイドレール情報生成部３１によって生成される情報である。ガイドレール情報は、生成された個々のガイドレールの始点および終点の、３次元空間における座標の情報である。また、個々のガイドレールは、ガイドレールＩＤの情報によって識別される。
【００２６】
視点情報は、３次元空間を投影面に投影する際の視点の位置を表す情報である。視点情報は、視点の３次元画像における座標値である。
投影面情報は、投影面の傾き情報と、投影面の範囲情報とを含む。投影面の傾き情報は、３次元空間の座標による、投影面の平面を表す方程式の情報として表される。あるいは、投影面の傾き情報は、投影面の法線ベクトルの成分の情報として表される。投影面の範囲の情報は、投影面の範囲（ディスプレイ装置等に表示される範囲）を、３次元空間の座標を用いて表した情報である。一例として、投影面の内部と外部とを分ける境界線の方程式の情報として、投影面の範囲の情報は表される。
【００２７】
図５は、２次元領域情報記憶部１２が記憶するデータの構成例を示す概略図である。図示するように、２次元領域情報記憶部１２は、基準ガイドレール情報と、基準距離と、基準角度とを記憶する。
基準ガイドレール情報は、複数のガイドレールＩＤのうちの、基準ガイドレールのＩＤの情報である。基準ガイドレールは、基準ガイドレール決定部２２によって決定される。基準ガイドレール決定部２２が、選択した基準ガイドレールのＩＤを、この基準ガイドレール情報として書き込む。
基準距離は、基準ガイドレールを決定する際に用いられる距離ｄを表す数値情報である。距離ｄは、２次元領域内の座標系における距離である。基準距離ｄは、スライド操作されたときのタッチ位置と、基準ガイドレールとして選択され得るガイドレールとの間の距離の上限である。なお、具体的なｄの値は、アプリケーションごとに適宜定められるようにしてよい。この基準距離ｄの情報は、基準ガイドレール決定部２２によって参照される。
基準角度は、移動方向を決定する際に用いられる角度θを表す数値情報である。角度θは、２次元領域の平面における角度である。角度θは、スライド操作されたときのスライド軌跡の方向と、基準ガイドレールとが成す角度の上限値である。この基準角度θの情報は、移動方向判定部２３によって参照される。
【００２８】
図６は、画像処理装置１が、ユーザーによるスライド操作に応じて３次元空間内の断面平面を移動させて再描画するまでの処理手順を示すフローチャートである。以下、このフローチャートに沿って、断面平面を移動させる処理の概略を説明する。
まずステップＳ１において、操作取得部２１は、スライド操作を検知する。またこのとき、操作取得部２１は、スライド操作の軌跡の位置の情報を取得する。具体的には、操作取得部２１は、２次元の表示画面（２次元領域）における、スライド操作の始点ポイントと終点ポイントの座標（ｘ座標値とｙ座標値）を取得する。
【００２９】
次にステップＳ２において、基準ガイドレール決定部２２は、基準ガイドレールを決定する。具体的には、基準ガイドレール決定部２２は、操作取得部２１が取得したスライド操作の軌跡に基づいて、１個以上のガイドレールのうちのどれを基準とするかを決定する。なお、スライド操作の軌跡の位置によっては、基準ガイドレールが選ばれない場合もある。基準ガイドレールが決定されない場合には、本フローチャートにおける処理を中止するため、断面平面の移動は行われない。
【００３０】
次にステップＳ３において、移動方向判定部２３は、断面平面の移動方向を判定する。具体的には、移動方向判定部２３は、操作取得部２１が取得したスライド操作の軌跡の方向に基づいて、断面平面の移動方向を表すこととなるガイドベクトルを求める。なお、ガイドベクトルは、上で決定された基準ガイドレールの方向と平行なベクトルであり、その正または負のいずれかの方向を向くベクトルである。本実施形態においては、基準ガイドレールは移動させようとする断面平面に垂直な線である。つまり、ガイドベクトルは、断面平面をその平面に垂直な２つの方向のうちのいずれかの方向を示すベクトルである。
【００３１】
次にステップＳ４において、移動ベクトル計算部２４は、断面平面の移動を表す移動ベクトルを計算する。具体的には、移動ベクトル計算部２４は、２次元領域における移動を表すベクトルとして計算された上記のガイドベクトルに基づいて、移動ベクトルを計算する。移動ベクトルは、３次元区間における、移動平面の移動方向と移動の大きさとを表すベクトルである。
移動ベクトル計算部２４による処理の詳細については、後でも説明する。
そして、移動ベクトル計算部２４は、算出された移動ベクトルを用いて、３次元空間内で断面平面を移動させる。そして、移動ベクトル計算部２４は、移動後の断面平面を投影面に投影させるために、移動後の断面平面の位置等の情報を投影部４１に渡す。
【００３２】
次にステップＳ５において、投影部４１は、移動後の断面平面を表示する。具体的には、投影部４１は、少なくとも移動前の断面平面の位置と移動後の断面平面の位置について、投影面の再描画を行う。そして、投影部４１は、更新された投影面の画像をディスプレイ装置等に表示させる。
本ステップの処理が終了すると、画像処理装置１は、このフローチャートの処理全体を終了させる。なお、その後、操作取得部２１がユーザーによるスライド操作を検知すると、再度、ステップＳ１からの処理を再開する。
【００３３】
次に、上述したステップＳ１からＳ５までの処理のさらなる詳細について、説明する。
【００３４】
操作取得部２１は、ユーザーによる操作の情報を取得する。本実施形態において操作取得部２１が取得する操作は、タッチ操作とスライド操作とを含むものである。タッチ操作は、画面上のある位置に触る操作である。スライド操作は、画面上を触った状態のまま画面上のある位置から他の位置へ、滑るように移動させる操作である。
操作取得部２１は、タッチ操作が行われた場合には、タッチされたポイント（位置）の座標（画面上におけるｘ，ｙの２次元座標）を取得する。また、操作取得部２１は、スライド操作が行われた場合には、スライドされた始点ポイントと終点ポイントのそれぞれの座標を取得する。例えば、第ｎ番目のポイント、第（ｎ＋１）番目のポイント、第（ｎ＋２）番目のポイントと、連続的にスライド操作が行われた場合には、操作取得部２１は、これらの各ポイントの座標を取得する。また、操作取得部２１は、タッチ操作もスライド操作も行われていないときには、それらの操作がないことを表す状態を情報として取得する。なお、ここで、タッチパネルを用いた場合の「触る」操作とは、指やポインティングスティック等をパネルに触れさせる操作である。また、ペンタブを用いた場合の「触る」操作とは、ペンやポインティングスティック等をパッドに触れさせる操作である。また、マウスを用いた場合の「触る」操作とは、マウスカーソルがあるポイントに存在している状態でマウスボタンを押す操作である。また、マウスを用いた場合のスライド操作とは、マウスボタンを押したままの状態で、マウスカーソルを移動させる操作である。
【００３５】
基準ガイドレール決定部２２は、スライド操作に基づいて断面平面の移動を開始する際に、複数あるガイドレールのうちのどのガイドレールを移動の基準として用いるかを決定する。基準ガイドレール決定部２２は、スライド操作の始点ポイントおよび終点ポイントの座標を、操作取得部２１から取得する。
具体的には、基準ガイドレール決定部２２は、次の処理を行う。
まず、基準ガイドレール決定部２２は、３次元空間情報記憶部１３からガイドレールの情報を読み出し、それらのガイドレールが２次元領域において存在する位置を計算する。このとき、ガイドレールの数は１以上である。
次に、基準ガイドレール決定部２２は、スライド操作の始点ポイント（２次元領域における座標が操作取得部２１から与えられる）と、２次元領域における各ガイドレールとの距離を計算する。
次に、基準ガイドレール決定部２２は、上記の始点ポイントからの距離が予め定められた基準距離ｄ以下であり、且つ始点ポイントから最も近いガイドレールを選択する。つまり、基準ガイドレール決定部２２は、この選択されたガイドレールを基準ガイドレールとして決定する。なお、スライド操作の始点ポイントからガイドレールまでの距離については、後で図７を参照しながら説明する。
次に、基準ガイドレール決定部２２は、決定した基準ガイドレールを識別する情報（ガイドレールＩＤ）を２次元領域情報記憶部１２に書き込む。また、基準ガイドレール決定部２２は、基準ガイドレールの始点と終点の３次元空間における座標を３次元空間情報記憶部１３に書き込む。
なお、上記の条件に照らして基準ガイドレールがなかった場合には、基準ガイドレール決定部２２は基準ガイドレールの情報を書き込まない。また、この場合、画像処理装置は断面平面を移動させるための以後の処理を行わない。
【００３６】
移動方向判定部２３は、スライド操作に基づいて断面平面を移動させる際に、基準ガイドレールを基準としたときのどちらの方向への移動を行うかを判定するものである。基準ガイドレールは１次元の線として扱われる。したがって、移動方向判定部２３は、その線に沿った方向を正と負で表した場合において、移動方向が正であるか負であるかを判定する。なお、移動方向判定部２３は、スライド操作の始点ポイントおよび終点ポイントの座標を、基準ガイドレール決定部２２から取得する。
具体的には、移動方向判定部２３は、次の処理を行う。
まず、移動方向判定部２３は、表示されている２次元領域上における、基準ガイドレール（直線）とスライド操作の軌跡とが成す角度を計算する。なお、スライド操作の軌跡は、直線と見なしてよい。
次に、移動方向判定部２３は、上で算出された角度（基準ガイドレールとスライド操作軌跡とが成す角度）が所定の基準角度θ以下であるか否かを判定する。この角度がθ以下であれば、断面平面を移動させるための以下の処理を続ける。なお、この角度がθよりも大きければ、断面平面を移動させるための処理を行わない。
次に、移動方向判定部２３は、スライド操作中のポイントの位置情報と、基準ガイドレールの情報（始点および終点の座標）とから、ガイドベクトルを計算する。ガイドベクトルは、断面平面を移動させる方向を表すものである。ここで、ガイドベクトルは、基準ガイドレールの正方向あるいは負方向のいずれかである。そしてまた、ガイドベクトルは、これら正負の方向のうち、スライド操作の軌跡の方向（始点から終点に向かう方向）に近い方の方向を有するベクトルである。
なお、移動方向判定部２３による移動方向の判定の処理については、後で図８を参照しながら説明する。
また、移動方向判定部２３がガイドベクトルを求める処理については、後で図９を参照しながら説明する。
【００３７】
移動ベクトル計算部２４は、スライド操作の軌跡に基づいて、断面平面を移動させるための移動ベクトルを求める。この移動ベクトルは、３次元空間における移動を表すベクトルである。なお、移動ベクトル計算部２４は、スライド操作の始点ポイントおよび終点ポイントの座標を、移動方向判定部２３から取得する。
具体的には、移動ベクトル計算部２４は、次の処理を行う。
【００３８】
まず、移動ベクトル計算部２４は、３次元空間における投影面の位置の情報と、基準ガイドレールの情報（始点と終点の座標）とから、角度αを計算する。角度αは、投影面と基準ガイドレールとが交わる角度である。
次に、移動ベクトル計算部２４は、ガイドレール傾き係数計算関数ｆ（）と、上で計算された角度αとから、ガイドレール傾き係数βを計算する。つまり、下の式により、ガイドレール傾き係数βが算出される。
β＝ｆ（α）
【００３９】
なお、ガイドレール傾き係数計算関数ｆ（）は、アプリケーションに応じて適宜定めておくようにする。なお、関数ｆ（）は、次の特性を有する関数である。即ち、関数ｆ（α）の定義域は、０度≦α≦９０度である。また、関数ｆ（α）の値域は、０＜ｆ（α）≦１である。また、関数ｆ（α）は、変数αに関して単調減少関数である。
このような特性を有する関数ｆの一例は、下に示す関数である。
ｆ（α）＝０．９ｃｏｓ２（α）＋０．１
ただし、関数ｆは、ここに例示した関数に限定されるものではない。
なお、関数ｆを計算するための計算式の情報、あるいは関数ｆの入出力の値の関係を表すルックアップテーブルの情報を、３次元空間情報記憶部１３に予め記憶させておくようにしてもよい。
【００４０】
つまり、移動ベクトル計算部２４は、３次元空間において投影面と基準ガイドレールとが交わる最小角度であるα（０度≦α≦９０度）に基づき、スライド操作の移動量に対する２次元移動ベクトルの絶対値の比率がαに対して単調減少となるように、２次元移動ベクトルを算出する。
【００４１】
次に、移動ベクトル計算部２４は、移動方向判定部２３によって計算されたガイドベクトルＧＶｎと、上で計算されたガイドレール傾き係数βとを用いて、２次元領域における移動ベクトルを計算する。なお、２次元領域における移動ベクトルを、便宜的に２次元移動ベクトルＭＶｎと呼ぶ。即ち、移動ベクトル計算部２４は、下の式によりガイドベクトルＧＶｎを求める。
ＭＶｎ＝β・ＧＶｎ
ガイドレール傾き係数βを掛けることにより、２次元領域上での移動量を補正する作用が得られる。２次元領域（ディスプレイ装置等に表示される２次元平面）での移動量を補正することによるメリットは、次の通りである。即ち、投影面と基準ガイドレールとが３次元空間内で交わる角度αが大きい場合（直交により近い場合）、２次元領域上でのわずかなスライド量で断面平面が大きく移動してしまうと、ユーザーは意図したとおりに断面平面を移動させにくいという問題がある。このような問題を軽減するために移動量を補正することによって、断面平面の移動量をコントロールしやすくなるというメリットが得られる。
【００４２】
次に、移動ベクトル計算部２４は、上で求められた２次元移動ベクトルを、３次元空間内の移動ベクトルである３次元移動ベクトルに変換する処理を行う。なお、２次元移動ベクトルを３次元移動ベクトルに変換するためには、移動ベクトル計算部２４は、基準ガイドレールの３次元空間における位置の情報を参照する。
そして、移動ベクトル計算部２４は、投影面上の基準ガイドレール上の２次元移動ベクトルＭＶｎの始点および終点を、視点の位置（３次元区間におけるｘｙｚ座標）から、逆投影する。即ち、移動ベクトル計算部２４は、視点と２次元移動ベクトルＭＶｎの始点と
を結ぶ直線と、３次元空間内の基準ガイドレールとの交点を、３次元移動ベクトルの始点とする。また、移動ベクトル計算部２４は、視点と２次元移動ベクトルＭＶｎの終点とを結ぶ直線と、３次元空間内の基準ガイドレールとの交点を、３次元移動ベクトルの終点とする。このように、移動ベクトル計算部２４は、３次元移動ベクトルの始点と終点が求められる。即ち、２次元移動ベクトルから３次元移動ベクトルへの変換（逆投影）の処理が行える。
なお、ここでの、基準ガイドレールの３次元空間における位置情報を取得する手順は次の通りである。即ち、移動ベクトル計算部２４は、２次元領域情報記憶部１２を参照することにより、基準ガイドレールのガイドレールＩＤを取得することができる。そして、移動ベクトル計算部２４は、この取得したガイドレールＩＤを用いて、３次元空間情報記憶部１３を参照する。移動ベクトル計算部２４は、そのＩＤを有するガイドレールの３次元空間による位置情報（始点および終点の座標）を３次元空間情報記憶部１３から読み出す。
【００４３】
なお、移動ベクトル計算部２４は、上に例示した手順に限らず、２次元領域における２次元移動ベクトルを、３次元空間における３次元移動ベクトルに変換することができる。
なお、実際に３次元移動ベクトルの始点と終点を求めなくても、３次元空間における断面平面の移動量を計算するだけでも十分である。なお、前提として、断面平面の移動方向は、ガイドレールの方向（断面平面に垂直な方向）に拘束されている。
【００４４】
そして、移動ベクトル計算部２４は、上記の計算の結果得られる移動量に基づいて、実際に、断面平面を移動させる。
【００４５】
図７は、基準ガイドレール決定部２２が基準ガイドレールを決定する処理を行う際の、スライド操作の始点ポイントとガイドレールとの距離を示す概略図である。同図は、画像処理装置１がディスプレイ装置等に表示した表示面を示している。同図において、点ｐは、ユーザーによるスライド操作の始点ポイントである。また、点ａは、ある１本のガイドレールの始点である。また、点ｂは、そのガイドレールの終点である。基準ガイドレール決定部２２は、基準ガイドレールを決定するために、スライド操作の始点ポイントから各ガイドレールまでの距離を算出する。基準ガイドレール決定部２２は、スライド操作の始点ポイントｐからガイドレールまでの距離Ｈを、次の式により計算する。
Ｈ＝ｓｉｎ（γ）・｜Ｖａｐ｜
ここで、Ｖａｐは、点ａから点ｐへのベクトルである。また、γは、直線ａｐと直線ａｂとが成す角度である。また、ｓｉｎは、正弦関数である。なお、γは、次の式により求められる。
γ＝ａｃｏｓ｛（Ｖａｂ・Ｖａｐ）／（｜Ｖａｂ｜・｜Ｖａｐ｜）｝
ここで、Ｖａｐは、点ａから点ｂへのベクトルである。また、Ｖａｂ・Ｖａｐは、ベクトルＶａｂとベクトルＶａｐの内積を表す。また、ａｃｏｓは、逆余弦関数である。
なお、距離Ｈを算出する手順として、上記の式による計算以外の手順を用いるようにしてもよい。
【００４６】
図８は、移動方向判定部２３が断面平面の移動方向を決定する処理を行う際の、スライド軌跡が表す方向とガイドレールとが成す角度を示す概略図である。同図において、Ｇ１およびＧ２は、それぞれ、ガイドレールである。そして、同図が示す状況において、ガイドレールＧ１が、既に、基準ガイドレールとして決定されている。同図は、２通りのスライド操作の例を示している。ここで、移動方向判定部２３は、スライド操作の軌跡と基準ガイドレールとが成す角度を計算する。
【００４７】
ここで、角度を算出する方法は、次の通りである。２次元領域における２次元座標（ｘｙ座標）で、スライド操作の軌跡の直線と、基準ガイドレールの直線を、それぞれ次の方程式で表す。
ｙ＝ｍｘ＋ｎ  ・・・  スライド操作の軌跡の直線
ｙ＝ｓｘ＋ｔ  ・・・  基準ガイドレールの直線
このとき、ｍｓ＝−１の場合には両直線は直交している。また、ｍ＝０で基準ガイドレールがｙ軸に平行である場合にも両直線は直交している。また、ｓ＝０でスライド軌跡の直線がｙ軸に平行である場合にも両直線は直交している。これら、両直線が直交している場合を除き、両直線が成す鋭角側の角度αは、下の式で表される。
α＝ａｔａｎ｜（ｍ−ｓ）／（１＋ｍｓ）｜
ここで、ａｔａｎは逆正接関数を表す。
【００４８】
図における例１のスライド操作では、スライド操作の軌跡（矢印線で示す）と基準ガイドレールであるガイドレールＧ１とが成す角度が１５度である。また、例２のスライド操作では、スライド操作の軌跡と基準ガイドレールであるガイドレールＧ１とが成す角度が３０度である。ここで、基準角度θが２０度である場合を想定すると、例１の場合には、スライド操作の軌跡と基準ガイドレールが成す角度（１５度）は、基準角度以下である。しかし、例２の場合には、スライド操作の軌跡と基準ガイドレールが成す角度（３０度）は、基準角度を超える。したがって、例１のスライド操作が行われた場合には、移動方向判定部２３はガイドベクトルを決定し、断面平面の移動のための処理が継続される。一方、例２のスライド操作が行われた場合には、その方向が基準角度よりも大きいため、移動方向判定部２３はガイドベクトルを決定しない。またその場合には、断面平面の移動のための処理は中断される。
【００４９】
つまり、スライド操作の方向と基準ガイドレールとが成す角度が予め定められた閾値よりも大きい場合には、移動ベクトル計算部２４は、断面平面を移動させる処理を行わない。
【００５０】
図９は、移動方向判定部２３が断面平面を移動させるためのガイドベクトルを求める処理を説明するための概略図である。同図において、Ｇ１は、基準ガイドレールである。また、ベクトルＶｐは、スライド操作の始点ポイント（Ｐｎ）から終点ポイント（Ｐｎ＋１）までのベクトルである。また、点ｃは、基準ガイドレール上の任意の点であり、基準ガイドレールと移動前の断面平面との交点である。そして、ベクトルＧＶｎは、求めるガイドベクトルである。移動方向判定部２３は、点ｃを始点とするガイドベクトルＧＶｎを求める。なお、このとき、移動方向判定部２３は、ベクトルＶｐの長さ（絶対値）とガイドベクトルＧＶｎの長さ（絶対値）とが等しくなるように、ガイドベクトルＧＶｎを求める。即ち、下の等式が成立する。
｜Ｖｐ｜＝｜ＧＶｎ｜
つまり、ガイドベクトルＧＶｎは、ベクトルＶｐを、基準ガイドレールの方向と等しくなるように回転（回転量は角度α）させたベクトルである。
【００５１】
なお、既に書いた通り、本実施形態におけるガイドレールの個数は、１以上の任意の数である。図２および図３のそれぞれでは、ガイドレールの個数が２である場合について例示したが、ガイドレールの個数は２に限定されない。
また、図２および図３のそれぞれでは、四角形の断面平面の枠線を、表示するようにした。しかしながら、本実施形態の変形例として、断面平面の枠線を表示しないようにしてもよい。
また、本実施形態では、ガイドレールは３次元空間において移動対象の断面平面と直交するものとした。しかし、ガイドレールと断面平面とが必ずしも直交している必要はなく、予め定められた所定の角度でガイドレールと断面平面とが交わるようにしてもよい。ガイドレールと断面平面とが直交しない場合にも、断面平面の移動方向はガイドレールの正方向または負方向のいずれかに拘束される。また、ガイドレールと断面平面とが予め定められた所定の角度で交わる場合、本実施形態で述べた処理手順で、断面平面を移動させることが可能である。多くのアプリケーションにおける３次元空間の表示では、ガイドレールと断面平面とが直交していることが多いが、ここに記すような変形例を用いれば、ガイドレールと断面平面とが直交しない特殊な状況においても、本実施形態を適用することができる。
【００５２】
本実施形態によれば、ユーザーの画面上でのスライド操作に基づいて、その画面におけるスライド操作の移動方向と対応するように３次元空間内で断面平面を移動させる方向を決定するため、ユーザーに対して、投影面の表示領域を直接操作して断面平面を移動させることのできるインターフェースを提供することができる。
また、そのユーザーインターフェースにおいて、ユーザーは、画面上のスライド操作の方向と一致する方向に、断面平面を移動させることができる。即ち、画像処理装置１は、直感的にわかりやすいユーザーインターフェースを提供することができる。
また、本実施形態によれば、ガイドレールを表示するため、特に透視投影の場合に、ユーザーに対して、断面平面の移動方向や、移動前後における位置関係を、わかりやすく提示することができる。
また、本実施形態によれば、ユーザーによるスライド操作の近傍のガイドレールを求めて、断面平面の移動を行うため、ユーザーは、ピンポイントで特定の点をポイントする必要がない。
また、本実施形態によれば、スライド操作の量に基づいて断面平面の移動量を決定するため、ユーザーは、スライド操作の量（スライド操作の軌跡の長さ）などを基に、断面平面の移動方向および移動量をコントロールすることができる。
【００５３】
（第２の実施形態）
次に、第２の実施形態について説明する。なお、前実施形態において説明した事項については、ここでの説明を省略する場合がある。ここでは、本実施形態に特有の事項について説明する。
本実施形態の機能構成を示すブロック図は、図１に示した通りである。
本実施形態の特徴は、画像処理装置１がガイドレールを表示しないことである。つまり、本実施形態における投影部４１は、ガイドレール以外のオブジェクトを投影面に投影して描画するものの、ガイドレールを描画しない。ガイドレールが表示されていない状態においても、ユーザーによるスライド操作を検知した後の画像処理装置１の動作は、第１の実施形態で説明したものと同様である。つまり、基準ガイドレール決定部２２は、スライド操作の始点ポイントの位置に基づいて、基準ガイドレールを選択する。また、移動方向判定部２３や移動ベクトル計算部２４による処理も、第１の実施形態と同様である。
【００５４】
本実施形態によれば、ガイドレールが表示されないため、画像処理装置は簡潔な表示を行う。表示対象である３次元空間内のオブジェクトが多数ある場合には、ガイドレールのない表示は、ユーザーにとって視認性がよくなる場合がある。
【００５５】
（第３の実施形態）
次に、第３の実施形態について説明する。なお、前実施形態までにおいて説明した事項については、ここでの説明を省略する場合がある。ここでは、本実施形態に特有の事項について説明する。
本実施形態の機能構成を示すブロック図は、図１に示した通りである。
本実施形態の特徴は、スライド操作が行われる前から予めガイドレールを決めておくのではなく、スライド操作が行われたときに初めてガイドレールを定めることである。
【００５６】
第１の実施形態では、ガイドレール情報生成部３１が、３次元空間情報記憶部１３に記憶されているガイドレール設定情報に基づいて、ガイドレール情報を生成していた。また、その結果として、画像処理装置１が所定本数（設定により定められた本数）のガイドレールを表示していた。また、基準ガイドレール決定部２２は、検知されたスライド操作の始点ポイントに最も近い（ただし、基準距離ｄ以下の）ガイドレールを基準ガイドレールとして決定していた。
【００５７】
それに対して、本実施形態では、ガイドレール情報生成部３１が予めガイドレール情報を生成しておくことをしない。したがって、少なくとも断面平面を移動させるためのスライド操作が行われるまでは、画像処理装置１は、ガイドレールを表示しない。
本実施形態では、操作取得部２１がスライド操作の情報を検知したとき、そのスライド操作の始点ポイントの位置（２次元領域における座標）に基づいて、ガイドレールの位置が計算される。具体的には、検出されたスライド操作の始点ポイントの位置に基づいて、ガイドレール情報生成部３１が、その始点ポイントに対応する３次元空間内のガイドレールを計算する。そして、基準ガイドレール決定部２２は、ガイドレール情報生成部３１によって求められたガイドレールを、基準ガイドレールとして決定する。
【００５８】
ここで、スライド操作の始点ポイントに基づいてガイドレールを決定する方法を、（１）平行投影の場合と（２）透視投影の場合のそれぞれの場合について説明する。なお、その時点での断面平面の位置は、３次元空間情報記憶部１３から読み出すことができる。
（１）平行投影の場合：  ３次元空間内で、断面平面に垂直な直線Ｌ３が多数（無限個）存在する。ガイドレール情報生成部３１は、それらの直線Ｌ３のうちの任意の１本の直線について、投影面上に投影した結果得られる、２次元領域上の直線Ｌ２を求める。そして、基準ガイドレール決定部２２は、求められたＬ２に平行な２次元領域上の直線であって、スライド操作の始点ポイントを通る直線（１本存在する）を基準ガイドレールとして決定する。平行投影の場合には、３次元空間内で平行な２本の直線が、２次元領域に投影した場合にも平行であるため、この方法で、基準ガイドレールを求めることができる。
【００５９】
（２）透視投影の場合：  ガイドレール情報生成部３１は、３次元空間内で、断面平面に垂直な２本の異なる直線Ｌ３１とＬ３２とを適宜選ぶ。なお、直線Ｌ３１とＬ３２とが互いに所定距離以上離れているように選ぶことが好ましい。そして、ガイドレール情報生成部３１は、直線Ｌ３１とＬ３２について、投影面上に投影した結果得られる、それぞれ、２次元領域上の直線Ｌ２１とＬ２２とを求める。そして、ガイドレール情報生成部３１は、２次元領域上における直線Ｌ２１とＬ２２との交点Ｃを求める。この交点Ｃは、２次元領域上における透視投影の消失点である。そして、基準ガイドレール決定部２２は、点Ｃとスライド操作の始点ポイントとを通る直線を、基準ガイドレールとして決定する。
【００６０】
つまり、本実施形態では、基準ガイドレール決定部２２は、スライド操作が開始される時点で、投影面における当該スライド操作の始点ポイントの位置に対応する、３次元空間内の点を通り、且つ３次元空間において断面平面と直交するガイドレールを求める。そして、基準ガイドレール決定部２２は、当該ガイドレールを基準ガイドレールとして決定する。
なお、基準ガイドレールが決定された後、断面平面を移動するまでの処理は、第１の実施形態におけるそれと同様である。
【００６１】
なお、本実施形態において、基準ガイドレールの表示を開始するタイミングは、ユーザーがスライド操作を開始したときとする。あるいは、ユーザーがまずスライド操作の始点ポイントを長押ししたタイミングで基準ガイドレールの表示を開始し、基準ガイドレールの表示後にユーザーが引き続きスライド操作を行うようにしてもよい。また、基準ガイドレールを表示しないままの状態で、断面平面の移動を行うようにしてもよい。
【００６２】
本実施形態によれば、ガイドレールの位置が予め決められておらず、スライド操作の始点ポイントの位置に基づいてガイドレールの位置が決まる。これにより、スライド操作の開始位置が予め決められていたガイドレールから遠すぎることによって、基準ガイドレールが決定されないという状況が生じない。つまり、ユーザーの望む場所からのスライド操作により、必ず基準ガイドレールが決定される。
【００６３】
以上説明した少なくともひとつの実施形態によれば、スライド操作に基づいて２次元領域における２次元移動ベクトルの方向を決定し、その２次元移動ベクトルに対応する形で、３次元移動ベクトルを決定する移動ベクトル計算部を持つことにより、ユーザーの直感によく整合した形で断面平面を移動させるユーザーインターフェースを提供することができる。
【００６４】
なお、上述したいずれかの実施形態における画像処理装置の少なくとも一部の機能をコンピューターで実現するようにしても良い。その場合、その機能を実現するためのプログラムをコンピューター読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピューターシステムに読み込ませ、実行することによって実現しても良い。なお、ここでいう「コンピューターシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリーのように、一定時間プログラムを保持しているものも含んでも良い。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【００６５】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【００６６】
１…画像処理装置、１２…２次元領域情報記憶部、１３…３次元空間情報記憶部、２１…操作取得部、２２…基準ガイドレール決定部、２３…移動方向判定部、２４…移動ベクトル計算部、３１…ガイドレール情報生成部、４１…投影部
【図１】
2017224170.tif 000003
【図２】
2017224170.tif 000004
【図３】
2017224170.tif 000005
【図４】
2017224170.tif 000006
【図５】
2017224170.tif 000007
【図６】
2017224170.tif 000008
【図７】
2017224170.tif 000009
【図８】
2017224170.tif 000010
【図９】
2017224170.tif 000011