(57)【特許請求の範囲】
【請求項１】
複数の頂点を含む境界線と前記境界線で取り囲まれた表面とを有する面要素の組合せによって形成される立体モデルの操作を支援する設計支援装置であって、
隣接する２つの面要素の境界位置でそれぞれの面要素の法線ベクトルを求める手段と、
前記隣接する２つの面要素の境界位置でのそれぞれの法線ベクトルが一致しないときに共通の補正法線ベクトルに置き換える手段と、
隣接しない複数の面要素を含む曲面上で、所定方向に配列された面要素の境界線をつないで構成される評価基準線上でそれぞれの面要素の法線ベクトルを抽出する手段と、
前記評価基準線上での前記法線ベクトルの先端の分布を示す第１の法線ベクトル分布曲線を求める手段と、
前記第１の法線ベクトル分布曲線に含まれる法線ベクトルから１以上の補正対象の法線ベクトルを除去することによって第２の法線ベクトル分布曲線を求める手段と、
前記補正対象の法線ベクトルの先端を前記第２の法線ベクトル分布曲線に直交する方向に移動することによって前記補正対象の法線ベクトルを補正する手段と、
前記補正された法線ベクトルによって前記面要素を補正する手段と、を備える設計支援装置。
【請求項２】
前記補正対象の法線ベクトルは、前記法線ベクトル分布曲線の曲率または変化率が所定の限界値を超える曲線部分の分布に含まれる法線ベクトルから選択される請求項１に記載の設計支援装置。
【請求項３】
複数の頂点を含む境界線と前記境界線で取り囲まれた表面とを有する面要素の組合せによって形成される立体モデルの操作を支援する設計支援方法であって、コンピュータが、
隣接する２つの面要素の境界位置でそれぞれの面要素の法線ベクトルを求めるステップと、
前記隣接する２つの面要素の境界位置でのそれぞれの法線ベクトルが一致しないときに共通の補正法線ベクトルに置き換えるステップと、
隣接しない複数の面要素を含む曲面上で、所定方向に配列された面要素の境界線をつないで構成される評価基準線上でそれぞれの面要素の法線ベクトルを抽出するステップと、
前記評価基準線上での前記法線ベクトルの先端の分布を示す第１の法線ベクトル分布曲線を求めるステップと、
前記第１の法線ベクトル分布曲線に含まれる法線ベクトルから１以上の補正対象の法線ベクトルを除去することによって第２の法線ベクトル分布曲線を求めるステップと、
前記補正対象の法線ベクトルの先端を前記第２の法線ベクトル分布曲線に直交する方向に移動することによって前記補正対象の法線ベクトルを補正するステップと、
前記補正された法線ベクトルによって前記面要素を補正するステップと、を実行する設計支援方法。
【請求項４】
前記補正対象の法線ベクトルは、前記法線ベクトル分布曲線の曲率または変化率が所定の限界値を超える曲線部分の分布に含まれる法線ベクトルから選択される請求項３に記載の設計支援方法。
【請求項５】
複数の頂点を含む境界線と前記境界線で取り囲まれた表面とを有する面要素の組合せによって形成される立体モデルの操作を支援する設計支援プログラムであって、コンピュータに、
隣接する２つの面要素の境界位置でそれぞれの面要素の法線ベクトルを求めるステップと、
前記隣接する２つの面要素の境界位置でのそれぞれの法線ベクトルが一致しないときに共通の補正法線ベクトルに置き換えるステップと、
隣接しない複数の面要素を含む曲面上で、所定方向に配列された面要素の境界線をつないで構成される評価基準線上でそれぞれの面要素の法線ベクトルを抽出するステップと、
前記評価基準線上での前記法線ベクトルの先端の分布を示す第１の法線ベクトル分布曲線を求めるステップと、
前記第１の法線ベクトル分布曲線に含まれる法線ベクトルから１以上の補正対象の法線ベクトルを除去することによって第２の法線ベクトル分布曲線を求めるステップと、
前記補正対象の法線ベクトルの先端を前記第２の法線ベクトル分布曲線に直交する方向に移動することによって前記補正対象の法線ベクトルを補正するステップと、
前記補正された法線ベクトルによって前記面要素を補正するステップと、を実行させる設計支援プログラム。
【請求項６】
前記補正対象の法線ベクトルは、前記法線ベクトル分布曲線の曲率または変化率が所定の限界値を超える曲線部分の分布に含まれる法線ベクトルから選択される請求項５に記載の設計支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、設計支援技術に関する。
【背景技術】
【０００２】
画像データを滑らかに変化させて変形する処理技術としてモーフィングが知られている。さらに、このモーフィング技術を３次元ＣＡＤ（Computer Aided Design）に適用した
システムも知られている。そのようなシステムでは、ポインティングデバイスのような操作手段によってユーザ操作を受け付け、３次元モデルを変形する。このような３次元モデルは、一般に、ポリゴン、パッチ（ポリゴンそのもの、または、複数のポリゴンの組合せ）、サーフェイスと呼ばれる曲面等を組み合わせて形成される。
【０００３】
一般に３次元ＣＡＤでは、立体モデルが作成されたのち、種々の解析のため、立体モデルが、複数のメッシュ（例えば、テトラメッシュ等）に分解される。そして、解析が実行されるが、解析結果が満足できるものでない場合、立体モデルに変更を加える必要が生じることがある。この場合、３次元ＣＡＤによって元の立体モデルを変更したのでは、再度メッシュへの分解が必要となり、工数が多くなる。そこで、メッシュに分解された状態で、３次元形状をモーフィングにより変形することが行われている。
【０００４】
しかし、従来のモーフィング技術を適用したＣＡＤシステムでは、３次元形状データの変形処理の結果、形状データの表面、すなわち、３次元形状を構成するポリゴン、あるいはパッチにシワ、たるみ、あるいは、よたり等の形状の歪みが発生することがあった。このような形状の歪みは、３次元形状の見映えと品質を悪くする。特に、変形後の３次元形状を利用してＣＡＥ（Computer Aided Engineering）による解析を実行する際に、表面を修正・整備する必要が生じ、工数が大きくなる場合がある。
【０００５】
このような３次元形状の変形操作に関連する技術としては、例えば、下記特許文献１が知られている。
【特許文献１】特開平１１−１９５０５４号公報
【特許文献２】特開２００５−２７５５９６号公報
【特許文献３】特開２０００−１７２７４２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、上記従来の技術では、曲面上の歪みに対する補正については配慮がなされていなかった。本発明の目的は、複数の法線ベクトルが定義される曲面を含む、パッチあるいはポリゴン等の面要素からなる３次元モデルの変形操作において、パッチあるいはポリゴンのシワ、たるみのような形状の歪みを修正し、低減することにある。特に、本発明の目的は、隣接パッチだけではなく、非隣接のパッチを含む曲面全体の品質を向上する技術を提供することである。
【課題を解決するための手段】
【０００７】
本発明は前記課題を解決するために、以下の手段を採用した。すなわち、本発明は、複数の頂点を含む境界線と前記境界線で取り囲まれた表面とを有する面要素の組合せによって立体モデルの曲面を形成する設計支援装置の構成によって例示される。この設計支援装置は、隣接する２つの面要素の境界位置でそれぞれの面要素の法線ベクトルを求める手段と、隣接する２つの面要素の境界位置でのそれぞれの法線ベクトルが一致しないときに共通の補正法線ベクトルに置き換える手段とを備える。このような構成によって、本設計支
援装置は、少なくとも、隣接する２つの面要素の境界位置を滑らかに接続する。
【０００８】
さらに、本設計支援装置は、隣接しない複数の面要素を含む曲面上で、所定方向に配列された面要素の境界線をつないで構成される評価基準線上でそれぞれの面要素の法線ベクトルを抽出する手段と、評価基準線上での法線ベクトルの先端の分布を示す第１の法線ベクトル分布曲線を求める手段と、第１の法線ベクトル分布曲線に含まれる法線ベクトルから１以上の補正対象の法線ベクトルを除去することによって第２の法線ベクトル分布曲線を求める手段と、前記補正対象の法線ベクトルの先端を前記第２の法線ベクトル分布曲線に直交する方向に移動することによって前記補正対象の法線ベクトルを補正する手段と、補正された法線ベクトルによって面要素を補正する手段と、を備える。このような構成によって、本設計支援装置は、非隣接の面要素間においても、法線ベクトルの分布を滑らかにする。
【発明の効果】
【０００９】
本発明によれば、隣接パッチあるいは非隣接のパッチを含む曲面全体の品質を向上することができる。
【発明を実施するための最良の形態】
【００１０】
以下、図面を参照して本発明を実施するための最良の形態（以下、実施形態という）に係る設計支援装置について説明する。以下の実施形態の構成は例示であり、本発明は実施形態の構成に限定されない。
【００１１】
＜発明の骨子＞
本設計支援装置は、ポリゴンあるいはポリゴンを組み合わせたパッチによって構成されている立体モデルに対して、ポインティングデバイスのような操作手段によってユーザ操作を受け付け、３次元モデルを変形（モーフィング）する。立体モデルを構成するポリゴンは、曲面ポリゴンと呼ばれるものであり、ポリゴン面内に複数方向の法線ベクトルを有している。
【００１２】
図１は、曲面ポリゴンで構成されている立体モデルを変形した例である。図１の符号Ｃ１で示される円形内で、歪みが発生している。図２は、図１の曲面ポリゴンをメッシュに分割した例を示す。この例では、曲面ポリゴンは、複数の三角形のメッシュを組み合わせて構成される。このような曲面は、例えば、ベジエ曲面として知られている。
【００１３】
ベジエ曲線は制御点と呼ばれる複数の点（一連の点）にしたがって定義される多項式曲線であり、さらに、ベジエ曲面は２次元状に配置された複数の点に基づいて定義される曲面である。なお、本実施形態では、曲面を構成する単位をパッチといい、パッチは、１または複数の曲面ポリゴンから構成される。すなわち、複数の曲面ポリゴン（例えば、３次三角ベジエ曲面）を複数個集めてパッチを構成する場合もある。
【００１４】
このような曲面ポリゴンで被覆されている立体モデルの変形時に、本設計支援装置は、それぞれの曲面ポリゴン内の複数の法線ベクトルを補正する。
【００１５】
図３に、三角形のパッチによる立体モデルの例を示す。図３では、三角形の平面で構成された多面体が示されている。図３では、簡易に表示するため、三角形のパッチを平面で表示している。しかし、一般にパッチ、あるいは、曲面ポリゴンは、制御点を基に、多項式によって定義される曲面であるため、実際には、図３のそれぞれの三角形内で複数の法線を有している。図３に、曲面ポリゴン上の法線を矢印で示す。
【００１６】
本設計支援装置は、このような個々の曲面ポリゴン内の法線ベクトルを補正する機能を
提供する。すなわち、本設計支援装置は、ユーザからの実行依頼を受け付け、曲面ポリゴンの歪み除去処理を実行する。
【００１７】
以上の機能は、コンピュータ上に実現されるＣＡＤシステムの１つの機能として、コンピュータ上で実行されるコンピュータプログラムによって実現される。ここで、コンピュータは、ＣＰＵ（Central Processing Unit）、メモリ、入出力インターフェース、入出
力インターフェースに接続される外部記憶装置、表示装置、入力装置、通信装置等を有する。また、コンピュータプログラムは、複数のモジュールによって構成され、それぞれのモジュールがＣＰＵで実行されることにより、本発明のそれぞれの手段を形成する。
【００１８】
外部記憶装置は、例えば、ハードディスク駆動装置である。また、外部記憶装置は、着脱可能な記憶媒体の駆動装置、例えば、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory
）、ＤＶＤ（Digital Versatile Disk）等の駆動装置を含む。さらに、外部記憶装置として、フラッシュメモリカードの入出力装置を用いてもよい。
【００１９】
表示装置は、例えば、ＣＲＴ（Cathode Ray Tube）、液晶ディスプレイ等である。また、入力装置は、キーボード、ポインティングデバイス等である。ポインティングデバイスには、マウス、ジョイスティック、タッチパネル、静電方式のフラットなポインティングデバイス、スティック形状のポインティングデバイス等を含む。通信装置は、例えば、ＬＡＮ基板等である。
【００２０】
＜立体モデルの曲面のデータ構造＞
図４から図１０により、本設計支援装置が立体モデルの曲面を規定するときのデータ構造例を示す。図４は、３次ベジエ曲線を示している。一般に、ｎ＋１個の制御点を基に、多項式で規定される曲線をｎ次ベジエ曲線という。ｎ次ベジエ曲線は、以下の一般式である数１によって与えられる。ここで、Ｑｎは、制御点の位置ベクトルであり、ｔはパラメータであり、Ｐは、ｎ次ベジエ曲線上の位置ベクトルである。
【００２１】
【数１】
0004967989.tif 000002
【００２２】
例えば、３次ベジエ曲線Ｐは、Ｐ＝（１−ｔ）３Ｑ０＋３ｔ（１−ｔ）２ Ｑ１＋３ｔ
２（１−ｔ）Ｑ２＋ｔ３Ｑ３で与えられる。
【００２３】
図５に、４角形パッチによる３次ベジエ曲面の例を示す。一般に、（ｎ＋１）×（ｎ＋１）個の配列状の制御点によって構成されるベジエ曲面をｎ次ベジエ曲面という。４角形パッチによるｎ次ベジエ曲面は、以下の一般式である数２によって与えられる。ここで、Ｑｉｊは、制御点の位置ベクトルであり、ｕおよびｖはパラメータであり、Ｐは、ｎ次ベジエ曲面上の位置ベクトルである。
【００２４】
【数２】
0004967989.tif 000003
【００２５】
４角形パッチによる３次ベジエ曲面は、１６個の制御点（４個の内部制御点）を有する
。このような四角形のベジエ曲面を接続することによって立体モデルの表面を形成できる。
【００２６】
図６に、３次四角パッチとのその内部制御点の配置を示す。また、図７に、４次四角パッチとのその内部制御点の配置を示す。四角パッチの場合には、内部制御点は、次数が３次、４次、５次・・・のように次数が増えるとともに、４、９、１６・・・と増加する。
【００２７】
図８に、三角形パッチによる３次ベジエ曲面の例を示す。三角形パッチによるｎ次ベジエ曲面は、以下の一般式である数３によって与えられる。ここで、Ｑｉｊｋは、制御点の位置ベクトルであり、ｕ、ｖおよびｗはパラメータである。
【００２８】
【数３】
0004967989.tif 000004
【００２９】
三角形パッチによる３次ベジエ曲面は、１０個の制御点（１個の内部制御点）を有する。このような三角形のベジエ曲面を接続することによって立体モデルの表面を形成できる。
【００３０】
図９に、３次三角パッチとのその内部制御点の配置を示す。また、図１０に、４次三角パッチとのその内部制御点の配置を示す。三角パッチの場合には、内部制御点は、次数が３次、４次、５次、６次・・・のように次数が増えるとともに、１、３、６、９・・・と増加する。
【００３１】
本設計支援装置は、ｎ次ベジエ曲面（例えば、図６に示した三角形状の３次ベジエ曲面）を曲面ポリゴン（パッチともいう）として、そのような曲面ポリゴンを組み合わせて立体モデルを構成する。なお、複数の曲面ポリゴンを組み合わせてパッチを構成し、そのようなパッチによって立体モデルを構成してもよい。
【００３２】
＜歪み検出機能＞
本設計支援装置は、歪みの補正の前提として、曲面ポリゴン内の法線の角度の一致・不一致、法線の角度の変化率、サンプル点付近の複数の曲面ポリゴン間での法線の一致・不一致、それらの法線間の角度の変化率、およびサンプル点またはサンプル点近傍の稜線での曲率の変化率から、歪みの発生を検知することもできる。なお、本実施形態では、２以上の曲面ポリゴンの境界線を稜線と呼ぶ。
（１）曲面ポリゴン内の法線一致チェック
単一の曲面ポリゴンについては、その内部の複数の法線ベクトルは、いずれも一致するか、または、それらの法線ベクトル間の角度の相違は、所定の基準値（Ｅ１）以内の場合が多い。ここで、基準値は、本設計支援装置による３次元モデルの適用対象、設計対象に応じて、ユーザが適宜設定または選択できるようにすればよい。以下の他の基準値、限界値等も同様である。
【００３３】
そこで、本設計支援装置は、それぞれの曲面ポリゴン内に複数の位置にて法線ベクトルを算出し、法線ベクトル間の角度が、所定の基準値（Ｅ１）以内か否かを判定する。今、曲面ポリゴン上の位置ベクトルをＳ（ｕ，ｖ）とすると、その位置での法線ベクトルは、以下の数４で与えられる。
【００３４】
【数４】
0004967989.tif 000005
【００３５】
すなわち、曲面ポリゴン（表面形状）上の位置ベクトルを線要素ｕ方向と、線要素ｖ方向で、それぞれ偏微分し、その外積を求めればよい。さらに、法線ベクトル間の角度は、法線ベクトルの内積と逆三角関数とによって求めればよい。これにより、曲面ポリゴン内での歪みの発生を検知する。
（２）曲面ポリゴン間の法線一致チェック
曲面ポリゴン内での歪みの発生が検知されない場合であっても、曲面ポリゴン間の位置関係で歪みが発生する場合がある。通常、立体モデルの表面を被覆する隣接する曲面ポリゴンについては、本来稜線で不連続に傾きが変化した部分（面が折れ曲がった箇所）以外の箇所では、それぞれの曲面ポリゴンの法線ベクトルが一致するか、法線ベクトル間の角度の相違は、所定の基準値（Ｅ１）以内の場合が多い。一方、本来稜線で不連続に傾きが変化した部分では、それぞれの曲面ポリゴンの法線ベクトル間の角度の相違は、前記基準値Ｅ１より大きな基準値（Ｅ２）以上となることが多い。そこで、一般的な立体形状に関する経験則をコンピュータ上の処理に組み込む。
【００３６】
図１１に、指定のサンプル点Ｐａとその周囲に存在する複数の曲面ポリゴン１１−１５の法線ベクトルＮ１−Ｎ５との関係を示す。この場合、サンプル点Ｐｓの法線ベクトルは、以下の数５で与えられる。
【００３７】
【数５】
0004967989.tif 000006
【００３８】
数５は、複数の法線ベクトルの重み加算を示している。重みは、例えば、個々のパッチの面積によって決定してもよい。また、重みを１としてもよい。これらの法線ベクトルＮ１−Ｎ５、およびサンプル点ＰＡの法線ベクトルＮＡとの間で、それらの間の角度が基準値Ｅ１から基準値Ｅ２の範囲にあるか否かによって歪みの発生を検知する。
（３）稜線上の法線一致チェック
２つの曲面ポリゴンの境界に位置する稜線上で、曲面ポリゴンの法線を複数個求め、法線間の角度が所定の基準値（Ｅ１）以内か否かを判定する。処理手順は、法線を求める位置が稜線上にあること以外は、上記（１）と同様である。
（４）稜線の曲率解析
曲面パッチの境界線である稜線上で稜線の曲率を求める。そして、変形操作時に稜線の曲率を監視し、曲率が基準値より大きい点を検知する。あるいは、曲率の変化の大きな点（例えば、曲率方向の内積＜０の点、すなわち、角度９０度より大きな変化）を検知する。すなわち、曲率の変化として、１つの稜線上での曲率の方向の変化を検知してもよい。また、１つの稜線上の大きさの変化を検知してもよい。すなわち、稜線上で、曲率の方向が、極端に大きく変化し、あるいは、曲率の値が極端に大きく変化する点を検知してもよい。さらに、稜線上の変曲点の数の変化等を検出し、変曲点数が所定以上の稜線を歪みの検出された稜線としてもよい。さらにまた、稜線歪み判定手段が、稜線ごとに曲率を逐一記録しておき、前回判定時点と今回時点での曲率の差分を曲率の変化としてもよい。
【００３９】
曲率は、曲線上の点の位置ベクトルＰに対して、その２次微分として求めることができる。曲線上の点の位置ベクトルＰの曲線の長さｓによる１次微分Ｐ’＝ｄＰ／ｄｓは、以下の数６で与えられる。ここで、ピードット（ベクトルＰの上部に黒丸を付加したもの）は、ベクトルＰの時間微分を表す。ピードットは、曲線の接線方向のベクトルを表し、数６は、接線方向の単位ベクトルとなっている。
【００４０】
【数６】
0004967989.tif 000007
【００４１】
数６をさらに、曲線の長さｓによって微分すると、曲率となる。曲率Ｒ＝Ｐ”を以下の数７で示す。ここで、ピーツードット（ベクトルＰの上部に黒丸を２個付加したもの）は、ベクトルＰの２次の時間微分（加速度）を表す。
【００４２】
【数７】
0004967989.tif 000008
【００４３】
曲率Ｒは、以下の数８の形式で表すこともできる。
【００４４】
【数８】
0004967989.tif 000009
【００４５】
曲線上の点の位置ベクトルをＰとした場合、曲率Ｒ＝Ｐ”、速度ピードット、加速度ピーツードットの関係は、概念的には、図１２に示すことができる。ここで、速度ピードットは、曲線の接線方向のベクトルであり、曲率Ｐ”は、接線と直交する方向である。
【００４６】
速度ピードットに対して、その加速度ピーツードットを求め、速度ピードットを一辺とし、対辺が加速度ピーツードットの先端を通る長方形２２を作図する。この場合に、速度ピードットの先端２１を通り、長方形２２の対角線２３に直交する直線２４と、速度ピードットの曲線との接点２０から引いた速度ピードットに直交する直線２５との交点２６を求める。この場合、接点２０から交点２６までの長さが曲率Ｐ”になる。
（５）曲面ポリゴンの曲率解析
図１３に、曲面ポリゴンの曲率解析の概念を示す図である。曲面ポリゴン、すなわち、パッチは、例えば、１以上のベジエ曲面で構成される。稜線と異なり、曲面ポリゴンでは、一般式による曲率解析（数７、数８参照）ができない。そこで、本実施形態の設計支援装置では、以下の手順で、曲面ポリゴンの曲率解析を実行する。
（ａ）解析の対象となる立体モデルの領域を特定する。これは、例えば、ユーザ操作によって対象となる解析領域の選択を受ければよい。
（ｂ）上記解析領域に含まれる曲面ポリゴンの頂点、例えば、ベジエ曲面の外部制御点（稜線上の制御点）を抽出する。
（ｃ）各頂点にて、法線ベクトルＮ（頂点ごとに区別する場合は、法線Ｎｋという）を求める。
（ｄ）各頂点に接続される稜線Ｌ（稜線ごとに区別する場合は、稜線Ｌｉという）を求める。また、頂点から所定距離のすべての稜線を選択してもよい。そして、頂点近傍での稜線Ｌの接線Ｔ（稜線ごとに区別する場合は、接線Ｔｉという）を求める。
（ｅ）稜線Ｌを頂点の法線Ｎと稜線Ｌの接線Ｔがなす平面に投影する。これによって、３次元空間上の稜線Ｌが平面上の投影線となる。この投影線上の曲率を数７、または数８によって算出する。さらに、投影線上の曲率の最大値Ｒ（稜線ごとに区別する場合は、曲率の最大値Ｒｉという）を求める。
（ｆ）このような曲率の最大値のうち、解析領域内のすべての頂点について、それぞの頂点に接続されるすべての稜線に対して、（ｃ）〜（ｅ）を繰り返す。これによって、解析領域内での最大の曲率を求め、これを曲面ポリゴンの曲率とする。この曲面ポリゴンが所定の基準値Ｅ３を越えるか否かによって、歪みの発生を判定する。なお、（ｃ）〜（ｅ）を繰り返して得られた曲率Ｒｉをヒストグラムで表示して歪みの発生状況を表示してもよい。
【００４７】
＜歪み修正機能＞
（１）隣接パッチ間での歪みの修正
図１４に、歪み補正の第１の課題として隣接パッチ間での歪み修正の概念を例示する。図１４で、「修正」で示された矢印の上側に歪みの発生している曲面の断面図例を示す。この曲面は、隣接する２つの曲面パッチＰＡＴ１、ＰＡＴ２からなる。第１の曲面パッチＰＡＴ１は、パッチ境界付近に法線ベクトルＶ１およびＶ２を有する。また、第２の曲面パッチＰＡＴ２は、パッチ境界付近に法線ベクトルＶ３およびＶ４を有する。２つの曲面パッチＰＡＴ１、ＰＡＴ２の境界線近傍で、法線ベクトルＶ２とＶ３とは、所定の限界値以上に角度が相違している。このため、２つの曲面パッチＰＡＴ１、ＰＡＴ２の境界線付近では、曲面の断面に不連続な変化、すなわち急峻な窪みが発生している。
【００４８】
図１４で「修正」で示された矢印の下側に、上述の歪みを修正した曲面の断面図例を示す。ただし、参考用に点線で修正前の曲面も表示している。すなわち、修正後は、２つの法線ベクトルが、いずれも、１つの法線ベクトルＶＣに変更されている。そして、２つの曲面パッチＰＡＴ１、ＰＡＴ２の境界付近で法線ベクトルがＶＣとなるように、２つの曲面パッチＰＡＴ１、ＰＡＴ２が変形され、ＰＡＴ１ＣおよびＰＡＴＣ２となっている。２つの曲面パッチＰＡＴ１Ｃ、ＰＡＴ２Ｃは、互いに境界線付近で法線ベクトルＶＣが一致するので、滑らかに接続する。
【００４９】
このように、曲面パッチ境界線近傍の法線ベクトルに所定の限界値以上の相違が検出されたときには、共通となるべき修正後の目標法線ベクトルＶＣ（補正法線ベクトルに相当）を求め、さらに、その２つの曲面パッチの境界線の法線ベクトルが目標法線ベクトルとなるように、法線ベクトルを設定する。そして、目標法線ベクトルＶＣにしたがって、２つの曲面パッチを変形すればよい。このような２つの法線ベクトルＶ２、Ｖ３について、目標法線ベクトルは、例えば、単純に、２つの法線ベクトルの中央を通るベクトルＶＣの方向とすればよい。
（数９）
（ベクトルＶＣ）  ＝（  （ベクトルＶ２）＋（ベクトルＶ３））／２
ここで、（Ｖ）は、Ｖがベクトルであることを示す。また、（Ｖ１）＋（Ｖ２）は、ベクトル各要素、例えば、３次元座標（ｘ、ｙ、ｚ）それぞれの成分の和である。
【００５０】
図１５に、３次元曲面パッチについて、法線ベクトルが決定された後に（変更された後
）、改めて、３次元曲面パッチを求める手順を例示する。図１５の中央の矢印の左側には、３つの頂点Ｐ１、Ｐ２、Ｐ３を含む３次元曲面パッチＰＡＴが描かれている。この曲面パッチＰＡＴは、それぞれのＰ１、Ｐ２、Ｐ３にて、法線ベクトルＮ１、Ｎ２、Ｎ３を有する。この法線ベクトルＮ１、Ｎ２、Ｎ３が同一（角度が一致）であれば、曲面パッチＰＡＴは、単なる平面にすぎない。図１５の場合には、法線ベクトルＮ１、Ｎ２、Ｎ３は、互いに角度が異なる。このため、曲面パッチＰＡＴは、頂点Ｐ１、Ｐ２、Ｐ３近傍が曲がった曲面を有している。曲面の曲がりの程度は、法線ベクトルＮ１、Ｎ２、Ｎ３によって決定される。このような曲面パッチをＰＮ  ｔｒｉａｎｇｌｅと呼ぶ。
【００５１】
このような曲面パッチＰＡＴの３次三角ベジエ曲面は、次の数１０で表すことができる。
【００５２】
【数１０】
0004967989.tif 000010
【００５３】
したがって、曲面パッチＰＡＴの頂点座標Ｐ１、Ｐ２、Ｐ３と、各頂点での法線ベクトルが分かっていれば、３次三角ベジエ曲面を得ることができる。今、例えば、隣接パッチとの接続を滑らかにするため、頂点Ｐ１およびＰ２において、法線ベクトルがＮ１Ｃ、Ｎ２Ｃに変更されたとする。その場合に、数１０のＮ１の代わりにＮ１Ｃを、また、Ｎ２の代わりにＮ２Ｃを用いて計算することで、修正後の曲面パッチの３次三角ベジエ曲面を得ることができる。すなわち、隣接パッチ間で共通の法線ベクトルを設定できれば、少なくとも、隣接する曲面パッチについては、滑らかな接続を実現できる。
（２）非隣接パッチを含む曲面全体での歪みの修正
図１６−図１９に、歪み補正の第２の課題を示す。図１６は、隣接曲面パッチ間は滑らかであるが、非隣接曲面パッチ間で歪みが発生している曲面を模式的に例示する図である。上記隣接パッチの境界線近傍のそれぞれの法線ベクトルを一致させることによって、隣接パッチ間のなめらかさを向上し、面品質を維持できる。しかし、非隣接パッチを含む面全体については、必ずしも面品質の向上につながらない場合がある。すなわち、個々の隣接パッチ間では、滑らかな接続が実現できても、さらに広がる範囲については、面のしわ、凹凸、うねり等（これらを「よたり」ともいう）を除去できない場合がある。
【００５４】
図１７は、そのような面のしわ、凹凸、うねり等を例示する図である。図１７（１）は、複数の曲面パッチからなる曲面上で、特定の境界線を設定し、その境界線上の法線ベクトルの分布を描いた図である。法線ベクトルの始点は、境界線上の各点である。また、法線ベクトルの先端（終点）は、各始点からそれぞれの３次元空間の方向に位置する。境界線とは、曲面パッチのエッジをつないで、曲面を２つに仕切る線をいう。この境界線上に位置する曲面の法線ベクトルの先端（終点）の分布を示す曲線として、法線ベクトル分布曲線が構成されている。図１６のように、法線ベクトル分布曲線法線は、例えば、法線ベクトルの先端を接続した曲線、法線ベクトルの先端を制御点とする曲線等の場合には、一般的には３次元空間上の曲線となる。法線ベクトルの先端がそろっていないと、法線ベクトル分布曲線は、急激に変化したものとなる。すなわち、同一曲面上の法線ベクトルであ
っても、非隣接のパッチ間では、法線ベクトルの分布に大きなうねりが生じている。これは、隣接パッチ間が滑らかであっても、非隣接のパッチ間では、曲率の大きさと曲がり向きとが大きく異なる場合があることを示している。また、曲線の変化率が極端に大きいことを意味している。このような曲率の大きさ、曲線の変化率の大きさの上限値は、本設計支援装置が適用される設計対象に応じて、ユーザに適宜設定できる機能を提供すればよい。
【００５５】
図１７（２）は、図１７（１）をサーフェイスモデルに変換し、さらに、法線ベクトルの方向を色分けして（パターン分けして）示したものである。図１７（３）は、曲面に含まれるそれぞれの曲面パッチついて、１つずつサンプル点を選択し、サンプル点での法線ベクトルの分布を示した図である。この例では、サンプル点は、複数の曲面パッチの境界線上に設定している。さらに、それら複数の曲面パッチ間で、サンプル点での法線ベクトルの向きを一致させている。この手法により、それぞれのサンプル点周辺では、曲面パッチ間の滑らかな接続を実現できる。しかしながら、上述のように、非隣接の曲面パッチを含む、さらに広い範囲での面品質の向上という課題が残る場合がある。
【００５６】
図１８は、モーフィング、すなわち、曲面モデルに対する変形操作によって、面のしわ、凹凸、うねり等が発生する例を示している。図１８中央の矢印（モーフィング操作を示す）の左側で、元の面とあるのは、モーフィング実行前の曲面の例である。この場合、特定の境界線上の法線ベクトルの分布１００は、概ね一様となっている。
【００５７】
一方、モーフィング操作を示す矢印の右側に、変形の結果歪んだ面が示されている。この場合の法線ベクトルの分布１０１は、図１７（１）と同様、大きなうねりを発生させている。
【００５８】
図１９は、色分け表示によって、歪みおよび領域間の結合性を例示する図である。すなわち、図１９（１）は、変形の結果歪んだ面を色分けして（パターン分けして）示したものであり、図１９（２）は、特定の境界線上において、境界線で区切られた領域間の結合性を色分け（線種で分けて）示す図である。ここでは、太い実線、太い点線、細い実線、細い点線の４つの線で境界線上の結合性が示されている。太い実線は、接線不連続を示している。接線不連続な場合、境界線で破断は発生していないが、接線の連続性がないことを示す。一方、細い点線は、接線連続が維持されている境界である。
【００５９】
図２０および図２１に、以上のような曲面における歪み補正の課題とその解決策の概念を示す。以上のように、非隣接の曲面パッチを含む範囲において、特定の方向に向かう曲面パッチ境界線上で法線ベクトルを表示すると、それぞれの法線ベクトルの頂点が無秩序に分布している場合がある。これは、図１８に示したようなモーフィングの実行によって顕著となる。
【００６０】
そこで、特定の方向に向かう一続きの曲面パッチ境界線上で法線ベクトルを可能な限り一致させることが面品質の向上につながる。そこで、ここでは、目標となる曲線を設定し、特定の方向に向かう曲面パッチ境界線上の法線ベクトルの先端をその曲線上に移動することで、法線ベクトルを少なくとも、上記曲線上に整列させることとする。
【００６１】
図２０（２）、図２１（２）に、そのような法線ベクトルの整列による曲面パッチの補正例の概念を示す。すなわち、特定の方向に向かう曲面パッチ境界線（評価基準線に相当）上の法線ベクトルの先端が構成する曲線のゆがみを補正することで、法線ベクトルを補正し、面品質を向上させる。
【００６２】
図２２に、そのような法線ベクトルの補正を２方向で実行する処理例を示す。２方向と
は、曲面上の１の境界線に対して、交差する方向が含まれることをいう。２方向で法線ベクトルの補正を実行することで、補正の対象が２次元的に広がる。その結果、さらに面品質が向上する。そのような補正対象の曲面パッチ境界線を複数箇所設けることでさらに面品質が向上する。例えば、図２２のような縦方向と横方向の境界線をそれぞれ複数本設定して、法線ベクトルを補正すればよい。
【００６３】
図２３に、特定の方向に向かう曲面パッチ境界線上の法線ベクトルを補正するときの手順の概要を示す。今、曲面パッチで構成された曲面を補正対象の曲面として想定する。さらに、この曲面においては、すでに、隣接パッチ間ので法線ベクトルの修正がなされているものとする。すなわち、隣接パッチ間では、法線ベクトルは、一致するとする。
【００６４】
この曲面上で、非隣接パッチを含み、複数の曲面パッチの境界線をつないだ曲面全体に渡る境界線１１２を設定する。そして、その境界線１１２上の法線ベクトル１１４の頂点座標を取得する。法線ベクトルの始点は、例えば、境界線上で各曲面パッチに１個または数個サンプル点を設定すればよい。サンプル点には、曲面パッチのエッジの両端が含まれるようにすればよい。すべての法線ベクトルの頂点を結ぶ曲線を法線分布曲線１１５とする。そして、法線分布曲線上の法線ベクトルの頂点座標のうち、急変部分の頂点１１６（および、その法線ベクトル）を抽出する。このような急変部分は、法線分布曲線１１５の曲率または変化率が所定の限界値を越えたか否かを基準に求めればよい。曲率または変化率は、各法線ベクトルの先端（終点）付近で算出すればよい。
【００６５】
そして、抽出された急変部分の頂点１１６を除外した頂点列を通る曲線（以下、補正曲線１１７という）を生成する。補正曲線１１７は、例えば、座標値の多項式の形式でスプライン曲線として求めればよい。あるいは、ベジエ曲線として求めてもよい。
【００６６】
次に、補正曲線１１７において、法平面を求める。法平面は、補正曲線１１７と直交する平面である。そして、求めた法平面と、補正曲線との交点を求める。すなわち、補正曲線１１７でそのような法平面を移動していく。そして、法平面が前記急変部分の法線ベクトルの始点を通るときに、法線ベクトルの始点から、法平面と補正曲線１１７との交点に至る直線を補正後の法線として、法線ベクトルを修正する。以上のようにして、補正法線ベクトルの始点は補正前のままで、法線ベクトルの先端（終点）を補正曲線に直交する方向に移動することができる。
【００６７】
以上の手順によって、法線分布曲線上の急変箇所すべてにおいて、法線ベクトルが補正曲線上の法平面との交点に向くように、同様に補正する。そして、法線ベクトルが補正されたすべての曲面パッチについて、数１０にしたがって、３次ベジエ曲面を生成する。これによって、非隣接曲面パッチ間で急峻に変化する部分の法線ベクトルが除外された曲面が再構成される。
【００６８】
＜処理フロー＞
図２４および図２５に、本設計支援装置の非隣接法線補正処理フローを例示する。この処理は、ＣＡＤを構成するコンピュータ上で実行されるプログラムによって実現される。この処理では、設計支援装置は、法線ベクトル列Ｎｉ（ｉ＝１，Ｋ）の入力を受け付ける（Ｓ１）。ここで、入力を受け付けるとは、例えば、コンピュータ上で実行されるプログラムのサブルーチンが引数でデータを引き渡されることをいう。また、例えば、コンピュータ上で実行されるプログラムがファイル名で指定されたハードディスク上のファイルからデータを読み出すことをいう。
【００６９】
次に、本設計支援装置は、法線分布曲線を生成する（Ｓ２）。この法線分布曲線が、第１の法線分布曲線に相当する。法線分布曲線は、例えば、数１に示したｎ次ベジエ曲線で
記述すればよい。すなわち、図４に示した制御点Ｑｉ（ｉは、１からｎ＋１）として、ｎ＋１涸の法線ベクトルの先端（終点）を用いて、曲線上の点Ｐ（ｔ）を記述すればよい。
【００７０】
ただし、本発明の実施において、法線分布曲線を記述する記述形式に制限があるわけではない。例えば、数１１のようなスプライン曲線（Ｘ、Ｙ、Ｚ）を用いてもよい。ここで、Ｘｉ，Ｙｉ，Ｚｉは、法線ベクトルの先端（終点）の座標であり、Ｂｉ（ｔ）は、係数であり、ｔは、曲線の区間（ｔ１＝＜ｔ＝＜ｔ２）にて設定されるパラメータである。
【００７１】
【数１１】
0004967989.tif 000011
【００７２】
また、法線分布曲線として、Ｂ−スプライン曲線を用いてもよい。
【００７３】
次に、本設計支援装置は、各法線ベクトルの先端Ｐｉにて、法線分布曲線の曲率Ｒｉを算出する（Ｓ３）。曲率Ｒｉは、例えば、数７または数８によって求めることができる。そして、本設計支援装置は、求めた曲率Ｒｉが、所定の限度ｅｐｓＲより大きいか否かを判定する（Ｓ３）。曲率Ｒｉが所定の限度ｅｐｓＲより大きい場合、本設計支援装置は、点Ｐｉを除外点とする（Ｓ４）。除外点とは、補正曲線を作成するときに、間引かれる点である。
【００７４】
次に、本設計支援装置は、すべての法線Ｎｉについて、曲率の解析を終了したか否かを判定する（Ｓ６）。すべての法線Ｎｉについて、曲率の解析を終了していないとき、本設計支援装置は、制御をＳ３に戻す。一方、すべての法線Ｎｉについて、曲率の解析を終了すると、本設計支援装置は、法線ベクトルの終点Ｐｉ（ｉ＝１，Ｋ）のうち、除外点を除いた点を用いて、補正曲線を生成する（Ｓ７）。この法線分布曲線が、第２の法線分布曲に相当する。補正曲線の生成の手順は、Ｓ２の法線分布曲線と同様である。
【００７５】
次に、各除外点にて、以下の補正処理を実行する。すなわち、今、除外点Ｐｊを終点とする法線ベクトルＮｊの始点をＢｊ（Ｘｂｊ、Ｙｂｊ、Ｚｂｊ）とする。この始点Ｂｊを含み、かつ、補正曲線に直交する平面を生成する。より具体的には、補正曲線の各点の接線に直交する平面のうち、始点Ｂｊを通る平面を求める（Ｓ８）。この平面を補正曲線の法平面という。例えば、補正曲線の点Ｑ（Ｑｘ、Ｑｙ、Ｑｚ）での接線方向の単位ベクトルをＶ１（ａ，ｂ，ｃ）とすると、法平面は、ａ・(Ｘ−Ｑｘ)＋ｂ・（Ｙ−Ｑｙ）＋ｃ・（Ｚ−Ｑｚ）＝０という平面の方程式で求めることができる（図２３参照）。このような平面の方程式のうち、始点Ｂｊを通るものを求める。より具体的には、補正曲線の点Ｑ（Ｑｘ、Ｑｙ、Ｑｚ）を所定のピッチで移動しつつ、平面の方程式を求め、始点Ｂｊが、所定の誤差ｅｐｓＨの範囲で平面の方程式を満足するか否かを判定する。そのような法平面と補正曲線の交点Ｑ（Ｑｘｊ、Ｑｙｊ、Ｑｚｊ）を点Ｑｊとする（Ｓ９）。
【００７６】
そして、法線ベクトルの終点Ｐｊを直線ＢｊＱｊの方向に移動する。より具体的には、始点をＢｊとし、直線ＢｊＱｊ方向の単位ベクトルを補正後の法線ベクトルＮｊとする（Ｓ１０）。この処理を実行する設計支援装置のＣＰＵが、法線ベクトルを補正する手段に相当する。
【００７７】
このような補正後の法線ベクトルをすべての除外点について求める。これによって、元の法線分布曲線上の点のうち、曲率が所定値ｅｐｓＲより大きい個所に関して、点が除去される。そして、滑らかな補正曲線に直交する方向に法線ベクトルが移動されることになる。
【００７８】
図２６に、本設計支援装置の曲面補正処理フローを例示する。この処理では、本設計支援装置は、補正対象の曲面に含まれる曲面パッチＰｉ（ｉ＝１，Ｎ）を入力する。それぞれの曲面パッチＰｉは、例えば、数３、数４等で記述できる。例えば、３次ベジエ曲面を用いる場合には図８に示した１０個の制御点を与えることによって、曲面パッチＰｉが規定される。
【００７９】
次に、図２０に示したように、曲面を所定方向に横断（または縦断）するパッチ境界点列ＰＰｉ（ｉ＝１，Ｌ）を設定する（Ｓ２２）。ここで、所定の方向は、例えば、ＣＡＤシステムの表示装置に表示された３次元モデルに対するユーザ操作を受け付けて決定すればよい。例えば、ユーザが３次元モデル上で、マウスポインタ等のポインティングデバイスで、指示すればよい。ここで、パッチ境界点列は、各パッチ上、隣接するパッチとの境界線上の点を代表点として、１つずつ選択したものである。より具体的には、各パッチの１つエッジ上の一方の端点を選択すればよい。
【００８０】
次に、本設計支援装置は、パッチ境界点列ＰＰｉ（Ｉ＝１，Ｌ）にて、隣接パッチ間で法線ベクトルＲ１Ｎｉ（Ｉ＝１，Ｌ）を一致させる補正処理を実行する（Ｓ２３）。すなわち、隣接パッチ間で互いに法線ベクトルが一致しない場合に、共通する補正法線ベクトルＶＣを求める。この処理は、例えば、図１４で説明したように、数９にしたがって、求めればよい。さらに、パッチ境界点列ＰＰｉでの法線ベクトルを求めた補正法線ベクトルＶＣに置き換える。この処理を実行する設計支援装置のＣＰＵが、補正法線ベクトルに置き換える手段に相当する。その結果、隣接パッチ間では、法線ベクトルＲ１Ｎｉは、同一の方向を向くことになる。
【００８１】
次に、法線ベクトルＲ１Ｎｉ（Ｉ＝１，Ｌ）に対して、非隣接補正処理を実行する（Ｓ２４）。この手順は、図２４および図２５における説明と同様である。Ｓ２４の処理を実行する設計支援装置のＣＰＵが、本発明の面要素を補正する手段に相当する。
【００８２】
次に、パッチ境界点列ＰＰｉ（Ｉ＝１，Ｌ）に交差するパッチ境界点列ＰＱｉ（ｉ＝１，Ｍ）を設定する（Ｓ２５）。その手順は、パッチ境界点列ＰＱｉ（ｉ＝１，Ｍ）がパッチ境界点列ＰＰｉ（Ｉ＝１，Ｌ）と交差する方向である以外は、Ｓ２２の場合と同様である。ただし、パッチ境界点列ＰＱｉ（ｉ＝１，Ｍ）を含むパッチ境界線は、パッチ境界点列ＰＰｉ（Ｉ＝１，Ｌ）と交差するように設定する（図２２参照）。
【００８３】
次に、パッチ境界点列ＰＱｉ（Ｉ＝１，Ｍ）にて、隣接パッチ間で法線ベクトルＲ２Ｎｉ（Ｉ＝１，Ｍ）を一致させる補正処理を実行する（Ｓ２５）。この処理は、Ｓ２３と同様である。
【００８４】
次に、Ｓ２５で求めた法線ベクトルＲ２Ｎｉ（Ｉ＝１，Ｍ）に対して、非隣接補正処理を実行する（Ｓ２６）。この手順は、Ｓ２４と同様である。Ｓ２４およびＳ２６の処理によって、図２２のように、２方向にて、法線ベクトルが補正されることになる。
【００８５】
次に、本設計支援装置は、補正後の法線ベクトル列Ｒ１Ｎｉ（ｉ＝１，Ｌ）およびＲ２Ｎｉ（ｉ＝１，Ｍ）によって、各曲面パッチの代表点の法線ベクトルを置き換える。そして、置き換えられた法線ベクトルを含む法線ベクトルの全体で、曲面パッチの生成を再度実行する（Ｓ２７）。この手順は、図１５に示した通りであり、曲面パッチが数１０の式によって生成される。
【００８６】
以上の処理によって、曲面パッチからなる曲面について、隣接パッチ間の境界線で法線ベクトルが統一され、さらに、非隣接の法線ベクトル群の先端が滑らかな補正曲線上に移動されることになる。この結果、その法線ベクトル群で規定される曲面パッチが、非隣接の曲面パッチを含む広範囲において、歪みが補正されることになる。
【００８７】
＜実施例＞
図２７−図３１に、本設計支援装置による曲面の補正処理結果を示す。図２７は、歪みの発生した曲面の例である。図２７では、面内にシワ、たるみ、よたりと呼ばれる歪みがある。このため、隣接パッチ間の境界で、それぞれの曲面パッチの法線ベクトルＮ１とＮ２とが一致しない。また、非隣接パッチ間でも法線ベクトルの方向が不一致となっている。
【００８８】
図２８にこの場合の法線分布曲線の変化を例示する。図２８（１）は、補正後の法線分布曲線の例である。図２８（３）は、図２８（１）のビュー方向を示すＡ矢印の方向に法線分布曲線を見た図である。一方、図２８（２）は、図２８（３）の補正前の状態を示している。
【００８９】
図２８（２）のように、不均一な法線の並びが、図２８（３）のように、法線の並びを整列できた。これは、不均一な法線の並びから法線分布曲線のうちの曲率の大きい部分にある構成点を間引くことによって、法線分布曲線を滑らかにし、各法線を滑らかな法線分布曲線上に移動できたからである。
【００９０】
図２９は、図２８の曲面を拡大し、法線を示したものである。隣接パッチ間で、法線ベクトルが一致するとともに、非隣接パッチ間でも、法線の並びが均一となり、曲面の歪みが除去されたことがわかる。
【００９１】
図３０は、モーフィング時の曲面に対して、本設計支援装置の補正を適用した例である。図３０（１）は、モーフィング前の曲面を示す。斜線で示されている帯状部分１００は、矩形境界線１０１上の法線分布である。すなわち、帯状部分１００の上端が法線分布曲線に相当する。
【００９２】
モーフィングによって、曲面を操作すると、図３０（２）のように、法線分布１０２が大きく歪むことになる。したがって、曲面パッチが不均一になっている。この場合、隣接する曲面パッチだけでなく、非隣接の曲面パッチ間で、法線分布が大きく変動している。
【００９３】
図３０（３）は、本実施形態の法線補正（図３０では、法線整列）を実行した場合の法線分布１０３を示す。法線補正によって、法線分布１０３がほぼ均一になることが分かる。図３１（１）は、曲面の歪みをパターンで表示した図である。また、図３１（２）は、隣接パッチ間の結合性を表示した図である。本実施形態の設計支援装置によれば、曲面の歪みを低減し、隣接パッチ間の結合性を維持できる。ここで、隣接パッチの結合性とは、例えば、隣接パッチ間で、接線接続が維持される場合に、結合性が維持されているという。
【００９４】
＜変形例＞
上記実施形態では、図２２および図２６のように、曲面上の２方向の境界線に沿って、曲面の法線ベクトルを補正した。しかし、本設計支援装置の処理は、このような処理には限定されない。例えば、図２０のように一方向の境界線に沿って、曲面の法線ベクトルを補正してもよい。また、それぞの方向で複数の境界線に沿って、曲面の法線ベクトルを補正してもよい。その手順は、例えば、図２６に示したＳ２１−Ｓ２４の処理を繰り返せばよい。
【００９５】
上記実施形態では、補正された法線ベクトルを含む曲面パッチの記述形式として、数１１を用いた。すなわち、数１１にしたがって、ＰＮ  ｔｒｉａｎｇｌｅに含まれる頂点のベクトルと法線ベクトルとから３次三角ベジエ曲面の制御点を算出し、３次三角ベジエ曲面上の点を求めた。しかし、本発明の実施は、そのような手順に限定されるものではなく、４次以上のベジエ曲面を用いてもよい。また、三角ベジエ曲面に代えて、四角ベジエ曲面を用いてもよい。また、ベジエ曲面以外の曲面の記述形式、例えば、Ｂ−スプライン曲面を用いてもよい。
【００９６】
上記実施形態では、除外点として、各法線ベクトルの先端付近での法線分布曲線の曲率を求め、その曲率が所定の限界値以上の場合に、その法線ベクトルの先端に該当する法線分布曲線上の点を除外点とした。しかし、本発明の実施は、そのような処理に限定される訳ではない。例えば、境界線１１２上において所定区間（１または複数の法線ベクトルを含む区間）で、曲率を算出するようにしてもよい。そして、曲率が所定の限界値以上の場合に、その区間に含まれる法線分布曲線全体を除外点としてもよい。そして、そのような区間に含まれる法線ベクトルをまとめて補正してもよい。
が分布する法線ベクトルを選択した。
【図面の簡単な説明】
【００９７】
【図１】曲面ポリゴンで構成されている立体モデルを変形した例を示す図である。
【図２】曲面ポリゴンをメッシュに分割した例を示す図である。
【図３】三角形のパッチによる立体モデルの例を示す図である。
【図４】３次ベジエ曲線を示す図である。
【図５】４角形パッチによる３次ベジエ曲面の例を示す図である。
【図６】３次四角パッチとのその内部制御点の配置を示す図である。
【図７】４次四角パッチとのその内部制御点の配置を示す図である。
【図８】三角形パッチによる３次ベジエ曲面の例を示す図である。
【図９】３次三角パッチとのその内部制御点の配置を示す図である。
【図１０】４次三角パッチとのその内部制御点の配置を示す図である。
【図１１】サンプル点とその周囲に存在する複数の曲面ポリゴンとの関係を示す図である。
【図１２】曲線上の点の位置ベクトルと、その１次微分、２次微分の関係を示す図である。
【図１３】曲面ポリゴンの曲率解析の概念を示す図である。
【図１４】立体モデルの歪み修正の概念を例示する図である。
【図１５】法線ベクトルが決定された後に、３次元曲面パッチを求める手順を例示する図である。
【図１６】非隣接曲面パッチ間で歪みが発生している曲面を模式的に例示する図である。
【図１７】面のしわ、凹凸、うねり等を例示する図である。
【図１８】曲面モデルに対する変形操作によって、面のしわ、凹凸、うねり等が発生する例を示している。
【図１９】色分け表示によって、歪みおよび領域間の結合性を例示する図である。
【図２０】曲面における歪み補正の課題とその解決策の概念を示す図である。
【図２１】曲面における歪み補正の課題とその解決策の概念を示す図である。
【図２２】法線ベクトルの補正を２方向で実行する処理例である。
【図２３】特定の方向に向かう曲面パッチ境界線上の法線ベクトルを補正するときの手順の概要を示す図である。
【図２４】設計支援装置の非隣接法線補正処理フローを例示する図である。
【図２５】設計支援装置の非隣接法線補正処理フローを例示する図である。
【図２６】設計支援装置の曲面補正処理フローを例示する図である。
【図２７】歪みの発生した曲面の例である。
【図２８】法線分布曲線の変化を例示する図である。
【図２９】曲面を拡大し、法線を例示した図である。
【図３０】モーフィング時の曲面に対して、設計支援装置の補正を適用した例である。
【図３１】色分け表示によって、歪みおよび領域間の結合性を例示する図である。
【符号の説明】
【００９８】
ＰＡＴ１、ＰＡＴ２  曲面パッチ
Ｖ１、Ｖ２、Ｖ３、Ｖ４、Ｎ１、Ｎ２  法線ベクトル
１１２  境界線
１１４  法線ベクトル
１１５  法線分布曲線
１１６  急変部分の頂点
１１７  補正曲線
【図１】
0004967989.tif 000012
【図２】
0004967989.tif 000013
【図３】
0004967989.tif 000014
【図４】
0004967989.tif 000015
【図５】
0004967989.tif 000016
【図６】
0004967989.tif 000017
【図７】
0004967989.tif 000018
【図８】
0004967989.tif 000019
【図９】
0004967989.tif 000020
【図１０】
0004967989.tif 000021
【図１１】
0004967989.tif 000022
【図１２】
0004967989.tif 000023
【図１３】
0004967989.tif 000024
【図１４】
0004967989.tif 000025
【図１５】
0004967989.tif 000026
【図１６】
0004967989.tif 000027
【図１７】
0004967989.tif 000028
【図１８】
0004967989.tif 000029
【図１９】
0004967989.tif 000030
【図２０】
0004967989.tif 000031
【図２１】
0004967989.tif 000032
【図２２】
0004967989.tif 000033
【図２３】
0004967989.tif 000034
【図２４】
0004967989.tif 000035
【図２５】
0004967989.tif 000036
【図２６】
0004967989.tif 000037
【図２７】
0004967989.tif 000038
【図２８】
0004967989.tif 000039
【図２９】
0004967989.tif 000040
【図３０】
0004967989.tif 000041
【図３１】
0004967989.tif 000042