(57)【要約】【課題】所定の領域全体に滑らかな曲面をより確実に生成することのできる曲面生成装置を提供する。【解決手段】複数のメッシュラインによって囲まれたパッチＰからなる領域に曲面Ｓを生成する曲面生成装置１０において、パッチＰの各コーナーＣにおけるｕｖ方向の接線ベクトルを各方向のメッシュラインの形状に基づいて算出する接線ベクトル算出手段３０と、前記各方向の接線ベクトルに基づいて、当該接線ベクトルの軌跡を推定する接線ベクトル軌跡推定手段４０と、推定された各方向の接線ベクトルの軌跡に基づいて、各コーナーＣにおけるツイストベクトルを算出するツイストベクトル算出手段５０と、各コーナーＣにおける接線ベクトルとツイストベクトルとに基づいて前記領域内の曲面を算出する曲面算出手段６０とを設ける。【選択図】図５
2008234344.tif 000002
【特許請求の範囲】
【請求項１】
ｕ方向の複数のメッシュラインとｖ方向の複数のメッシュラインによって囲まれた１乃至複数のパッチからなる領域に曲面を生成する曲面生成装置において、
前記パッチの各コーナーにおけるｕ方向の接線ベクトルを前記ｕ方向のメッシュラインの形状に基づいて算出するともに、前記各コーナーにおけるｖ方向の接線ベクトルを前記ｖ方向のメッシュラインの形状に基づいて算出する接線ベクトル算出手段と、
前記各コーナーにおいて算出されたｕ方向の接線ベクトルに基づいて、当該ｕ方向の接線ベクトルの終点あるいは始点の少なくとも一方のｖ方向のメッシュライン沿いの軌跡を推定するとともに、前記各コーナーにおいて算出されたｖ方向の接線ベクトルに基づいて、当該ｖ方向の接線ベクトルの終点あるいは始点の少なくとも一方のｕ方向のメッシュライン沿いの軌跡を推定する接線ベクトル軌跡推定手段と、
前記推定されたｕ方向の接線ベクトルのｖ方向のメッシュライン沿いの軌跡およびｖ方向の接線ベクトルのｕ方向のメッシュライン沿いの軌跡に基づいて、前記各コーナーにおけるツイストベクトルを算出するツイストベクトル算出手段と、
各コーナーにおける前記ｕ方向の接線ベクトルと前記ｖ方向の接線ベクトルと前記ツイストベクトルとに基づいて、前記領域内の曲面を算出する曲面算出手段とを有することを特徴とする曲面生成装置。
【請求項２】
請求項１に記載の曲面生成装置において、
前記接線ベクトル軌跡推定手段は、前記各コーナーにおけるｕ方向の接線ベクトルの始点あるいは終点の少なくとも一方を前記ｖ方向のメッシュラインに沿ってスプライン補間することにより、当該ｕ方向の接線ベクトルの始点あるいは終点の少なくとも一方の軌跡を推定するとともに、各コーナーにおけるｖ方向の接線ベクトルの始点あるいは終点の少なくとも一方を前記ｕ方向メッシュラインに沿ってスプライン補間することにより、当該接線ベクトルの始点あるいは終点の少なくとも一方の軌跡を推定することを特徴とする曲面生成装置。
【請求項３】
請求項１または２に記載の曲面生成装置において、
前記ツイストベクトル算出手段は、
前記接線ベクトル軌跡推定手段において推定されたｕ方向の接線ベクトルのｖ方向のメッシュライン沿いの軌跡に基づいて、前記各コーナーにおけるｖ方向のツイストベクトルを算出するとともに、前記推定されたｖ方向の接線ベクトルのｕ方向のメッシュライン沿いの軌跡に基づいて前記各コーナーにおけるｕ方向のツイストベクトルを算出するｕｖ方向ツイストベクトル算出手段と、
前記算出された各コーナーにおけるｕ方向のツイストベクトルとｖ方向のツイストベクトルとをコーナー毎に平均化して、ｕｖ平均ツイストベクトルを算出するｕｖ方向平均化手段とを有するとともに、
当該ｕｖ平均ツイストベクトルに基づいて前記コーナーにおけるツイストベクトルを算出することを特徴とする曲面生成装置。
【請求項４】
請求項３に記載の曲面生成装置において、
前記ツイストベクトル算出手段は、前記領域が複数のパッチからなるとともに当該各パッチの所定のコーナーが前記メッシュラインの所定の交点周りで互いに隣接している場合に、当該各コーナーに対してそれぞれ算出された前記ｕｖ平均ツイストベクトルを前記交点周りでの曲面が滑らかな形状となるように相互補間することで、各コーナーにおけるツイストベクトルを算出することを特徴とする曲面生成装置。
【請求項５】
請求項４に記載の曲面生成装置において、
前記ツイストベクトル算出手段は、
前記所定の交点周りで互いに隣接している各コーナーに対してそれぞれ算出された前記ｕｖ平均ツイストベクトルを、それぞれｕ方向成分、ｖ方向成分および面直方向成分に分解し、これらの成分値を各コーナーにおけるｕ方向の接線ベクトルおよびｖ方向の接線ベクトルの値に基づいてそれぞれ単位接線ベクトル当りの値に変換する規格化手段と、
この規格化手段にて算出されたコーナー毎の単位接線ベクトル当りの各成分値を、それぞれ成分毎にコーナー間で平均化して単位ツイストベクトルを算出するとともに、この単位ツイストベクトルを各コーナーにおけるｕ方向の接線ベクトルおよびｖ方向の接線ベクトルの値に基づいて補正することで、各コーナーにおけるツイストベクトルをそれぞれ算出する補正手段とを有することを特徴とする曲面生成装置。
【請求項６】
請求項１〜５のいずれかに記載の曲面生成装置において、
前記曲面算出手段で算出された曲面に基づいて、当該曲面上の所定の点におけるツイストベクトルを算出し、このツイストベクトルの大きさあるいは当該ツイストベクトルの変化量の少なくとも一つと予め設定された所定値とを比較し、この比較結果に基づいて前記曲面が所定の形状を有しているかどうかを判定する判定手段を有することを特徴とする曲面生成装置。
【請求項７】
請求項６に記載の曲面生成装置において、
前記判定手段において前記曲面が所定の形状を有していないと判定された場合に、その旨を報知する報知手段を有することを特徴とする曲面生成装置。
【請求項８】
請求項６または７に記載の曲面生成装置において
前記判定手段は、前記ツイストベクトルの大きさあるいは前記ツイストベクトルの変化量を、前記ｕ方向およびｖ方向のローカル座標系にて算出し、当該ローカル座標上で前記ツイストベクトルの大きさおよび変化量と所定値とを比較することを特徴とする曲面生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＡＤシステム等に利用され、所定の領域に曲面を生成する曲面生成装置に関する。
【背景技術】
【０００２】
従来、各種の構造物の設計にはＣＡＤシステムが用いられる場合が多く、このＣＡＤシステムに利用されて前記構造物の複雑な形状を表現するための曲面生成装置については、種々の開発が行われている。
【０００３】
例えば、特許文献１には、複数のメッシュラインで囲まれた複数のパッチからなる所定の領域において、各パッチにクーンズ曲面を生成することで前記領域に曲面を生成するための装置が開示されている。具体的には、前記パッチの内部の横断ベクトルを、当該パッチの各コーナーにおける接線ベクトルを用いて３次のＢｅｚｉｅｒ関数式で算出している。そして、この３次のＢｅｚｉｅｒ関数式において、境界条件として、各コーナーにおける前記横断ベクトルの微分値、すなわち各コーナーにおけるツイストベクトルの値を全て０として与えている。
【０００４】
この装置によれば、前記のように各コーナーにおけるツイストベクトルの値を全て０としているので、各コーナーにおいて隣接するパッチ間で横断ベクトルが変化しないことになるので、この隣接するパッチの接続部分において曲面が歪んでしまうのを抑制することができる。
【特許文献１】特開平１１−１２６２６２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、前記の装置のように各コーナーにおけるツイストベクトルの値を０としてしまうと、各パッチの接続部分以外の部分すなわち各パッチの内部に歪を生じさせてしまう場合がある。すなわち、前記装置では、本来の曲面において各パッチ間の接続部分の横断ベクトルが変化している場合であっても、前記ツイストベクトルの値すなわちこの横断ベクトルの変化量を無理矢理０としているので、本来の曲面を正しく表現することができずにその影響がパッチ内部に現れてしまう。
【０００６】
前記のようにツイストベクトルの値を０として曲面を生成した場合の例を図１に示す。この図では、曲面を生成する領域が、メッシュラインｍ１〜ｍ４およびｎ１〜ｎ３で囲まれたパッチＰ１〜Ｐ６により構成されている。この図に示すように、ツイストベクトルを０とすると、パッチの接続部分には滑らかな曲面が生成されるが、各パッチ、例えばＰ２やＰ３の内部に歪が生じてしまうという問題がある。
【０００７】
本発明は、かかる事情に鑑み、所定の領域全体に滑らかな曲面をより確実に生成することのできる曲面生成装置の提供を目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するための請求項１に係る発明は、ｕ方向の複数のメッシュラインとｖ方向の複数のメッシュラインによって囲まれた１乃至複数のパッチからなる領域に曲面を生成する曲面生成装置において、前記パッチの各コーナーにおけるｕ方向の接線ベクトルを前記ｕ方向のメッシュラインの形状に基づいて算出するともに、前記各コーナーにおけるｖ方向の接線ベクトルを前記ｖ方向のメッシュラインの形状に基づいて算出する接線ベクトル算出手段と、前記各コーナーにおいて算出されたｕ方向の接線ベクトルに基づいて、当該ｕ方向の接線ベクトルの終点あるい始点の少なくとも一方のｖ方向のメッシュライン沿いの軌跡を推定するとともに、前記各コーナーにおいて算出されたｖ方向の接線ベクトルに基づいて、当該ｖ方向の接線ベクトルの終点あるいは始点の少なくとも一方のｕ方向のメッシュライン沿いの軌跡を推定する接線ベクトル軌跡推定手段と、前記推定されたｕ方向の接線ベクトルのｖ方向のメッシュライン沿いの軌跡およびｖ方向の接線ベクトルのｕ方向のメッシュライン沿いの軌跡に基づいて、前記各コーナーにおけるツイストベクトルを算出するツイストベクトル算出手段と、各コーナーにおける前記ｕ方向の接線ベクトルと前記ｖ方向の接線ベクトルと前記ツイストベクトルとに基づいて、前記領域内の曲面を算出する曲面算出手段とを有することを特徴とする曲面生成装置を提供する（請求項１）。
【０００９】
この装置によれば、前記ツイストベクトル算出手段において、メッシュラインの形状および前記パッチの各コーナーにおける接線ベクトルに基づいてツイストベクトルが算出され、前記曲面算出手段において、このツイストベクトルと接線ベクトルとに基づいて曲面が算出されるので、前記メッシュラインの特性すなわちこのメッシュラインから導かれる曲面の特性を反映したより滑らかな曲面を算出することが可能となる。すなわち、従来のように前記ツイストベクトルを強制的に０とすることなくこのツイストベクトルを曲面の制御量として与えているので、生成した曲面に歪が生じてしまうのを抑制することが可能となる。
【００１０】
具体的には、前記接線ベクトル算出手段において前記メッシュラインの形状に基づいて各コーナーにおけるｕｖ方向の接線ベクトルが算出され、前記接線ベクトル軌跡推定手段にて、前記各コーナーにおけるｕｖ方向の接線ベクトルの始点あるいは終点のメッシュライン沿いの軌跡が各方向のメッシュラインに沿った接線ベクトルに基づいて推定されており、当該接線ベクトルの軌跡に各メッシュラインの形状を反映させることが可能となる。そして、この推定された接線ベクトルの軌跡に基づいて各コーナーにおけるｕ方向のツイストベクトルおよびｖ方向のツイストベクトルが算出されるので、これら各方向のツイストベクトルにもまた前記メッシュラインの形状を反映させることが可能となる。従って、前記メッシュラインの形状ひいては曲面の全体形状が反映されたツイストベクトルを算出することができるので、このツイストベクトルに基づいて曲面を算出することで滑らかな曲面をより正確に算出することが可能となる。
【００１１】
また本発明において、前記接線ベクトル軌跡推定手段は、前記各コーナーにおけるｕ方向の接線ベクトルの始点あるいは終点の少なくとも一方を前記ｖ方向のメッシュラインに沿ってスプライン補間することにより、当該ｕ方向の接線ベクトルの始点あるいは終点の少なくとも一方の軌跡を推定するとともに、各コーナーにおけるｖ方向の接線ベクトルの始点あるいは終点の少なくとも一方を前記ｕ方向メッシュラインに沿ってスプライン補間することにより、当該接線ベクトルの始点あるいは終点の少なくとも一方の軌跡を推定するのが好ましい（請求項２）。
【００１２】
このようにすれば、前記各方向の接線ベクトルの始点あるいは終点の軌跡およびこの軌跡に基づく前記ツイストベクトルを容易に算出することができる。また、前記軌跡を滑らかな形状とすることができるので、当該軌跡に基づくツイストベクトルを用いて算出される前記曲面の形状をより確実に滑らかにすることが可能となる。
【００１３】
また本発明において、前記ツイストベクトル算出手段は、前記接線ベクトル軌跡推定手段において推定されたｕ方向の接線ベクトルのｖ方向のメッシュライン沿いの軌跡に基づいて、前記各コーナーにおけるｖ方向のツイストベクトルを算出するとともに、前記推定されたｖ方向の接線ベクトルのｕ方向のメッシュライン沿いの軌跡に基づいて前記各コーナーにおけるｖ方向のツイストベクトルを算出するｕｖ方向ツイストベクトル算出手段と、前記算出された各コーナーにおけるｕ方向のツイストベクトルとｖ方向のツイストベクトルとをコーナー毎に平均化して、ｕｖ平均ツイストベクトルを算出するｕｖ方向平均化手段とを有するとともに、当該ｕｖ平均ツイストベクトルに基づいて前記コーナーにおけるツイストベクトルを算出するのが好ましい（請求項３）。
【００１４】
このようにすれば、各コーナーにおいて前記ｕ方向のツイストベクトルとｖ方向のツイストベクトルとを均等に反映したｕｖ方向平均ツイストベクトルが算出され、このｕｖ方向平均ツイストベクトルに基づいて各コーナーのツイストベクトルが算出されるので、ｕｖ方向のいずれのメッシュライン形状にも即したツイストベクトルを求めることが可能となる。
【００１５】
また本発明において、前記ツイストベクトル算出手段は、前記領域が複数のパッチからなるとともに当該各パッチの所定のコーナーが前記メッシュラインの所定の交点周りで互いに隣接している場合に、当該各コーナーに対してそれぞれ算出された前記ｕｖ平均ツイストベクトルを前記交点周りでの曲面が滑らかな形状となるように相互補間することで、各コーナーにおけるツイストベクトルを算出するのが好ましい（請求項４）。
【００１６】
この構成によれば、所定のコーナーに対してパッチ毎に算出された前記ｕｖ方向平均ツイストベクトルを前記交点周りでの曲面が滑らかな形状となるように相互補間するので、各コーナーのツイストベクトルの値を維持して各パッチ内での曲面の特性を保ちつつパッチ間の接続を滑らかにすることが可能となる。
【００１７】
また本発明において、前記ツイストベクトル算出手段は、前記所定の交点周りで互いに隣接している各コーナーに対してそれぞれ算出された前記ｕｖ平均ツイストベクトルを、それぞれｕ方向成分、ｖ方向成分および面直方向成分に分解し、これらの成分値を各コーナーにおけるｕ方向の接線ベクトルおよびｖ方向の接線ベクトルの値に基づいてそれぞれ単位接線ベクトル当りの値に変換する規格化手段と、この規格化手段にて算出されたコーナー毎の単位接線ベクトル当りの各成分値を、それぞれ成分毎にコーナー間で平均化して単位ツイストベクトルを算出するとともに、この単位ツイストベクトルを各コーナーにおけるｕ方向の接線ベクトルおよびｖ方向の接線ベクトルの値に基づいて補正することで、各コーナーにおけるツイストベクトルをそれぞれ算出する補正手段とを有するのが好ましい（請求項５）。
【００１８】
この構成では、前記規格化手段にて前記ｕｖ方向平均ツイストベクトルの各成分値を単位接線ベクトルの値に変換することで、各コーナーのｕｖ方向平均ツイストベクトルの傾きを抽出し、前記補正手段にて、この傾きをコーナー間で平均化して、この平均化された傾きを有する単位ツイストベクトルを各コーナーにおけるｕ方向の接線ベクトルおよびｖ方向の接線ベクトルの値に応じて補正することで、各コーナーのツイストベクトルを、傾きが等しく各パッチの形状を反映したベクトルとして算出している。すなわち、この構成によれば、所定の交点回りのコーナーにおけるツイストベクトルの傾きを各パッチの特性を反映しつつ一定とすることができるので、前記交点回りのパッチの接続部分に滑らかな曲面を生成することが可能となる。また、前記のように各コーナーにおけるツイストベクトルに各コーナーにおけるｕ方向の接線ベクトルおよびｖ方向の接線ベクトルの値を反映しているので、各パッチ内部の曲面の歪をより確実に抑制することが可能となる。すなわち、本構成によれば、曲面の特性を維持しつつパッチの接続部分およびパッチ内部の形状が滑らかとなる曲面を生成することが可能となる。
【００１９】
また本発明において、前記曲面算出手段で算出された曲面に基づいて、当該曲面上の所定の点におけるツイストベクトルを算出し、このツイストベクトルの大きさあるいは当該ツイストベクトルの変化量の少なくとも一つと予め設定された所定値とを比較し、この比較結果に基づいて前記曲面が所定の形状を有しているかどうかを判定する判定手段を有するのが好ましい（請求項６）。
【００２０】
このようにすれば、前記曲面の形状変化を表すツイストベクトルの大きさあるいは変化量に基づいて曲面が所定の形状を有しているかどうかが判定されるので、より容易にこの曲面の形状を判定することが可能となる。
【００２１】
また本発明において、前記判定手段において前記曲面が所定の形状を有していないと判定された場合に、その旨を報知する報知手段を有するのが好ましい（請求項７）。
【００２２】
このようにすれば、前記報知手段によって使用者等が曲面形状が所定の形状を有しているかどうかを容易に認識することができ、利便性が向上する。
【００２３】
また本発明において、前記判定手段は、前記ツイストベクトルの大きさあるいは前記ツイストベクトルの変化量を、前記ｕ方向およびｖ方向のローカル座標系にて算出し、当該ローカル座標上で前記ツイストベクトルの大きさおよび変化量と所定値とを比較するのが好ましい（請求項８）。
【００２４】
このようにすれば、メッシュラインで囲まれた面に対する前記ツイストベクトルの大きさあるいは変化量に基づいて曲面形状の妥当性を判定することができるので、曲面の滑らかさをより正確に判断することが可能となる。
【発明の効果】
【００２５】
以上のように、本発明によれば、所定の境界線で囲まれた領域により滑らかな曲線を生成することのできる曲面生成装置を提供することができる。
【発明を実施するための最良の形態】
【００２６】
以下、本発明の好ましい実施形態について図面を参照して説明する。
【００２７】
図５は本発明の実施形態に係る曲面生成装置の概略ブロック図であり、図２〜図４はこの曲面生成装置における演算要領を示すフローチャートである。図６〜図１９はこの曲面生成装置の具体的な演算方法を説明するための図である。
【００２８】
本曲面生成装置１０は、図示しないコンピュータ上で駆動されるＣＡＤシステムに用いられるものである。すなわち、この曲面生成装置１０は、コンピュータに接続されるキーボードやマウス等の操作に基づいてコンピュータ内のＣＰＵで各種の演算が実行され、その演算結果が前記コンピュータに接続されるディスプレイ等に出力されるように構成されている。
【００２９】
この曲面生成装置１０は、図５に示すようにメッシュライン保存手段２０、接線ベクトル算出手段３０、接線ベクトル軌跡推定手段４０、ツイストベクトル算出手段５０、曲面算出手段６０、判定手段７０、報知手段８０を備えている。この曲面生成装置１０は、図６の（ａ）等に示すような複数のｕ方向のメッシュラインＭｕ［ｎ］（ｕ）（ｎ＝０〜ｎ０）と複数のｖ方向メッシュラインＭｖ［ｍ］（ｖ）（ｍ＝０〜ｍ０）によってそれぞれ囲まれた複数のパッチＰ［ｍ，ｎ］からなる領域に曲面を生成するためのものである。本実施形態では、ｎ０＝３、ｍ０＝４としている。
【００３０】
前記メッシュライン保存手段２０は、前記ｕ方向のメッシュラインＭｕ［ｎ］（ｕ）とｖ方向メッシュラインＭｖ［ｍ］（ｖ）を保存するためのものであり、このメッシュライン保存手段２０には、予め算出された各メッシュラインの関数が保存されている。ここで、各メッシュラインは前記領域に生成する曲面に沿うように予め求められたものである。
【００３１】
前記、メッシュラインＭｕ［ｎ］（ｕ）およびＭｖ［ｍ］（ｖ）は、それぞれｕ，ｖ方向の区間多項式Ｕ（ｕ），Ｖ（ｖ）で与えられており、各パッチＰ［ｍ，ｎ］は、図６の（ｂ）に示すように、それぞれｕ方向のメッシュラインＵ［ｍ，ｎ］（ｕ）およびＵ［ｍ，ｎ＋１］（ｕ）と、ｖ方向のメッシュラインＶ［ｍ，ｎ］（ｖ）およびＶ［ｍ＋１，ｎ］（ｖ）で囲まれている。また、各パッチＰ［ｍ，ｎ］は、それぞれ４つのコーナーＣ１［ｍ，ｎ］，Ｃ２［ｍ，ｎ］，Ｃ３［ｍ，ｎ］，Ｃ４［ｍ，ｎ］を有している。これらのコーナーＣ１〜Ｃ４における前記メッシュラインの交点をそれぞれ、Ｑ［ｍ，ｎ］，Ｑ［ｍ＋１，ｎ］，Ｑ［ｍ，ｎ＋１］，Ｑ［ｍ＋１，ｎ＋１］と示す。
【００３２】
前記接線ベクトル算出手段３０は、前記メッシュライン保存手段２０から出力された各メッシュラインＵ，Ｖに基づいて各パッチＰの各コーナーＣにおける接線ベクトルを算出するものである。前記接線ベクトル軌跡推定手段４０は、前記算出された各コーナーＣの接線ベクトルのｕ，ｖ方向の軌跡を推定するものである。前記ツイストベクトル算出手段５０は、前記接線ベクトル算出手段３０で算出された各コーナーＣにおける接線ベクトルと前記接線ベクトル軌跡推定手段４０で推定された前記接線ベクトルの軌跡に基づいて各コーナーＣにおけるツイストベクトルを算出するものである。前記曲面算出手段６０は、前記算出された各コーナーＣにおける接線ベクトルとツイストベクトルとに基づいて前記領域に曲面を生成するものである。
【００３３】
また、前記判定手段７０は、前記曲面算出手段６０にて生成された曲面に基づいてツイストベクトルを算出し、このツイストベクトルを用いて曲面が滑らかな形状を有しているかどうかを判定するものである。前記報知手段８０は、前記判定手段７０において、曲面が滑らかな形状を有していない場合に、その旨を使用者等に報知するものである。
【００３４】
以下に、これら各手段の具体的な構成および動作について図２〜図４のフローチャート等を用いて説明する。
【００３５】
まず、前記メッシュライン保存手段２０よりｕ方向の複数のメッシュラインＵ［ｍ，ｎ］（ｕ）とｖ方向の複数のメッシュラインＶ［ｍ，ｎ］（ｖ）とをそれぞれ読み込む（ステップＳ１１）。
【００３６】
次に、接線ベクトル算出手段３０にて、各メッシュラインＵ，Ｖに基づいて各パッチＰ［ｍ，ｎ］の各コーナーＣ１〜Ｃ４におけるｕ方向の接線ベクトルｆ１［ｍ，ｎ］〜ｆ４［ｍ，ｎ］とｖ方向の接線ベクトルｇ１［ｍ，ｎ］〜ｇ４［ｍ，ｎ］とをそれぞれ算出する。
【００３７】
ここで、前記接線ベクトルｆ１，ｆ４は、図７に示すように、コーナーＣ１，Ｃ４における交点Ｑ［ｍ，ｎ］，Ｑ［ｍ，ｎ＋１］をそれぞれ始点とするｕ方向の接線ベクトルであり、接線ベクトルｆ２およびｆ３は、コーナーＣ２，Ｃ３における交点Ｑ［ｍ＋１，ｎ］，Ｑ［ｍ＋１，ｎ＋１］をそれぞれ終点とするｕ方向の接線ベクトルである。また、接線ベクトルｇ１，ｇ２は、コーナーＣ１，Ｃ２における交点Ｑ［ｍ，ｎ］，Ｑ［ｍ＋１，ｎ］をそれぞれ始点とするｖ方向の接線ベクトルであり、接線ベクトルｇ３，ｇ４は、コーナーＣ３，Ｃ４における交点Ｑ［ｍ＋１，ｎ＋１］，Ｑ［ｍ，ｎ＋１］をそれぞれ終点とするｖ方向の接線ベクトルである。
【００３８】
この接線ベクトル算出手段３０では、前記ｕ方向の接線ベクトルｆ１〜ｆ４を式（１）〜（４）に示すように、パッチＰ［ｍ，ｎ］を囲むｕ方向のメッシュラインＵ［ｍ，ｎ］（ｕ）およびＵ［ｍ，ｎ＋１］（ｕ）をそれぞれ微分することで算出する。同様に、前記ｖ方向の接線ベクトルｇ１〜ｇ４を、パッチＰ［ｍ，ｎ］を囲むｖ方向のメッシュラインＶ［ｍ，ｎ］（ｖ）およびＶ［ｍ＋１，ｎ］（ｖ）をそれぞれ微分することで算出する。（ステップＳ１２）。
【００３９】
【数１】
2008234344.tif 000003
【００４０】
【数２】
2008234344.tif 000004
【００４１】
【数３】
2008234344.tif 000005
【００４２】
【数４】
2008234344.tif 000006
【００４３】
前記ｕ［ｘ］は、交点Ｑ［ｘ，ｎ］のｕ座標である。
【００４４】
以上の演算を全てのパッチＰ［ｍ，ｎ］について行い、各パッチＰ［ｍ，ｎ］の各コーナーＣ１〜Ｃ４における接線ベクトルを算出する。ここで、互いに隣接し所定のメッシュラインおよび交点を共有するパッチでは、当該交点における前記共有するメッシュライン上の接線ベクトルは同一となる。例えば、図７に示すように、パッチＰ［ｍ，ｎ］とｖ方向に隣接するパッチＰ［ｍ，ｎ−１］では、このＰ［ｍ，ｎ−１］におけるコーナーＣ４［ｍ，ｎ−１］のｕ方向の接線ベクトルｆ４［ｍ，ｎ−１］は、パッチＰ［ｍ，ｎ］におけるコーナーＣ１［ｍ，ｎ］におけるｕ方向の接線ベクトルｆ１［ｍ，ｎ］と同一となる。
【００４５】
次に、前記接線ベクトル軌跡手段４０にて、各接線ベクトルの各メッシュライン沿いの軌跡を推定する。前記接線ベクトルのうち各交点Ｑを始点とする接線ベクトル（ｆ１，ｆ４，ｇ１，ｇ２）については、その終点のメッシュライン沿いの軌跡を推定し、前記接線ベクトルのうち各交点Ｑを終点とする接線ベクトル（ｆ２，ｆ３，ｇ３，ｇ４）については、その始点のメッシュライン沿いの軌跡を推定する。また、ｕ方向の接線ベクトルｆ１〜ｆ４については、ｖ方向のメッシュライン沿いの軌跡を推定し、ｖ方向の接線ベクトルｇ１〜ｇ４については、ｕ方向のメッシュライン沿いの軌跡を推定する。
【００４６】
ここでは、図８の（ａ）および図８の（ｂ）を用いて、ｖ方向の接線ベクトルｇのｕ方向のメッシュラインＭｕ［１］沿いの軌跡を推定する方法について説明する。
【００４７】
まず、前記接線ベクトル算出手段３０で算出された各接線ベクトルから、図８の（ａ）に示すように、メッシュラインＭｕ［１］上の各交点Ｑ［０，１］〜Ｑ［４，１］を始点とするｖ方向の接線ベクトルｇ１［０，１］、ｇ１［１，１］（＝ｇ２［０，１］），ｇ１［２，１］（＝ｇ２［１，１］）、ｇ１［３，１］（＝ｇ２［２，１］）、ｇ２［３、１］を抽出する。そして、これらの接線ベクトルの終点をスプライン補間して、これら終点のｕ方向のメッシュラインＭｕ［１］沿いの軌跡Ｇｅ［１］（ｕ，ｖ）を算出する。
【００４８】
一方、メッシュラインＭｕ［１］上の各交点Ｑ［０，１］〜Ｑ［４，１］を終点とする前記ｖ方向の接線ベクトルの当該メッシュラインＭｕ［１］沿いの軌跡Ｇｓ［０］（ｕ，ｖ）は、図８（ｂ）に示すように、接線ベクトルｇ４［０，０］、ｇ４［１，０］，ｇ４［２，０］、ｇ４［３，０］、ｇ３［３、０］の始点をスプライン補間することで算出する。
【００４９】
このようにして、各交点を始点とするｖ方向の接線ベクトルｇの終点のｕ方向のメッシュライン沿いの軌跡Ｇｅ［ｎ］（ｕ，ｖ）と、各交点を終点とするｖ方向の接線ベクトルｇの始点のｕ方向のメッシュライン沿いの軌跡Ｇｓ［ｎ］（ｕ，ｖ）を算出する。同様にして、各交点を始点とするｕ方向の接線ベクトルｆの終点のｖ方向のメッシュライン沿いの軌跡Ｆｅ［ｍ］（ｕ，ｖ）と、各交点を終点とするｕ方向の接線ベクトルの始点のｖ方向のメッシュライン沿いの軌跡Ｆｓ［ｍ］（ｕ，ｖ）を算出する（ステップＳ１３）。これらの軌跡は、曲面の接線ベクトルがメッシュラインに沿ってどのように変化しているかを表すものであり、曲面形状の変化傾向を表すものである。
【００５０】
ここで、図９（ａ）に示すように、各パッチＰ［ｍ，ｎ］の各コーナーＣ１〜Ｃ４における接線ベクトルとして、各交点が例えば全て始点となるように設定することも可能である。しかしながら、このように設定してしまうと、図９（ｂ）に示すように、同じパッチＰｘのコーナーＣ１における接線ベクトルであっても、ｕｖ方向を反転させた際にその値が変化してしまう可能性が高い。このように各接線ベクトルの値が変化するとこれら接線ベクトルの軌跡の形状がＧｘからＧｘ´に変化し、後述するようにこの接線ベクトルの軌跡を用いて曲面を生成した際に、生成される曲面の形状が変化してしまう場合がある。すなわち、各パッチの各コーナーにおける接線ベクトルを前記のように設定してしまうと、曲面の形状がｕｖ方向に依存してしまい好ましくない。これに対して、本実施形態では、前記のように、パッチの各コーナーのうちそのコーナーからパッチがｕ方向，ｖ方向の＋側に延びるコーナーについては、そのｕ方向，ｖ方向の接線ベクトルをそれぞれ各交点を始点とするベクトルとして設定し、そのコーナーからパッチがｕ方向，ｖ方向の−側に延びるコーナーについては、そのｕ方向，ｖ方向の接線ベクトルをそれぞれ各交点を終点とするベクトルとして設定し、各パッチの接線ベクトルがそれぞれパッチの内側で算出されるように構成している。このようにすれば、ｕｖ方向を反転させたとしても前記接線ベクトルの始点および終点の軌跡が変化してしまうのを回避することができ、曲面の形状が演算方向に依存してしまうことを防止することができる。
【００５１】
次に、前記ツイストベクトル算出手段５０にて、各パッチＰ［ｍ，ｎ］の各コーナーＣ１〜Ｃ４におけるツイストベクトルを算出する。このツイストベクトル算出手段５０は、ｕｖ方向ツイストベクトル算出手段５１と、ｕｖ方向平均化手段５２と、規格化手段５３と、補正手段５４とを備えている。
【００５２】
前記ｕｖ方向ツイストベクトル算出手段５１は、前記接線ベクトル軌跡推定手段４０で算出された各接線ベクトルの軌跡に基づいて各パッチＰ［ｍ，ｎ］におけるコーナーＣ１〜Ｃ４のｕ方向のツイストベクトルおよびｖ方向のツイストベクトルを算出するものである。前記ｕｖ平均化手段５２は、このｕｖ方向ツイストベクトル算出手段５１にて算出された各パッチＰ［ｍ，ｎ］の各コーナーＣ１〜Ｃ４におけるｕ方向およびｖ方向のツイストベクトルをコーナーＣ１〜Ｃ４毎に平均化しｕｖ平均ツイストベクトルを算出するものである。前記規格手段５３は、所定の交点周りで各コーナーが互いに隣接している場合に、各コーナーの前記ｕｖ平均ツイストベクトルに基づいてこれら隣接するコーナーについて後述する単位ツイストベクトルを算出するものである。前記補正手段５４は、この単位ツイストベクトルに基づいて各パッチの各コーナーＣ１〜Ｃ４の最終ツイストベクトルを算出する手段である。
【００５３】
まず、前記ｕｖ方向ツイストベクトル算出手段５１にて、前記接線ベクトル軌跡推定手段４０で算出された各接線ベクトルの軌跡Ｆｅ［ｎ］，Ｆｓ［ｎ］，Ｇｅ［ｎ］，Ｇｓ［ｎ］に基づいて、各パッチＰ［ｍ，ｎ］の各コーナーＣ１〜Ｃ４のｕ方向のツイストベクトルｔｗ１＿ｕ［ｍ，ｎ］〜ｔｗ４＿ｕ［ｍ，ｎ］、およびｖ方向のツイストベクトルｔｗ１＿ｖ［ｍ，ｎ］〜ｔｗ４＿ｖ［ｍ，ｎ］を算出する（ステップＳ１４）。
【００５４】
ここでは、例として、コーナーＣ１にて各方向のツイストベクトルｔｗ１＿ｕ［ｍ，ｎ］，ｔｗ１＿ｖ［ｍ，ｎ］を算出する方法について説明する。まず、図１０に示すように、ｖ方向の接線ベクトルｇ１［ｍ，ｎ］のｕ方向のメッシュライン沿いの軌跡であるＧｅ［ｎ］（ｕ，ｖ）から、前記接線ベクトルｇ１［ｍ，ｎ］のｕ方向に対する変化ベクトルｑ１［ｍ，ｎ］を算出する。具体的には、式（５）のようにＧｅ［ｎ］（ｕ，ｖ）を微分して変化ベクトルｑ１［ｍ，ｎ］を算出する。
【００５５】
【数５】
2008234344.tif 000007
【００５６】
この変化ベクトルｑ１［ｍ，ｎ］は、コーナーＣ１近傍においてｖ方向の接線ベクトルがｕ方向に沿ってどのように変化するかを表したものであり、パッチＰ［ｍ，ｎ］の曲面が、ｕ方向に進むにつれ前記変化ベクトルｑ１の終点Ｑｚに向かってねじれることを示している。ここで、コーナーＣ１近傍において、ｖ方向の接線ベクトルｇ１がｕ方向に沿って変化しない場合、すなわち、曲面がｕ方向に対してねじれない場合には、ｖ方向の接線ベクトルの終点は点Ｑ０となる。従って、このコーナーＣ１における曲面のｕ方向のねじれを示すｕ方向のツイストベクトルｔｗ１＿ｕ［ｍ，ｎ］は、前記Ｑ０から前記Ｑｚに向けてのベクトルとして算出することができ、式（６）のように表せる。
【００５７】
ｔｗ１＿ｕ［ｍ，ｎ］＝Ｑｚ−Ｑ０＝（ｆ１＋ｑ１）−（ｇ１＋ｆ１）＝ｑ１−ｇ１      式（６）
同様にして、図１１に示すように、コーナーＣ１におけるｕ方向の接線ベクトルｆ１［ｍ，ｎ］のｖ方向のメッシュライン沿いの軌跡であるＦｅ［ｍ］（ｕ，ｖ）を用いて、以下の式（７）より接線ベクトルｆ１［ｍ，ｎ］のｖ方向に対する変化ベクトルｒ１［ｍ，ｎ］を算出し、このｒ１［ｍ，ｎ］に基づいてｖ方向のツイストベクトルｔｗ１＿ｖ［ｍ，ｎ］を式（８）より算出する。
【００５８】
【数６】
2008234344.tif 000008
【００５９】
ｔｗ１＿ｖ［ｍ，ｎ］＝Ｒｚ−Ｒ０＝（ｇ１＋ｒ１）−（ｇ１＋ｆ１）＝ｒ１−ｆ１      式（８）
次に、前記ｕｖ方向平均化手段５２にて、前記パッチＰ［ｍ，ｎ］のコーナーＣ１におけるｕ方向のツイストベクトルｔｗ１＿ｕ［ｍ，ｎ］とｖ方向のツイストベクトルｔｗ１＿ｖ［ｍ，ｎ］を図１２の（ａ）および図１２の（ｂ）に示すように、式（９）を用いて平均化して、パッチＰ［ｍ，ｎ］のコーナーＣ１におけるｕｖ平均ツイストベクトルＴｗ１［ｍ，ｎ］を算出する（ステップＳ１５）。
【００６０】
Ｔｗ１［ｍ，ｎ］＝（ｔｗ１＿ｕ［ｍ，ｎ］＋ｔｗ１＿ｖ［ｍ，ｎ］）／２      式（９）
以上の演算を他のコーナーＣ２〜Ｃ４に対して行うとともに全てのパッチＰ［ｍ，ｎ］に対して実施し、各パッチＰ［ｍ，ｎ］の各コーナーＣ１〜Ｃ４におけるｕｖ平均ツイストベクトルＴｗ１［ｍ，ｎ］〜Ｔｗ４［ｍ，ｎ］を算出する。
【００６１】
このようにして各パッチＰ［ｍ，ｎ］の各コーナーＣ１〜Ｃ４においてそれぞれｕ方向の接線ベクトルｆ１〜ｆ４、ｖ方向の接線ベクトルｇ１〜ｇ４およびｕｖ平均ツイストベクトルＴｗ１〜Ｔｗ４が算出されると、これらの値を用いて各パッチＰ［ｍ，ｎ］の曲面Ｓ［ｍ，ｎ］（ｕ，ｖ）を算出することが可能となる。特に、本実施形態では、各コーナーＣ１〜Ｃ４に、曲面のねじれ傾向を表すｕｖ平均ツイストベクトルＴｗ１〜Ｔｗ４を各メッシュラインの形状ひいては曲面の形状を反映させるように与えているので、前記曲面Ｓ［ｍ，ｎ］を前記メッシュラインから想定される滑らかな形状を有するものとして算出することができる。
【００６２】
しかしながら、前記ｕｖ平均ツイストベクトルＴｗ１〜Ｔｗ４を用いて各パッチＰ［ｍ，ｎ］の曲面Ｓ［ｍ，ｎ］を求めると、各パッチ内の曲面は滑らかな形状となるが、隣接するパッチの接続部分が滑らかな形状とならない場合がある。
【００６３】
そこで、本装置１０では、複数のパッチが所定の交点回りで互いに隣接しており、複数のコーナーが所定の交点周りで互いに隣接している場合には、各パッチの接続部分を滑らかな形状とするよう、規格化手段５３および補正手段５４において、当該各コーナーにおける前記ｕｖ平均ツイストベクトルを相互補間する（ステップＳ１６）。
【００６４】
ここでは、図１３に示すように、交点Ｑ［ｍ，ｎ］を囲んで４つのパッチＰ［ｍ，ｎ］，Ｐ［ｍ−１、ｎ］，Ｐ［ｍ−１、ｎ−１］，Ｐ［ｍ、ｎ−１］が隣接し、これらパッチＰのコーナーＣ１［ｍ，ｎ］、Ｃ２［ｍ−１、ｎ］，Ｃ３［ｍ−１、ｎ−１］，Ｃ４［ｍ、ｎ−１］が互いに隣接している場合について説明する。また、この相互補間の手順については、図３のフローチャートを用いて説明する。
【００６５】
まず、前記規格化手段５３にて、前記各コーナーＣ１〜Ｃ４のｕｖ平均ツイストベクトルＴｗ１［ｍ，ｎ］、Ｔｗ２［ｍ−１、ｎ］，Ｔｗ３［ｍ−１、ｎ−１］，Ｔｗ４［ｍ、ｎ−１］をｕ方向成分、ｖ方向成分および面直方向成分に分解し、これらの成分値を各コーナーＣ１〜Ｃ４における接線ベクトルの値に基づいて単位接線ベクトルあたりの値に変換する（ステップＳ２１）。例えば、前記ｕｖ平均ツイストベクトルＴｗ１［ｍ，ｎ］のｕ方向成分Ｔｗ１［ｍ，ｎ］＿ｕの単位ベクトルあたりの値ｔ１＿ｕ［ｍ，ｎ］は、図１５の模式図に示すように、コーナーＣ１［ｍ，ｎ］におけるｕ方向の接線ベクトルｆ１［ｍ，ｎ］とｖ方向の接線ベクトルｇ１［ｍ，ｎ］とを用いて式（１０）にて算出でき、ｖ方向成分Ｔｗ１［ｍ，ｎ］＿ｖの単位ベクトルあたりの値ｔ１＿ｖ［ｍ，ｎ］は、式（１１）にて算出でき、面直方向成分Ｔｗ１［ｍ，ｎ］＿ｈの単位ベクトルあたりの値ｔ１＿ｈ［ｍ，ｎ］については、式（１２）から算出できる。
【００６６】
ｔ１＿ｕ［ｍ，ｎ］＝｜Ｔｗ１［ｍ，ｎ］＿ｕ｜／（｜ｆ１［ｍ，ｎ］｜×｜ｇ１［ｍ，ｎ］｜）      式（１０）
ｔ１＿ｖ［ｍ，ｎ］＝｜Ｔｗ１［ｍ，ｎ］＿ｖ｜／（｜ｆ１［ｍ，ｎ］｜×｜ｇ１［ｍ，ｎ］｜）      式（１１）
ｔ１＿ｈ［ｍ，ｎ］＝｜Ｔｗ１［ｍ，ｎ］＿ｈ｜／（｜ｆ１［ｍ，ｎ］｜×｜ｇ１［ｍ，ｎ］｜）      式（１２）
このようにして、図１４に示すように、各コーナーのｕｖ平均ツイストベクトルの各成分値をそれぞれ単位ベクトルあたりの値に変換する。
【００６７】
次に、補正手段５４にて、各ｕｖ平均ツイストベクトルの各成分値を成分毎に平均化する。例えばｕ方向成分の平均値ｔ＿ｕ＿ａｖｅ［ｍ，ｎ］は式（１３）から算出する。
【００６８】
ｔ＿ｕ＿ａｖｅ［ｍ，ｎ］＝（ｔ１＿ｕ［ｍ，ｎ］＋ｔ２＿ｕ［ｍ−１，ｎ］＋ｔ３＿ｕ［ｍ−１，ｎ−１］＋ｔ４＿ｕ［ｍ，ｎ−１］］／４      式（１３）
ここで、ｔ２＿ｕ［ｍ−１，ｎ］は、前記コーナーＣ２［ｍ−１，ｎ］におけるｕｖ平均ツイストベクトルＴｗ２［ｍ−１，ｎ］の単位接線ベクトルあたりのｕ方向成分であり、ｔ３＿ｕ［ｍ−１，ｎ−１］は、前記コーナーＣ３［ｍ−１，ｎ−１］におけるｕｖ平均ツイストベクトルＴｗ３［ｍ−１，ｎ−１］の単位接線ベクトルあたりのｕ方向成分であり、ｔ４＿ｕ［ｍ，ｎ−１］は、前記コーナーＣ４［ｍ，ｎ−１］におけるｕｖ平均ツイストベクトルＴｗ４［ｍ，ｎ−１］の単位接線ベクトルあたりのｕ方向成分である。
【００６９】
同様に、単位接線あたりのｖ方向成分の平均値ｔ＿ｖ＿ａｖｅ［ｍ，ｎ］および単位接線あたりの面直方向成分の平均値ｔ＿ｈ＿ａｖｅ［ｍ，ｎ］を算出する。これらの平均値から、単位ツイストベクトルｔ＿ａｖｅ［ｍ，ｎ］は、ｔ＿ｕ＿ａｖｅ［ｍ，ｎ］，ｔ＿ｖ＿ａｖｅ［ｍ，ｎ］，ｔ＿ｈ＿ａｖｅ［ｍ，ｎ］をｕ方向、ｖ方向、面直方向の各成分とする下記ベクトルとして求められる（ステップＳ２２）。
【００７０】
ｔ＿ａｖｅ［ｍ，ｎ］＝（ｔ＿ｕ＿ａｖｅ［ｍ，ｎ］，ｔ＿ｖ＿ａｖｅ［ｍ，ｎ］，ｔ＿ｈ＿ａｖｅ［ｍ，ｎ］）
次に、この単位ツイストベクトルｔ＿ａｖｅ［ｍ，ｎ］を各パッチの大きさで補正することで、図１６に示すように、各パッチの各コーナーにおける最終コーナーツイストベクトルＴ１〜Ｔ４を算出する（ステップＳ２３）。具体的には、前記単位ツイストベクトルｔ＿ａｖｅを各パッチの各コーナーにおけるｕ方向の接線ベクトルとｖ方向の接線ベクトルの大きさを掛けて式（１４）〜（１７）にて算出する。
【００７１】
Ｔ１［ｍ，ｎ］＝ｔ＿ａｖｅ×（｜ｆ１［ｍ，ｎ］｜×｜ｇ１［ｍ，ｎ］｜）      式（１４）
Ｔ２［ｍ−１，ｎ］＝ｔ＿ａｖｅ×（｜ｆ２［ｍ−１，ｎ］｜×｜ｇ２［ｍ−１，ｎ］｜）      式（１５）
Ｔ３［ｍ−１，ｎ−１］＝ｔ＿ａｖｅ×（｜ｆ３［ｍ−１，ｎ−１］｜×｜ｇ３［ｍ−１，ｎ−１］｜）      式（１６）
Ｔ４［ｍ，ｎ−１］＝ｔ＿ａｖｅ×（｜ｆ４［ｍ，ｎ−１］｜×｜ｇ２［ｍ，ｎ−１］｜）      式（１７）
これらの最終コーナーツイストベクトルＴ１〜Ｔ４は、方向が同じで、各パッチの大きさに応じた大きさをそれぞれ有するベクトルである。従って、この最終コーナーツイストベクトルＴ１〜Ｔ４を用いて曲面を算出すれば、交点Ｑ［ｍ，ｎ］周りの面の変化傾向を同一とすることができ、この交点Ｑ［ｍ，ｎ］周りのパッチの接続部分を滑らかにすることができる。また、各最終コーナーツイストベクトルＴ１〜Ｔ４は、それぞれパッチの大きさに応じた大きさを有しているので、前記接続部分において各パッチの特性も維持されることになる。
【００７２】
ここで、図６の（ａ）に示すように、領域全体のコーナーにあたるパッチＰ［０，０］のコーナーＣ１［０，０］、パッチＰ［３，０］のコーナーＣ２［３，０］，パッチＰ［０，２］のコーナーＣ４［０，２］，パッチＰ［３，２］のコーナーＣ３［３，２］は、隣接するコーナーを有しないので、前記ｕｖ方向平均化手段５２にて算出されたｕｖ方向平均ツイストベクトルＴｗをそれぞれ最終コーナーツイストベクトルＴとして出力する。
【００７３】
次に、前記曲面生成手段６０にて、算出された各パッチＰ［ｍ，ｎ］の各コーナーＣ１［ｍ，ｎ］〜Ｃ４［ｍ，ｎ］における最終コーナーツイストベクトルＴ１［ｍ，ｎ］〜Ｔ４［ｍ，ｎ］と、各コーナーにおけるｕ方向接線ベクトルｆ１［ｍ，ｎ］〜ｆ４［ｍ，ｎ］およびｖ方向接線ベクトルｇ１［ｍ，ｎ］〜ｆ４［ｍ，ｎ］に基づいて、各パッチＰ［ｍ，ｎ］に曲面Ｓ［ｍ，ｎ］を算出する（図２のフローチャートのステップＳ１７）。本実施形態では、各曲面Ｓ［ｍ，ｎ］を３次のエルミート関数を用いて式（１８）から算出する。
【００７４】
【数７】
2008234344.tif 000009
【００７５】
ここで、Ｓ（０，０）、Ｓ（１，０）、Ｓ（０，１）、Ｓ（１，１）はそれぞれ交点Ｑ［ｍ，ｎ］，Ｑ［ｍ＋１，ｎ］、Ｑ［ｍ，ｎ＋１］、Ｑ［ｍ＋１，ｎ＋１］の座標を表す。
【００７６】
また、Ｓｕ（ｕ，ｖ）は、Ｓｕ（ｕ，ｖ）＝∂Ｓ（ｕ，ｖ）／∂ｕであり、ｕ方向の接線ベクトルを表す。すなわち、
Ｓｕ（０，０）は接線ベクトルｆ１［ｍ，ｎ］であり、
Ｓｕ（１，０）は接線ベクトルｆ２［ｍ，ｎ］であり、
Ｓｕ（０，１）は接線ベクトルｆ４［ｍ，ｎ］であり、
Ｓｕ（１，１）は接線ベクトルｆ３［ｍ，ｎ］である。
【００７７】
また、Ｓｖ（ｕ，ｖ）はＳｖ（ｕ，ｖ）＝∂Ｓ（ｕ，ｖ）／∂ｖであり、ｖ方向の接線ベクトルを表す。すなわち、
Ｓｖ（０，０）は接線ベクトルｇ１［ｍ，ｎ］であり、
Ｓｖ（１，０）は接線ベクトルｇ２［ｍ，ｎ］であり、
Ｓｖ（０，１）は接線ベクトルｇ４［ｍ，ｎ］であり、
Ｓｖ（１，１）は接線ベクトルｇ３［ｍ，ｎ］である。
【００７８】
また、Ｓｕｖ（ｕ，ｖ）は、Ｓｕｖ（ｕ，ｖ）＝∂２Ｓ（ｕ，ｖ）／∂ｕ∂ｖであり、各コーナーにおけるツイストベクトルを表す。すなわち、
Ｓｕｖ（０，０）は最終コーナーツイストベクトルＴ１［ｍ，ｎ］であり、
Ｓｕｖ（１，０）は最終コーナーツイストベクトルＴ２［ｍ，ｎ］であり、
Ｓｕｖ（０，１）は最終コーナーツイストベクトルＴ４［ｍ，ｎ］であり、
Ｓｕｖ（１，１）は最終コーナーツイストベクトルＴ３［ｍ，ｎ］である。
【００７９】
このようにして、本装置１０では、各接線ベクトルと各最終コーナーツイストベクトルとに基づいて各パッチＰ［ｍ，ｎ］に曲面Ｓ［ｍ，ｎ］を生成し、これらパッチ毎に生成された曲面Ｓ［ｍ，ｎ］に基づいてこれらパッチＰ［ｍ，ｎ］で構成された領域に曲面Ｓｔを生成する。このようにして算出した曲面Ｓｔの例を図１７に示す。この図は、４×３本のメッシュラインで囲まれた６つのパッチに曲面を生成したものである。この図に示すように、本装置１０を用いれば、パッチ間が滑らかに接続されるとともに各パッチの内部に歪を有しない曲面を生成することが可能となる。
【００８０】
次に、前記算出された曲面Ｓｔが全体として滑らかな形状を有しているかどうかを前記判定手段７０を用いて判定する（ステップＳ１８）。ここでは、パッチＰ［ｍ，ｎ］の曲面Ｓ［ｍ，ｎ］毎に判定を行っていく。すなわち、このパッチＰ［ｍ，ｎ］に対して生成された曲面が、例えば、図１８の（ａ）に示すような滑らかな形状を有する所望の曲面Ｓｉｄｅａｌ［ｍ，ｎ］であるのか、図１８の（ｂ）に示すようにパッチ内部の形状が大きく変化するような異常曲面Ｓｆ［ｍ，ｎ］であるのかどうかを判定する。
【００８１】
ここで、本発明に係る曲面生成装置１０では、各最終コーナーツイストベクトルＴ１〜Ｔ４をメッシュラインの形状に基づいて算出しており、パッチＰ［ｍ，ｎ］に図１８の（ｂ）に示すような異常曲面Ｓｆ［ｍ，ｎ］が生成されるのを十分に抑制することができるが、前記判定手段７０にて各パッチＰ［ｍ，ｎ］に生成された曲面Ｓ［ｍ，ｎ］の妥当性を判定することで、例えばメッシュラインが適当な形状を有していなかった等により異常曲面が生成されてしまうのをより確実に回避できるよう構成している。この判定手段７０における判定の手順については、図４のフローチャートを用いて説明する。
【００８２】
図１８の（ｂ）に示すように、パッチＰ［ｍ，ｎ］の内部の形状が大きく変化しているということは、この生成された曲面Ｓｆ［ｍ，ｎ］の内部でのねじれが大きい、あるいは、このねじれが激しく変化していることを意味している。従って、前記判定手段７０では、この曲面のねじれを表すツイストベクトルを用いて曲面Ｓ［ｍ，ｎ］の形状を判定する。ここで、本実施形態では、この判定手段７０において、ツイストベクトルをそれぞれｕ，ｖのローカル座標系で算出し、このツイストベクトルを用いた判定をこのローカル座標で行う。
【００８３】
まず、パッチＰ［ｍ，ｎ］の各コーナーＣ１〜Ｃ４における最終コーナーツイストベクトルＴ１〜Ｔ４が所定範囲内であるかどうかをコーナーツイストベクトル検証手段７２にて検証する。
【００８４】
このコーナーツイストベクトル検証手段７２では、まず、従来の方法を用いて、各最終コーナーツイストベクトルＴ１〜Ｔ４を０としたときの曲面Ｓｔｒａ［ｍ，ｎ］を算出する（ステップＳ３１）。そして、図１９に示すように、パッチＰ［ｍ，ｎ］を囲む各メッシュラインＵ［ｍ，ｎ］（ｕ），Ｕ［ｍ，ｎ＋１］（ｕ），Ｖ［ｍ，ｎ］（ｖ），Ｖ［ｍ＋１，ｎ］（ｖ）上の各点におけるツイストベクトルｔｗ＿ｍ１＿ｔｒａ（ｕ，ｖ）〜ｔｗ＿ｍ４＿ｔｒａ（ｕ，ｖ）をそれぞれ算出する。ここで、曲面Ｓ（ｕ，ｖ）上の点Ｑｘにおけるツイストベクトルｔｗ（ｕ，ｖ）は式（１９）にて算出することができる。
【００８５】
【数８】
2008234344.tif 000010
【００８６】
次に、コーナーＣ１〜Ｃ４について、各コーナーを形成する２本のメッシュライン上の前記ツイストベクトルの存在範囲をそれぞれ算出し、この範囲からツイストベクトルの許容範囲を算出する（ステップＳ３２）。
【００８７】
コーナーＣ１［ｍ，ｎ］について説明すると、まず、前記式（１９）を用いてメッシュラインＵ［ｍ，ｎ］（ｕ）上の各点におけるツイストベクトルｔｗ＿ｍ１＿ｔｒａ（ｕ，ｖ）を算出する。そして、このツイストベクトルをそれぞれｕ方向成分、ｖ方向成分、面直方向に分解して、メッシュラインＵ［ｍ，ｎ］（ｕ）上でのツイストベクトルｔｗ＿ｍ１＿ｔｒａ（ｕ，ｖ）の成分毎の最大値と最小値とを求める。同様に、メッシュラインＶ［ｍ，ｎ］（ｖ）上のツイストベクトルｔｗ＿ｍ４＿ｔｒａ（ｕ，ｖ）の各成分の最大値と最小値とを求める。次に、前記ツイストベクトルｔｗ＿ｍ１＿ｔｒａ（ｕ，ｖ）の各成分の最大最小値とツイストベクトルｔｗ＿ｍ４＿ｔｒａ（ｕ，ｖ）の各成分の最大最小値とを比較して、各成分の共通範囲を抽出し、この共通範囲をコーナーＣ１におけるツイストベクトルの各成分の許容範囲ｄ１＿ｕ、ｄ１＿ｖ、ｄ１＿ｈとして求める。
【００８８】
すなわち、図１９の模式図に示すように、メッシュラインＵ［ｍ，ｎ］（ｕ）上のツイストベクトルｔｗ＿ｍ１＿ｔｒａ（ｕ，ｖ）のｕ方向成分の最大値ｔｍ１＿ｕ＿ｍａｘと、メッシュラインＶ［ｍ，ｎ］（ｖ）上のツイストベクトルｔｗ＿ｍ４＿ｔｒａ（ｕ，ｖ）のｕ方向成分の最大値ｔｍ４＿ｕ＿ｍａｘのうち小さい方（ｔｍ４＿ｕ＿ｍａｘ）と、メッシュラインＵ［ｍ，ｎ］（ｕ）上のツイストベクトルｔｗ＿ｍ１＿ｔｒａ（ｕ，ｖ）のｕ方向成分の最小値ｔｍ１＿ｕ＿ｍｉｎとメッシュラインＶ［ｍ，ｎ］（ｖ）上のツイストベクトルｔｗ＿ｍ４＿ｔｒａ（ｕ，ｖ）のｕ方向成分の最小値ｔｍ４＿ｕ＿ｍｉｎの大きい方（ｔｍ１＿ｕ＿ｍｉｎ）とを抽出し、このｔｍ１＿ｕ＿ｍｉｎからｔｍ４＿ｕ＿ｍａｘまでの範囲をコーナーＣ１におけるｕ方向成分の許容範囲ｄ１＿ｕとして求める。ｖ方向成分および面直方向成分についても同様にして各許容範囲ｄ１＿ｖ、ｄ１＿ｈを算出する。
【００８９】
他のコーナーＣ２〜Ｃ４についても同様にして、各コーナーにおけるツイストベクトルの各成分の許容範囲を算出する。ここで、この許容範囲は、従来の方法で算出した曲面の各コーナー周りの変化の幅を表しており、本装置１０で算出された最終コーナーツイストベクトルＴ１〜Ｔ４がこの変化幅と同等以下であれば、前記コーナー回りにおいて、本装置１０で生成した曲面が従来の方法で算出した曲面と同等以上に滑らかであると言える。
【００９０】
従って、前記コーナーツイストベクトル判定手段７２では、本装置１０で算出された各コーナーＣ１〜Ｃ４における最終コーナーツイストベクトルＴ１〜Ｔ４の各成分値を算出し（ステップＳ３３）、これらの各成分値が前記各許容範囲内かどうかを判定して、これら最終コーナーツイストベクトルＴ１〜Ｔ４の妥当性を判定する（ステップＳ３４）。ここで、各最終コーナーツイストベクトルＴ１〜Ｔ４の各成分値が全て許容範囲内であれば（ステップＳ３４にてＹＥＳ）、これら最終コーナーツイストベクトルＴ１〜Ｔ４が妥当な値であると判定してステップＳ３５に進む。一方、いずれかの成分値が許容範囲を超えていれば、これら最終コーナーツイストベクトルＴ１〜Ｔ４が異常であり、所望の滑らかな曲面が生成されていないとしてステップＳ４１に進み、前記報知手段８０により使用者に警告を発する。
【００９１】
次に、コーナー以外のツイストベクトル算出手段７４にて、前記コーナー以外の点におけるツイストベクトルに基づき曲面の妥当性を判定する。
【００９２】
まず、前記従来の方法で算出したメッシュライン上のツイストベクトルの大きさおよび変化量の各変化幅Ａ，Ｂを算出する。（ステップＳ３５）。次に、本装置１０で生成した曲面Ｓ［ｍ，ｎ］に対して、メッシュライン上の各点におけるツイストベクトルｔｗ＿ｍ１［ｍ，ｎ］（ｕ，ｖ）〜ｔｗ＿ｍ４［ｍ，ｎ］（ｕ，ｖ）を前記式（１９）より算出する（ステップＳ３６）。そして、これらのツイストベクトルの大きさおよび変化量の各変化幅ｘ，ｙが、前記従来の方法で算出した同じメッシュライン上のツイストベクトルの大きさおよび変化量の各変化幅Ａ，Ｂよりも小さいかどうかを判定する（ステップＳ３７）。
【００９３】
この判定がＹＥＳ、すなわち、前記本装置１０で生成した曲面から算出したツイストベクトルｔｗ＿ｍの大きさおよび変化量の各変化幅が、従来の方法で算出した曲面から求めた従来のツイストベクトルｔｗ＿ｍ＿ｔｒａの大きさおよび変化量の各変化幅よりも小さければ、曲面のねじれが小さいすなわちメッシュライン上で曲面が滑らかであると判定しステップＳ３８に進む。一方、前記判定がＮＯである場合には、前記ツイストベクトルｔｗ＿ｍの値が妥当でないとしてステップＳ４１に進み、前記報知手段８０により使用者に警告を発する。
【００９４】
次に、メッシュライン上の点以外の点におけるツイストベクトルの妥当性を判定し、曲面内部のねじれを検証する。
【００９５】
具体的には、前記曲面Ｓ［ｍ，ｎ］の所定の点Ｑｘにおけるツイストベクトルｔｗｘ（ｕ，ｖ）を前記式（１９）より算出し、このツイストベクトルｔｗｘ（ｕ，ｖ）の大きさＬおよび変化量Ｄを算出する（ステップＳ３８）。そして、このツイストベクトルｔｗｘの大きさＬおよび変化量Ｄを予め設定した所定値とそれぞれ比較する（ステップＳ３９）。ここで、このツイストベクトルｔｗｘの大きさＬおよび変化量Ｄが各所定値以上かつ各所定値以下であると判定されれば、パッチＰの内部においても曲面が滑らかであると判断して前記曲面Ｓ［ｍ，ｎ］を出力する（ステップＳ４０）。一方、前記判定がＮＯである場合には、パッチＰの内部における曲面のねじれが大きい、あるいはそのねじれ方が激しいとして、前記報知手段８０により使用者に警告を発して処理を終了する（ステップＳ４１）。
【００９６】
以上のように、本曲面生成装置１０によれば、前記接線ベクトル算出手段３０において前記メッシュラインの形状に基づいて各コーナーＣにおけるｕｖ方向の接線ベクトルｆ，ｇを算出し、前記接線ベクトル軌跡推定手段４０にて、前記各コーナーＣにおけるｕｖ方向の接線ベクトルｆ，ｇの始点あるいは終点を各方向のメッシュラインに沿って補間することで当該接線ベクトルｆ，ｇの各メッシュライン沿いの軌跡Ｆｓ，Ｆｅ，Ｇｓ，Ｇｅを推定し、この軌跡を用いて各コーナーＣにおけるツイストベクトルを算出しているので、各メッシュラインの形状、すなわち、曲面全体の形状を反映させたツイストベクトルを算出することが可能となる。
【００９７】
そして、この接線ベクトルｆ，ｇとツイストベクトルとに基づいて曲面を算出することで、前記メッシュラインの特性すなわちこのメッシュラインから導かれる曲面の特性を反映したより滑らかな曲面を算出することが可能となる。すなわち、従来のように前記ツイストベクトルを強制的に０とすることなく曲面を算出しているので曲面全体に歪が生じてしまうのを抑制することが可能となる。
【００９８】
また、前記のように、接線ベクトルｆ，ｇの始点および終点をそれぞれ各方向のメッシュラインに沿ってスプライン補間することで、当該接線ベクトルｆ，ｇの軌跡Ｆｓ，Ｆｅ，Ｇｓ，Ｇｅを算出するようにすれば、当該軌跡を容易に算出することができるとともに、この軌跡をより滑らかな形状とすることが可能となる。
【００９９】
また、前記のように、前記ｕｖ方向平均化手段５２において、各方向の軌跡に基づいて各コーナーＣにおけるｕｖ方向の各ツイストベクトルｔｗ１＿ｕ［ｍ，ｎ］〜ｔｗ４＿ｕ［ｍ，ｎ］，ｔｗ１＿ｖ［ｍ，ｎ］〜ｔｗ４＿ｖ［ｍ，ｎ］を算出し、これらを平均化することで各コーナーＣのツイストベクトルＴｗ１［ｍ，ｎ］〜Ｔｗ４［ｍ，ｎ］を算出するようにすれば、各方向のツイストベクトルのを均等に反映したツイストベクトルを算出することが可能となり、コーナーＣでの曲面の形状をいずれの方向にも滑らかに変化するような形状とすることができる。
【０１００】
また、前記のように、各コーナーＣが所定の交点周りで互いに隣接している場合に、各コーナーＣのツイストベクトルを相互補間するよう構成すれば、各コーナーＣに制御量としてのツイストベクトルを与えつつ、隣接するパッチＰ間の接続を滑らかにすることが可能となる。
【０１０１】
特に、前記規格手段５３において、ｕｖ方向に平均化した前記ｕｖ平均ツイストベクトルＴｗ１［ｍ，ｎ］〜Ｔｗ４［ｍ，ｎ］の各成分値を単位接線ベクトルあたりの値に変換し、前記補正手段５４において、互いに隣接するコーナーＣ毎の当該単位接線ベクトルあたりの各成分値を平均化して単位ツイストベクトルを算出し、この単位ツイストベクトルを各パッチＰの大きさで補正することで各コーナーＣの最終コーナーツイストベクトルＴ１［ｍ，ｎ］〜Ｔ４［ｍ，ｎ］を算出するよう構成すれば、各パッチＰに生成される曲面の特性を維持しつつ、コーナーＣ間でツイストベクトルが大きく異なってしまうのを抑制してパッチＰ間の接続性を保つことが可能となる。
【０１０２】
また、前記のように、生成された曲面から各点でのツイストベクトルを算出し、このツイストベクトルの大きさおよび変化量が予め設定された所定範囲内であるかどうかを判定する判定手段を設けておけば、生成された曲面の形状が滑らかな形状であるかどうかを比較的容易に判定することができるので、より確実に滑らかな曲面を生成することが可能となる。
【０１０３】
特に、前記判定手段７０において前記曲面が滑らかな形状を有していないと判定された場合にその旨を報知する報知手段８０を設けておけば、使用者等が前記曲面の異常を容易に認識できるので利便性が向上するとともに作業効率が向上する。
【０１０４】
また、前記判定手段７０でのツイストベクトルの大きさおよび変化量の判定をローカル座標系にて行うようにすれば、曲面がメッシュラインで囲まれた面に対してどのように変化しているのかを判断することができるので、例えば直交座標系でみた場合に大きく変化している曲面であっても、曲面が滑らかに連続しているかどうかをより正確に判定することが可能となる。
【０１０５】
ここで、前記実施形態では、曲面を生成する領域が複数のパッチＰに分割されている場合について示したが、このパッチは１つであってもよい。
【０１０６】
また、接線ベクトルの終点および始点の補間方法は、前記スプライン補間に限らず各終点および始点を滑らかに補間できるものであればよい。
【０１０７】
また、前記実施形態では、隣接するコーナーにてツイストベクトルを相互補間する方法として、単位ツイストベクトルを算出してこの単位ツイストベクトルを各パッチの大きさで補正する方法について示したが、この方法に限らず、例えば、隣接するコーナーのツイストベクトルを平均化するようにしてもよい。
【０１０８】
また、接線ベクトルおよびツイストベクトルから曲面を算出する方法は前記に限らず、これらのベクトルを制御量として与える方法であればどのような方法であってもよい。
【図面の簡単な説明】
【０１０９】
【図１】従来の方法によって生成された曲面例を示す概略斜視図である。
【図２】本発明の実施形態に係る曲面生成装置の演算要領を示すフローチャートである。
【図３】図２に示す演算要領のうちツイストベクトルの相互補間方法の詳細を示すフローチャートである。
【図４】図２に示す演算要領のうち曲面異常判定方法の詳細を示すフローチャートである。
【図５】本発明に係る曲面生成装置の概略ブロック図である。
【図６】（ａ）本発明に係る曲面生成装置で曲面を生成する領域を示す図である。（ｂ）（ａ）の部分拡大図である。
【図７】所定のパッチにおける接線ベクトルを示す図である。
【図８】（ａ）所定の接線ベクトルのメッシュライン沿いの軌跡を算出する方法についての説明図である。（ｂ）所定の接線ベクトルのメッシュライン沿いの軌跡を算出する方法についての説明図である。
【図９】（ａ）接線ベクトルのメッシュライン沿いの軌跡を算出する他の方法についての説明図である。（ｂ）  接線ベクトルのメッシュライン沿いの軌跡を算出する他の方法についての説明図である。
【図１０】所定のコーナーにおいてｕ方向のツイストベクトルを算出する方法についての説明図である。
【図１１】所定のコーナーにおいてｖ方向のツイストベクトルを算出する方法についての説明図である。
【図１２】（ａ）所定のコーナーにおいてｕ方向のツイストベクトルとｖ方向のツイストベクトルを平均化する方法についての説明図である。（ｂ）（ａ）の部分拡大図である。
【図１３】所定の交点周りのコーナーにおけるツイストベクトルを示す説明図である。
【図１４】所定の交点周りのコーナーにおけるツイストベクトルを相互補間する方法についての説明図である。
【図１５】単位ツイストベクトルの算出方法についての説明図である。
【図１６】本曲面生成装置１０にて算出された各コーナーの最終のコーナーツイストベクトルを示す図である。
【図１７】本曲面生成装置１０にて生成した曲面例を示す概略斜視図である。
【図１８】（ａ）所定のパッチに生成される理想的な曲面を示す図である。（ｂ）所定のパッチに生成された異常な形状を有する曲面を示す図である。
【図１９】本曲面生成装置１０にて行う各ツイストベクトルの判定方法についての説明図である。
【符号の説明】
【０１１０】
１０    曲面生成装置
３０    接線ベクトル算出手段
４０    接線ベクトル軌跡推定手段
５０    ツイストベクトル算出手段
５１    ｕｖ方向ツイストベクトル算出手段
５２    ｕｖ方向平均化手段
５３    規格化手段
５４    補正手段
６０    曲面算出手段
７０    判定手段
７２    コーナーツイストベクトル判定手段
７４    コーナー以外のツイストベクトル判定手段
８０    報知手段
Ｐ    パッチ
Ｃ１〜Ｃ４    コーナー
ｆ１〜ｆ４    ｕ方向の接線ベクトル
ｇ１〜ｇ４    ｖ方向の接線ベクトル
Ｆｅ    ｕ方向の接線ベクトルの終点の軌跡
Ｆｓ    ｕ方向の接線ベクトルの始点の軌跡
Ｇｅ    ｖ方向の接線ベクトルの終点の軌跡
Ｇｓ    ｖ方向の接線ベクトルの始点の軌跡
ｔｗ１＿ｕ〜ｔｗ４＿ｕ    ｕ方向のツイストベクトル
ｔｗ１＿ｖ〜ｔｗ４＿ｖ    ｖ方向のツイストベクトル
Ｔｗ１〜Ｔｗ４    ｕｖ平均ツイストベクトル
ｔ＿ａｖｅ    単位ツイストベクトル
Ｔ１〜Ｔ４    最終コーナーツイストベクトル
Ｓ    曲面
【図２】
2008234344.tif 000011
【図３】
2008234344.tif 000012
【図４】
2008234344.tif 000013
【図５】
2008234344.tif 000014
【図６】
2008234344.tif 000015
【図７】
2008234344.tif 000016
【図８】
2008234344.tif 000017
【図９】
2008234344.tif 000018
【図１０】
2008234344.tif 000019
【図１１】
2008234344.tif 000020
【図１２】
2008234344.tif 000021
【図１３】
2008234344.tif 000022
【図１４】
2008234344.tif 000023
【図１５】
2008234344.tif 000024
【図１６】
2008234344.tif 000025
【図１８】
2008234344.tif 000026
【図１９】
2008234344.tif 000027
【図１】
2008234344.tif 000028
【図１７】
2008234344.tif 000029