(57)【特許請求の範囲】
【請求項１】
Ｎ角形領域に曲面を内挿することができる３次元形状処理装置において、
内挿する曲面の領域の範囲を表す４つの境界平面を決定する平面決定手段と、前記Ｎ角形領域の各境界曲線上の複数の点から周辺の前記境界平面へ下ろした線分を生成する線分生成手段と、
その線分について属する前記境界平面を決定し、線分とその境界平面との交点からＮ角形領域に内挿する曲面の境界曲線を生成する境界曲線生成手段と、
その境界曲線と前記各線分上の各点から内挿する曲面を生成する内挿曲面生成手段とを備えたことを特徴とする３次元形状処理装置。
【請求項２】
Ｎ角形領域に曲面を内挿する曲面内挿プログラムにおいて、内挿する曲面の領域の範囲を表す４つの境界平面を決定し、前記Ｎ角形領域の各境界曲線上の複数の点から周辺の前記境界平面へ下ろした線分を生成し、その線分について属する前記境界平面を決定し、線分とその境界平面との交点からＮ角形領域に内挿する曲面の境界曲線を生成し、その境界曲線と前記各線分上の各点から内挿する曲面を生成することを特徴とする曲面内挿プログラム。
【請求項３】
請求項２記載の曲面内挿プログラムにおいて、Ｎ角形領域を構成する辺が利用者の指定した許容誤差範囲内で生成された曲面上に乗っていることを特徴とする曲面内挿プログラム。
【請求項４】
請求項２記載の曲面内挿プログラムにおいて、４つの境界平面により決定される領域の範囲をＮ角形領域より広くすることを特徴とする曲面内挿プログラム。
【請求項５】
請求項２記載の曲面内挿プログラムにおいて、Ｎ角形領域を構成する辺の数に制限がないことを特徴とする曲面内挿プログラム。
【請求項６】
請求項２記載の曲面内挿プログラムにおいて、Ｎ  角形領域を構成する頂点の数に制限がないことを特徴とする曲面内挿プログラム。
【請求項７】
プログラムを記憶した記憶媒体において、請求項２乃至請求項６のいずれか１項に記載のプログラムを記憶したことを特徴とする記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、専用の３次元形状処理装置やパーソナルコンピュータなど情報処理装置などに実施されるＮ角形領域に曲面を内挿する技術に関し、特に、Ｎ角形領域に綺麗に内挿可能な曲面を生成することができる曲面内挿技術に関する。
【０００２】
【従来の技術】
グラフィクス表示装置とコンピュータとを用いたＣＡＤ／ＣＡＭ装置など３次元形状処理装置では、従来より、３次元立体形状を生成したり、生成されている３次元立体形状を変形させたり、その他、様々な処理を行っている。なお、３次元立体形状とは、例えば境界表現形式のソリッドモデルデータとして生成された形状を指し、その境界表現形式のソリッドモデルとは、稜線や頂点や面というような要素により３次元空間上に閉じた領域を定義し、中身の詰まった立体を表現したものである。
本発明は、このような３次元形状処理装置などにおいて従来より行われている３次元形状処理の一つである曲面生成に係わり、より詳細には、複数本のＢ−スプライン曲線を用いて構成した曲線メッシュにより生成した内挿曲面を滑らかに且つ曲面間に重なりや隙間がないように内挿する内挿曲面生成方法に関する。
なお、このような分野の従来技術としては、例えばＧｒｅｇｏｒｙパッチなどを用いた自由曲面の内挿方法がある。この従来技術では、境界横断導関数を指定し、これを用いて曲面の形状を変形し、曲面同士を接続したり、曲面を内挿したりする。また、有理境界Ｇｒｅｇｏｒｙパッチを用いてなめらかな曲面形状を生成する方法なども公知である。
例えば特開平７−２８２１１７号公報に示された自由曲面生成方法は前記したような従来技術の一つであり、有理Ｂ−スプライン曲線を共有境界とする２枚の曲面を生成する場合に、境界曲線とその境界曲線につながる曲線から境界における連続性を判定し、その連続性から境界における接続条件を求め、求められた接続条件から面の内部制御点を生成することにより隣り合う２枚の自由曲面形状を滑らかに接続する。
また、曲線メッシュを用いて曲面を生成する方法では、例えば、“鳥谷浩志，千代倉弘明，３次元ＣＡＤの基礎と応用，１９９１．”記載の技術によれば、Ｎ角形領域をＮ個の四辺形面で内挿する。
【０００３】
【発明が解決しようとする課題】
しかしながら、前記した特開平７−２８２１１７号公報に示された自由曲面生成方法では、滑らかな接続を実現するために、内挿曲面として使えない曲面を生成してしまうというような問題があるし、前記した曲線メッシュを用いて曲面を生成する方法では、図１４に示したように、Ｎ角形領域Ａの複数の境界曲線（曲面の境界を表す曲線）のそれぞれの長さが極端に異なる場合、内挿面のＮ角形領域の境界曲線以外の曲線Ｃ（内部曲線と呼ぶ）がうねりやすいので、内挿した曲面がうねったり、曲面同士が互いに干渉したりする可能性がある。
また、Ｎ角形領域を構成する連続の頂点が存在しない場合や、１個のみ存在する場合には、内挿曲面を生成できないという問題もある。例えば、円形領域には曲面を内挿できないのである。
本発明の目的は、このような従来技術の問題を解決することにあり、具体的には、Ｎ角形領域を覆うような１枚のＢ−スプライン曲面を生成することにより、Ｎ角形領域に綺麗に内挿可能な曲面を生成することができる曲面内挿方法を提供することにある。
【０００４】
【課題を解決するための手段】
前記の課題を解決するために、請求項１記載の発明では、Ｎ角形領域に曲面を内挿することができる３次元形状処理装置において、内挿する曲面の領域の範囲を表す４つの境界平面を決定する平面決定手段と、前記Ｎ角形領域の各境界曲線上の複数の点から周辺の前記境界平面へ下ろした線分を生成する線分生成手段と、その線分について属する前記境界平面を決定し、線分とその境界平面との交点からＮ角形領域に内挿する曲面の境界曲線を生成する境界曲線生成手段と、その境界曲線と前記各線分上の各点から内挿する曲面を生成する内挿曲面生成手段とを備えたことを特徴とする。
また、請求項２記載の発明では、Ｎ角形領域に曲面を内挿する曲面内挿プログラムにおいて、内挿する曲面の領域の範囲を表す４つの境界平面を決定し、前記Ｎ角形領域の各境界曲線上の複数の点から周辺の前記境界平面へ下ろした線分を生成し、その線分について属する前記境界平面を決定し、線分とその境界平面との交点からＮ角形領域に内挿する曲面の境界曲線を生成し、その境界曲線と前記各線分上の各点から内挿する曲面を生成する構成にしたことを特徴とする。
また、請求項３記載の発明では、請求項２記載の発明において、Ｎ角形領域を構成する辺が利用者の指定した許容誤差範囲内で生成された曲面上に乗っている構成にしたことを特徴とする。
また、請求項４記載の発明では、請求項２記載の発明において、４つの境界平面により決定される領域の範囲をＮ角形領域より広くする構成にしたことを特徴とする。
また、請求項５記載の発明では、請求項２記載の発明において、Ｎ角形領域を構成する辺の数に制限がない構成にしたことを特徴とする。
また、請求項６記載の発明では、請求項２記載の発明において、Ｎ  角形領域を構成する頂点の数に制限がない構成にしたことを特徴とする。
また、請求項７記載の発明では、プログラムを記憶した記憶媒体において、請求項２乃至請求項６のいずれか１項に記載のプログラムを記憶したことを特徴とする。
【０００５】
【発明の実施の形態】
以下、図面により本発明の実施の形態を詳細に説明する。
図１は本発明が実施例されるシステムの一例を示すコンピュータシステムの構成ブロック図である。図示したように、この実施例のコンピュータシステムは、入力部１、出力部２、ＣＰＵ３、メモリ（例えばＲＡＭ）４、記憶部（例えばハードディスク装置）５、および媒体駆動部６などを備えている。
前記において、入力部１は、出力部２を構成している表示装置に表示されたＮ角形領域を受け付けるマウスや、キーボードのような入力装置を有している。なお、Ｎ角形領域は、これらの形状を構成する点や曲線などの幾何形状データと、この幾何形状データの相関関係を示す位相データとからなっている。
また、出力部２は、記憶部５に記憶された形状データを読み出して出力する出力手段であり、ディスプレイのような表示装置やプリンタのような出力装置を有している。また、記憶部５は、設計対象物の形状を示す複数の形状データやプログラムなどを記憶し、媒体駆動部６は例えばＣＤ−ＲＯＭやフロッピーディスクなど着脱可能な記憶媒体を駆動し、本発明に係わるプログラムなどをその記録媒体から読み込む。なお、この実施例では、請求項１記載の平面決定手段、線分生成手段、境界曲線生成手段、および内挿曲面生成手段が、プログラムを記憶したメモリ４およびそのプログラムに従って動作するＣＰＵ３などにより実現される。
このような構成で、この実施例では、プログラムに従って、まず、ＣＰＵ３が、対象とする３次元形状モデルを表示装置に表示させ、利用者にＮ角形領域を指定させ、指定されたＮ角形領域に係わるデータを取得し、そのデータを記憶部５に格納する。例えば、図２においては、対象とする稜線に対して、それぞれ異なる丸め半径で丸めることによって生成された３角形領域ＡがＮ角形領域である（丸め処理により生成された曲面はその処理を施した元の面と滑らかに接しているとは限らない）。操作対象となるこのようなＮ角形領域と一辺を、利用者はマウスなどにより指定するのである。図２におけるＮ角形領域と一辺をマウスなどでクリックして選択すると、最終的に生成されるＢ−スプライン曲面の一つの境界曲線が指定した辺にほぼ平行になる。
【０００６】
図３に、この実施例の動作フローを示す。以下、図２に示した例を用い、図３に従って、この実施例の動作を説明する。
この実施例では、最初に、指定されたＮ角形領域に対応する内挿曲面領域の範囲を表す４つの境界平面を決定する（Ｓ１）。生成しようとするの曲面の大まかな大きさを決めるのである。そのため、まず、Ｎ角形領域の境界曲線列の中心と平均法線ベクトルを求める。なお、境界曲線列の中心は曲線の制御点（自由曲線の２つの端点の間にある点列で、曲線の形状はこの複数の制御点と２つの端点により表現することができる）の座標値の平均値である。また、平均法線ベクトルとは、境界曲線を境界とする滑らかな任意の曲面上で、面の単位ベクトルを積分したものであり、この面積分の結果で得られるベクトルは境界曲線のみに依存する。このような平均法線ベクトルを境界曲線を用いて公知の方法により算出する。
続いて、境界曲線列の中心と平均法線ベクトルを利用して一つの平面を生成する。その平面の原点と法線ベクトルはそれぞれ境界曲線列の中心と平均法線ベクトルである。さらに、境界曲線列をその平面へ射影して射影境界曲線列を生成し、平面上に座標系を構成する。座標系のＺ軸の方向は平面の法線ベクトルの方向と一致する。Ｘ軸の方向は前記中心（前記原点）から最初に利用者が指定したＮ角形領域の一辺の射影曲線の中心位置へ向かうベクトルの方向である。また、Ｙ軸の方向はＺ軸とＸ軸との外積ベクトルの方向である。こうして、そのような座標系における射影曲線列のバウンディングボックス（射影曲線列に外接する境界箱）を得る。バウンディングボックスはＸ，Ｙ軸に平行な四辺形である。なお、バウンディングボックスは多少大きくする（例えば一辺の長さを５パーセントくらい大きくする）。なぜなら、バウンディングボックスの大きさは最終的に生成される曲面の大きさに影響し、多少大きくすることにより、Ｎ角形領域に所望の精度で綺麗に曲面を内挿することが容易になる。
続いて、バウンディングボックスからＺ軸に平行な４つの境界平面を生成する。後で、内挿するＢ−スプライン曲面の境界を規定するときにこの４つの境界平面を利用するためである。図４に、Ｚ軸から見たときのバウンディングボックスＢを示す。
【０００７】
次に、Ｎ角形領域の境界曲線に基づいた線分を生成する（Ｓ２）。そのため、まず、各境界曲線上に複数個のサンプリング点を生成する。なお、サンプリング点の数は例えば境界曲線の次数の２倍にする。そして、サンプリング点における境界曲線を横切る方向のベクトルを決める。決め方は、例えば次に示す２通りのいずれかである。
一つは、Ｎ角形領域の境界曲線における隣接面の境界導関数を利用する方法で、この方法によれば生成される内挿面と隣接面との接続がより滑らかになる。他の一つはＮ角形領域の境界曲線の接線ベクトルを利用する方法で、Ｎ角形領域のサンプリング点における法線ベクトルと境界曲線の接線ベクトルとの外積で得られたベクトルを利用する。なお、２本の境界曲線の共有点においては、共有点におけるそれぞれの境界曲線についての単位接線ベクトルの和ベクトルを利用する。したがって、２本の境界曲線が滑らかに接続してもベクトルを特定できる。そして、決まったベクトルと前記４つの境界平面との交点を求め、最も近い交点と境界曲線上の点で決まった線分を求める。最も近い交点をもつ境界平面はその線分の属する境界平面である。これらの線分は後で点群を発生させるときに利用される。図５に、発生した線分群を示す。
【０００８】
前記において、境界曲線上のすべてのサンプリング点の線分が同じ境界平面に属さない場合には、線分群と交点群をそれぞれの属する境界平面に分け、さらに、２つの境界平面のどちらの線分にもなる共通線分を決める必要がある。例えば、図１１に示したような例では、稜線（境界曲線）を分割する必要があるのである。
そのため、次に、以下のようにして、境界曲線を分割して線分の属する境界平面を決め、共通線分を求める（Ｓ３）。
まず、境界曲線と線分方向を用いてル−ルド曲面を生成し、ル−ルド曲面と２つの境界平面とが交叉する交線を求める。そして、ル−ルド曲面における交線の、交叉する境界平面が変る位置の単方向パラメータ（ｕまたはｖ）を境界曲線の分割用パラメータとして境界曲線を分割する。さらに、分割点における線分が乗る直線と２つの境界平面の交線との干渉点を求め、分割点と干渉点で決まった線分を２つの境界平面の共通線分とする。なお、干渉点は交点だけに限定せず、２つの直線がねじれの位置にある場合も、それらの直線が互いにもっとも近い点を干渉点として計算する。こうして、最終的には、一つの境界曲線上のすべてのサンプリング点の線分が同じ境界平面に属する状態となる。
これまでの説明で明らかなように、ステップＳ２において生成した各線分の一方の端点はサンプリング点であり、もう一方の端点は境界平面上の点であるが、次に、その境界平面上の複数の端点から、最小２乗法を用いて曲線を生成し、その曲線を内挿する曲面の境界曲線とする（図６参照）（Ｓ４）。なお、この境界曲線の生成に際して、その生成の元になる点列は近似したい曲線の始点から終点に向かって整列されていなければならない。また、ある境界平面に属する境界曲線が存在しない場合は、その平面の両側の境界平面上に生成されるそれぞれの境界曲線の端点を利用して直線（近似曲線）を生成する。その際、近似曲線の端点とするための境界曲線が隣合う平面に存在しない場合には、近似曲線を接線方向に直線形状でさらに隣りの境界平面まで延長する。
前記において、内挿する曲面の４本の境界曲線の端点同士が必ず一致するとは限らない。そこで、次に、端点同士の位置を一致させるように調整する。
最後に、内挿する曲面を生成する（Ｓ５）。生成される曲面の４本の境界曲線となる前記４本の境界曲線を拘束条件として曲面を生成するのである。そのため、まず、前記した各線分について、線分のもう一方の端点と中間のサンプリング点から構成される点群を求める。図７に、発生した線分上の点群を示す。なお、中間のサンプリング点の数は、多ければ多いほど生成される曲面のＮサイド（Ｎ側）の領域外の形状が周りの面の形状に近付く半面、制御点の数が増え、処理速度が低下する。そのため、この実施例では、中間のサンプリング点の数を３にする。但し、Ｎ角形領域を構成する各辺が、そのサンプリング点の数に依存して生成された内挿曲面上に利用者の指定した許容誤差範囲内で乗らない場合には、サンプリング点の数を増やし、制御点の数を増やす。
【０００９】
次に、前記４本の境界曲線から双１次ブレンドのＣｏｏｎｓ曲面を定義する。また、この曲面上にける各点から境界曲線へ射影した点のパラメータを各点の初期パラメータとする。そして、境界曲線を境界とする最小２乗法により近似曲面をＢ−スプライン曲面として生成する。図８に、生成した曲面の制御点（曲面を表現する複数の点であり、ほぼその曲面に沿って存在する）を示す。また、図９に、最終的に生成される曲面の等高線を示す。さらに、内挿する曲面の生成例として、前記Ｎ角形領域が３角形領域の例を図１０に、４角形領域の例を図１１に、５角形領域の例を図１２に、６角形領域の例を図１３に示す。このように、本発明によるＮ角形領域への曲面内挿はＮ角形領域を構成する辺の数に制限がないし、Ｎ角形領域を構成する頂点の数にも制限がない。
最後に、このようにして生成した曲面の形状データを記憶部５へ書き込む。
以上、本発明の一実施例について説明したが、説明したようなＮ角形領域への曲面内挿方法に従ってプログラミングしたプログラムを例えば着脱可能な記憶媒体に記憶し、その記憶媒体をこれまで本発明によったＮ角形領域への曲面内挿を行えなかったパーソナルコンピュータなど情報処理装置に装着することにより、または、そのようなプログラムをネットワークを介してそのような情報処理装置へ転送することにより、その情報処理装置においても本発明によったＮ角形領域への曲面内挿を行うことができる。
【００１０】
【発明の効果】
以上説明したように、本発明によれば、請求項１および請求項２記載の発明では、Ｎ角形領域に曲面を内挿する際、内挿する曲面の領域の範囲を表す４つの境界平面が決定され、前記Ｎ角形領域の各境界曲線上の複数の点から周辺の前記境界平面へ下ろした線分が生成され、その線分について属する境界平面が決定され、線分とその境界平面との交点からＮ角形領域に内挿する曲面の境界曲線が生成され、その境界曲線と前記各線分上の各点から内挿する曲面が生成されるので、Ｎ角形領域を覆うような１枚のＢ−スプライン曲面を生成することができ、それにより、曲面をＮ角形領域に綺麗に内挿することができる。
また、請求項３記載の発明では、請求項２記載の発明において、Ｎ角形領域を構成する辺が利用者の指定した許容誤差範囲内で生成された曲面上に乗るので、曲面をＮ角形領域に所望の精度で綺麗に内挿することができる。
また、請求項４記載の発明では、請求項２記載の発明において、４つの境界平面により決定される領域の範囲がＮ角形領域より広いので、曲面をＮ角形領域に所望の精度で綺麗に内挿することが容易になる。
また、請求項５記載の発明では、請求項２記載の発明において、Ｎ角形領域を構成する辺の数に制限がないので、Ｎ角形領域への曲面内挿の適用範囲が広くなる。
また、請求項６記載の発明では、請求項２記載の発明において、Ｎ  角形領域を構成する頂点の数に制限がないので、同様に、Ｎ角形領域への曲面内挿の適用範囲が広くなる。
また、請求項７記載の発明では、請求項２乃至請求項６のいずれか１項に記載のプログラムが例えば着脱可能な記憶媒体に記憶されるので、その記憶媒体をこれまで請求項２乃至請求項６のいずれか１項に記載の発明によったＮ角形領域への曲面内挿を行えなかったパーソナルコンピュータなど情報処理装置に装着することにより、その情報処理装置においても請求項２乃至請求項６のいずれか１項に記載の発明の効果を得ることができる。
【図面の簡単な説明】
【図１】本発明が実施例されるシステムの一例を示すコンピュータシステムの構成ブロック図である。
【図２】本発明の一実施例に係わるＮ角形領域を示す説明図である。
【図３】本発明の一実施例を示す曲面内挿プログラムのフロー図である。
【図４】本発明の一実施例を示す曲面内挿方法の説明図である。
【図５】本発明の一実施例を示す曲面内挿方法の他の説明図である。
【図６】本発明の一実施例を示す曲面内挿方法の他の説明図である。
【図７】本発明の一実施例を示す曲面内挿方法の他の説明図である。
【図８】本発明の一実施例を示す曲面内挿方法の他の説明図である。
【図９】本発明の一実施例を示す曲面内挿方法の他の説明図である。
【図１０】本発明の一実施例を示す曲面内挿方法の他の説明図である。
【図１１】本発明の一実施例を示す曲面内挿方法の他の説明図である。
【図１２】本発明の一実施例を示す曲面内挿方法の他の説明図である。
【図１３】本発明の一実施例を示す曲面内挿方法の他の説明図である。
【図１４】従来技術および本発明に係わる曲面内挿方法の説明図である。
【符号の説明】
１  入力部
２  出力部
３  ＣＰＵ
４  メモリ
５  記憶部
６  媒体駆動部
【図１】
0004005352.tif 000002
【図２】
0004005352.tif 000003
【図３】
0004005352.tif 000004
【図４】
0004005352.tif 000005
【図５】
0004005352.tif 000006
【図６】
0004005352.tif 000007
【図７】
0004005352.tif 000008
【図８】
0004005352.tif 000009
【図９】
0004005352.tif 000010
【図１０】
0004005352.tif 000011
【図１１】
0004005352.tif 000012
【図１２】
0004005352.tif 000013
【図１３】
0004005352.tif 000014
【図１４】
0004005352.tif 000015