(57)【特許請求の範囲】
【請求項１】
計算機上で背景となる２次元画像Aに３次元形状Bを投影して描画する透視図作成支援方法において、
複数の頂点からなる３次元の補助図形Dを表示するステップと、
前記２次元画像Aの透視図の手掛かりとなる部分に前記補助図形Dの辺をあわせるように操作するステップと、
前記補助図形Dの各頂点の３次元座標pと、２次元平面に投影したときの２次元座標kと、該２次元座標kから求められる透視図法のすくなくとも１つの消失点vと、前記補助図形Dの回転角度と、前記補助図形Dの少なくとも１つの辺の長さhをそれぞれ対応づけて管理するステップと、
前記補助図形Dの各頂点の３次元座標pと、２次元座標kと、消失点vと、回転角度と、辺の長さhからから前記３次元形状Bを投影する際に用いるカメラアングルCを算出するステップと
を備えたことを特徴とする透視図作成支援方法。
【請求項２】
計算機上で背景となる２次元画像Aに３次元形状Bを投影して描画する透視図作成支援方法において、
複数の頂点からなる３次元の補助図形Dを表示するステップと、
画角を操作して前記２次元画像Aの透視図の手掛かりとなる部分に前記補助図形Dの辺をあわせるように操作するステップと、
得られた画角の変化量に応じて、視点を視線方向に移動して前記３次元形状Bが２次元平面に投影される大きさを固定するステップと、
前記補助図形Dから前記３次元形状Bを投影する際に用いるカメラアングルCを算出するステップと
を備えたことを特徴とする透視図作成支援方法。
【請求項３】
計算機上で背景となる２次元画像Aに３次元形状Bを投影して描画する透視図作成支援方法において、
複数の頂点からなる３次元の補助図形Dを表示するステップと、
前記補助図形Dの面をポインティングデバイスにより選択し、前記補助図形Dの向きを回転して前記２次元画像Aの透視図の手掛かりとなる部分に前記補助図形Dの辺をあわせるように操作するステップと、
前記補助図形Dから前記３次元形状Bを投影する際に用いるカメラアングルCを算出するステップと
を備えたことを特徴とする透視図作成支援方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、電子計算機を用いた図形作成編集を支援する方法に関し、特に背景の２次元画像の透視図と一致した３次元透視図の作成支援に好適な方法に関する。
【０００２】
【従来の技術】
透視図法は、消失点を設定しこれに基づいて図形を描くことにより、遠近感を表現しつつ３次元形状を２次元平面上に描く図法である。コンピュータグラフィクスの分野において２次元平面上に図形を描くときにも、描いた図形の遠近感を表現するため、上述の透視図が用いられている。
【０００３】
透視図の作成支援方法としては、図学の手法を計算機上で自動化し、ユーザの２次元入力を補正しながら描く方法があった。具体的には図１１(a)に示すように、背景となる画像(910)上の、ユーザにより設定された４本の補助線(915)から、計算機上で消失点(917, 918)を算出し、それに基づいて背景画像の透視図法にあった図形となるように作画を支援する方法である。この方法は、いくつかのコンピュータグラフィクスソフトウェアにより実現されており、第７回ニコグラフ論文コンテスト論文集（1991年）第２２頁から第３１頁において論じられている。
【０００４】
また、別の透視図作成支援方法として、ユーザが図形の３次元座標とカメラアングルを入力して描く方法があった。カメラアングルとは、具体的には視点の３次元座標、視線方向を表わす３次元ベクトル、画角等のパラメータのことである。図形の３次元座標とカメラアングルが決定されれば、その図形が２次元平面上でどのように表現されるかを算出することができる。この方法は、数多くの３次元CADシステム上で実現されている。
【０００５】
【発明が解決しようとする課題】
上述の図学の手法を計算機上で自動化する方法においては、任意の４本の補助線から消失点を算出することが基本となる。消失点の位置は、向かい合う２本の補助線の延長線が交わる点により算出される。得られた２つの消失点の位置からカメラアングルが算出される。
【０００６】
しかし、この従来技術では３つの消失点をもつ透視図に対応することはできなかった。また、図１１(b)に示すように、１つの補助線を微小に操作するだけで(920および930)、得られる消失点は大きく移動し(921-1, 931-1)、不安定であった。特に、図１１(a)910のような画像に対しては923および924に対応する線はあるものの、922および920に対応する手掛かりとなる部分がないため、消失点を決めるのには不都合であった。また、図１１(c)のように画像の手掛かりとなる、例えば建築物の陵線に沿って補助線を設定した場合、消失点950は安定して決まるものの、941および943より得られる消失点944と、消失点950と反対側の消失点(952)が安定して求められず、ユーザの所望した透視図を描画することができなかった。
【０００７】
一方、上述の３次元CADシステム上で実現されている方法においては、図形の透視図描画結果は、図形の３次元座標とカメラアングルとの関係によって決定されていた。
【０００８】
しかし、ユーザがこの関係から描画結果を予想することは困難であり、所望の透視図を得るためには、多くの試行錯誤が必要であった。したがって、図形の３次元座標の調節は可能であったが、図形の遠近感の調節は困難であった。
【０００９】
本発明の目的は、計算機上で透視図の作成を支援する方法およびシステムの改良にある。
【００１０】
【課題を解決するための手段】
上記目的を達成するため、本発明では、図学の手法を計算機上で自動化する。そして、従来の４本の補助線の代わりに、補助直方体を用いる。補助直方体の各頂点の３次元座標は２次元平面に投影したときの２次元座標と対応させて管理する。ユーザはマウスなどのポインティングデバイスにより補助直方体の各頂点、辺、面を操作し、背景画像の透視図の手掛かりにあわせる。透視図の手掛かりとは、例えば建築物の陵線や道路といった奥行きを示す画像の部分である。得られた補助直方体の各頂点の２次元座標からカメラアングルを算出する。得られたカメラアングルを用いて、３次元の形状を背景画像の前面の２次元平面に投影した透視図を描画し、背景画像の透視図と一致した合成図を出力する。
【００１１】
透視図を２次元空間上に投影したデータは、例えばポストスクリプトといったデータに変換することにより、任意の２次元図形編集ソフトウェアおよび任意の文章編集ソフトウェアのデータの中に挿入できる。また、３次元形状データおよびカメラアングルを任意の３次元CADのデータの中に挿入するようにしてもよい。
【００１２】
補助直方体を用いて、直方体の各辺を背景画像の透視図の手掛かりになる部分と一致させ、この直方体からカメラアングルを算出することにより、背景画像の透視図と一致した合成図を出力することができる。
【００１３】
【発明の実施の形態】
以下、図面を用いて本発明の一実施例を説明する。
【００１４】
［１］システム構成
図１に、本発明の一実施例に係る透視図作成支援システムを示す。
【００１５】
画面131は、本システムのディスプレイに表示される透視図の投影面である。中央処理装置(152)に接続された記憶装置(151)の中に、本発明の透視図作成支援方法を適用した透視図作成ソフトウェア(501)を置く。透視図作成ソフトウェア(501)は、補助直方体操作ルーチン(510)を起動して入力装置(153)からのユーザ入力にしたがって補助直方体を背景画像の透視図の手掛かりにあわせて移動、変形(131-1, 131-2, 131-3, 131-4)し、カメラアングル算出ルーチン(520)を起動してカメラアングルを算出する。さらに、３次元形状描画ルーチン(550)において、算出されたカメラアングルを用いて３次元形状の透視図を背景画像の前面に上書きする。
【００１６】
生成された透視図のデータは、必要に応じて、２次元または３次元の図形データとして他の図形編集システム(154)に送った後、プリンタ(155)に入力されて紙に印刷されるか、またはVTR装置(156)に入力されて映像ソフトとなる。他の図形編集システム(154)とは、具体的には、２次元図形編集ソフトウェア、文章編集ソフトウェア、および３次元CADソフトウェア等を用いたシステムのことである。
【００１７】
補助直方体操作ルーチン(510)とカメラアングル算出ルーチン(520)については、後で詳しく述べる。
【００１８】
［３］処理の流れ
図２を参照して、本実施例の透視図作成の処理の流れ300について説明する。記憶装置(151)内の透視図作成ソフトウェア(501)を起動する。310において補助直方体データテーブル(530)およびカメラアングルCを初期化する。ここで、カメラアングルとは、具体的には視点の３次元座標、視線方向を表わす３次元ベクトルおよび画角のことである。補助直方体データテーブル(530)については後で詳しく述べる。312において背景となる２次元の画像Aを読み込む。314において背景画像の前面に描画する３次元形状データBを読み込む。320において322から550までの処理を繰り返す。322において背景画像Aを画面131に表示する。326において補助直方体を画面131に上書きする。510においてユーザはマウス等の入力により背景画像の透視図の手掛かりとなる部分と一致するように補助直方体を操作し、計算機はこれを元に補助直方体データテーブル530を更新する。520において、更新された補助直方体データテーブル530からカメラアングルCを算出する。550 において背景画像Aの前面に３次元形状Bを上書きする。終了コマンドが入力されるまで以上の320から550の処理および操作を繰り返すことにより、背景画像の透視図と一致した合成図を得ることができる。
【００１９】
［４］補助直方体データテーブル
図３を参考にして、補助直方体データテーブル530について説明する。補助直方体データテーブルは、透視図作成ソフトウェア501が起動されるときに初期化される。このデータテーブルは、補助直方体操作ルーチン510により更新され、カメラアングルCを算出(520)する際に用いられる。図３において、402は補助直方体が画面131に描画されるときの各頂点の水平(k[i],h)および垂直(k[i].v)座標を示す。ここでiは０から７までの整数で、図３(b)に示す各頂点に対応する。404は同様に補助直方体の各頂点の３次元座標(p[i].x, p[i].y, p[i].z)を示す。406は402から算出できる３つの消失点の２次元座標を示す。408のα、βは補助直方体の水平方向の軸、垂直方向の軸を中心にした回転角度を示す。410は補助直方体の高さを示す。これにより３次元形状を投影する際の拡大率が算出される。
【００２０】
［５］補助直方体操作ルーチン
次に、図４および図５を用いて補助直方体操作ルーチン510について説明する。補助直方体の操作は、マウス操作およびキー操作により以下のように分類される。これらの例を図５にそれぞれ示す。左図は変形前、右図は変形後、左図中の矢印はマウスドラッグの方向を示す。
【００２１】
（１）垂直変形(261)
マウスにより頂点(211から218)が選択された場合。
【００２２】
（２）水平に１方向のみに変形(262)
マウスにより水平な辺(221, 222, 223, 224, 229, 230, 231,  232)が選択された場合。
【００２３】
（３）水平に２方向に変形(263)
マウスにより垂直な辺(225, 226, 227, 228)が選択された場合。
【００２４】
（４）画角の調整(264)
マウスにより直方体の外(250)が選択された場合。
【００２５】
（５）回転(265)
マウスにより上記以外の直方体の中(240)が選択された場合。
【００２６】
（６）移動(266)
マウスにより直方体の中(240)が選択され、シフトキー等のある特殊なキーが押されている場合。
【００２７】
以下、上記の操作方法について順に説明する。
【００２８】
（１）垂直変形(261)
ここではマウスにより頂点218が選択された場合を例に説明する。まず、マウスボタンが離されるまで待機する。マウスボタンが離されたときのマウスカーソルの画面上での垂直座標をSvとする。補助直方体データテーブル530の消失点を用いて、選択された頂点218の２次元の垂直座標402がSvとなるように移動する。さらにこの消失点を用いて、頂点218を含む水平面の残りの３頂点(215, 216, 217)の座標を求める。この操作を行うことにより、補助直方体を垂直方向に変形する。
【００２９】
（２）水平に１方向のみに変形(262)
ここでは、マウスにより辺(223)が選択された場合を例に説明する。まず、マウスボタンが離されるまで待機する。マウスボタンが離されたときのマウスカーソルの座標を(Sh, Sv)とする。辺229および辺231から得られる消失点を用いて、点(Sh, Sv)を通るように辺223を決定する。すなわち、この消失点と(Sh, Sv)を結ぶ直線と、辺222および辺224との交点をそれぞれ頂点213および214の２次元の座標402とする。さらに頂点217および218を決定することにより、補助直方体を水平の１方向に変形する。
【００３０】
（３）水平に２方向に変形(263)
ここでは、マウスにより垂直な辺(225)が選択された場合を例に説明する。まず、マウスボタンが押されたときのマウスカーソルの座標を(Mh, Mv)とする。マウスボタンが離されるまで待機する。マウスボタンが離されたときのマウスカーソルの座標を(Sh, Sv)とする。頂点211の２次元座標に(Sh - Mh, Sv - Mv)を加える。さらに、頂点214, 218, 215, 212, 216を決定することにより、補助直方体を水平の２方向に変形する。
【００３１】
（４）画角の調整(264)
マウスにより直方体の外(250)が選択された場合について説明する。まず、マウスボタンが押されたときのマウスカーソルの水平座標をMhとする。マウスボタンが離されるまで待機する。マウスボタンが離されたときのマウスカーソルの水平座標をShとする。画角Eaに、(Sh - Mh)に定数uを掛けた値を加える。この操作を行うことにより、補助直方体の画角Eaを変更する。
【００３２】
（５）回転(265)
マウスにより直方体の中の上記以外の部分(240)が選択された場合について説明する。まず、マウスボタンが押されたときのマウスカーソルの座標を(Mh, Mv)とする。マウスボタンが離されるまで待機する。マウスボタンが離されたときのマウスカーソルの座標を(Sh, Sv)とする。補助直方体の水平方向の軸を中心にした回転角度α(408)に(Sv - Mv)に定数r1を掛けた値を加える。同様に、垂直方向の軸を中心にした回転角度β(408)に(Sh - Mh)に定数r2を掛けた値を加える。この操作を行うことにより、補助直方体を回転する。
【００３３】
（６）移動(266)
マウスにより直方体の中(240)が選択され、シフトキー等のある特殊なキーが押されている場合について説明する。まず、マウスボタンが押されたときのマウスカーソルの座標を(Mh, Mv)とする。マウスボタンが離されるまで待機する。マウスボタンが離されたときのマウスカーソルの座標を(Sh, Sv)とする。補助直方体の頂点214の２次元座標402に(Sh - Mh, Sv - Mv)を加える。頂点214の３次元座標404を求め、３次元空間における頂点214の移動ベクトルを(dx, dy, dz)とする。頂点214以外のすべての頂点に(dx, dy, dz)を加える。この操作を行うことにより、補助直方体を移動する。
【００３４】
［６］カメラアングル算出ルーチン
次に、図６から図９を用いてカメラアングル算出ルーチン520について説明する。
【００３５】
カメラアングル算出ルーチンでは、図学の手法を用いて、補助直方体操作ルーチン510で更新された補助直方体データテーブル530からカメラアングルC（視点、視線方向、画角）を算出する。また、得られたカメラアングルによって影響を受ける他の補助直方体データテーブル530をさらに更新する。以下、補助直方体操作ルーチン510で分類されたそれぞれの操作方法にしたがって説明する。
【００３６】
（１）垂直変形(261)
図６の601において、操作前後の補助直方体の２次元の頂点座標402-1と３つの消失点406-1 から、補助直方体の２次元の頂点座標402-2を更新する。603において、補助直方体の底面の中心が３次元空間上の原点であるという拘束条件620から、原点が２次元スクリーンに投影される座標を求める(622)。605において、画角Ea(450-1)、補助直方体の回転角度αおよびβ(408-1)、補助直方体の高さH(410-1)、原点のスクリーン上の座標622から、カメラアングルCのうち視点(Ex, Ey, Ez)および視線方向(Lx, Ly, Lz)を算出する。具体的には以下の計算手順による。まず、描画画面の水平方向のピクセル数をHpとし、Q, P, F を次式のように求める。
【００３７】
【数１】
0003744039.tif 000002
【００３８】
【数２】
0003744039.tif 000003
【００３９】
【数３】
0003744039.tif 000004
【００４０】
次に、視点Eyの値を仮にYtmp = 1とし、カメラアングルEx, Ey, Ez, Lx, Ly, Lzを次式のように求める。
【００４１】
【数４】
0003744039.tif 000005
【００４２】
【数５】
0003744039.tif 000006
【００４３】
得られたカメラアングルと２次元座標k[i]より、３次元座標P[i]が得られる。次に、補助直方体の高さVを次式のように求める。
【００４４】
【数６】
0003744039.tif 000007
【００４５】
しかし、補助直方体の高さは、Hとして定められているものであるので、HとVの関係より、最初に仮に決めたYtmpを次式のように補正する。
【００４６】
【数７】
0003744039.tif 000008
【００４７】
得られたYtmpを再度もちいて、数４および数５からカメラアングルが決定される。
【００４８】
607において、視点および視線方向から補助直方体の３次元の各頂点座標(404-1)を更新する。
【００４９】
（２）水平に１方向のみに変形(262)
（１）と同様に、操作前後の補助直方体の２次元の頂点座標から、他の補助直方体データテーブルを用いてカメラアングルCを算出する。
【００５０】
（３）水平に２方向に変形(263)
（１）と同様に、操作前後の補助直方体の２次元の頂点座標から、他の補助直方体データテーブルを用いてカメラアングルCを算出する。
【００５１】
（４）画角の調整(264)
図７の650において、操作前後の画角Ea(450-11)と、視点(Ex, Ey, Ez)および視線方向(Lx, Ly, Lz)(460-11)、および視点から見て原点と同じ奥行きにあるものはスクリーン上で固定されるといった拘束条件(670)から視点(Ex, Ey, Ez)および視線方向(Lx, Ly, Lz)を更新する(460-12)。通常画角を変更すると、スクリーン上に投影される大きさは変化する。例えば、画角を広くすると投影される大きさは小さくなる。上述の拘束条件670により、例えば画角を広くした場合、視点(Ex, Ey, Ez)を視線方向に移動させる。この結果原点より手前にある３次元形状はより大きく２次元平面に投影され、原点より遠くにあるものはより小さく投影される。具体的には、以下の計算手順による。
【００５２】
まず、視点および視線方向(Ex, Ey, Ez, Lx, Ly, Lz)より視線ベクトル(Ax, Ay,
Az)を次式のように求める。
【００５３】
【数８】
0003744039.tif 000009
【００５４】
つぎに、視線ベクトルのスカラーWを次式のように求め、正規化する。
【００５５】
【数９】
0003744039.tif 000010
【００５６】
【数１０】
0003744039.tif 000011
【００５７】
次に、Wk を次式のように求める。但し、Ea(old) は操作前の画角、Ea(new)は操作後の画角を示す。
【００５８】
【数１１】
0003744039.tif 000012
【００５９】
次に、原点の視点からの深さ、すなわちスクリーンに垂直な方向の距離をZとし、視点および視線方向の移動量Jを次のように求める。
【００６０】
【数１２】
0003744039.tif 000013
【００６１】
得られた移動量を視点および視線方向(Ex, Ey, Ez, Lx, Ly, Lz)に次式のように加えて、条件670を満たす視点および視線方向を得る。
【００６２】
【数１３】
0003744039.tif 000014
【００６３】
次に652において、補助直方体の３次元の各頂点座標(404-11)と更新された視点および視線方向(404-12)から、補助直方体の２次元の頂点座標(402-11)を求める。654において、水平方向の２つの消失点は同じ高さにあるといった拘束条件672から、３つの消失点(406-11)を求める。この拘束条件672はカメラが視線方向を軸に回転しないという条件である。
【００６４】
（５）回転(265)
図８の710において、操作前後の補助直方体の回転角度αおよびβ(408-21)と、視点(Ex, Ey, Ez)および視線方向(Lx, Ly, Lz)(460-21)から視点(Ex, Ey, Ez)および視線方向(Lx, Ly, Lz)を更新する(460-22)。次に712において、補助直方体の３次元の各頂点座標(404-21)と更新された視点および視線方向(404-22)から、補助直方体の２次元の頂点座標(402-21)を求める。714において、水平方向の２つの消失点は同じ高さにあるといった拘束条件730から、３つの消失点(406-21)を求める。
【００６５】
（６）移動(266)
図９の750において、編集前後の補助直方体の２次元の頂点214の座標(402-31)と、３つの消失点(406-31)と、視点および視線方向(460-31)と、画角(450-31)と、補助直方体の３次元の頂点座標(404-31)とから、補助直方体の頂点214の３次元の座標(404-32)を求める。この頂点座標と、補助直方体の形は固定であるという拘束条件780より補助直方体の頂点の他の７点の３次元座標(404-33)を求める。754において、補助直方体の３次元座標と、補助直方体の底面の中心が３次元空間上の原点であるという拘束条件782から、視点および視線方向(460-32)を求める。
【００６６】
以上の処理により、補助直方体の３次元座標と、２次元スクリーンに投影された２次元座標と、消失点などのパラメータを対応づけて管理することにより、背景画像の透視図と一致したカメラアングルを安定して求めることができる。
【００６７】
［７］透視図作成システムの使用例
最後に、本実施例の透視図作成システムの使用例を図１０を参考に説明する。図１０の左側は流れ図、右側は各ステップで表示される画面131を示す。
【００６８】
811は補助直方体を操作する前の画面である。背景画像はすでに読み込まれている。812においてユーザにより補助直方体の外側が選択され、水平方向にドラッグされた。この結果、画角が更新され、813に示すように補助直方体のが歪められて表示される。つぎに、814において補助直方体の内側を選択され、ドラッグされた。この結果、補助直方体の回転角度が更新され、815に示すように補助直方体が回転して表示される。816においてシフトキーが押されたままマウスにより補助直方体の内部が選択された。この結果、補助直方体は平行移動し、817に示すように底面の頂点の１つが建築物の底面の頂点と一致した。818において、補助直方体の上面の１点が選択された。この結果、補助直方体が垂直方向に変形し、819に示すように上面の１つの頂点が建築物の上面の１点と一致した。820において、補助直方体の垂直の辺が選択された。この結果、821に示すように補助直方体の上面と底面が建築物の底面と上面と一致した。
【００６９】
以上に示すように補助直方体を移動、変形させて背景画像の透視図の手掛かりとなる部分と一致させることにより、カメラアングルCが決定される。
【００７０】
【発明の効果】
本発明によれば、背景となる２次元画像の透視図の手掛かりになる部分に補助直方体の辺を安定してあわせることにより、背景画像の透視図と一致したカメラアングルを算出することができる。したがって、背景画像と違和感の無い合成図を得ることが可能となる。
【００７１】
【図面の簡単な説明】
【図１】実施例の透視図作成支援システムと、ディスプレイに表示される背景画像と補助直方体の操作を示す図である。
【図２】実施例の処理の流れを示す図である。
【図３】実施例の補助直方体データテーブルを示す図である。
【図４】実施例の補助直方体を示す図である。
【図５】実施例の補助直方体の操作方法を示す図である。
【図６】実施例の補助直方体データテーブルからカメラアングルの算出を示す図である。
【図７】実施例の補助直方体データテーブルからカメラアングルの算出を示す図である。
【図８】実施例の補助直方体データテーブルからカメラアングルの算出を示す図である。
【図９】実施例の補助直方体データテーブルからカメラアングルの算出を示す図である。
【図１０】実施例の具体的な使用例を示す図である。
【図１１】従来方法を示す図である。
【図１】
0003744039.tif 000015
【図２】
0003744039.tif 000016
【図３】
0003744039.tif 000017
【図４】
0003744039.tif 000018
【図５】
0003744039.tif 000019
【図６】
0003744039.tif 000020
【図７】
0003744039.tif 000021
【図８】
0003744039.tif 000022
【図９】
0003744039.tif 000023
【図１０】
0003744039.tif 000024
【図１１】
0003744039.tif 000025