(57)【特許請求の範囲】
【請求項１】
投影面決定手段が１又は複数の投影面を決定する工程と、決定した前記１又は複数の投影面に対し、その投影面に立体形状を投影した時の２次元形状を構成する２次元自由曲線が入力されると、３次元ＮＵＲＢ曲線変換手段が前記２次元自由曲線に基づいて３次元ＮＵＲＢ曲線を算出し、前記１又は複数の投影面の前記３次元ＮＵＲＢ曲線に基づいて立体形状を復元する工程とを有することを特徴とする透視図３次元ＮＵＲＢ曲線自動復元方法。
【請求項２】
投影面決定手段が１又は複数の投影面を決定する工程と、前記１又は複数の投影面に、その投影面に立体形状を投影した時の２次元形状を構成する２次元自由曲線が入力手段を介して入力されると、前記１又は複数の投影面に入力された２次元自由曲線に基づいて、
同一及び複数投影図組み合わせ検出手段が前記立体形状の頂点となる前記２次元自由曲線の端点の座標を算出し、また前記２次元自由曲線上の点をサンプリングし、点列の座標を算出する工程と、
同一及び複数投影図頂点算出手段が前記２次元自由曲線の端点の座標及び前記投影面に基づいて決定される透視変換行列に基づいて３次元座標における前記立体形状の頂点の座標を算出する工程と、
前記３次元座標上の頂点、前記点列の座標及び透視変換行列に基づいて３次元ＮＵＲＢ曲線変換手段が３次元ＮＵＲＢ曲線を算出し、算出した前記１又は複数の投影面の前記３次元ＮＵＲＢ曲線に基づいて立体形状を復元する工程とを有することを特徴とする透視図３次元ＮＵＲＢ曲線自動復元方法。
【請求項３】
更に復元した立体形状を表示手段に表示する工程を有することを特徴とする請求項１又は２記載の透視図３次元ＮＵＲＢ曲線自動復元方法。
【請求項４】
前記１又は複数の投影面は、前記入力手段を介して入力される、表示手段が表示する前記３次元座標空間上の補助用直方体に対する回転移動又は平行移動指示に基づいて、前記投影面決定手段が決定することを特徴とする請求項１又は２記載の透視図３次元ＮＵＲＢ曲線自動復元方法。
【請求項５】
前記３次元ＮＵＲＢ曲線変換手段が前記３次元ＮＵＲＢ曲線を算出する工程は、同一投影面上において面対称関係にある２次元自由曲線又は複数投影面上において立体形状の同一線を表すものと見なされる２次元自由曲線の組み合わせを抽出し、それぞれの２次元自由曲線をアフィン変換してそれぞれの端点の座標の補正を行って算出し、推定したそれぞれの点列の近傍を２次元ＮＵＲＢ曲線が通過する際の点列通過パラメータの値に基づいて２次元ＮＵＲＢ曲線の制御点の座標を算出し、前記２次元ＮＵＲＢ曲線の制御点及び前記透視変換行列に基づいて算出された３次元ＮＵＲＢ曲線の制御点の座標に基づいて前記３次元ＮＵＲＢ曲線を算出することを特徴とする請求項２記載の透視図３次元ＮＵＲＢ曲線自動復元方法。
【請求項６】
前記点列通過パラメータは、点列間の距離の比例関係に基づいて設定されることを特徴とする請求項５記載の透視図３次元ＮＵＲＢ曲線自動復元方法。
【請求項７】
前記２次元ＮＵＲＢ曲線の制御点の座標は、前記２次元ＮＵＲＢ曲線の制御点を変数とする方程式を算出し、前記方程式、前記２次元自由曲線の端点の座標、前記点列の座標及び前記点列通過パラメータの値に基づいて、前記点列との誤差が最小となるような変数の値を前記２次元ＮＵＲＢ曲線の制御点の座標として決定することを特徴とする請求項５記載の透視図３次元ＮＵＲＢ曲線自動復元方法。
【請求項８】
前記３次元ＮＵＲＢ曲線の制御点の座標の算出は、前記透視変換行列に基づいた前記２次元ＮＵＲＢ曲線の制御点と３次元ＮＵＲＢ曲線の制御点の座標との関係式を算出し、複数の投影面間で同一の制御点の関係を表す前記関係式において、誤差が最小になるように３次元座標に関し関係式を解き、前記３次元ＮＵＲＢ曲線の制御点の座標を算出することを特徴とする請求項５記載の透視図３次元ＮＵＲＢ曲線自動復元方法。
【請求項９】
前記３次元ＮＵＲＢ曲線変換手段が前記３次元ＮＵＲＢ曲線を算出する工程は、更に前記透視変換行列に基づいて、前記算出された３次元ＮＵＲＢ曲線の制御点の座標を前記１又は複数の投影面に再投影し、再投影により得られる２次元ＮＵＲＢ曲線の制御点の座標を新たな２次元ＮＵＲＢ曲線の制御点の座標として前記点列通過パラメータの値を再推定し、前記点列と算出された２次元ＮＵＲＢ曲線との距離の関係の変化率が収束したものと判断するまで２次元ＮＵＲＢ曲線の制御点の座標及び点列通過パラメータの値を再推定し、前記３次元ＮＵＲＢ曲線を算出することを特徴とする請求項５記載の透視図３次元ＮＵＲＢ曲線自動復元方法。
【請求項１０】
指示又は２次元自由曲線の座標データが入力される入力手段と、
座標データに基づいて２次元又は３次元の曲線を表示する表示手段と、
該表示手段に補助直方体を表示させ、前記入力手段から入力される前記補助直方体の回転移動指示又は平行移動指示により決定される１又は複数の投影面に基づいた透視変換行列を出力する投影面決定手段と、
前記入力される２次元自由曲線の座標データに基づいて同一投影面上で面対称となる２次元自由曲線の組合せ及び前記２次元自由曲線の点列を検出する同一投影図組合せ検出手段と、
前記透視変換行列及び前記面対称となる２次元自由曲線の頂点に基づいて３次元ＮＵＲＢ曲線の端点の座標を算出する同一投影図頂点算出手段と、
前記入力される２次元自由曲線の座標データに基づいて複数投影面上で立体形状上の同一曲線の組合せ及び前記２次元自由曲線の点列をを検出する複数投影図組合せ検出手段と、
前記透視変換行列及び立体形状上の同一曲線の頂点に基づいて３次元ＮＵＲＢ曲線の頂点の座標を算出する複数投影図頂点算出手段と、
前記透視変換行列、前記２次元自由曲線の点列及び３次元ＮＵＲＢ曲線の頂点の座標に基づいて３次元ＮＵＲＢ曲線の座標データを前記表示手段に出力する３次元ＮＵＲＢ曲線変換手段とを備えたことを特徴とする透視図３次元ＮＵＲＢ曲線自動復元装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータ支援３次元入力システムにおける３次元形状入力方式に関し、特にＣＡＩＤ（コンピュータ支援工業デザイン）／ＣＡＤ（コンピュータ支援設計）／ＣＧ（コンピュータグラフィックス）システムにおいて２次元の透視図から３次元曲線を復元し、立体形状として表示する３次元自動復元システムに関するものである。
【０００２】
【従来の技術】
デザイナーを含む操作者（つまり人間）は、個人差はあるものの、２次元上に描かれた透視図のスケッチを組み合わせて、自由曲線を含む３次元の立体形状を頭の中でイメージできる。
【０００３】
図８及び図９はそのような３次元の立体形状をイメージするための２次元の透視投影図である。図８は投影面１を示す透視投影図９０であり、図９は投影面２を示す透視投影図９２である。
【０００４】
従来、精密工学会誌、vol.59、no.6、1993、精密工学会、日本、古島、金井、高橋、「手書き図形の自動認識による３次元自由曲線モデルの生成」や、電子情報通信学会論文誌Ｄ、J71-D 、（1988）84、電子情報通信学会、日本、田中敏光ほか、「Generalized symmetryに基づく３次元形状の復元」に記載されているように、ＣＡＩＤ／ＣＡＤ／ＣＧシステム等で、このような２次元の透視投影図から３次元の立体形状を復元し、操作者の立体形状のイメージを支援するような３次元自動復元システムが開発されている。
【０００５】
このような従来の３次元自動復元システムにおいては、透視投影図に描画された２次元曲線を一度２次元の点列で表現し、１又は複数の透視投影図の点列を基にして３次元の点列に変換し、その３次元の点列に３次元曲線を当てはめて立体形状を復元させている。
【０００６】
【発明が解決しようとする課題】
しかし、上述のように、１つあるいは複数の透視投影図から３次元自由曲線を復元する場合、２次元自由曲線を２次元点列で表現しておき、１又は複数投影面上の２次元点列を基にして、ある３次元点列に変換し、その３次元の点列に３次元曲線を当てはめて立体形状を復元させていたため、工業製品で表現されるような自由度の高い立体形状の透視投影図は入力することができないか、または入力が困難であった。また、立体面上の円や円弧のような２次曲線を理論的に正確に表現することができなかった。
【０００７】
本発明は、上記のような問題点を解決するためになされたものであり、手書きの誤差を含んでいるような２次元自由曲線又は円や円弧を表現している２次曲線が入力されても、滑らかな３次元曲線あるいは、立体面上の滑らかな２次曲線として表現でき、簡単な入力で操作者のイメージに近い立体形状が得られるような３次元自動復元システムを得ることを目的とする。なお、ここでいう自由曲線とは直線等も含むものである。
【０００８】
【課題を解決するための手段】
本発明に係る透視図３次元ＮＵＲＢ曲線自動復元方法は、投影面決定手段が１又は複数の投影面を決定する工程と、決定した１又は複数の投影面に対し、その投影面に立体形状を投影した時の２次元形状を構成する２次元自由曲線が入力されると、３次元ＮＵＲＢ曲線変換手段が２次元自由曲線に基づいて３次元ＮＵＲＢ曲線を算出し、１又は複数の投影面の３次元ＮＵＲＢ曲線に基づいて立体形状を復元する工程とを有している。
本発明においては１又は複数の投影面を決定し、その投影面に立体形状を投影した時の２次元形状を構成する２次元自由曲線を手書き等により入力する。その２次元自由曲線に基づいて、描ける曲線に制限がなく、微小変化の影響が少ない３次元ＮＵＲＢ曲線を算出し、その３次元ＮＵＲＢ曲線に基づいて立体形状を復元する。
【０００９】
また、本発明に係る透視図３次元ＮＵＲＢ曲線自動復元方法の１又は複数の投影面は、入力手段を介して入力される、表示手段が表示する３次元座標空間上の補助用直方体に対する回転移動又は平行移動指示に基づいて、投影面決定手段が決定する。
本発明においては、立体形状を復元する３次元座標空間上に表示された補助用直方体を回転移動又は平行移動させることにより投影面に対応した視点から補助用直方体を表示させることで視覚的に投影面を決定する。
【００１０】
また、本発明に係る透視図３次元ＮＵＲＢ曲線自動復元方法において３次元ＮＵＲＢ曲線変換手段が３次元ＮＵＲＢ曲線を算出する工程は、同一投影面上において面対称関係にある２次元自由曲線又は複数投影面上において立体形状の同一線を表すものと見なされる２次元自由曲線の組み合わせを抽出し、それぞれの２次元自由曲線をアフィン変換してそれぞれの端点の座標の補正を行って算出し、推定したそれぞれの点列の近傍を２次元ＮＵＲＢ曲線が通過する際の点列通過パラメータの値に基づいて２次元ＮＵＲＢ曲線の制御点の座標を算出し、２次元ＮＵＲＢ曲線の制御点及び透視変換行列に基づいて算出された３次元ＮＵＲＢ曲線の制御点の座標に基づいて３次元ＮＵＲＢ曲線を算出する。
本発明においては、同一投影面上において面対称関係にある２次元自由曲線又は複数投影面上において立体形状の同一線を表すものと見なされる２次元自由曲線の組み合わせを抽出し、それぞれの２次元自由曲線をアフィン変換により端点の座標の補正を行って算出する。またそれぞれの点列の近傍を２次元ＮＵＲＢ曲線が通過する際の点列通過パラメータの値を推定し、点列通過パラメータの値に基づいて２次元ＮＵＲＢ曲線の制御点の座標を算出し、２次元ＮＵＲＢ曲線の制御点及び透視変換行列に基づいて算出された３次元ＮＵＲＢ曲線の制御点の座標に基づいて３次元ＮＵＲＢ曲線を算出する。
【００１１】
また、本発明に係る透視図３次元ＮＵＲＢ曲線自動復元方法の点列通過パラメータは、点列間の距離の比例関係に基づいて設定される。本発明においては、それぞれの点列の近傍を２次元ＮＵＲＢ曲線が通過する際の点列通過パラメータは点列間の距離に比例して設定される。
【００１２】
また、本発明に係る透視図３次元ＮＵＲＢ曲線自動復元方法は、２次元ＮＵＲＢ曲線の制御点の座標は、２次元ＮＵＲＢ曲線の制御点を変数とする方程式を算出し、方程式、２次元自由曲線の端点の座標、点列の座標及び点列通過パラメータの値に基づいて、点列との誤差が最小となるような変数の値を２次元ＮＵＲＢ曲線の制御点の座標として決定する。
本発明においては、２次元ＮＵＲＢ曲線の制御点を変数とする方程式を算出する。その方程式に２次元自由曲線の端点の座標、点列の座標及び点列通過パラメータの値によって得られる制御点間の関係式のうち点列との誤差が最小となるような変数の値を２次元ＮＵＲＢ曲線の制御点の座標として決定する。
【００１３】
また、本発明に係る透視図３次元ＮＵＲＢ曲線自動復元方法の３次元ＮＵＲＢ曲線の制御点の座標の算出は、透視変換行列に基づいた２次元ＮＵＲＢ曲線の制御点と３次元ＮＵＲＢ曲線の制御点の座標との関係式を算出し、複数の投影面間で同一の制御点の関係を表す関係式において、誤差が最小になるように３次元座標に関し関係式を解き、３次元ＮＵＲＢ曲線の制御点の座標を算出する。
本発明においては、透視変換行列に基づいた２次元ＮＵＲＢ曲線の制御点と３次元ＮＵＲＢ曲線の制御点の座標との関係式を算出する。複数の投影面間で同一の制御点の関係を表す関係式において、誤差が最小になるように３次元座標に関し関係式を解き、複数の投影面間の手書き誤差を最小限に抑えた３次元ＮＵＲＢ曲線の制御点の座標を算出する。
【００１４】
また、本発明に係る透視図３次元ＮＵＲＢ曲線自動復元方法において３次元ＮＵＲＢ曲線変換手段が３次元ＮＵＲＢ曲線を算出する工程は、更に透視変換行列に基づいて、算出された３次元ＮＵＲＢ曲線の制御点の座標を１又は複数の投影面に再投影し、再投影により得られる２次元ＮＵＲＢ曲線の制御点の座標を新たな２次元ＮＵＲＢ曲線の制御点の座標として点列通過パラメータを再推定し、点列と、算出された２次元ＮＵＲＢ曲線との距離の関係の変化率が収束したものと判断するまで２次元ＮＵＲＢ曲線の制御点の座標及び点列のパラメータを再推定し、前記３次元ＮＵＲＢ曲線を算出する。
本発明においては、算出された３次元ＮＵＲＢ曲線の制御点の座標を１又は複数の投影面に再投影する。誤差が最小限に抑えられた３次元ＮＵＲＢ曲線の制御点を２次元ＮＵＲＢ曲線の制御点に変換し、それをあらたな２次元ＮＵＲＢ曲線の制御点として点列通過パラメータを再推定し、それらに基づいて点列と、算出された２次元ＮＵＲＢ曲線との距離の関係の変化率が収束し、誤差が抑えられるまで２次元ＮＵＲＢ曲線の制御点の座標及び点列のパラメータを再推定し、３次元ＮＵＲＢ曲線を算出する。
【００１５】
【発明の実施の形態】
図１は本発明の第１の実施の形態に係る透視図３次元ＮＵＲＢ曲線自動復元方法を実施するためのブロック図である。図において、２０１はコマンド解析／処理部であり、入出力機構２０５を介して表示装置２０６、スケッチ入力手段２０９と接続され、入力されるコマンドの解析及び処理を行う。２０２は幾何処理部であり、点の座標値の集合で与えられた２次元自由曲線の座標値に基づいて、立体形状を復元する。２０３は記憶処理部であり、図形記憶領域２０４にデータを記憶するための処理を行う。２０５は入出力機構であり、コマンド解析／処理部２０１、幾何処理部２０２、記憶処理部２０３及び図形情報記憶領域２０４により構築された部分と表示装置２０６及びスケッチ入力手段２０９とのインターフェイスとなる部分である。スケッチ入力手段２０９は操作者の操作が入力される部分でありマウス２０７及びキーボード２０８で構成されている。
【００１６】
図２は図１のブロック図を実際にハード構成する場合の構成図である。透視図３次元ＮＵＲＢ曲線自動復元方法は、主としてコンピュータ上で復元処理される。図２では中央計算機１０１、主記憶装置１０２、入出力制御装置１０３、マウス又はタブレット１０４、キーボード１０５、外部記憶装置１０６及び表示装置１０７をシステムバス１０８（又はこれに類似の機構）で接続した計算機システム１００で構成されている。またこれに類似するような計算機システムで構成される場合もある。
【００１７】
図３は幾何処理部２０２の構成を示すブロック図である。図において、５０は投影面決定手段５０であり、投影面決定の補助とするような直方体を表示装置２０６に表示させるようにしておき、スケッチ入力手段からの回転又は移動指示により直方体の視点を変化表示させて操作者が視点を決定すると、その視点の透視変換行列を算出して出力する。５２は同一投影図組合せ検出手段であり、あるひとつの透視投影図の２次元手書き曲線において、面対称な関係にある頂点（曲線の始点及び終点）・２次元曲線の組み合わせを検出する。５４は同一投影図頂点算出手段であり、同一投影図組合せ手段５２により検出された頂点の３次元座標位置を算出する。５６は複数投影図組合せ手段であり、複数の透視投影図の２次元手書き曲線において、空間内で同一頂点・曲線として対応づけられる頂点（曲線の始点及び終点）・２次元自由曲線の組み合わせを検出する。５８は複数投影図頂点算出手段であり、複数投影図組合せ手段５６により検出された頂点の３次元座標位置を算出する。６０は３次元ＮＵＲＢ曲線変換手段であり、同一投影図組合せ検出手段５２又は複数投影図組合せ検出手段５４で検出された２次元ＮＵＲＢ曲線、同一投影図頂点算出手段５６又は複数投影図頂点算出手段５８において算出された頂点座標、投影面上の入力点列座標及び投影面の透視変換行列に基づいて、アフィン変換（ｘ軸又はｙ軸方向の拡大縮小、変形等）を行って頂点や曲線を修正しながら２次元自由曲線から３次元ＮＵＲＢ曲線を復元する。
【００１８】
ここで、ＮＵＲＢ曲線について説明する。ＮＵＲＢ曲線とはNonUniform Rati-onal B-Spline 曲線のことである。平面上の曲線をパラメータｔを用いてパラメトリックに表現すると、例えば３次の多項式によるパラメータ曲線は、次式（１）のようになる。
Ｒ（ｔ）＝ｔ3 Ｐ3 ＋ｔ2 Ｐ2 ＋ｔＰ1 ＋Ｐ0                   …（１）
となるここでＰ3 、Ｐ2 、Ｐ1 及びＰ0 はベクトルである。ベジエ曲線やB-Spline曲線はこのパラメトリック曲線形式で表現されるが、ベジエ曲線は制御点と呼ばれる点によって曲線が決定され、B-Spline曲線は曲線間の接続を制御点とは独立で行うことができる。
【００１９】
これらのパラメトリック曲線は正確に表現できる形状には制限があり、正確に表現する方法の１つに有理パラメトリック曲線と呼ばれる有理の多項式の形式で表された表現がある。ＮＵＲＢ曲線は有理パラメトリック曲線の１つであり、次式（２）で表される。
【００２０】
【数１】
0003799511.tif 000002
【００２１】
ここでｗi が制御点Ｐi に対応する重みであり、Ｎi,p （ｔ）はB-Spline関数と同じである。ｐは曲線セグメントの次数である。これがＮＵＲＢ曲線である。
【００２２】
図４は自由度の高い曲線や円等のプリミティブな曲線を生成する入出力動作と幾何処理部２０２との関係を示す図である。この図は図８及び図９の透視投影図に基づいている。図３、図４並びに図８及び図９に基づいて幾何処理部２０２について詳しく説明する。
【００２３】
操作者は、スケッチ入力手段２０９より投影面１を２次元曲線の描画方向の視点として指定する（操作１）。この投影面１には、面対称であると考えられる２次元自由曲線が含まれている。このような曲線が含まれた投影面が最初に選ばれるようにする。投影面の指定には、投影面決定手段５０により、補助となる直方体をあらかじめ表示手段２０６に表示させるようにしておき、この直方体を操作者がスケッチ入力手段２０９を介して回転又は移動させることにより決定させるようにしておく。
【００２４】
操作者は投影面１を描画方向の視点として指定すると、２次元曲線の手書き入力を行う。曲線１が入力されても、組み合わせ対象がないため、同一投影図組合せ検出手段５２は処理を行わない。また複数投影図組合せ手段５６も投影面が１つしかないため、この時点では処理を行わない。曲線２、３及び４が入力されると、同一投影図組合せ検出手段５２は曲線１との組み合わせ対象が入力されたことを検出する。検出された曲線の端点（立体形状の頂点）に基づいて、同一投影図頂点算出手段５４は、投影面決定手段５０で決定された投影面に対応する透視変換行列Ｍi により変換を行い、３次元上における曲線１〜曲線４の頂点の座標を決定する。座標が決定されると、曲線１〜曲線４上の点列をサンプリングする。必要なデータが３次元ＮＵＲＢ曲線変換手段６０に入力されて復元処理され、表示手段２０６に立体形状として表示させる（操作２）。手書きの誤差を含み、曲率が変化する自由度の高い曲線であるものの、ＮＵＲＢ曲線の性質上、微小変化の影響を受けないので、滑らかな３次元ＮＵＲＢ曲線を生成することができる。
【００２５】
次に操作者は曲線５の入力を行う。同一投影図組合せ検出手段５２は曲線５に対しては面対称の曲線が投影図９０上に存在しないとする。表示手段２０６に表示される立体形状はそのままである（操作３）。別の投影面からの同一曲線が複数投影図組合せ検出手段５６により認められると、３次元化される。
【００２６】
操作４では、２次元ＮＵＲＢ曲線による入力で、曲線６及び曲線７が楕円として入力される。この曲線６及び曲線７についても対応する曲線が投影面１上に存在ないので、表示手段２０６に表示される立体形状はそのままである（操作４）。曲線６及び曲線７についても別の投影面からの同一曲線が複数投影図組合せ検出手段５６により認められると、３次元化される。
【００２７】
曲線８を入力すると、同一投影図組合せ検出手段５２は曲線８に対しては対応する曲線が投影図９０上に存在しないとする。曲線９に対してはそれ自身が面対称となる曲線として存在すると判断して、同一投影図頂点算出手段５４は、透視変換行列Ｍi により変換を行い、３次元上における曲線９の頂点の座標を決定し、曲線状の点列のサンプリングを行う。必要なデータが３次元ＮＵＲＢ曲線変換手段６０に入力され、３次元ＮＵＲＢ曲線の制御点を出力する。３次元形状表示制御手段６２は出力された３次元ＮＵＲＢ曲線の制御点に基づいて表示手段６４に立体形状を表示させる（操作５）。
【００２８】
投影面１からの手書きによる２次元曲線の入力が終了すると、再度、操作者は、スケッチ入力手段２０９を介して表示装置２０６に表示されている補助用の直方体を回転、移動させ、投影面２を２次元曲線の描画方向の視点として指定する（操作６）。ここで、現在立体形状における位置が決定している曲線１、２、３、４及び９に対応し、この位置の視点で見ることのできる曲線１１、１２、１９についてはすでに投影面２上に描かれている。したがってその曲線に基づいて他の曲線を入力していくことになる。
【００２９】
操作者により曲線１５が入力されると、同一投影面には組み合わせ対象がないため、同一投影図組合せ検出手段５２は処理を行わない。複数投影図組合せ手段５６は、投影面１及び２に基づいて、曲線５と曲線１５とが同一曲線を表すものと判断する。曲線５及び曲線１５に基づいて複数投影図頂点算出手段５８は頂点の座標を決定し、またそれぞれの曲線の点列の座標を算出して曲線５及び１５の２次元ＮＵＲＢ曲線を生成する。その後、必要なデータが３次元ＮＵＲＢ曲線変換手段６０に入力されて復元処理され、表示手段２０６に立体形状として表示させる（操作７）。
【００３０】
操作者により曲線１６及び１７が入力されると、同一投影面には組み合わせ対象がないため、同一投影図組合せ検出手段５２は処理を行わない。複数投影図組合せ手段５６は、投影面１及び２に基づいて、曲線６及び曲線１６並びに曲線７及び曲線１７とが同一曲線を表すものと判断する。曲線６及び曲線１６並びに曲線７及び曲線１７に基づいて複数投影図頂点算出手段５８は３次元における座標を決定し、またそれぞれの曲線の点列の座標を算出して曲線６及び曲線１６並びに曲線７及び曲線１７の２次元ＮＵＲＢ曲線を生成する。その後、必要なデータが３次元ＮＵＲＢ曲線変換手段６０に入力されて復元処理され、表示手段２０６に立体形状として表示させる（操作８）。この場合、プリミティブな楕円として認識される。
【００３１】
操作者により曲線１８、２０及び２１が入力される。曲線１８が入力されても、組み合わせ対象がないため、同一投影図組合せ検出手段５２は処理を行わない。また複数投影図組合せ手段５６も他の投影面上においても曲線１８との組合せを検出できないので処理を行わない。曲線２０が入力されると、同一投影図組合せ検出手段５２は曲線１８と２０を組合せとして検出する。検出された曲線の頂点に基づいて、同一投影図頂点算出手段５４は、透視変換行列Ｍi により変換を行い、３次元上における曲線１８及び２０の頂点の座標を決定する。座標が決定されると、曲線１８及び２０上の点列をサンプリングする。必要なデータが３次元ＮＵＲＢ曲線変換手段６０に入力されて復元処理され、表示手段２０６に立体形状として表示させる。また曲線２１が入力されると、同一投影図組合せ検出手段５２は面対称と判断し、同様の処理を行い、表示手段２０６に立体形状として表示させる（操作９）。
【００３２】
図５は３次元ＮＵＲＢ曲線変換手段６０の構成を表すブロック図である。図において７０は初期値設定手段であり、同一投影図組合せ手段５２又は複数投影図組合せ手段５４により検出された２次元ＮＵＲＢ曲線のノットベクトルＵ及びそれぞれの制御点につける重みＷi j の初期値を設定し、２次元ＮＵＲＢ曲線が点列近傍を通過する際の点列通過パラメータｕi k を推定する。７２は２次元ＮＵＲＢ曲線算出手段であり、２次元ＮＵＲＢ曲線のノットベクトル、点列通過パラメータ及びそれぞれの制御点重みの初期値に基づいて、投影面上の点列に２次元ＮＵＲＢ曲線を当てはめるために、２次元ＮＵＲＢ曲線の制御点の座標を決定する。７４は３次元ＮＵＲＢ曲線算出手段であり、２次元ＮＵＲＢ曲線算出手段７２で算出された１又は複数投影面上の２次元ＮＵＲＢ曲線の制御点に基づいて、３次元座標上に３次元ＮＵＲＢ曲線を当てはめるために、３次元ＮＵＲＢ曲線の制御点の座標を決定する。７６は再投影手段であり、手書き誤差により２次元ＮＵＲＢ曲線の制御点と一致しなくなった３次元ＮＵＲＢ曲線の制御点を各投影面に再投影して、２次元ＮＵＲＢ曲線の制御点の座標を修正し、それに基づいて各制御点の重みも修正する。７８はパラメータ再推定手段であり、再投影手段７６で修正された２次元ＮＵＲＢ曲線の制御点の座標及び各制御点の重みに基づいて各投影面上での点列通過パラメータを再推定する。８０は収束判定手段であり、あらためて算出された２次元ＮＵＲＢ曲線と点列との距離の総和を算出し、全ての投影面において距離の総和が収束条件を満たしているかどうかを判断し、収束条件を満たしていると判断すると、その時に決定された３次元ＮＵＲＢ曲線を出力する。
【００３３】
図６は３次元ＮＵＲＢ曲線変換手段６０の動作手順を示す図である。また、図７は２次元ＮＵＲＢ曲線と入力点列、３次元ＮＵＲＢ曲線の関係を示す図である。図５、図６及び図７に基づいて３次元ＮＵＲＢ曲線変換手段６０のそれぞれの手段の動作について更に詳しく説明する。
【００３４】
３次元ＮＵＲＢ曲線をＰ（ｕ）、そのノットベクトルをＵ、投影面上ｉに投影された２次元ＮＵＲＢ曲線をＰi （ｕ）とする。図３では投影面が２つあるのでＰ1 （ｕ）及びＰ2 （ｕ）が存在する。
【００３５】
初期値設定手段７０では、ノットベクトルＵは２次元ＮＵＲＢ曲線の始点及び終点で多重度ｎ、間隔１（等間隔）のユニフォームに設定する。また各制御点重みＷi j を１．０とする。また点列通過パラメータをｕi k とすると、２次元ＮＵＲＢ曲線をＰi （ｕ）が点列Ｓi k の近傍を通過する際の点列通過パラメータｕi k は次式（３）で推定される（図６ａ）。
【００３６】
【数２】
0003799511.tif 000003
【００３７】
２次元ＮＵＲＢ曲線算出手段７２では、各制御点重みＷi j 及び算出した点列通過パラメータをｕi k に基づいて各投影面の２次元ＮＵＲＢ曲線の制御点を求める。Ｐi j を２次元ＮＵＲＢ曲線の制御点、Ｎn j （ｕ）をノットベクトルＵ上のｎ次B-Spline関数とすると、次式（４）が成立する。
【００３８】
【数３】
0003799511.tif 000004
【００３９】
また２次元ＮＵＲＢ曲線をＰi （ｕ）が点列Ｓi k の近傍を通過する条件等により、次式（５）が成立する。
【００４０】
【数４】
0003799511.tif 000005
【００４１】
式（６）に最小二乗法を適用し、決定された値を式（４）に代入することで、２次元ＮＵＲＢ曲線の制御点Ｐi 1 、…、Ｐi N-1 が求められる。なお、制御点Ｐi 1 、…、Ｐi N-1 は式（４）を満たす座標の組として求められ、最小二乗法により制御点の座標は一意に決まる（図６ｂ）。
【００４２】
３次元ＮＵＲＢ曲線算出手段７４は、２次元ＮＵＲＢ曲線算出手段７２で算出された１又は複数投影面上の２次元ＮＵＲＢ曲線の制御点に基づいて、３次元ＮＵＲＢ曲線の制御点の座標を決定する。ＮＵＲＢ曲線の性質より、３次元ＮＵＲＢ曲線の制御点と透視変換行列Ｍi ＝｛ｍi αβ｝によってある投影面に変換された２次元ＮＵＲＢ曲線の制御点とは１対１に対応する。したがって３次元ＮＵＲＢ曲線の制御点Ｐj （ｐjx，ｐjy，ｐjz）と２次元ＮＵＲＢ曲線の制御点Ｐi j （ｐi jx, ｐi jy,0）との間には次式（６）及び（７）の関係が成立する。
【００４３】
【数５】
0003799511.tif 000006
【００４４】
ここで投影面がν面存在する場合、ｉ＝１，２，…，νについてそれぞれ式（６）及び（７）が成立するので、２ν本の連立方程式が算出される。これらの連立方程式を最小二乗法に基づいてｐjx，ｐjy，ｐjzについて解くことによって、それぞれの投影面上の同じ制御点に最も近い点を３次元ＮＵＲＢ曲線の制御点Ｐj （ｐjx，ｐjy，ｐjz）とすることができる（図６ｃ）。
【００４５】
再投影手段７６では３次元ＮＵＲＢ曲線の制御点Ｐj （ｐjx，ｐjy，ｐjz）を再投影する。Ｐj （ｐjx，ｐjy，ｐjz）は各投影面の２次元ＮＵＲＢ曲線の制御点Ｐi j （ｐi jx, ｐi jy,0）の最小二乗法により算出された座標値である。スケッチ誤差がない場合には、各投影面の制御点と３次元座標の制御点は一致し、３次元ＮＵＲＢ曲線算出手段７４により算出された３次元ＮＵＲＢ曲線の制御点Ｐj を再投影させなくてもよい。しかし、一般的には手書きの場合にはスケッチ誤差は生じるので、現在設定されている３次元ＮＵＲＢ曲線の制御点Ｐj （ｐjx，ｐjy，ｐjz）を２次元ＮＵＲＢ曲線の制御点Ｐi j （ｐi jx, ｐi jy,0）として各投影面に再投影しても同一座標にはならない。そこで、各投影面において、再投影した座標を新たな２次元ＮＵＲＢ曲線の制御点Ｐi j （ｐi jx, ｐi jy,0）と設定する。この新たな２次元ＮＵＲＢ曲線の制御点の座標を式（４）、（５）に再度入力し、初期値を１．０としている各制御点重みＷi j の修正を行う。なお、この修正した各制御点重みＷi j は式（４）、（５）を満たす組として求められ、最小二乗法により各制御点重みは一意に決まる（図６ｄ）。
【００４６】
パラメータ再推定手段７８は新たに算出された２次元ＮＵＲＢ曲線の制御点Ｐi j （ｐi jx, ｐi jy,0）及び各制御点重みＷi j に基づいて、再度点列通過パラメータｕi k の推定を行う。ＮＵＲＢ曲線の場合、投影された２次元上の座標点と投影した３次元上の座標点との曲線上のパラメータが同じになるため、投影された２次元ＮＵＲＢ曲線のパラメータが明示的に算出され、入力点列位置のパラメータを推定することができる。そこで、投影面上の点列Ｓi k との最小距離を与える点をＰi （ｕi k ）とすると、投影面上のベクトルＳi k −Ｐi （ｕi k ）とＰi （ｕi k ）が直交するという条件が成立するから、次式（８）が成立する。
【００４７】
【数６】
0003799511.tif 000007
【００４８】
したがってこれを満たすようなＰi （ｕi k ）を求めることにより、あらためてｕi k を決定する（図６ｅ）。
【００４９】
収束判定手段８０は、投影面上の点列Ｓi k と２次元ＮＵＲＢ曲線Ｐi （ｕ）との総和を次式（９）に基づいて計算する。
【００５０】
【数７】
0003799511.tif 000008
【００５１】
全ての投影面においてこのｅの値が前回のｅの値との変化率が０になるまで（収束したと判断するまで）繰り返す。すなわち、収束したと判断しなかったときは、算出した各制御点重みＷi j 及び算出した点列通過パラメータｕi k を２次元ＮＵＲＢ曲線算出手段７２に再度入力し、収束したと判断されるまで７２〜８０の各手段の動作を繰り返し行う（図６ｆ）。
【００５２】
全ての投影面において変化率が０になり、収束したと判断した場合、このときの３次元ＮＵＲＢ曲線の制御点Ｐj （ｐjx，ｐjy，ｐjz）等の３次元ＮＵＲＢ曲線による立体形状のデータを入出力機構２０５を介して表示装置２０６に表示させる。また、記憶処理部２０３を介して図形記憶領域２０４にデータ保存させておくことも可能である。
【００５３】
以上のように第１の実施の形態によれば、スケッチ入力手段２０９を介して操作者により入力された投影面における手書き曲線に基づいて、幾何処理部は２次元ＮＵＲＢ曲線を作成し、１又は複数投影面において立体形状としての組合せとなる曲線の座標等を調整しながら３次元ＮＵＲＢ曲線に変換し、立体形状を復元して表示装置２０７に表示するようにしたので、ＮＵＲＢ曲線の特性を用いて制御点間の幾何関係のみから３次元ＮＵＲＢ曲線を算出することができるため、入力点列に含まれる手書きの誤差や微小振動が３次元形状に影響を及ぼさずに３次元自由曲線として自由度の高い３次元ＮＵＲＢ曲線を生成し、立体形状を表示することができる。また、ＮＵＲＢ曲線による表現が可能となったので、円や円弧のようなプリミティブな形状を生成することもできる。
【００５４】
実施形態２．
なお、上述の第１の実施の形態においては、入力曲線として手書き曲線を例示したが、点の集合としての曲線の座標が入力でき、投影面が特定されるような装置であれば実施は可能である。
【００５５】
【発明の効果】
以上のように本発明によれば、１又は複数の投影面を決定し、その投影面に投影された立体形状の２次元形状を２次元自由曲線として入力し、有理曲線である３次元ＮＵＲＢ曲線を算出し、立体形状を復元するので、有理多項式曲線であるＮＵＲＢ曲線の性質により、正確な立体形状を復元することが可能である。また円や円弧のようなプリミティブな形状の２次曲線に対しても同様に理論的に正確な２次曲線を復元することが可能である。さらに、２次元自由曲線から３次元ＮＵＲＢ曲線へ変換において、微小変化による影響を受けることが少ないので、手書きのような誤差を含む２次元自由曲線に対しても滑らかな３次元ＮＵＲＢ曲線への変換が可能になり、簡単な入力で操作者のイメージに近い立体形状が得られる。
【００５６】
また、本発明によれば、立体形状を表示する座標空間上に表示された補助用直方体を回転移動又は平行移動させることにより投影面を決定するので、視覚的に投影面を決定しやすくなる。
【００５７】
また、本発明によれば、同一投影面上において面対称関係にある２次元自由曲線又は複数投影面上において立体形状の同一線を表すものと見なされる２次元自由曲線の組み合わせを抽出し、それぞれの２次元自由曲線をアフィン変換してそれぞれの端点の座標の補正を行うので、１又は複数投影面上における立体形状の頂点を調整することができる。
【００５８】
また、本発明によれば、点列間の距離の比例関係に基づいて点列通過パラメータを推定し、点列通過パラメータに基づいて２次元ＮＵＲＢ曲線の制御点の座標を算出し、２次元ＮＵＲＢ曲線の制御点及び透視変換行列に基づいて３次元ＮＵＲＢ曲線の制御点の座標を算出し、３次元ＮＵＲＢ曲線を算出するので、表現できる曲線に制限がない有理多項式曲線であるＮＵＲＢ曲線の性質により、入力された曲線に対しても正確に表現することができる。
【００５９】
また、本発明によれば、２次元ＮＵＲＢ曲線の制御点を変数とする方程式を算出し、３次元における端点の座標、点列の座標及び点列のパラメータに基づいて、点列との誤差が最小となるような２次元ＮＵＲＢ曲線を算出して、方程式に基づいて２次元ＮＵＲＢ曲線の制御点の座標を決定するので、複数投影面における同一曲線の手書き誤差による曲率等の誤差を抑えられる。
【００６０】
また、本発明によれば、透視変換行列に基づいた２次元ＮＵＲＢ曲線の制御点と３次元ＮＵＲＢ曲線の制御点の座標との関係式を算出し、複数の投影面間で同一の制御点の関係を表す関係式において、誤差が最小になるように関係式を解き、３次元ＮＵＲＢ曲線の制御点の座標を算出するので、複数投影面における同一曲線の手書き誤差による曲率等の誤差を抑えられる。
【００６１】
また、本発明によれば、更に、算出された３次元ＮＵＲＢ曲線の制御点の座標を、透視変換行列に基づいて１又は複数の投影面に再投影し、再投影により得られる２次元ＮＵＲＢ曲線の制御点の座標を新たな２次元ＮＵＲＢ曲線の制御点の座標として点列のパラメータを再推定し、点列と算出された２次元ＮＵＲＢ曲線との距離の関係の変化率が収束したものと判断するまで２次元ＮＵＲＢ曲線の制御点の座標及び点列のパラメータを再推定し、３次元ＮＵＲＢ曲線を算出するので、複数投影面における同一曲線の手書き誤差による曲率等の誤差を抑えられ、実際に意図していた立体形状に近づけて表示させることができる。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態に係る透視図３次元ＮＵＲＢ曲線自動復元方法を実施するためのブロック図である。
【図２】図１のブロック図を実際にハード構成する場合の構成図である。
【図３】幾何処理部２０２の構成を示すブロック図である。
【図４】自由度の高い曲線や円等のプリミティブな曲線を生成する入出力動作と幾何処理部２０２との関係を示す図である。
【図５】３次元ＮＵＲＢ曲線変換手段６０の構成を表すブロック図である。
【図６】３次元ＮＵＲＢ曲線変換手段６０の動作手順を示す図である。
【図７】２次元ＮＵＲＢ曲線と入力点列、３次元ＮＵＲＢ曲線の関係を示す図である。
【図８】投影面１を示す透視投影図９０である。
【図９】投影面２を示す透視投影図９２である。
【符号の説明】
２０１  コマンド解析／処理部
２０２  幾何処理部
２０３  記憶処理部
２０４  図形記憶領域
２０５  入出力装置
２０６  表示装置
２０７  マウス
２０８  キーボード
２０９  スケッチ入力手段
５０  投影面決定手段
５２  同一投影図組合せ検出手段
５４  同一投影図頂点算出手段
５６  複数投影図組合せ検出手段
５８  複数投影図頂点算出手段
６０  ３次元ＮＵＲＢ曲線変換手段
７０  初期値設定手段
７２  ２次元ＮＵＲＢ曲線算出手段
７４  ３次元ＮＵＲＢ曲線算出手段
７６  再投影手段
７８  パラメータ再推定手段
８０  収束判定手段
【図１】
0003799511.tif 000009
【図２】
0003799511.tif 000010
【図３】
0003799511.tif 000011
【図４】
0003799511.tif 000012
【図５】
0003799511.tif 000013
【図６】
0003799511.tif 000014
【図７】
0003799511.tif 000015
【図８】
0003799511.tif 000016
【図９】
0003799511.tif 000017