(57)【特許請求の範囲】
【請求項１】
図形表示システムにおける図形の３次元立体配置編集方法であって、
表示済の立体のローカル座標系から対象となる立体が平行移動する移動平面を定義し、該移動平面方向を所望の方向に設定する工程と、
前記移動平面と平行で且つ相互に直交する２本の直線を表示する工程と、
前記直交する２本の直線の交点を通過し、前記移動平面に垂直な直線を更に表示し、
編集対象の立体を選択する工程と、
指示された立体又は該立体に外接する直方体の部分に対してカーソルを活性化して移動する工程と、
前記選択された立体を前記カーソルの活性化された移動量に応じて、前記移動平面上を平行移動させる工程とを備えることを特徴とする３次元立体配置編集方法。
【請求項２】
前記移動平面と平行で相互に直交する２本の直線と、前記移動平面に垂直な直線は異なる表示方法で表示される請求項１に記載の３次元立体配置編集方法。
【請求項３】
前記移動平面と平行で相互に直交する２本の直線と、前記移動平面に垂直な直線の交点は、前記カーソルの画面上の指示位置に一致する請求項１又は２のいずれかに記載の３次元立体配置編集方法。
【請求項４】
画面上の指示位置を検出する指示位置検出手段（１１、１２）と、
表示済の立体のローカル座標系から平行移動する移動平面方向を定義するローカル座標系方向を設定するローカル座標系方向算出手段（１４）と、
前記移動平面と平行で且つ相互に直交する２本の直線を表示し、更に前記移動平面と平行で相互に直交する２本の直線の交点を通過し、前記移動平面に垂直な直線を更に表示する補助線表示手段（２４）と、
編集対象の立体を選択する立体選択手段（３１）と、
前記指示位置検出手段が検出した移動に応じて、前記選択された立体を前記移動平面方向に移動させる立体編集処理手段（３２）とを備えることを特徴とする３次元立体配置編集装置。
【請求項５】
前記移動平面と平行で相互に直交する２本の直線と、前記移動平面に垂直な直線は異なる表示方法で表示される請求項４に記載の３次元立体配置編集装置。
【請求項６】
前記移動平面と平行で相互に直交する２本の直線と、前記移動平面に垂直な直線の交点は、カーソルの画面上の指示位置に一致する請求項４又は５のいずれかに記載の３次元立体配置編集装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、３次元空間に配置された立体を２次元画面で表示する図形表示システムにおける３次元立体配置編集方法に関する。
【０００２】
【従来の技術及び発明が解決しようとする課題】
３次元空間に配置された立体を２次元画面で表示する図形表示システムにおいては、配置された立体を移動及び回転させる場合や、立体を一部の方向又はすべての方向について拡大及び縮小させる場合等の編集を行う場合、ユーザがマウス等の指示装置を操作して画面に表示されるカーソルを移動させて指示を入力する。
【０００３】
表示された立体を移動する第１の従来方法においては、正面図、側面図及び平面図の３面図を表示し、それぞれの画面上で画面に平行な移動操作を行い、各図における移動を合成して３次元の移動を行っていた。
しかし、この方法では、３次元空間において任意の方向に立体を移動させるためには３面図の内の少なくとも２図において操作を行う必要があるため、操作が煩雑である。また、最終的な３次元の移動は、各図における移動を合成して得られるため、移動方向及び移動量を直観的に認識するのが難しいという問題がある。しかも、３面図の各図は平行投影法によって作成されるが、平行投影法では３次元空間内の物体が増加した場合には、表示される立体に重なりが多く生じ、画面の理解が難しくなるという問題がある。
【０００４】
表示された立体を移動する第２の従来方法においては、同様に３面図を用いるが、各図において移動ベクトルを入力し、対象となる立体を選択して移動させていた。
しかし、この方法では、移動方向を直感的に認識しにくいという問題がある。また、上記の第１の従来方法と同様の問題も有する。
【０００５】
また、２次元画面に３次元空間に配置された立体を表示した状態で移動させることは、画面上で移動方向や移動量を特定することができないため、難しかった。
表示された立体を拡大あるいは縮小する従来方法においては、画面上でマウス等を用いて立体を指示し、マウスをクリックした状態で移動させるドラッグをすることによって相似拡大していた。
【０００６】
しかし、この方法では、立体のタテ・ヨコ・高さ方向である３軸方向を独立して拡大・縮小操作ができないという問題があった。
表示された立体を回転する従来の第１の方法においては、画面上で立体を指示し、ドラッグすることによって、画面に向かって上下、あるいは左右方向の回転の２自由度で立体を回転させていた。
【０００７】
しかし、この方法では、特定の軸について回転させるのが難しく、正確な回転量が入力しにくいという問題があった。
表示された立体を回転する従来の第２の方法においては、回転軸をあらかじめ３面図等で入力し、その軸のまわりにマウスドラッグによって立体を回転させていた。
【０００８】
しかし、この方法では、回転軸の設定が難しいという問題があった。
表示された立体を回転する従来の第３の方法においては、個々の立体について最初から定義されている軸について、マウスドラッグによって立体を回転させていた。
しかし、この方法では、各立体について１種類の回転軸についての回転しかできず、所望の回転ができないという問題があった。
【０００９】
表示された立体を回転する従来の第４の方法においては、画面に対して定まる特定の軸、例えば、画面に垂直な軸、画面に平行な水平軸、垂直軸について立体を回転させていた。
しかし、この方法では、斜めから見た透視図などでは、立体固有の軸に関する回転操作ができないという問題があった。
【００１０】
本発明は、上記問題点に鑑みてなされたものであり、従来方法のような繁雑な作業を行うことなく、従来の２次元図面作成ツールと同様の直感的な操作で立体配置の編集作業が行なえるような３次元立体配置編集方法及び編集装置の実現を目的とする。
【００１１】
【課題を解決するための手段】
本発明の３次元立体配置編集方法は、上記問題点を解決するため、編集対象として選択した立体について、その立体に外接する直方体の輪郭線を表示する。その上で編集内容を選択し、その輪郭線上を画面指示位置入力手段（マウス等）で指示し、操作することによって編集を行なえるようにする。このとき、選択された編集の内容と外接直方体のどの位置が指示されたかによって、編集時の基準となる不動辺又は不動点が自動的に設定されるようにする。
【００１２】
編集内容として立体を回転させる操作を選択した時には、外接直方体の辺上を指示し、画面指示位置入力手段をドラッグ操作する。このとき、どの辺が指示されたかに応じて回転軸が定められ、その軸を中心にカーソルの操作に応じて立体が回転する。
編集内容として立体を拡大あるいは縮小させる操作を選択した時には、外接直方体の辺あるいは頂点上を指示し、カーソルをドラッグ操作する。このとき、どの辺あるいは頂点が指示されたかに応じて不動軸あるいは不動点が定められ、不動軸が定められた場合はその軸と直交する２方向の自由度に関し、立体が拡大・縮小される。一方、不動点が定められた場合はその点を中心として相似的に、画面位置指示手段の操作に応じて立体が拡大・縮小される。
【００１３】
編集内容として立体を移動させる操作を選択した時には、外接直方体の辺あるいは立体そのものを指示し、画面指示位置入力手段をドラッグ操作することによる。移動方向については、あらかじめ移動平面方向を設定しておく。
本発明の第２の態様の３次元立体配置編集方法では、立体移動操作において、立体が移動する方向を移動平面方向として定義し、その向きを設定した上で、カーソルをドラッグ操作して立体をこの移動平面方向に移動させる。設定された移動平面方向は、３次元空間において平面方向を定義する２本の直交する直線（移動平面方向軸）と、それに直交する１本の直線によって表示される。前者と後者は別の色で表示することによって区別する。また、これら３本の直線は１点で交わるようにし、その１点が通常は画面指示位置入力手段による画面指示位置と一致するようにする。
【００１４】
【作用】
本発明の第１の態様の３次元立体配置編集方法によれば、回転操作あるいは拡大・縮小操作において、いちいち回転軸あるいは拡大方向、拡大中心等を設定すること無く、外接直方体のどこを指示するかによって、編集操作時に回転軸あるいは不動点・不動軸を素早く選択できる。これにより操作性が向上する。
【００１５】
本発明の第２の態様の３次元立体配置編集方法によれば、表示されている透視図の表示パラメタ（視点位置、注視方向、視野角等）によらず、任意の移動方向を設定して立体を移動させることができる。また、３本の軸表示によって、その方向を視覚的に容易に認識できる。
【００１６】
【実施例】
図１は、本発明が適用される図形表示装置（コンピュータグラフィックシステム）の構成を示すブロック図である。本発明のコンピュータグラフィックシステムは、ＣＰＵ１、バス２、メモリ３、外部記憶装置４、入力装置５、画面上位置入力装置６、表示装置７を備えるコンピュータシステム、およびその上で動作するプログラムによって実現できる。
【００１７】
本発明の実行時には、プログラムはメモリ３上に配置され、ＣＰＵ１がメモリ３上のプログラムを実行することによって本発明が実行される。本発明実行時のデータはメモリ３中に置かれ、データを保存する場合には外部記憶装置に保存される。
入力装置５としてはキーボード、画面上位置入力装置６としてはマウスあるいはタブレットを用いる。マウスあるいはタブレットは画面上の一点を指示入力するためのものであり、移動操作によって画面上の指示位置（カーソルを表示）を動かすことができるほか、ボタン操作によって入力確定を行うことができる。
【００１８】
図２は、図１の計算機システムの外観図である。参照番号１０は、コンピュータであり、内部にＣＰＵ１、バス２、メモリ３、外部記憶装置４を有している。入力装置としてはキーボード５が、表示装置としてはＣＲＴディスプレイ７が使用される。本実施例では、画面上位置入力装置としてマウス６を使用する。
図３と図４は、図１の計算機システムを用いて実現した本発明の実施例の３次元立体配置編集装置の機能ブロック図である。
【００１９】
図３と図４に示すように、本実施例の３次元立体配置編集装置は、指示入力検出手段１１と、画面指示位置検出手段１２と、ローカル座標系方向算出手段１４と、表示パラメータ算出手段１５と、立体選択手段３１と、立体編集処理手段３２と、ローカル座標系方向記憶手段２０と、表示パラメータ記憶手段２１と、立体配置データ算出手段２２と、画面指示位置表示手段３３と、補助線表示手段２４と、直方体輪郭線表示手段２５と、立体表示手段２６と、立体詳細形状記憶手段２７と、立体配置データ記憶手段２８と、表示装置７と、データ入出力手段２９とを有する。
【００２０】
３次元空間における立体の配置は、立体詳細形状データと立体配置データを用いて定義される。立体詳細形状データは、立体を定義する座標系（立体詳細形状定義座標系）において、立体の形状を詳細に定義したものであり、例えば立体が多面体である場合は、その全頂点の座標、各面を構成する頂点のリスト、その他立体の定義に必要な情報を含む。立体詳細形状定義座標系における立体詳細形状データは、配置される前にローカル座標系のデータに変換される。一方、立体配置データは、ローカル座標系において詳細形状を定義された立体の、ワールド座標系における配置および大きさ（縮尺）を定義するデータである。すなわち、ローカル座標系からワールド座標系への座標変換のための行列を含む。（実際には、単一の座標変換行列ではなく、回転、縮尺等の変換を別々に表現する場合もある。）
一般には、空間内に異なった詳細形状を持つ複数の立体を配置することになるので、立体配置データ記憶手段２２および立体詳細形状記憶手段２７には、それぞれ複数の立体についてのデータを記憶する。そして、立体配置データ記憶手段２２に記憶される各立体のデータには、その立体がどの立体詳細形状データに対応するかを識別するための情報を付随させる。
【００２１】
立体詳細形状記憶手段２７および立体配置データ記憶手段２８に記憶されたデータは、データ入出力手段２９を用いて外部記憶装置４に保存することができる。また逆に、外部記憶装置４に保存されたデータをデータ入出力手段２９を用いて読み込むことができる。
次に、本実施例における画面表示について説明する。図５は、本実施例における表示画面の例を示す図である。
【００２２】
図５に示すように、本実施例においては、３次元空間に定義された立体、画面指示位置表示（マウスカーソル）、後述する補助線（３Ｄカーソル）及びツールパレットを表示装置７の画面に表示する。マウスカーソルは、マウスの操作に連動して動く。この表示は、３次元世界座標系について定義された上記各データに対して座標変換を施し、２次元の画面座標に変換し、表示するものである。この変換を定義するのが表示パラメタである。本発明では、入力操作および画像表示を行うために、あらかじめ表示パラメタ算出手段１５を用いて表示パラメタを決定し、表示パラメタ記憶手段２１に値を記憶させておく。
【００２３】
表示パラメタは、３次元座標空間における視点位置、注視方向、傾き角（ロールアングル）、視野角を定義する情報で構成される。実際には、視点位置、注視方向および傾き角は、まとめて一つの４×４行列で定義できる。これは、世界座標系から視点座標系（視点を原点とし、画面水平方向のＸ軸、画面鉛直方向のＹ軸、注視点方向のＺ軸によって定義される、３次元直交座標系）への座標変換行列である。視野角は、画面横方向の視野の角度を定義する。
【００２４】
表示パラメタ算出手段１５は、ユーザが表示パラメタ変更のための操作を、入力装置あるいは画面上位置入力装置を用いて行なった際に、それを指示入力検出手段１１あるいは画面指示位置検出手段１２で検出し、その内容に応じて、プログラムの記述に従い、新たな表示パラメタの値を算出し、表示パラメタを設定もしくは変更する。
【００２５】
ツールパレットは、編集内容を表示する部分であり、カーソルで指示することにより、表示された編集内容が選択できるようになっている。
図６は、実施例における立体配置編集操作の手順を示す図である。
図６に示すように、ステップ６１０では、編集の対象となる立体をカーソルで選択する。ステップ６２０では、選択した立体に外接する直方体の輪郭線が表示される。ステップ６３０では、選択した立体に対して行おうとする編集内容を図４のツールパレットから選択する。ステップ６３０は、ステップ６１０、６２０より前に行うことも可能である。ステップ６４０では、カーソルで表示された直方体の一部を指示し、ステップ６５０では、ステップ６４０で指示した直方体の部分に対してカーソルをドラッグする。これに応じて、ステップ６６０では、ステップ６３０で選択された編集内容、ステップ６４０で指示された直方体の部分、及びドラッグ量に応じて対象となる立体を編集する。
【００２６】
以下、図６の各ステップについて、詳しく説明する。
まず、立体を選択し、それに外接する直方体を表示する工程について説明する。
立体配置データ記憶手段２８では、個々の立体が選択状態にあるかどうかの情報を保持している。選択状態にある立体については、直方体輪郭線表示手段２５によって外接直方体枠が表示される。
【００２７】
編集の対象となる立体を選択する場合には、編集の対象とする立体の上にマウスカーソルを合わせ、ボタンをクリックすると、画面指示位置検出手段１２および指示入力検出手段１１はそれを検出し、立体選択手段３１は、立体配置データ記憶手段２８および立体詳細形状記憶手段２７に記憶されているデータをもとに、指示された立体を判別し、その立体を選択状態とし、直方体輪郭線表示手段２５は、選択状態の立体の外接直方体を表示する。
【００２８】
後述するように、キーボード等の操作に応じて、立体選択手段３１は、単独選択（指示された立体のみを選択）またはトグル選択（指示された立体の選択状態を反転）処理が可能である。また、マウスボタンを押したままマウスをドラッグした場合、ドラッグ開始・終了点を頂点とする長方形領域内の立体を同時に指示したものと判断し、それらの立体について上記処理を行う。
【００２９】
図６のステップ６４０から６６０の操作は、ステップ６３０で選択された編集内容に応じて異なるので、ステップ６３０で選択される編集内容とその場合の操作について編集内容毎に説明する。
図７は編集内容として回転操作を選択した場合の操作を説明する図である。回転操作には２種類の操作がある。１つは、指示した辺に平行な立体の中心軸を回転軸とする操作であり、もう１つは、指示した辺に平行な直方体の対角辺を回転軸とする操作である。（１）は立体の中心軸を回転軸とする時の操作を、（２）は対角辺を回転軸とする操作を示す。
【００３０】
立体の回転操作を行うためには、まず図５のステップ６３０で回転編集モードを選択する。編集モードの選択は、マウスカーソルをツールパレット上の適当なアイコンに合わせてマウスボタンを押すことにより行われる。マウスの操作は、画面指示位置検出手段１２および指示入力検出手段１１によって検出され、その結果を立体編集処理手段３２が受取り、回転編集モードの設定あるいは回転軸算出法の選択が行われる。ツールパレット上には、上記の２種類の回転操作に対応するアイコンがあり、これを選択する。
【００３１】
立体回転操作においては、まずマウスカーソルを、表示されている外接直方体枠の辺に合わせ、マウスボタンを押す。すると、画面指示位置検出手段１２および指示入力検出手段１１はその操作を検出し、それを受取った立体編集処理手段３２は、立体配置データ記憶手段２８に記憶されているデータをもとに指示された辺を判別し、上記の２つの回転操作のいずれかであるかに応じて回転軸を算出する。立体の中心軸を回転軸とする編集内容の時には、図７の（１）に示すように、指示した辺に平行な立体の中心軸が回転軸として算出される。対角辺を回転軸とする編集内容の時には、図７の（２）に示すように、指示した辺に平行な直方体の対角辺が回転軸として算出される。
【００３２】
続いて、マウスボタンを押したままマウスをドラッグすると、画面指示位置検出手段１２はマウスの動きを随時検出し、その結果を受取った立体編集処理手段３２は、マウスボタンを押した位置を基準としたマウスの変位量をもとに回転角を決定し、立体配置データ算出手段２２は、その角度だけ回転した外接直方体枠を求め、直方体輪郭線表示手段２５はそれを表示する。図７の（１）では、指示した辺に平行な立体の中心軸を回転軸として回転され、図７の（２）では、指示した辺に平行な直方体の対角辺を回転軸として回転される。ただし、複数の立体が選択されているときは、それぞれ立体について算出された軸の回りに外接直方体枠を回転させる。また、階層構造の親である立体が選択されている場合は、子孫の立体についても、親との相対関係を保つように親と同じ軸の回りに回転させる。
【００３３】
マウスを移動させた先でマウスボタンを放すと、立体編集処理手段３２は、その時点での回転角を確定し、立体配置データ算出手段２２は、確定した角度の立体配置データを求め、それをもとに立体表示手段２６は立体を表示する。
図８は編集内容として立体の拡大／縮小を選択した場合の操作を説明する図である。拡大／縮小操作にも２種類の操作がある。１つは、指示した辺に平行な立体の中心軸を不動軸とする操作であり、もう１つは、指示した辺に平行な直方体の対角辺を不動軸とする操作である。（１）は立体の中心軸を不動軸とする時の操作を、（２）は対角辺を不動軸とする操作を示す。
【００３４】
立体の拡大・縮小操作を行うためには、まず拡大・縮小編集モードを選択しておく必要がある。編集モードの選択は、マウスカーソルをツールパレット上の適当なアイコンに合わせてマウスボタンを押すことによる。マウスの操作は、画面指示位置検出手段１２および指示入力検出手段１１によって検出され、その結果を立体編集処理手段３２が受取り、２種類の拡大・縮小編集モードのいずれかの設定あるいは不動軸算出法の選択が行われる。ツールパレット上には、上記の２種類の回転操作に対応するアイコンがあり、これを選択する。
【００３５】
立体拡大・縮小操作においては、まずマウスカーソルを、表示されている外接直方体枠の辺に合わせ、マウスボタンを押す。すると、画面指示位置検出手段１２および指示入力検出手段１１はその操作を検出し、それを受取った立体編集処理手段３２は、立体配置データ記憶手段２８に記憶されているデータをもとに指示された辺を判別し、不動軸を算出する。立体の中心軸を不動軸とする編集内容の時には、図８の（１）に示すように、指示した辺に平行な立体の中心軸が不動軸として算出される。対角辺を不動軸とする編集内容の時には、図８の（２）に示すように、指示した辺に平行な直方体の対角辺が不動軸として算出される。
【００３６】
続いて、マウスボタンを押したままマウスをドラッグすると、画面指示位置検出手段１２はマウスの動きを随時検出し、その結果を受取った立体編集処理手段３２は、マウスボタンを押した位置を基準としたマウスの変位量をもとに、不動軸と直交する２軸方向の倍率を決定し、立体配置データ算出手段２２は、その倍率だけ拡大・縮小した外接直方体枠を求め、直方体輪郭線表示手段２５はそれを表示する。ただし、複数の立体が選択されているときは、それぞれ立体について算出された不動軸に対して拡大・縮小する。図８の（１）では、指示した辺に平行な立体の中心軸を不動軸として拡大又は縮小され、図８の（２）では、指示した辺に平行な直方体の対角辺を不動軸として拡大又は縮小される。
【００３７】
マウスを移動させた先でマウスボタンを放すと、立体編集処理手段３２は、その時点での倍率を確定し、立体配置データ算出手段２２は、確定した倍率に応じて立体配置データを求め、それをもとに立体表示手段２６は立体を表示する。
図９は編集内容として立体の相似拡大／縮小を選択した場合の操作を説明する図である。相似拡大／縮小操作にも２種類の操作がある。１つは、指示した立体の中心を不動点とする操作であり、もう１つは、指示した頂点に対する直方体の対角点を不動点とする操作である。（１）は立体の中心点を不動点とする時の操作を、（２）は対角点を不動点とする操作を示す。
【００３８】
相似立体拡大・縮小操作においては、まずマウスカーソルを、表示されている外接直方体枠の頂点に合わせ、マウスボタンを押す。すると、画面指示位置検出手段１２および指示入力検出手段１１はその操作を検出し、それを受取った立体編集処理手段３２は、立体配置データ記憶手段２８に記憶されているデータをもとに指示された頂点を判別し、不動点を算出する。立体の中心点を不動点とする編集内容の時には、図９の（１）に示すように、指示した立体の中心点が不動点として算出される。対角点を不動点とする編集内容の時には、図９の（２）に示すように、指示した頂点対する直方体の対角点が不動軸として算出される。
【００３９】
続いて、マウスボタンを押したままマウスをドラッグすると、画面指示位置検出手段はマウスの動きを随時検出し、その結果を受取った立体編集処理手段３２は、マウスボタンを押した位置を基準としたマウスの変位量をもとに、相似倍率を決定し、立体配置データ算出手段２２は、その倍率だけ拡大・縮小した外接直方体枠を求め、直方体輪郭線表示手段２５はそれを表示する。ただし、複数の立体が選択されているときは、それぞれ立体について算出された不動点に対して拡大・縮小する。図９の（１）では、指示した立体の中心点を不動点として拡大又は縮小され、図９の（２）では、指示した頂点に対する直方体の対角点を不動点として拡大又は縮小される。
【００４０】
マウスを移動させた先でマウスボタンを放すと、立体編集処理手段３２は、その時点での倍率を確定し、立体配置データ算出手段２２は、確定した倍率に応じて立体配置データを求め、それをもとに立体表示手段２６は立体を表示する。
図１０は編集内容として立体の平行操作を選択した場合の操作を説明する図である。
【００４１】
立体の移動操作を行うためには、まず移動編集モードを選択しておく必要がある。編集モードの選択は、マウスカーソルをツールパレット上の適当なアイコンに合わせてマウスボタンを押すことによる。マウス操作は画面指示位置検出手段１２および指示入力検出手段１１によって検出され、その結果を立体編集処理手段３２が受取り、モードの設定が行われる。
【００４２】
立体移動操作においては、まずマウスカーソルを、表示されている外接直方体枠の辺あるいは表示されている立体に合わせ、マウスボタンを押す。すると、画面指示位置検出手段１２および指示入力検出手段１１はその操作を検出し、それを受取った立体編集処理手段３２は、ローカル座標系方向記憶手段２０に記憶されている移動平面方向（マウスを動かしたときに立体が移動する平面の方向）に関するデータを元に、マウスの移動量から立体の３次元移動量を求める関数を算出する。
【００４３】
続いて、マウスボタンを押したままマウスをドラッグすると、画面指示位置検出手段１２はマウスの動きを随時検出し、その結果を受取った立体編集処理手段３２は、マウスボタンを押した位置を基準としたマウスの変位量をもとに、先に求めた関数を用いて立体移動量を決定し、立体配置データ算出手段２２は、その立体移動量だけ移動した外接直方体枠を求め、直方体輪郭線表示手段２５はそれを表示する。ただし、複数の立体が選択されているときは、それぞれ立体について外接直方体枠を移動させる。また、階層構造の親である立体が選択されている場合は、子孫の立体についても、親と同じ移動量だけ移動させる。
【００４４】
マウスを移動させた先でマウスボタンを放すと、立体編集処理手段３２は、その時点での立体移動量を確定し、立体配置データ算出手段２２は、確定した移動量だけ移動させた立体配置データを求め、立体配置データ記憶手段２８の記憶内容を更新する。また、それをもとに立体表示手段２６は立体を表示する。
次に、ローカル座標系における移動平面方向に関するデータの設定について説明する。
【００４５】
形状入力の準備として、これから入力する立体のローカル座標系方向を設定し、ローカル座標系方向記憶部２０に記憶させておく。本実施例では、このローカル座標系方向記憶部２０に移動平面方向に関するデータを記憶しておく。
ローカル座標系方向は、世界座標系におけるローカル座標系の３軸（Ｘ軸、Ｙ軸、Ｚ軸）の方向ベクトルを３×３行列で表現する。加えて、高さ入力方向軸がどの軸であるかという情報を含む。
【００４６】
ローカル座標系における移動平面方向に関するデータの設定方法の例を図１１及び図１２に示す。
図１１は、画面上に表示されている立体に移動平面方向を合わせる方法を示す図である。マウスカーソルを表示されている立体に合わせ、指示操作（マウスボタンクリック）を行うと、ローカル座標系方向算出手段１４は、指示された立体を判別し、その立体のローカル座標系方向を新たな移動平面方向とし、ローカル座標系方向記憶手段２０に記憶する。
【００４７】
図１２は、既にローカル座標系方向記憶手段２０において記憶されている移動平面方向を修正する方法を示す図である。まず現在の移動平面方向の各軸と平行な辺を持つ立方体の枠（ワイヤフレーム）を画面に表示し、そのいずれかの辺上にマウスカーソルを合わせてボタンを押下したまま移動（ドラッグ）したとき、マウス移動中は随時、ローカル座標系方向算出手段１４において、上記の立方体を、マウスカーソル移動方向および移動量に応じて回転角度を決定し、マウスカーソルを合わせた辺と平行かつ立方体中心を通る直線を軸として回転させ、表示する。マウスボタンを離した時点での立方体の各辺と平行な軸を、新たな移動平面方向とし、移動平面方向を決定する。
【００４８】
上記のように、立体を移動する場合には、直接立体を指示するればよく、かならずしも立体に外接する直方体を表示する必要はない。
前述のように、本実施例の３次元図形編集装置では、複数の立体を対象として同時に編集することが可能である。マウスボタンを押したままマウスをドラッグした場合、ドラッグ開始・終了点を頂点とする長方形領域内の立体を同時に指示したものと判断し、それらの立体について上記処理を行う。
【００４９】
【発明の効果】
本発明によれば、従来の２次元図面作成ツールと同様の直感的な操作で立体配置の編集作業が行なえる３次元立体配置編集方法及び編集装置が実現される。
【図面の簡単な説明】
【図１】本発明の実施例のシステム構成を示す図である。
【図２】実施例で使用する装置の外観を示す図である。
【図３】実施例で使用する装置の機能ブロック図である。
【図４】実施例で使用する装置の機能ブロック図である。
【図５】実施例におけるディスプレイ画面を示す図である。
【図６】実施例における編集操作の手順を示すフローチャートである。
【図７】回転操作を説明する図である。
【図８】拡大／縮小操作を説明する図である。
【図９】相似拡大／縮小操作を説明する図である。
【図１０】平行移動操作を説明する図である。
【図１１】ローカル座標系での移動平面方向設定方法を説明するための図である。
【図１２】ローカル座標系での移動平面方向設定方法を説明するための図である。
【符号の説明】
１１…指示入力検出手段
１２…画面指示位置検出手段
１４…ローカル座標系方向算出手段
１５…表示パラメータ算出手段
２０…ローカル座標系方向記憶手段
２１…表示パラメータ記憶手段
２２…立体配置データ算出手段
２５…直方体輪郭線表示手段
２６…立体表示手段
２７…立体詳細形状記憶手段
２８…立体配置データ記憶手段
３１…立体選択手段
３２…立体編集処理手段
【図１】
0003672352.tif 000002
【図２】
0003672352.tif 000003
【図３】
0003672352.tif 000004
【図４】
0003672352.tif 000005
【図５】
0003672352.tif 000006
【図６】
0003672352.tif 000007
【図７】
0003672352.tif 000008
【図８】
0003672352.tif 000009
【図９】
0003672352.tif 000010
【図１０】
0003672352.tif 000011
【図１１】
0003672352.tif 000012
【図１２】
0003672352.tif 000013