(57)【特許請求の範囲】
【請求項１】
操作対象のオブジェクトを３次元移動操作する際の基準となる基準オブジェクトの周囲に格子状に設定される複数の点それぞれに対して、前記基準オブジェクトからの距離に応じたポテンシャル値を求め、該求められたポテンシャル値が等しい点を結んで形成される等値面に直交する第１の軸と前記等値面上で互いに直交する第２，第３の軸とに基づいてローカル座標系を生成する座標系生成部と、
前記座標系生成部によって生成された前記複数の点それぞれのローカル座標系に基づいて、入力装置から入力される前記操作対象のオブジェクトの移動指令値に対応する前記操作対象のオブジェクトの移動先座標を算出する移動先座標算出部と、
前記移動先座標算出部によって算出された移動先座標に前記操作対象のオブジェクトを移動させる移動処理部と、
を備えたことを特徴とするオブジェクト操作装置。
【請求項２】
操作対象のオブジェクトを３次元移動操作する際の基準となる基準オブジェクトの周囲に格子状に設定される複数の点それぞれに対して、前記基準オブジェクトがラインデータである場合には、前記ラインデータに沿った方向の第１の軸と、前記ラインデータに直交する直交面上で前記ラインデータから遠ざかる方向の第２の軸と、前記直交面上で前記ラインデータの周囲を回転する方向の第３の軸とに基づいてローカル座標系を生成する座標系生成部と、
前記座標系生成部によって生成された前記複数の点それぞれのローカル座標系に基づいて、入力装置から入力される前記操作対象のオブジェクトの移動指令値に対応する前記操作対象のオブジェクトの移動先座標を算出する移動先座標算出部と、
前記移動先座標算出部によって算出された移動先座標に前記操作対象のオブジェクトを移動させる移動処理部と、
を備えたことを特徴とするオブジェクト操作装置。
【請求項３】
前記移動先座標算出部は、入力装置から入力される前記操作対象のオブジェクトのローカル座標系における移動指令値を、グローバル座標系における移動指令値に変換して、該変換した移動指令値に基づいて前記操作対象のオブジェクトの移動先座標を算出する
ことを特徴とする請求項１または２に記載のオブジェクト操作装置。
【請求項４】
コンピュータが、
操作対象のオブジェクトを３次元移動操作する際の基準となる基準オブジェクトの周囲に格子状に設定された複数の点それぞれに対して、前記基準オブジェクトからの距離に応じたポテンシャル値を求め、該求められたポテンシャル値が等しい点を結んで形成される等値面に直交する第１の軸と前記等値面上で互いに直交する第２，第３の軸とに基づいてローカル座標系を生成する座標系生成手順と、
前記座標系生成手順によって生成された前記複数の点それぞれのローカル座標系に基づいて、入力装置から入力される前記操作対象のオブジェクトの移動指令値に対応する前記操作対象のオブジェクトの移動先座標を算出する移動先座標算出手順と、
前記移動先座標算出手順によって算出された移動先座標に前記操作対象のオブジェクトを移動させる移動処理手順と、
を実行することを特徴とするオブジェクト操作方法。
【請求項５】
コンピュータが、
操作対象のオブジェクトを３次元移動操作する際の基準となる基準オブジェクトの周囲に格子状に設定された複数の点それぞれに対して、前記基準オブジェクトがラインデータである場合には、前記ラインデータに沿った方向の第１の軸と、前記ラインデータに直交する直交面上で前記ラインデータから遠ざかる方向の第２の軸と、前記直交面上で前記ラインデータの周囲を回転する方向の第３の軸とに基づいてローカル座標系を生成する座標系生成手順と、
前記座標系生成手順によって生成された前記複数の点それぞれのローカル座標系に基づいて、入力装置から入力される前記操作対象のオブジェクトの移動指令値に対応する前記操作対象のオブジェクトの移動先座標を算出する移動先座標算出手順と、
前記移動先座標算出手順によって算出された移動先座標に前記操作対象のオブジェクトを移動させる移動処理手順と、
を実行することを特徴とするオブジェクト操作方法。
【請求項６】
前記移動先座標算出手順は、入力装置から入力される前記操作対象のオブジェクトのローカル座標系における移動指令値を、グローバル座標系における移動指令値に変換して、該変換した移動指令値に基づいて前記操作対象のオブジェクトの移動先座標を算出する
ことを特徴とする請求項４または５に記載のオブジェクト操作方法。
【請求項７】
コンピュータに、
操作対象のオブジェクトを３次元移動操作する際の基準となる基準オブジェクトの周囲に格子状に設定された複数の点それぞれに対して、前記基準オブジェクトからの距離に応じたポテンシャル値を求め、該求められたポテンシャル値が等しい点を結んで形成される等値面に直交する第１の軸と前記等値面上で互いに直交する第２，第３の軸とに基づいてローカル座標系を生成し、
前記ローカル座標系を生成する処理によって生成された前記複数の点それぞれのローカル座標系に基づいて、入力装置から入力される前記操作対象のオブジェクトの移動指令値に対応する前記操作対象のオブジェクトの移動先座標を算出し、
前記移動先座標を算出する処理によって算出された移動先座標に前記操作対象のオブジェクトを移動させる、
処理を実行させることを特徴とするオブジェクト操作プログラム。
【請求項８】
コンピュータに、
操作対象のオブジェクトを３次元移動操作する際の基準となる基準オブジェクトの周囲に格子状に設定された複数の点それぞれに対して、前記基準オブジェクトがラインデータである場合には、前記ラインデータに沿った方向の第１の軸と、前記ラインデータに直交する直交面上で前記ラインデータから遠ざかる方向の第２の軸と、前記直交面上で前記ラインデータの周囲を回転する方向の第３の軸とに基づいてローカル座標系を生成し、
前記ローカル座標系を生成する処理によって生成された前記複数の点それぞれのローカル座標系に基づいて、入力装置から入力される前記操作対象のオブジェクトの移動指令値に対応する前記操作対象のオブジェクトの移動先座標を算出し、
前記移動先座標を算出する処理によって算出された移動先座標に前記操作対象のオブジェクトを移動させる、
処理を実行させることを特徴とするオブジェクト操作プログラム。
【請求項９】
前記移動先座標を算出する処理は、入力装置から入力される前記操作対象のオブジェクトのローカル座標系における移動指令値を、グローバル座標系における移動指令値に変換して、該変換した移動指令値に基づいて前記操作対象のオブジェクトの移動先座標を算出する
ことを特徴とする請求項７または８に記載のオブジェクト操作プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オブジェクト操作装置、オブジェクト操作方法、およびオブジェクト操作プログラムに関する。
【背景技術】
【０００２】
従来、表示装置の２次元画面上に表示された操作対象のオブジェクト（以下、「操作対象オブジェクト」という。）を、マウスなどの入力装置を用いて３次元移動操作することが行われている。操作対象オブジェクトの３次元移動操作は、例えば仮想カメラを操作対象オブジェクトとして、観察対象のオブジェクト（以下、「基準オブジェクト」という。）を様々な位置から観察する場合に適用される。つまり、仮想カメラを基準オブジェクトの周囲または内部で３次元移動させて視点位置を変えることにより、基準オブジェクトを様々な位置から観察することができる。
【０００３】
マウスなどの２次元入力装置で操作対象オブジェクトの３次元移動操作を行う場合には、例えばｘｙ平面およびｘｚ平面の２つの画面を使って操作対象オブジェクトの移動操作を行うことが知られている。これは、ｘｙ平面およびｘｙ平面それぞれに操作対象オブジェクトを表示し、まずｘｙ平面上で操作対象オブジェクトを２次元移動させ、続いてｘｚ平面上で操作対象オブジェクトを２次元移動させることで、３次元の移動操作を実現するものである。
【０００４】
この手法は、操作対象オブジェクトの正確な操作には向いているが、２つの画面上で操作を行うため、特に操作対象オブジェクトを複雑に移動操作する場合には、操作量が膨大となって操作に時間がかかる。
【０００５】
これに対して、基準オブジェクトの周囲にローカル座標系を生成して操作対象オブジェクトの移動用のパスを定めておいて、マウスの移動量に応じて操作対象オブジェクトをパスに沿って移動させることが知られている。これによれば、比較的少ない操作量で操作対象オブジェクトの３次元移動操作を行うことができる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平１０−２３２９４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来技術は、操作対象オブジェクトの３次元移動の自由度が制限される場合がある。
【０００８】
すなわち、従来技術は、あらかじめ設定されて固定された移動用のパスに沿って操作対象オブジェクトを移動させることしかできないため、パスから外れた位置に操作対象オブジェクトを移動させることが困難である。したがって、従来技術では、２次元画面上で操作対象オブジェクトを基準オブジェクトの周囲または内部の任意の位置に３次元移動させることによって、様々な位置から基準オブジェクトを観察することが難しい。
【０００９】
開示の技術は、上記に鑑みてなされたものであって、簡易な操作で操作対象オブジェクトの３次元移動の自由度を向上させることができるオブジェクト操作装置、オブジェクト操作方法、およびオブジェクト操作プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本願の開示するオブジェクト操作装置は、一つの態様において、操作対象のオブジェクトを３次元移動操作する際の基準となる基準オブジェクトの周囲に設定される複数の点それぞれに対して、ローカル座標系を生成する座標系生成部を備える。また、オブジェクト操作装置は、前記座標系生成部によって生成された前記複数の点それぞれのローカル座標系に基づいて、入力装置から入力される前記操作対象のオブジェクトの移動指令値に対応する前記操作対象のオブジェクトの移動先座標を算出する移動先座標算出部を備える。また、オブジェクト操作装置は、前記移動先座標算出部によって算出された移動先座標に前記操作対象オブジェクトを移動させる移動処理部を備える。
【発明の効果】
【００１１】
本願の開示するオブジェクト操作装置の一つの態様によれば、簡易な操作で操作対象オブジェクトの３次元移動の自由度を向上させることができる。
【図面の簡単な説明】
【００１２】
【図１】図１は、本実施形態のオブジェクト操作装置の全体構成を示す図である。
【図２】図２は、入力装置の一例を示す図である。
【図３】図３は、基準オブジェクトを飛行機とし、操作対象オブジェクトを仮想カメラとした場合の主翼の観察例を示す図である。
【図４】図４は、シーングラフの一例を示す図である。
【図５】図５は、オブジェクト操作方法の全体の処理を示すフロー図である。
【図６】図６は、ローカル座標系を生成する処理のフロー図である。
【図７】図７は、影響関数を用いたポテンシャル値の算出の一例を示す図である。
【図８】図８は、ローカル座標系を算出する処理のフロー図である。
【図９】図９は、Structured Grid上のポテンシャル値と等値面の説明をするための図である。
【図１０】図１０は、Structured Grid上の各点でのＺ´軸ベクトルの算出について説明するための図である。
【図１１】図１１は、Structured Grid上の各点でのＸ´軸ベクトルの算出について説明するための図である。
【図１２】図１２は、操作対象オブジェクトの移動先座標を算出する処理のフロー図である。
【図１３】図１３は、仮想臓器と仮想内視鏡について説明するための図である。
【図１４】図１４は、基準オブジェクトがLineDataである場合のローカル座標系を算出する処理のフロー図である。
【図１５】図１５は、基準オブジェクトがLineDataである場合のローカル座標系の一例について説明するための図である。
【図１６】図１６は、仮想内視鏡の移動先座標を算出する処理のフロー図である。
【発明を実施するための形態】
【００１３】
以下に、本願の開示するオブジェクト操作装置、オブジェクト操作方法、およびオブジェクト操作プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例により開示技術が限定されるものではない。
【実施例】
【００１４】
図１は、本実施形態のオブジェクト操作装置の全体構成を示す図である。図１に示すように、オブジェクト操作装置１００は、座標系生成部１１０と、移動先座標算出部１１２と、移動処理部１１４と、オブジェクト設定部１１５とを備える。また、オブジェクト操作装置１００は、グラフィック処理部１１６と、通信インターフェース部１１８と、ＨＤＤ（Hard Disk Drive）１２０と、メモリ１２２と、入出力インターフェース部１２４とを備える。座標系生成部１１０、移動先座標算出部１１２、移動処理部１１４、オブジェクト設定部１１５、グラフィック処理部１１６、通信インターフェース部１１８、ＨＤＤ１２０、メモリ１２２、および入出力インターフェース部１２４は、通信バス１２６を介して相互に接続される。また、オブジェクト操作装置１００には、入力装置２００と、表示装置３００とが通信ケーブル１２８を介して接続される。
【００１５】
座標系生成部１１０は、操作対象オブジェクトを３次元移動操作する際の基準となる基準オブジェクトの周囲に設定される複数の点それぞれに対して、ローカル座標系を生成する。移動先座標算出部１１２は、座標系生成部１１０によって生成された複数の点それぞれのローカル座標系に基づいて、入力装置２００から入力される操作対象のオブジェクトの移動指令値に対応する操作対象オブジェクトの移動先座標を算出する。移動処理部１１４は、移動先座標算出部１１２によって算出された移動先座標に操作対象オブジェクトを移動させる。オブジェクト設定部１１５は、操作対象オブジェクトの設定を行うとともに、基準オブジェクトの設定を行う。座標系生成部１１０、移動先座標算出部１１２、移動処理部１１４およびオブジェクト設定部１１５の詳細については後述する。
【００１６】
グラフィック処理部１１６は、操作対象オブジェクトと基準オブジェクトとを表示装置３００に表示するとともに、操作対象オブジェクトが仮想カメラや仮想内視鏡の場合には、仮想カメラや仮想内視鏡からの視線方向に映る画像を表示装置３００に表示する。通信インターフェース部１１８は、オブジェクト操作装置１００と他の装置との有線通信または無線通信のインターフェースである。ＨＤＤ１２０およびメモリ１２２は、オブジェクト操作装置１００で実行されるオブジェクト操作プログラム、その他の各種ソフトウェアプログラム、およびオブジェクト操作プログラムと各種ソフトウェアプログラムで用いられるデータを格納する記憶媒体である。入出力インターフェース部１２４は、入力装置２００から入力される各種指令の入力インターフェースであるとともに、表示装置３００に表示する画像データを表示装置３００に出力する出力インターフェースである。
【００１７】
入力装置２００は、操作対象オブジェクトの３次元移動指令値を入力する各種の入力デバイスである。また、表示装置３００は、グラフィック処理部１１６で生成された各種の画像を表示する２次元表示デバイスである。図２は、入力装置２００の一例を示す図である。図２に示すように、操作用画像２０２を表示装置３００に表示して、キーボード等の入力デバイスを用いてＸ軸、Ｙ軸、Ｚ軸それぞれの移動量を入力することができる。また、マウス２０４を用いてＸ軸、Ｙ軸、Ｚ軸それぞれの移動量を入力することもできる。マウス２０４を使って操作対象オブジェクトを３次元操作する場合には、ＸＹＺ軸に対する移動量をそれぞれ独立して入力できるように、あらかじめＸＹＺ軸に対する入力方法を設定しておく。例えば、マウス２０４を左クリックしながらドラッグするとＸ軸方向の移動、マウス２０４を右クリックしながらドラッグするとＹ軸方向の移動、マウス２０４をセンターホイールクリックしながらドラッグするとＺ軸方向への移動と設定することができる。
【００１８】
図３は、基準オブジェクトを飛行機とし、操作対象オブジェクトを仮想カメラとした場合の主翼の観察例を示す図である。図３に示すように、本実施例は、基準オブジェクトを飛行機４００とし、操作対象オブジェクトを仮想カメラ５００とした例である。しかし、これに限らず、基準オブジェクトは、仮想カメラ５００によって観察される対象となる仮想物体を任意に設定することができる。また、操作対象オブジェクトは、仮想カメラ５００に限らず、例えば基準オブジェクトを照らす仮想照明など、基準オブジェクトの周囲または内部で３次元移動させる仮想物体を任意に設定することができる。
【００１９】
図３に示すように、主翼４０２の周囲で仮想カメラ５００を３次元移動操作しながら、仮想カメラ５００からの視線方向に映る主翼４０２の観察画像５０４を表示装置３００に表示することができる。この場合、仮想カメラ５００は、主翼４０２の周囲を３次元移動しながら様々な角度および距離からの主翼４０２の観察画像５０４を表示する。例えば、主翼４０２から一定の距離だけ離れた軌道上で仮想カメラ５００を旋回させながら、様々な方向から主翼４０２を観察することができる。また、軌道上から外れて主翼４０２に近づくまたは遠ざかる方向に仮想カメラ５００を移動させることにより主翼４０２の特定部分を詳細に観察したり主翼４０２の全体を観察したりすることができる。また、図３に示すように、主翼４０２の周囲で仮想カメラ５００を３次元移動操作しながら、主翼４０２に対する空気などの流体の流れを流体解析ツールによって解析して、解析画像５０６を表示装置３００に表示することができる。図３に示すように、表示装置３００には、主翼４０２の断面５０２における空気の流れの解析結果が表示される。
【００２０】
図４は、シーングラフの一例を示す図である。シーングラフとは、仮想カメラ５００を移動操作しながら基準オブジェクトの可視化を行う際に、表示対象を管理するための概念となるツリー構造であり、オブジェクト操作装置１００の開発者によって利用されるものである。シーングラフでは、カメラ、照明、飛行機など情報の塊をオブジェクトと呼び、親オブジェクトと子オブジェクトは従属関係で結ばれる。例えば、環境６０２を親オブジェクトとした場合、カメラ６０６および照明６０８が子オブジェクトとなる。また、物体６０４を親オブジェクトとした場合、飛行機６１０およびBackground６１２が子オブジェクトとなる。また、飛行機６１０を親オブジェクトとした場合、本体６１４、主翼６１６、および尾翼６１８が子オブジェクトとなる。また、主翼６１６を親オブジェクトとした場合、主翼本体６２０、フラップ６２２、スポイラー６２４、およびエルロン６２６が子オブジェクトとなる。
【００２１】
例えば飛行機６１０の位置が変化したら、それに追従して本体６１４、主翼６１６、および尾翼６１８の位置も変化するように、親オブジェクトに与えられた操作は子オブジェクトに影響を与える。このため、親オブジェクトと子オブジェクトは、Transfer Function６３０(座標変換関数)を介して結ばれ、一方のオブジェクトの位置座標の変化に応じて他方のオブジェクトの位置座標が変わる。また、シーングラフでは、オブジェクトごとに位置操作指令などのinteraction６３２を与えることができる。Transfer Function６３０とinteraction６３２の間に座標変換モジュール６３４を挿入することで、任意のオブジェクトに対してローカル座標系を仮想的に持たせることができる。本実施例では、interaction６３２とカメラ６０６のTransfer Function６３０との間に座標変換モジュール６３４を挿入するだけで、操作対象オブジェクトであるカメラ６０６に対してローカル座標系を与えることができる。ローカル座標系の詳細については後述する。
【００２２】
図５は、オブジェクト操作方法の全体の処理を示すフロー図である。まず、オブジェクト設定部１１５は、操作対象オブジェクトを設定する（Ｓ１０１）。具体的には、オブジェクト設定部１１５は、表示装置３００に表示されたオブジェクトのうち、操作対象オブジェクトの設定モード中に、入力装置２００を介して選択されたオブジェクトを、操作対象オブジェクトとして設定する。ここでは、仮想カメラ５００が選択されて、操作対象オブジェクトに設定されたとする。続いて、オブジェクト設定部１１５は、基準オブジェクトを設定する（Ｓ１０２）。具体的には、オブジェクト設定部１１５は、表示装置３００に表示されたオブジェクトのうち、基準オブジェクトの設定モード中に、入力装置２００を介して選択されたオブジェクトを、基準オブジェクトとして設定する。ここでは、飛行機４００が選択されて、飛行機４００のSurface Dataが基準オブジェクトに設定されたとする。
【００２３】
次に、座標系生成部１１０は、設定された基準オブジェクトの種類がSurface Data、Line Data、Point Dataのいずれであるかを確認する（Ｓ１０３）。本実施例では基準オブジェクトの種類はSurface Dataであるので、座標系生成部１１０は、Surface Data用のローカル座標系を生成する（Ｓ１０４）。続いて、移動先座標算出部１１２は、Surface Data用の座標変換モジュールを作成する（Ｓ１０５）。そして、移動先座標算出部１１２は、作成された座標変換モジュールをシーングラフに追加する（Ｓ１１０）。なお、座標系生成部１１０は、基準オブジェクトがLine Dataの場合には、Line Data用のローカル座標系を生成し（Ｓ１０６）、移動先座標算出部１１２は、Line Data用の座標変換モジュールを作成する（Ｓ１０７）。また、座標系生成部１１０は、基準オブジェクトがPoint Dataの場合には、Point Data用のローカル座標系を生成し（Ｓ１０８）、移動先座標算出部１１２は、Point Data用の座標変換モジュールを作成する（Ｓ１０９）。
【００２４】
図６は、ローカル座標系を生成する処理のフロー図である。座標系生成部１１０は、まず、基準オブジェクトから影響範囲を設定する（Ｓ２０１）。影響範囲とは、基準オブジェクトの周囲のどの程度離れた領域までローカル座標系を生成するかを表す範囲である。影響範囲は、初期値をあらかじめ設定しておいてもよいし、入力装置２００を介して任意に設定することもできる。続いて、座標系生成部１１０は、影響範囲内にグローバル座標系によるStructured Gridを生成する（Ｓ２０２）。Structured Gridとは、基準オブジェクトの周囲に設定される３次元格子である。Structured Gridは、影響範囲を覆うように生成される。
【００２５】
次に、座標系生成部１１０は、基準オブジェクトに対する影響関数を用いて、Structured Gridの各ノード（格子点）におけるポテンシャル値を求める（Ｓ２０３）。ポテンシャル値は、基準オブジェクトからの距離に応じて算出される値で、例えば、基準オブジェクトに最も近い位置では「１」になり、基準オブジェクトから遠ざかるにつれて「０」に近づき、影響範囲の外延で「０」になる値である。続いて、座標系生成部１１０は、Structured Gridの各ノードに、算出したポテンシャル値を格納する（Ｓ２０４）。
【００２６】
次に、影響関数を用いたポテンシャル値の算出について説明する。図７は、影響関数を用いたポテンシャル値の算出の一例を示す図である。図７は、２つの基準オブジェクト７００，７０２の周囲のある点Ｐにおけるポテンシャル値を算出する一例である。点Ｐにおける基準オブジェクト７００に対するポテンシャル値φ１は、基準オブジェクト７００に対する影響関数ｆ１を用いて以下の数１式で求められる。
[数１]
φ１＝ｆ１（ｘ，ｙ，ｚ）＝（Ｄ１−Ｃ１）２／Ｄ１
ここで、Ｄ１は点Ｐと基準オブジェクト７００との間の最小ユークリッド距離であり、Ｃ１は基準オブジェクト７００と基準オブジェクト７００に対する影響範囲の外延７０４との距離である。ただし、Ｄ１＞Ｃ１の場合にはｆ１は「０」になる。
【００２７】
また、点Ｐにおける基準オブジェクト７０２に対するポテンシャル値φ２は、基準オブジェクト７０２に対する影響関数ｆ２を用いて以下の数２式で求められる。
[数２]
φ２＝ｆ２（ｘ，ｙ，ｚ）＝（Ｄ２−Ｃ２）２／Ｄ２
ここで、Ｄ２は点Ｐと基準オブジェクト７０２との間の最小ユークリッド距離であり、Ｃ２は基準オブジェクト７０２と基準オブジェクト７０２に対する影響範囲の外延７０６との距離である。ただし、Ｄ２＞Ｃ２の場合にはｆ２は「０」になる。
【００２８】
そして、点Ｐにおけるポテンシャル値φは、基準オブジェクト７００および基準オブジェクト７０２に対する影響関数ｆを用いて以下の数３式で求められる。
[数３]
φ＝ｆ（ｘ，ｙ，ｚ）＝ｆ１（ｘ，ｙ，ｚ）＋ｆ２（ｘ，ｙ，ｚ）
本実施例のように、影響関数の和によりポテンシャルを求めることにより、複雑な形状の基準オブジェクトにも対応した滑らかな等値面を生成することができる。なお、本実施例に限らず、影響関数は、基準オブジェクトとの距離が影響範囲の外延に近づくにつれてポテンシャル値が低くなる減衰関数であれば採用することができる。例えば、基準オブジェクトからの距離に応じたポテンシャル値を生成するfast marching法を用いることができる。fast marching法は、位相変化が可能な動的輪郭モデルであり、濃度分布空間で、ある時間ｔにおける境界面を求める方法である。（Ｊ．Ａ．Ｓｅｔｈｉａｎ，Ｌｅｖｅｌ ｓｅｔ ｍｅｔｈｏｄ ａｎｄ ｆａｓｔ ｍａｒｃｈｉｎｇ ｍｅｔｈｏｄ，Ｃａｍｂｒｉｄｇｅ Ｕｎｉｖｅｒｓｉｔｙ Ｐｒｅｓｓ（１９９９））
【００２９】
次に、ローカル座標系の生成について説明する。図８は、ローカル座標系を算出する処理のフロー図である。座標系生成部１１０は、Structured Gridのｎ個のノード（格子点）それぞれについてローカル座標系を生成する。そのため、座標系生成部１１０は、まずｎ回ループ処理を行うための変数ｉを「０」に初期化する（Ｓ３０１）。続いて、座標系生成部１１０は、ｉ＜ｎであるか否かを判定する（Ｓ３０２）。座標系生成部１１０は、ｉ＜ｎである場合（Ｓ３０２でＹＥＳ）、つまりStructured Gridのｎ個のノードすべてに対して処理が終わっていない場合は、Structured Gridのノードｉのポテンシャル値を閾値と設定する（Ｓ３０３）。続いて、座標系生成部１１０は、ノードｉの周囲８つのノードを選択する（Ｓ３０４）。そして、座標系生成部１１０は、マーチンキューブ法を用いて、閾値に対して面を生成する（Ｓ３０５）。これにより、Structured Gridのポテンシャル値が等しいノードを結んだ等値面が形成される。
【００３０】
ただし、例えばあるノードのポテンシャル値が、周囲８つのノードのポテンシャル値のいずれとも異なる場合は等値面が生成されない。そこで、座標系生成部１１０は、等値面が１つ以上算出されたか否かを判定する（Ｓ３０６）。座標系生成部１１０は、等値面が１つも算出されない場合には（Ｓ３０６でＮＯ）、そのノードと基準オブジェクトを最短で結ぶ線分に対して直交する面を等値面として生成する（Ｓ３０７）。
【００３１】
一方、ノードによっては等値面が複数生成される場合もあるので、座標系生成部１１０は、等値面が１つ以上算出された場合には（Ｓ３０６でＹＥＳ）、基準オブジェクトから最も近い等値面を選択する（Ｓ３０８）。続いて、座標系生成部１１０は、等値面に直交する第１の軸と等値面上で互いに直交する第２，第３の軸とに基づいてＸ´軸ベクトル、Ｙ´軸ベクトル、およびＺ´軸ベクトルを生成する（Ｓ３０９）。具体的には、座標系生成部１１０は、等値面に直交する第１の軸をＺ´軸ベクトルとする。また、座標系生成部１１０は、グローバル座標系におけるＸＹ平面と等値面との交線方向をＸ´軸ベクトルとする。また、座標系生成部１１０は、等値面上でＸ´軸に直交する方向をＹ´軸ベクトルとする。なお、以下の説明では、グローバル座標系とローカル座標系とを区別するために、グローバル座標系をＸ軸、Ｙ軸、Ｚ軸といい、ローカル座標系をＸ´軸、Ｙ´軸、Ｚ´軸という。
【００３２】
続いて、座標系生成部１１０は、ノードｉにおけるＸ´Ｙ´Ｚ´軸ベクトルをStructured Gridに格納する（Ｓ３１０）。続いて、座標系生成部１１０は、ｉをインクリメントして（Ｓ３１１）、Ｓ３０２に戻り、Structured Gridの次のノードに対する処理を行う。座標系生成部１１０は、Ｓ３０２でｉ＜ｎでない場合（Ｓ３０２でＮＯ）、つまりStructured Gridのｎ個のノードすべてに対して処理が終わった場合には、処理を終了する。これにより、Structured Gridの複数のノードそれぞれに、Ｘ´Ｙ´Ｚ´軸ベクトルが格納される。
【００３３】
図９は、Structured Grid上のポテンシャル値と等値面の説明をするための図である。図９は、Structured Gridのグローバル座標系におけるＸＹ平面を示すものである。図９に示すようにStructured Grid上の各ノードには、例えば「０．３」、「０．５」、「１」等のポテンシャル値が格納される。そして、ポテンシャル値が等しいノードを結ぶことによって、等値面７５０が生成される。ここで、等値面７５０は、各ノードに対して生成されるものであるので、必ずしも連続した面が生成されなくてもよい。
【００３４】
図１０は、Structured Grid上の各点でのＺ´軸ベクトルの算出について説明するための図であり、図１１は、Structured Grid上の各点でのＸ´軸ベクトルの算出について説明するための図である。図１０に示すように、Structured Gridの各ノードに対して、等値面７５０に直交する方向にＺ´軸ベクトル７５２が生成される。また、図１１に示すように、等値面７５０とグローバル座標系におけるＸＹ平面との交線方向にＸ´軸ベクトル７５４が生成される。なお、Ｙ´軸ベクトルは、等値面７５０上でＸ´軸ベクトルに直交する方向に生成される。
【００３５】
図１２は、操作対象オブジェクトの移動先座標を算出する処理のフロー図である。まず、移動先座標算出部１１２は、入力装置２００からＸ´軸，Ｙ´軸，Ｚ´軸それぞれに対する移動量を取得する（Ｓ４０１）。続いて、移動先座標算出部１１２は、操作対象オブジェクトの現在の座標を取得する（Ｓ４０２）。続いて、移動先座標算出部１１２は、Ｘ´軸，Ｙ´軸，Ｚ´軸の順に以下の移動処理を実行する。そのため、移動先座標算出部１１２は、Ｘ´軸のループ処理を行うための変数ｊ，Ｙ´軸のループ処理を行うための変数ｋ，Ｚ´軸のループ処理を行うための変数ｍを「０」に初期化する（Ｓ４０３）。
【００３６】
続いて、移動先座標算出部１１２は、操作対象オブジェクトの座標が影響範囲内であるか否かを判定する（Ｓ４０４）。移動先座標算出部１１２は、操作対象オブジェクトの座標が影響範囲内である場合は（Ｓ４０４でＹｅｓ）、操作対象オブジェクトの座標の最も近傍のStructured Gridのノードを取得する（Ｓ４０５）。これは、操作対象オブジェクトが必ずしもStructured Gridのノード上に位置しているとは限らないため、最も近傍のStructured Gridのノードを取得するものである。仮に、操作対象オブジェクトがStructured Gridのノード上に位置している場合は、操作対象オブジェクトが位置するStructured Gridのノードが取得される。
【００３７】
続いて、移動先座標算出部１１２は、取得したStructured Gridのノードのローカル座標系の単位ベクトルを生成する（Ｓ４０６）。具体的には、移動先座標算出部１１２は、ローカル座標系のＸ´軸ベクトルの方向の単位ベクトルを生成する。一方、移動先座標算出部１１２は、Ｓ４０４で操作対象オブジェクトの座標が影響範囲内でない場合には（Ｓ４０４でＮｏ）、Structured Gridから外れた場所に位置しており、ローカル座標系が存在しないので、グローバル座標系の単位ベクトルを生成する（Ｓ４０７）。具体的には、移動先座標算出部１１２は、グローバル座標系のＸ軸ベクトルの方向の単位ベクトルを生成する。続いて、移動処理部１１４は、Ｓ４０６またはＳ４０７で生成した単位ベクトルにしたがって、操作対象オブジェクトを移動させる（Ｓ４０８）。
【００３８】
次に、移動先座標算出部１１２は、Ｘ´軸の移動処理が終了したか否かを判定する（Ｓ４０９）。具体的には、移動先座標算出部１１２は、変数ｊがＸ´軸方向の移動量より大きくなった場合にＸ´軸の移動処理が終了したと判定する。移動先座標算出部１１２は、Ｘ´軸の移動処理が終了していない場合には（Ｓ４０９でＮｏ）、ｊをインクリメントして（Ｓ４１０）、Ｓ４０４に戻る。すなわち、移動先座標算出部１１２は、操作対象オブジェクトを一度に大きく移動させるのではなく、Ｘ´軸の移動処理が終了するまで、操作対象オブジェクトの単位ベクトル分の移動を繰り返す。
【００３９】
移動先座標算出部１１２は、Ｘ´軸の移動処理が終了した場合には（Ｓ４０９でＹｅｓ）、Ｙ´軸の移動処理が終了したか否かを判定する（Ｓ４１１）。移動先座標算出部１１２は、Ｙ´軸の移動処理が終了していない場合には（Ｓ４１１でＮｏ）、ｋをインクリメントして（Ｓ４１２）、Ｓ４０４に戻り、Ｘ´軸と同様に、Ｓ４０４〜Ｓ４０８の処理を繰り返す。
【００４０】
移動先座標算出部１１２は、Ｙ´軸の移動処理が終了した場合には（Ｓ４１１でＹｅｓ）、Ｚ´軸の移動処理が終了したか否かを判定する（Ｓ４１３）。移動先座標算出部１１２は、Ｚ´軸の移動処理が終了していない場合には（Ｓ４１３でＮｏ）、ｍをインクリメントして（Ｓ４１４）、Ｓ４０４に戻り、Ｘ´軸と同様に、Ｓ４０４〜Ｓ４０８の処理を繰り返す。移動先座標算出部１１２は、Ｚ´軸の移動処理が終了した場合には（Ｓ４１３でＹｅｓ）、操作対象オブジェクトの移動処理を終了する。これにより、操作対象オブジェクトを簡易な操作で任意の位置に３次元移動させることができる。また、例えばＺ´軸の基準オブジェクトから離れる方向をＺ´軸の正の方向と仮定した場合に、操作対象オブジェクトである仮想カメラの視線方向をＺ´軸の負の方向に設定することができる。これにより、仮想カメラの視線方向は、仮想カメラを任意の位置に３次元移動させたとしても、常に基準オブジェクトの方向に向くので、仮想カメラを３次元移動させながら常に基準オブジェクトの観察画像を得ることができる。また、仮想カメラの視線方向を所定の方向に固定するのではなく、任意に設定可能とすることもできる。
【００４１】
次に、基準オブジェクトを仮想臓器とし、操作対象オブジェクトを仮想内視鏡とした場合の実施例について説明する。図１３は、仮想臓器と仮想内視鏡について説明するための図である。仮想内視鏡技術では、まず、CT（Computed Tomography）やMRI(Magnetic Resonance Imaging)などの医療画像装置を用いて、被検体の血管や大腸などの管状データが撮像される。そして、仮想内視鏡技術は、図１３に示すように、管状データである仮想臓器８００の内部の例えば管中心を通る中心軸８０４に沿って仮想内視鏡８０２を移動操作しながら、仮想内視鏡８０２の視線方向に映る血管や大腸の内壁面等を観察するものである。この仮想内視鏡技術では、血管や大腸などの細い管に沿って、操作対象オブジェクトである仮想内視鏡８０２をウォークスルーするため、操作対象オブジェクトの簡易かつ自由度の高い操作が求められる。
【００４２】
図１４は、基準オブジェクトがLineDataである場合のローカル座標系を算出する処理のフロー図である。仮想内視鏡技術の場合、仮想臓器８００の周囲で仮想内視鏡８０２を３次元移動させるのではなく、仮想臓器８００の内部で仮想内視鏡８０２を３次元移動させる。そこで、オブジェクト設定部１１５は、図５のＳ１０１，Ｓ１０２で操作対象オブジェクトに仮想内視鏡８０２が選択され、基準オブジェクトに仮想臓器８００が選択された場合には、仮想臓器８００の管中心を通るLineDataを基準オブジェクトに設定する。また、Structured Gridの各ノードそれぞれのポテンシャル値を求めて各ノードに格納する点については、図６のＳ２０１〜Ｓ２０４と同様である。
【００４３】
座標系生成部１１０は、Structured Gridのｎ個のノードそれぞれについてローカル座標系を生成する。そのため、座標系生成部１１０は、まずｎ回ループ処理を行うための変数ｒを「０」に初期化する（Ｓ５００）。続いて、座標系生成部１１０は、Structured Gridのノードｉの位置が、LineData上か、管境界面上か、管境界面内か、管境界外かを確認する（Ｓ５０１）。座標系生成部１１０は、ノードｒの位置が、LineData上である場合には、LineDataの正方向をＸ´軸ベクトルとする（Ｓ５０２）。続いて、座標系生成部１１０は、グローバル座標系のＸＹ平面におけるＸ´軸ベクトルに直交する方向をＹ´軸ベクトルとする（Ｓ５０３）。続いて、座標系生成部１１０は、Ｘ´軸ベクトルおよびＹ´軸ベクトルの双方に直交する方向をＺ´軸ベクトルとする（Ｓ５０４）。続いて、座標系生成部１１０は、Ｘ´軸ベクトル、Ｙ´軸ベクトル、およびＺ´軸ベクトルを、Structured Gridの該当するノードに格納する（Ｓ５０５）。
【００４４】
座標系生成部１１０は、ノードｉの位置が、管境界面上である場合には、LineDataの正方向をＸ´軸ベクトルとする（Ｓ５０６）。続いて、座標系生成部１１０は、Ｘ´軸ベクトルに直交する直交面上における管境界面の接線方向をＹ´軸ベクトルとする（Ｓ５０７）。続いて、座標系生成部１１０は、管境界面の法線方向をＺ´軸ベクトルとする（Ｓ５０８）。続いて、座標系生成部１１０は、Ｘ´軸ベクトル、Ｙ´軸ベクトル、およびＺ´軸ベクトルを、Structured Gridの該当するノードに格納する（Ｓ５０５）。
【００４５】
座標系生成部１１０は、ノードｉの位置が、管境界面内である場合には、ノードｉのポテンシャル値を閾値と設定する（Ｓ５０９）。続いて、座標系生成部１１０は、ノードｉの周囲８つのノードを選択する（Ｓ５１０）。そして、座標系生成部１１０は、マーチンキューブ法を用いて、閾値に対して面を生成する（Ｓ５１１）。これにより、Structured Gridの各ノードのポテンシャル値が等しい点を結んだ等値面が形成される。
【００４６】
ただし、例えばあるノードのポテンシャル値が、周囲８つのノードのポテンシャル値のいずれとも異なる場合は等値面が生成されない。そこで、座標系生成部１１０は、等値面が１つ以上算出されたか否かを判定する（Ｓ５１２）。座標系生成部１１０は、等値面が１つも算出されない場合には（Ｓ５１２でＮｏ）、そのノードと基準オブジェクトを最短で結ぶ線分に対して直交する面を等値面として生成する（Ｓ５１３）。
【００４７】
一方、ノードによっては等値面が複数生成される場合もあるので、座標系生成部１１０は、等値面が１つ以上算出された場合には（Ｓ５１２でＹｅｓ）、基準オブジェクトから最も近い等値面を選択する（Ｓ５１４）。続いて、座標系生成部１１０は、等値面に直交する第１の軸と等値面上で互いに直交する第２，第３の軸とに基づいてＸ´Ｙ´Ｚ´軸のローカル座標系を生成する（Ｓ５１５）。具体的には、座標系生成部１１０は、等値面に直交する第１の軸をＺ´軸ベクトルとする。また、座標系生成部１１０は、グローバル座標系におけるＸＹ平面と等値面との交線方向をＸ´軸ベクトルとする。また、座標系生成部１１０は、等値面上でＸ´軸に直交する方向をＹ´軸ベクトルとする。続いて、座標系生成部１１０は、Ｘ´軸ベクトル、Ｙ´軸ベクトル、およびＺ´軸ベクトルを、Structured Gridの該当するノードに格納する（Ｓ５０５）。
【００４８】
一方、座標系生成部１１０は、ノードｉの位置が、管境界外である場合には、ローカル座標系を生成せずに、以降の処理を実行する。座標系生成部１１０は、Structured Gridのすべてのノードに対するローカル座標系の生成処理が終了したか否かを判定する（Ｓ５１８）。具体的には、座標系生成部１１０は、ｒ＜ｎであるか否かを判定する。座標系生成部１１０は、Structured Gridのすべてのノードに対するローカル座標系の生成処理が終了していない場合には（Ｓ５１８でＮｏ）、ｒをインクリメントして（Ｓ５１９）、Ｓ５０１に戻る。一方、座標系生成部１１０は、Structured Gridのすべてのノードに対するローカル座標系の生成処理が終了したら（Ｓ５１８でＹｅｓ）、ローカル座標系の生成処理を終了する。
【００４９】
図１５は、基準オブジェクトがLineDataである場合のローカル座標系の一例について説明するための図である。図１５に示すように、Structured Gridのノードのうち、LineData上に存在するノードと管境界外に存在するノードを除くノードについては、LineDataに沿った方向がＸ´軸ベクトル８０４として設定される。また、Ｘ´軸ベクトルに直交する直交面上でLineDataから遠ざかる方向がＺ´軸ベクトル８０８として設定される。また、直交面上でLineDataの周囲を回転する方向がＹ´軸ベクトル８０６として設定される。
【００５０】
次に、仮想内視鏡の移動先座標を算出する処理について説明する。図１６は、仮想内視鏡の移動先座標を算出する処理のフロー図である。まず、移動先座標算出部１１２は、入力装置２００からＸ´軸，Ｙ´軸，Ｚ´軸それぞれに対する移動量を取得する（Ｓ６０１）。続いて、移動先座標算出部１１２は、操作対象オブジェクト（仮想内視鏡８０２）の現在の座標を取得する（Ｓ６０２）。移動先座標算出部１１２は、Ｘ´軸，Ｙ´軸，Ｚ´軸の順に以下の移動処理を実行するため、Ｘ´軸のループ処理を行うための変数ｓ，Ｙ´軸のループ処理を行うための変数ｕ，Ｚ´軸のループ処理を行うための変数ｖを「０」に初期化する（Ｓ６０３）。
【００５１】
続いて、移動先座標算出部１１２は、操作対象オブジェクトの座標が管境界面内であるか否かを判定する（Ｓ６０４）。移動先座標算出部１１２は、操作対象オブジェクトの座標が管境界面内である場合は（Ｓ６０４でＹｅｓ）、操作対象オブジェクトの座標の最も近傍のStructured Gridのノードを取得する（Ｓ６０５）。これは、操作対象オブジェクトが必ずしもStructured Gridのノード上に位置しているとは限らないため、最も近傍のStructured Gridのノードを取得するものである。仮に、操作対象オブジェクトがStructured Gridのノード上に位置している場合は、操作対象オブジェクトが位置するStructured Gridのノードが取得される。
【００５２】
続いて、移動先座標算出部１１２は、取得したStructured Gridのノードのローカル座標系の単位ベクトルを生成する（Ｓ６０６）。一方、移動先座標算出部１１２は、Ｓ６０４で操作対象オブジェクトの座標が管境界面内でない場合には（Ｓ６０４でＮｏ）、Ｘ´軸ベクトルに関してはStructured Gridのノードにおけるローカル座標系のＸ´軸ベクトルの方向に単位ベクトルを生成する（Ｓ６０７）。続いて、移動処理部１１４は、Ｓ６０６またはＳ６０７で生成した単位ベクトルにしたがって、操作対象オブジェクトを移動させる（Ｓ６０８）。すなわち、移動先座標算出部１１２は、Structured Gridの各ノードに設定されたローカル座標系に基づいて操作対象オブジェクトの移動先座標を算出し、移動処理部１１４は、算出された移動先座標に基づいて操作対象オブジェクトを移動させる。
【００５３】
次に、移動先座標算出部１１２は、Ｘ´軸の移動処理が終了したか否かを判定する（Ｓ６０９）。具体的には、移動先座標算出部１１２は、ｓがＸ´軸方向の移動量より大きくなった場合にＸ´軸の移動処理が終了したと判定する。移動先座標算出部１１２は、Ｘ´軸の移動処理が終了していない場合には（Ｓ６０９でＮｏ）、ｓをインクリメントして（Ｓ６１０）、Ｓ６０４に戻る。すなわち、移動先座標算出部１１２は、操作対象オブジェクトを一度に大きく移動させるのではなく、Ｘ´軸の移動処理が終了するまで、操作対象オブジェクトの単位ベクトル分の移動を繰り返す。
【００５４】
移動先座標算出部１１２は、Ｘ´軸の移動処理が終了した場合には（Ｓ６０９でＹｅｓ）、Ｙ´軸の移動処理が終了したか否かを判定する（Ｓ６１１）。移動先座標算出部１１２は、Ｙ´軸の移動処理が終了していない場合には（Ｓ６１１でＮｏ）、ｕをインクリメントして（Ｓ６１２）、Ｓ６０４に戻り、Ｘ´軸と同様に、Ｓ６０４〜Ｓ６０８の処理を繰り返す。
【００５５】
移動先座標算出部１１２は、Ｙ´軸の移動処理が終了した場合には（Ｓ６１１でＹｅｓ）、Ｚ´軸の移動処理が終了したか否かを判定する（Ｓ６１３）。移動先座標算出部１１２は、Ｚ´軸の移動処理が終了していない場合には（Ｓ６１３でＮｏ）、ｖをインクリメントして（Ｓ６１４）、Ｓ６０４に戻り、Ｘ´軸と同様に、Ｓ６０４〜Ｓ６０８の処理を繰り返す。ただし、Ｚ´軸方向の移動処理に関しては、Ｓ６０７の処理がＸ´軸，Ｙ´軸の場合と異なる。すなわち、移動先座標算出部１１２は、Ｓ６０４で操作対象オブジェクトの座標が管境界面内でない場合には、Ｚ´軸方向の移動量が正の場合には移動量を「０」にする。これは、Ｚ´軸方向の正の移動によって、操作対象オブジェクトを仮想臓器８００である管から離れるのを防ぐためである。また、移動先座標算出部１１２は、Ｓ６０４で操作対象オブジェクトの座標が管境界面内でない場合であって、Ｚ´軸方向の移動量が負の場合には、操作対象オブジェクトを管に近づく方向へ移動させるために、移動量をそのまま（負の移動量）にする。移動先座標算出部１１２は、Ｚ´軸の移動処理が終了した場合には（Ｓ６１３でＹＥＳ）、操作対象オブジェクトの移動処理を終了する。
【００５６】
以上、本実施例のオブジェクト操作装置は、基準オブジェクトの周囲に設定される複数の点それぞれに対してローカル座標系を生成し、各点のローカル座標系に基づいて操作対象オブジェクトを３次元移動させる。したがって、本実施例のオブジェクト操作装置によれば、２つの画面上で操作を行わなくてもよいため、簡易に操作対象オブジェクトの３次元移動操作を行うことができる。また、本実施例のオブジェクト操作装置によれば、操作対象オブジェクトの移動用のパスをあらかじめ設定するのではなく、基準オブジェクトの周囲の複数の点それぞれにローカル座標系を生成するので、操作対象オブジェクトを任意の位置に３次元移動させることができる。
【００５７】
また、本実施例のオブジェクト操作装置は、基準オブジェクトの周囲の複数の点それぞれのポテンシャル値に基づいて形成された等値面に直交する第１の軸と、等値面上で互いに直交する第２，第３の軸とに基づいてローカル座標系を生成する。すなわち、第１の軸は基準オブジェクトに近づくまたは遠ざかる方向の軸となり、第２，第３の軸は基準オブジェクトから一定の距離だけ離れた面上を移動する軸となる。したがって、本実施例のオブジェクト操作装置によれば、基準オブジェクトから一定の距離だけ離れた面上で仮想カメラなどの操作対象オブジェクトを移動させながら、様々な方向から基準オブジェクトを観察することができる。また、操作対象オブジェクトを、基準オブジェクトに近づく方向または遠ざかる方向に移動させながら、基準オブジェクトの特定の箇所を詳細に観察したり基準オブジェクトを全体的に観察したりすることができる。
【００５８】
また、本実施例のオブジェクト操作装置は、基準オブジェクトがラインデータである場合には、基準オブジェクトの周囲の複数の点それぞれについて、ラインデータに沿った方向の第１の軸と、ラインデータに直交する直交面上でラインデータから遠ざかる方向の第２の軸と、直交面上でラインデータの周囲を回転する方向の第３の軸とに基づいてローカル座標系を生成する。したがって、本実施例のオブジェクト操作装置によれば、例えば血管や大腸などの管状データの内部で仮想内視鏡を３次元移動させる場合に、簡易かつ自由度の高い３次元移動操作を行うことができる。
【００５９】
また、本実施例のオブジェクト操作装置は、入力装置から入力される操作対象オブジェクトのローカル座標系における移動指令値を、グローバル座標系における移動指令値に変換して、変換した移動指令値に基づいて操作対象オブジェクトの移動先座標を算出する。したがって、本実施例のオブジェクト操作装置によれば、直感的な操作によって操作対象オブジェクトの３次元移動操作を実現することができる。
【００６０】
なお、本実施例は、主にオブジェクト操作装置およびオブジェクト操作方法を中心に説明したが、これに限らず、あらかじめ用意されたオブジェクト操作プログラムをコンピュータで実行することによって、上述の実施例と同様の機能を実現することができる。すなわち、オブジェクト操作プログラムは、コンピュータに、操作対象のオブジェクトを３次元移動操作する際の基準となる基準オブジェクトの周囲に設定された複数の点それぞれに対して、ローカル座標系を生成する処理を実行させる。また、オブジェクト操作プログラムは、コンピュータに、ローカル座標系を生成する処理によって生成された複数の点それぞれのローカル座標系に基づいて、入力装置から入力される操作対象のオブジェクトの移動指令値に対応する操作対象のオブジェクトの移動先座標を算出する処理を実行させる。また、オブジェクト操作プログラムは、コンピュータに、移動先座標を算出する処理によって算出された移動先座標に操作対象のオブジェクトを移動する処理を実行させる。なお、オブジェクト操作プログラムは、インターネットなどの通信ネットワークを介してコンピュータに配布することができる。また、オブジェクト操作プログラムは、コンピュータに設けられたメモリ、ハードディスク、その他のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出すことによって実行することもできる。
【符号の説明】
【００６１】
１００ オブジェクト操作装置
１１０ 座標系生成部
１１２ 移動先座標算出部
１１４ 移動処理部
１１５ オブジェクト設定部
２００ 入力装置
３００ 表示装置
６３４ 座標変換モジュール
７５０ 等値面
【図１】
0005609508.tif 000002
【図２】
0005609508.tif 000003
【図３】
0005609508.tif 000004
【図４】
0005609508.tif 000005
【図５】
0005609508.tif 000006
【図６】
0005609508.tif 000007
【図７】
0005609508.tif 000008
【図８】
0005609508.tif 000009
【図９】
0005609508.tif 000010
【図１０】
0005609508.tif 000011
【図１１】
0005609508.tif 000012
【図１２】
0005609508.tif 000013
【図１３】
0005609508.tif 000014
【図１４】
0005609508.tif 000015
【図１５】
0005609508.tif 000016
【図１６】
0005609508.tif 000017