(57)【特許請求の範囲】
【請求項１】
３Ｄモデリングされた物体を設計するコンピュータ実施方法であって、
前記３Ｄモデリングされた物体を表し、制御点のグリッドによって定義されるＮＵＲＢＳ曲面を、コンピュータシステムに提供するステップと、
前記コンピュータシステムによって、前記ＮＵＲＢＳ曲面に属する表面点のグリッドを決定するステップであって、前記表面点のグリッドは、事前決定された可逆関数に従って、前記制御点のグリッドに対応するステップと、
前記コンピュータシステムによって、前記ＮＵＲＢＳ曲面を、および前記ＮＵＲＢＳ曲面上に前記表面点のグリッドを表示するステップと、
グラフィカルユーザ対話によって、前記表面点のサブセットを選択するステップと、
グラフィカルユーザ対話によって、前記選択された表面点のサブセットの位置を変更し、前記コンピュータシステムによって、しかるべく、前記ＮＵＲＢＳ曲面をリアルタイムに更新するステップであって、前記更新するステップは、前記事前決定された可逆関数に従って、前記制御点のグリッドを更新することによって実行され、前記制御点のグリッドを更新することは、前記選択された表面点のサブセットの位置が変更された通りであるという制約の下で、前記ＮＵＲＢＳ曲面の幾何学的変形をペナライズすることを最大化または最小化することによって実行される、ステップと
を含む方法。
【請求項２】
前記表面点のグリッドが、グレヴィル点のグリッドである、請求項１に記載の方法。
【請求項３】
前記ペナライズすることは、各それぞれの制御点について、前記更新前のそれぞれの制御点と前記更新後の前記それぞれの制御点との間の距離に対してペナライズすることによって実行される、請求項１に記載の方法。
【請求項４】
各それぞれの制御点について、前記それぞれの制御点に対応する前記表面点と前記選択された表面点のサブセットとの間の距離の増加関数である重みを用いて、前記更新前の前記それぞれの制御点と前記更新後の前記それぞれの制御点との間の距離をペナライズすることが実行される、請求項３に記載の方法。
【請求項５】
前記増加関数は、前記選択された表面点のサブセット内の表面点に対応する各それぞれの制御点については、１に等しく、選択された非角隅表面点に中心が置かれた前記表面点のグリッド内の最大の正方形に属する表面点に対応する、もしくは選択された角隅表面点を含む前記表面点のグリッドのクオータ（ｑｕａｒｔｅｒ）に属する表面点に対応する、他の各それぞれの制御点については、１よりも厳密に大きい第１の事前決定された数に等しく、他の各それぞれの制御点については、前記第１の事前決定された数よりも１０倍大きい第２の事前決定された数に等しい、インジケータ関数である、請求項４に記載の方法。
【請求項６】
グラフィカルユーザ対話によって、前記第１の事前決定された数を設定するステップを含む、請求項５に記載の方法。
【請求項７】
請求項１乃至６のいずれか１項に記載の方法を実行するための命令を含むコンピュータプログラム。
【請求項８】
メモリおよびグラフィカルユーザインターフェースに結合されたプロセッサを備え、前記メモリが請求項７に記載のコンピュータプログラムを記録している、ＣＡＤシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、特に、コンピュータ援用設計（ＣＡＤ）の分野に関し、より詳細には、グラフィカルユーザ対話によって３Ｄモデリングされた物体を設計するための方法、プログラム、およびシステムに関する。
【背景技術】
【０００２】
物体の設計、エンジニアリング、および製造のための数々のシステムおよびプログラムが、市場で提供されている。ＣＡＤは、コンピュータ援用設計の頭字語であり、例えば、それは、物体を設計するためのソフトウェアソリューションに関する。ＣＡＥは、コンピュータ援用エンジニアリングの頭字語であり、例えば、それは、将来の製品の物理的挙動をシミュレートするためのソフトウェアソリューションに関する。ＣＡＭは、コンピュータ援用製造の頭字語であり、例えば、それは、製造プロセスおよび製造作業を定義するためのソフトウェアソリューションに関する。そのようなコンピュータ援用設計システムでは、グラフィカルユーザインターフェースが、技法の効率性に関して、重要な役割を果たす。これらの技法は、製品ライフサイクル管理（ＰＬＭ）システム内に埋め込まれ得る。ＰＬＭとは、製品の開発のために、拡大された事業という概念が意味する構想から生産終了までの間、会社が製品データをシェアし、共通プロセスを適用し、企業知識を利用するのを手助けする、ビジネス戦略のことである。
【０００３】
ダッソーシステムズによって（ＣＡＴＩＡ、ＥＮＯＶＩＡ、およびＤＥＬＭＩＡという商標の下で）提供されるＰＬＭソリューションは、製品エンジニアリング知識を組織化するエンジニアリングハブ、製造エンジニアリング知識を管理するマニュファクチャリングハブ、ならびにエンジニアリングハブおよびマニュファクチャリングハブの両方へのエンタープライズ統合および接続を可能にするエンタープライズハブを提供する。すべてが一緒になって、システムは、最適化された製品定義、製造準備、生産、およびサービスを促進する、動的な知識ベースの製品作成および決定支援を可能にする、製品、プロセス、リソースを結び付ける開放型オブジェクトモデルを提供する。
【０００４】
ＣＡＤは、３Ｄモデリングされた物体を表すための表面をしばしば必要とする。動機が製造される製品の美的側面を含む、クラスＡ設計を含む、特にスタイリング設計において、サーフェスモデリングが、使用される。一般的な表面は、ベジエ曲線および曲面モデル、Ｂスプライン曲線および曲面モデル、ならびにより一般的にはＮＵＲＢＳ（非一様有理Ｂスプライン）曲線および曲面モデルの数学的操作によって提供される。これらすべてのモデルは、「制御点」という非常にポピュラな概念を提供する。表面は、点のグリッドによって定義され、これらの点を適切に動かすことが、表面の形状を変化させる。代表的な参考文献は、以下の通りである。
●非特許文献１を参照
●非特許文献２を参照
【０００５】
既存のシステムは、表面を変更するための、ユーザによる容易な対話的操作を可能にすることを目的とする。当然ながら、容易な操作は、直感的で予測可能であり、表面の形状の変化のさせ方を初心者がすぐに理解すること、および操作の結果である表面を熟練ユーザが予想することができることを意味する。
【０００６】
ＮＵＲＢＳ曲面を形作るためのいくつかの方法は、幾何学的制約または物理的挙動を含む。幾何学的制約方法は、変形された表面が、ユーザ定義の幾何学形状（点、点のセット、曲線）に合致するように、新しい制御点を計算する。物理的挙動は、弾性材料のように振る舞う表面にユーザが力を加えることである。参考文献は、以下のものを含む。
●非特許文献３を参照
●非特許文献４を参照
【０００７】
こうした状況において、３Ｄモデリングされた物体を設計するための改善されたソリューションが、依然として必要とされている。
【先行技術文献】
【非特許文献】
【０００８】
【非特許文献１】Ｔｈｅ  ＮＵＲＢＳ  ｂｏｏｋ、Ｌ．Ｐｉｅｇｌ、Ｗ．Ｔｉｌｅｒ、Ｓｐｒｉｎｇｅｒ  Ｓｃｉｅｎｃｅ、１９９７年
【非特許文献２】Ｃｕｒｖｅｓ  ａｎｄ  ｓｕｒｆａｃｅｓ  ｆｏｒ  ｃｏｍｐｕｔｅｒ  ａｉｄｅｄ  ｇｅｏｍｅｔｒｉｃ  ｄｅｓｉｇｎ：ａ  ｐｒａｃｔｉｃａｌ  ｇｕｉｄｅ、Ｇ．Ｆａｒｉｎ、Ｈａｒｄｃｏｖｅｒ、１９９６年
【非特許文献３】Ｄｙｎａｍｉｃ  ＮＵＲＢＳ  ｗｉｔｈ  Ｇｅｏｍｅｔｒｉｃ  Ｃｏｎｓｔｒａｉｎｔｓ  ｆｏｒ  Ｉｎｔｅｒａｃｔｉｖｅ  Ｓｃｕｌｐｔｉｎｇ、Ｄ．Ｔｅｒｚｏｐｏｕｌｏｓ、Ｈ．Ｑｉｎ、ＡＣＭ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ｇｒａｐｈｉｃｓ、１３（２）、１９９４年４月、１０３〜１３６ページ
【非特許文献４】Ｍｏｄｉｆｙｉｎｇ  ｔｈｅ  ｓｈａｐｅ  ｏｆ  ＮＵＲＢＳ  ｓｕｒｆａｃｅｓ  ｗｉｔｈ  ｇｅｏｍｅｔｒｉｃ  ｃｏｎｓｔｒａｉｎｔｓ、Ｓ．Ｍ．Ｈｕ、Ｙ．Ｆ．Ｌｉ、Ｔ．Ｊｕ、Ｘ．Ｚｈｕ、Ｃｏｍｐｕｔｅｒ  Ａｉｄｅｄ  Ｄｅｓｉｇｎ、３３（２００１年）、９０３〜９１２ページ
【非特許文献５】Ｇｅｒａｌｄ  Ｆａｒｉｎ、「Ｃｕｒｖｅｓ  ａｎｄ  ｓｕｒｆａｃｅｓ  ｆｏｒ  Ｃｏｍｐｕｔｅｒ  Ａｉｄｅｄ  Ｇｅｏｍｅｔｒｉｃ  Ｄｅｓｉｇｎ」、Ｍｏｒｇａｎ  Ｋａｕｆｍａｎｎ編、（２００１年）
【発明の概要】
【課題を解決するための手段】
【０００９】
したがって、３Ｄモデリングされた物体を設計するためのコンピュータ実施方法が、提供される。方法は、３Ｄモデリングされた物体を表し、制御点のグリッドによって定義されるＮＵＲＢＳ曲面を、コンピュータシステムに提供するステップを含む。方法は、コンピュータシステムによって、ＮＵＲＢＳ曲面に属する表面点のグリッドを決定するステップも含む。表面点のグリッドは、事前決定された可逆関数に従って、制御点のグリッドに対応する。方法は、コンピュータシステムによって、ＮＵＲＢＳ曲面を、およびＮＵＲＢＳ曲面上に表面点のグリッドを表示するステップも含む。方法は、グラフィカルユーザ対話によって、表面点のサブセットを選択するステップも含む。方法は、グラフィカルユーザ対話によって、表面点の選択されたサブセットの位置を変更し、コンピュータシステムによって、しかるべく、表面をリアルタイムに更新するステップであって、更新は、事前決定された可逆関数に従って実行される、ステップも含む。
【００１０】
方法は、以下のうちの１または複数を含み得、すなわち、
−  表面点のグリッドは、グレヴィル点のグリッドであること、
−  制御点のグリッドの更新は、表面点の選択されたサブセットの位置は変更された通りであるという制約の下で、ＮＵＲＢＳ曲面の幾何学的変形に対してペナライズするプログラムを最適化することによって実行されること、
−  プログラムは、各それぞれの制御点について、更新前のそれぞれの制御点と更新後のそれぞれの制御点との間の距離に対してペナライズすることによって、ＮＵＲＢＳ曲面の幾何学的変形に対してペナライズすること、
−  プログラムは、各それぞれの制御点について、それぞれの制御点に対応する表面点と表面点の選択されたサブセットとの間の距離の増加関数である重みを用いて、更新前のそれぞれの制御点と更新後のそれぞれの制御点との間の距離に対してペナライズすること、
−  方法は、グラフィカルユーザ対話によって、増加関数をパラメータ化するステップをさらに含むこと、
−  増加関数は、表面点の選択されたサブセット内の表面点に対応する各それぞれの制御点については、１に等しく、選択された非角隅表面点に中心が置かれた表面点のグリッド内の最大の正方形に属する表面点に対応する、もしくは選択された角隅表面点を含む表面点のグリッドのクオータ（ｑｕａｒｔｅｒ）に属する表面点に対応する、他の各それぞれの制御点については、１よりも厳密に大きい第１の事前決定された数に等しく、他の各それぞれの制御点については、第１の事前決定された数よりも１０倍大きい第２の事前決定された数に等しい、インジケータ関数であること、
−  方法は、グラフィカルユーザ対話によって、第１の事前決定された数を設定するステップを含むこと、
−  プログラムは、更新後および更新前それぞれの制御点に依存する、凸エネルギーであること、
−  プログラムは、タイプが、
【００１１】
【数１】
0006734044.tif 000002
【００１２】
であり、ここで、ＰijおよびＱijは、それぞれ、更新後および更新前の制御点であること、
−  プログラムは、ラグランジュの解法を用いて解かれること、
−  ラグランジュの解法は、表面点の選択されたサブセットの位置を入力として取り、更新された制御点を出力する付随関数のパラメータを決定し、次に、変更された通りの表面点の選択されたサブセットの位置に付随関数を適用するステップを含むこと、および／または
−  表面点の選択されたサブセットの位置を変更し、制御点のグリッドを更新するステップは、表面点の同じ選択されたサブセット、最初の反復において計算および記憶され、その後、以降の反復にわたって取り出される付随関数のパラメータを用いて、反復されること
のうちの１または複数を含み得る。
【００１３】
方法を実行するための命令を含むコンピュータプログラムが、さらに提供される。
【００１４】
コンピュータプログラムを記録したコンピュータ可読データ記憶媒体が、さらに提供される。
【００１５】
メモリおよびグラフィカルユーザインターフェースに結合されたプロセッサを備え、メモリがコンピュータプログラムを記録している、ＣＡＤシステムが、さらに提供される。
【００１６】
上述の設計方法に従って工業製品を表す３次元物体を設計し、次に、設計された３次元物体に基づいて工業製品を製造するステップを含む、工業製品を製造するための方法が、さらに提供される。
【図面の簡単な説明】
【００１７】
本発明の実施形態が、非限定的な例によって、添付の図面を参照しながら、今から説明される。
【図１】方法の例のフローチャートである。
【図２】システムのグラフィカルユーザインターフェースの例を示す図である。
【図３】システムの例を示す図である。
【図４】方法を示す図である。
【図５】方法を示す図である。
【図６】方法を示す図である。
【図７】方法を示す図である。
【図８】方法を示す図である。
【図９】方法を示す図である。
【図１０】方法を示す図である。
【図１１】方法を示す図である。
【図１２】方法を示す図である。
【図１３】方法を示す図である。
【図１４】方法を示す図である。
【図１５】方法を示す図である。
【図１６】方法を示す図である。
【図１７】方法を示す図である。
【発明を実施するための形態】
【００１８】
図１のフローチャートを参照すると、３Ｄモデリングされた物体を設計するためのコンピュータ実施方法が、提案されている。方法は、ＮＵＲＢＳ曲面（例えば、ベジエ曲面）をコンピュータシステムに提供するステップＳ１０を含む。ＮＵＲＢＳは、３Ｄモデリングされた物体（例えば、機械部品などの工業製品、例えば、カメラの外側境界／外被の少なくとも一部を幾何学的に表す３Ｄモデリングされた物体）を表し、それ自体が知られているように、制御点のグリッドによって定義される。方法は、コンピュータシステムによって、ＮＵＲＢＳ曲面に属する表面点のグリッドを決定するステップＳ２０も含む。Ｓ２０において決定された表面点のグリッドは、事前決定された可逆関数（例えば、与えられた１対のパラメータにおけるＮＵＲＢＳ曲面の評価）に従って、制御点のグリッドに対応する。コンピュータシステムは、いつでもＳ２０を実行し得るように、事前決定された可逆関数を、または事前決定された可逆関数がそれから導出されることができる規則を維持し得る。これは、数学的スキームをどのように実施すべきかを、そのようなもの（後で提供される現状に適用可能な数学的スキームの例）を提供されたときに、開発者が知っている、ＣＡＤの分野からそのようなものとして知られる。方法は、コンピュータシステムによって、ＮＵＲＢＳ曲面を、およびＮＵＲＢＳ曲面上に表面点のグリッドを（例えば、ユーザに対して、例えば、スクリーン上で）表示するステップＳ３０も含む。方法は、次に、グラフィカルユーザ対話によって、表面点のサブセット（例えば、任意のサブセット）を選択するステップＳ４０を含む。方法は、次に、ブロックＳ５０において、グラフィカルユーザ対話によって、表面点の選択されたサブセットの位置を変更するステップＳ５２を実行する。方法は、コンピュータシステムによって（例えば、自動的に）、しかるべく、表面をリアルタイムに更新するステップＳ５４を実行する。更新は、Ｓ５２において実行された変更に従って（リアルタイムに、例えば、変更に対して自動的および／または即座に反応して）、ならびに事前決定された可逆関数に従って実行される。図１に示されるように、更新Ｓ５４は、ＮＵＲＢＳ曲面の定義において反映され得、それによって、繰り返されるＳ１０、Ｓ２０、Ｓ３０の再実行において反映され得る。そのような点では、もちろん、Ｓ４０および／またはＳ５０も、やはり反復され得る。このループは、熟練したコンピュータ科学者には明らかである。
【００１９】
そのような方法は、３Ｄモデリングされた物体の設計を改善する。特に、方法は、ＣＡＤおよび工業設計の分野において広く使用されているタイプの曲面であるＮＵＲＢＳ曲面の、グラフィカルユーザ対話による変更を可能にする。グラフィカルユーザ対話は、（Ｓ４０において）点を選択することと、次に（Ｓ５２において）そのような点の位置を変更することからなるので、容易である。Ｓ４０において選択され、Ｓ５２において変更される点は、表面点であるため、ユーザは、表面と直接的に対話して、局所的操作で幾何学的形状を変更することができるので、方法は、（この方法の操作される点とは異なり、制御点が表面上にないＮＵＲＢＳの制御点を、ユーザが操作しなければならないソリューションとは対照的に）非常に直感的なグラフィカルユーザ対話を可能にする。方法は、したがって、「見た通りのものが得られるもの」である挙動を提示する。さらに、変更は、（例えば、局所性および入力された変更の大きさを考慮する）事前決定された可逆関数を介して、ＮＵＲＢＳ曲面の初期制御点に関連する点において実行されるので、方法は、そのような事前決定された可逆関数に依存して、（Ｓ５４において）変更を表面において反映させることができ、それによって、（特に、表面がユーザによって前もって設計されていた場合）表面の初期トポロジおよびユーザの意図を維持する。実際、方法は、制御点を削除もせず、制御点を追加もしない。方法は、制御点を変更するだけであり、表面を定義する他のいかなるデータにも触れずにおき得る。ユーザの観点からは、表面は、置き換えられず、変更されるだけである。これは、ディテール密度と、与えられたＮＵＲＢＳ曲面の内在的な数学的定義とを保存する。ユーザは、それによって、変更と結果の表面とをより良く理解する。
【００２０】
また、システムは、方法が高速で柔軟な変更操作を可能にするように、例えば、任意の構成の、任意の数の点のＳ４０における選択を、いくつかの例において提供し得る。特に、例えば、グリッドの同じ行、列にない、例えば、表面点のグリッドにおいて必ずしもトポロジ的に隣接していない（すなわち、必ずしもグリッドにおける隣接点ではない）、いくつかの表面点が、選択され、変更され得る。変更は、任意の方法で、例えば、必ずしも同種の方法でとは限らずに、選択された表面点において実行され得る。例では、方法は、特に、Ｓ５４は、線形時間で実行され、それによって、応答性が高く、したがって、ユーザフレンドリである。例では、方法は、変更によって誘発される振動の導入を制限し、それによって、より直感的な結果を提供する。
【００２１】
方法は、コンピュータによって実施される。方法のステップは、実際に、コンピュータシステムにおいて、コンピュータシステムだけによって実行され、またはグラフィカルユーザ対話によって実行される（すなわち、ユーザが、コンピュータシステムのＧＵＩと対話する）。したがって、明確にコンピュータシステムによって実行されるステップは、完全に自動的に実行され得る。例では、方法のステップの少なくともいくつかのトリガリングは、ユーザ−コンピュータ対話を通して実行され得る。特に、Ｓ１０の提供は、ユーザによって実行またはトリガされ得る。必要とされるユーザ−コンピュータ対話のレベルは、予見され、ユーザの望みを実施するための必要とバランスが取られる、自動性のレベルに依存し得る。例では、このレベルは、ユーザによって定められ、および／または事前に定められ得る。
【００２２】
方法のコンピュータ実施の典型的な例は、この目的のために適合されたシステムを用いて方法を実行することである。システムは、メモリおよびグラフィカルユーザインターフェース（ＧＵＩ）に結合されたプロセッサを備え得、メモリは、方法を実行するための命令を含むコンピュータプログラムを記録している。メモリは、データベースも記憶し得る。メモリは、そのような記憶のために適合された、場合によっては、いくつかの物理的に異なる部分（例えば、プログラム用の１つと、おそらくは、データベース用の１つと）を含む、任意のハードウェアである。
【００２３】
方法は、一般に、モデリングされた物体を操作する。モデリングされた物体は、データベース内に記憶されたデータによって定義される任意の物体である。広義には、「モデリングされた物体」という表現は、データ自体も指す。「３Ｄモデリングされた物体を設計する」とは、３Ｄモデリングされた物体を精巧に作成するプロセスの少なくとも一部である、任意のアクションまたは一連のアクションを指す。したがって、方法は、ゼロから３Ｄモデリングされた物体を作成するステップを含み得る。あるいは、方法は、前もって作成された３Ｄモデリングされた物体を提供し、次に、３Ｄモデリングされた物体を変更するステップを含み得る。
【００２４】
システムのタイプに従って、モデリングされた物体は、異なる種類のデータによって定義され得る。システムは、実際には、ＣＡＤシステム、ＣＡＥシステム、ＣＡＭシステム、ＰＤＭシステム、および／またはＰＬＭシステムの任意の組み合わせであり得る。それらの異なるシステムでは、モデリングされた物体は、対応するデータによって定義される。人は、しかるべく、ＣＡＤオブジェクト、ＰＬＭオブジェクト、ＰＤＭオブジェクト、ＣＡＥオブジェクト、ＣＡＭオブジェクト、ＣＡＤデータ、ＰＬＭデータ、ＰＤＭデータ、ＣＡＭデータ、ＣＡＥデータについて話し得る。しかしながら、モデリングされた物体は、これらのシステムの任意の組み合わせに対応するデータによって定義され得るので、これらのシステムは、他に対して排他的なものではない。システムは、したがって、以下で提供されるそのようなシステムの定義から明らかなように、ＣＡＤシステムでもあり、ＰＬＭシステムでもあり得る。
【００２５】
ＣＡＤシステムによって、ＣＡＴＩＡなど、モデリングされた物体のグラフィカル表現に基づいて、モデリングされた物体を少なくとも設計するように適合された、任意のシステムが、意味される。この場合、モデリングされた物体を定義するデータは、モデリングされた物体の表現を可能にするデータを含む。ＣＡＤシステムは、辺または線を、場合によっては、面または表面を使用する、ＣＡＤのモデリングされた物体の表現を、例えば、提供し得る。線、辺、または表面は、様々な方法で、例えば、非一様有理Ｂスプライン（ＮＵＲＢＳ）で表現され得る。具体的には、ＣＡＤファイルは、仕様を含み、それから、幾何学的形状が、生成され得、それが、次には、表現が生成されることを可能にする。モデリングされた物体の仕様は、単一または複数のＣＡＤファイル内に記憶され得る。ＣＡＤシステムにおけるモデリングされた物体を表すファイルの典型的なサイズは、部品当たり１メガバイトの範囲内にある。モデリングされた物体は、一般に、数千の部品からなる組立体であり得る。
【００２６】
ＣＡＤシステムとの関連では、モデリングされた物体は、一般に、例えば、部品もしくは部品の組立体などの製品、または場合によっては、製品の組立体を表す、３Ｄモデリングされた物体であり得る。「３Ｄモデリングされた物体」によって、３Ｄ表現を可能にするデータによってモデリングされた任意の物体が、意味される。３Ｄ表現は、すべての角度から、部品を見ることを可能にする。例えば、３Ｄモデリングされた物体は、３Ｄ表現された場合、自らの軸のいずれかの周りで、または表現が表示されるスクリーン内のいずれかの軸の周りで、操作および回転させられ得る。これは、特に、３Ｄモデリングされていない、２Ｄアイコンを除外する。３Ｄ表現の表示は、設計を容易にする（すなわち、統計的に設計者が仕事を達成するスピードを速める）。製品の設計は、製造またはモデリングプロセスの一部であるので、これは、工業における製造プロセスをスピードアップする。
【００２７】
３Ｄモデリングされた物体は、（例えば、機械）部品もしくは部品の組立体、またはより一般的に、任意の剛体組立体（例えば、移動メカニズム）など、例えば、ＣＡＤソフトウェアソリューションまたはＣＡＤシステムを用いる、仮想設計が完了した後で、現実世界で製造される製品の幾何学的形状を表し得る。ＣＡＤソフトウェアソリューションは、航空宇宙、建築、建設、消費財、ハイテクデバイス、産業機器、輸送、海上および／もしくは沖合輸送を含む、様々な限りない産業分野における、製品の設計を可能にする。方法によって設計される３Ｄモデリングされた物体は、したがって、（例えば、自動車および軽トラック機器、レーシングカー、オートバイ、トラックおよびモータ機器、トラックおよびバス、列車を含む）地上車の部品、（例えば、機体機器、航空宇宙機器、推進機器、防衛製品、航空機器、宇宙機器を含む）飛行体の部品、（例えば、海軍機器、商船、沖合機器、ヨットおよび作業船、舶用機器を含む）船舶の部品、（例えば、工業製造機械、移動重機械または機器、設置機器、産業機器製品、加工金属製品、タイヤ製造製品を含む）機械部品、（例えば、民生用電子機器、セキュリティおよび／または制御および／または計装製品、コンピューティングおよび通信機器、半導体、医療デバイスおよび機器を含む）電気機械または電子部品、（例えば、家具、住宅および庭製品、レジャー用品、ファッション製品、耐久消費財小売業者製品、非耐久消費財小売業者製品を含む）消費財、（例えば、食品および飲料および煙草、美容およびパーソナルケア、家庭用品パッケージングを含む）パッケージングであり得る、工業製品を表す。方法は、３Ｄモデリングされた物体の美的側面が非常に重要な場合に、特に有益である。これは、３Ｄモデリングされた物体が、見える部品などの、自動車もしくは飛行機の機械部品、または消費財（例えば、カメラなどの電子製品）を表す場合に、そうである。
【００２８】
ＰＬＭシステムによって、物理的な製造製品を表すモデリングされた物体の管理のために適合された任意のシステムが、意味される。ＰＬＭシステムでは、モデリングされた物体は、したがって、物理的な物体の製造に適したデータによって定義される。これらは、一般に、寸法値および／または許容値であり得る。物体の正確な製造のために、そのような値を有することは、実際に、より良いことである。
【００２９】
ＣＡＭは、コンピュータ援用製造を表す。ＣＡＭソリューションによって、製品の製造データを管理するように適合された、任意のソリューション、ハードウェア、またはソフトウェアが、意味される。製造データは、一般に、製造する製品、製造プロセス、および必要とされるリソースに関連するデータを含む。ＣＡＭソリューションは、製品の全製造プロセスを計画し、最適化するために使用される。例えば、それは、実現可能性、製造プロセスの持続時間、または製造プロセスの特定のステップにおいて使用され得る、特定のロボットなどの、リソースの数についての情報を、ＣＡＭユーザに提供することができ、したがって、管理または必要とされる投資についての決定を可能にする。ＣＡＭは、ＣＡＤプロセスおよび潜在的なＣＡＥプロセスの後の後続プロセスである。そのようなＣＡＭソリューションは、ＤＥＬＭＩＡ（登録商標）という商標の下で、ダッソーシステムズによって提供されている。
【００３０】
ＣＡＥは、コンピュータ援用エンジニアリングを表す。ＣＡＥソリューションによって、モデリングされた物体の物理的挙動の分析のために適合された、任意のソリューション、ソフトウェア、またはハードウェアが、意味される。よく知られた広く使用されているＣＡＥ技法は、モデリングされた物体を、物理的挙動が式を通して計算され、シミュレートされることができる要素に分割することを一般に含む、有限要素法（ＦＥＭ）である。そのようなＣＡＥソリューションは、ＳＩＭＵＬＩＡ（登録商標）という商標の下で、ダッソーシステムズによって提供されている。別の成長しつつあるＣＡＥ技法は、ＣＡＤの幾何学的形状データを用いない、物理学の異なる分野に属する複数の構成要素からなる複雑なシステムのモデリングおよび分析を含む。ＣＡＥソリューションは、シミュレーションを可能にし、したがって、製造する製品の最適化、改良、および検証を可能にする。そのようなＣＡＥソリューションは、ＤＹＭＯＬＡ（登録商標）という商標の下で、ダッソーシステムズによって提供されている。
【００３１】
ＰＤＭは、製品データ管理を表す。ＰＤＭソリューションによって、特定の製品に関連するすべてのタイプのデータを管理するように適合された、任意のソリューション、ソフトウェア、またはハードウェアが、意味される。ＰＤＭソリューションは、製品のライフサイクルに関わるすべての当事者によって、すなわち、主にエンジニアによって、しかし、プロジェクトマネージャ、財務担当者、販売担当者、および購入者によっても、使用され得る。ＰＤＭソリューションは、一般に、製品指向データベースに基づいている。それは、ユーザが、製品についての一貫したデータを共有することを可能にし、したがって、当事者が、異なるデータを使用することを防止する。そのようなＰＤＭソリューションは、ＥＮＯＶＩＡ（登録商標）という商標の下で、ダッソーシステムズによって提供されている。
【００３２】
図２は、システムのＧＵＩの例を示しており、システムは、ＣＡＤシステムである。
【００３３】
ＧＵＩ２１００は、典型的なＣＡＤ様のインターフェースであり得、標準的なメニューバー２１１０、２１２０、ならびにボトムツールバー２１４０およびサイドツールバー２１５０を有する。そのようなメニューバーおよびツールバーは、ユーザ選択可能なアイコンのセットを含み、各アイコンは、当技術分野において知られているような、１または複数の操作または機能と関連付けられる。これらのアイコンのいくつかは、ＧＵＩ２１００内に表示された３Ｄモデリングされた物体２０００における編集および／または作業のために適合された、ソフトウェアツールと関連付けられ、表示された３Ｄモデリングされた物体２０００は、例えば、方法を実行した結果である。ソフトウェアツールは、ワークベンチにグループ化される。各ワークベンチは、ソフトウェアツールのサブセットを含む。特に、ワークベンチの１つは、モデリングされた製品２０００の幾何学的形状の特徴を編集するのに適した、編集ワークベンチである。操作の際、設計者は、例えば、物体２０００の一部を事前選択し、その後、操作を開始し（例えば、寸法、色などを変え）、または適切なアイコンを選択することによって、幾何学的形状の制約を編集し得る。例えば、典型的なＣＡＤ操作は、スクリーン上に表示された３Ｄモデリングされた物体の穴開けまたは折り曲げのモデリングである。
【００３４】
ＧＵＩは、例えば、表示された製品２０００に関連するデータ２５００を表示し得る。図２の例では、「フィーチャツリー」として表示されるデータ２５００、およびそれらの３Ｄ表現２０００は、ブレーキキャリパおよびブレーキディスクを含むブレーキ組立体に関する。ＧＵＩは、様々なタイプのグラフィックツール２１３０、２０７０、２０８０を、例えば、物体の３Ｄ方向付けを容易にするためのもの、編集された製品の動作のシミュレーションをトリガするためのもの、または表示された製品２０００の様々な属性をレンダリングするためのものをさらに示し得る。カーソル２０６０は、ユーザがグラフィックツールと対話することを可能にするために、触覚デバイスによって制御され得る。
【００３５】
図３は、システムの例を示しており、システムは、クライアントコンピュータシステム、例えば、ユーザのワークステーションである。
【００３６】
例のクライアントコンピュータは、内部通信バス１０００に接続された中央処理装置（ＣＰＵ）１０１０と、やはりバスに接続されたランダムアクセスメモリ（ＲＡＭ）１０７０とを備える。クライアントコンピュータは、バスに接続されたビデオランダムアクセスメモリ１１００と関連付けられたグラフィカル処理ユニット（ＧＰＵ）１１１０をさらに提供される。ビデオＲＡＭ１１００は、当技術分野では、フレームバッファとしても知られている。大容量記憶デバイスコントローラ１０２０は、ハードドライブ１０３０などの、大容量メモリデバイスへのアクセスを管理する。コンピュータプログラム命令およびデータを有形に実施するのに適した大容量メモリデバイスは、すべての形態の不揮発性メモリを含み、例として、ＥＰＲＯＭ、ＥＥＰＲＯＭ、およびフラッシュメモリデバイスなどの半導体メモリデバイス、内蔵ハードディスクおよび着脱可能ディスクなどの磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭディスク１０４０を含む。上記のいずれも、特別に設計されたＡＳＩＣ（特定用途向け集積回路）によって補完され得、またはそれに組み込まれ得る。ネットワークアダプタ１０５０は、ネットワーク１０６０へのアクセスを管理する。クライアントコンピュータは、カーソル制御デバイスまたはキーボードなどの触覚デバイス１０９０も含み得る。カーソル制御デバイスは、ユーザが、ディスプレイ１０８０上の任意の所望の位置にカーソルを選択的に位置付けることを可能にするために、クライアントコンピュータにおいて使用される。加えて、カーソル制御デバイスは、ユーザが、様々なコマンドを選択すること、および制御信号を入力することを可能にする。カーソル制御デバイスは、システムに制御信号を入力するための数々の信号生成デバイスを含む。典型的には、カーソル制御デバイスは、マウスであり得、マウスのボタンが、信号を生成するために使用される。あるいは、または加えて、クライアントコンピュータシステムは、センシティブ／タッチパッド、および／またはセンシティブ／タッチスクリーンを備え得る。
【００３７】
コンピュータプログラムは、コンピュータによって実行可能な命令を含み得、命令は、上述のシステムに方法を実行させるための手段を構成する。プログラムは、システムのメモリを含む、任意のデータ記憶媒体上に記録可能であり得る。プログラムは、例えば、デジタル電子回路で、またはコンピュータハードウェア、ファームウェア、ソフトウェア、もしくはそれらの組み合わせで実施され得る。プログラムは、装置として、例えば、プログラム可能なプロセッサによる実行のために機械可読記憶デバイス内で有形に実施される製品として実施され得る。方法ステップは、入力データを操作し、出力を生成することによって、方法の機能を実行するために、命令からなるプログラムを実行する、プログラム可能なプロセッサによって実行され得る。プロセッサは、したがって、データ記憶システム、少なくとも１つの入力デバイス、および少なくとも１つの出力デバイスからデータおよび命令を受信し、それらにデータおよび命令を送信するように、プログラム可能であり、結合され得る。アプリケーションプログラムは、高水準手続きプログラミング言語もしくはオブジェクト指向プログラミング言語で、またはそれが望ましければ、アセンブリ言語もしくは機械語で実施され得る。いずれの場合も、言語は、コンパイラ言語またはインタープリタ言語であり得る。プログラムは、完全インストールプログラムまたは更新プログラムであり得る。システム上でのプログラムの適用は、いずれの場合も、方法を実行するための命令をもたらす。
【００３８】
表面点のグリッドがいわゆる「グレヴィル」点のグリッドである方法の例が、今から説明される。グレヴィル点は、グレヴィル横座標におけるＮＵＲＢＳ曲面の評価によって与えられる３Ｄ点である。さらに、グレヴィル横座標は、ＮＵＲＢＳ曲面の制御点のパラメータである。ＮＵＲＢＳ曲面がＳ１０の前に専門家の設計者によって設計されている通常のシナリオでは、グレヴィル点は、グリッド上の連続するグレヴィル点の間の線分が、同じオーダの長さを有する（例えば、線分の少なくとも８０％が、例えば、平均の長さに対してプラスまたはマイナス２０％である）、一様な多面体を形成する。グレヴィル点は、したがって、Ｓ１０において提供された表面についての初期設計者のユーザ意図を伝え、特にこれらの点の操作は、方法を特にユーザフレンドリなものにする。グレヴィル点のグリッドは、制御点のグリッドと、初期設計者がモデルに追加することを望んだディテールの局所密度とを反映する。実際に、設計者がディテールを追加することを望んだ場合、グレヴィル点は、設計者がそのようなディテールを望まなかった場合と比較して、より高い局所密度を有する。方法は、したがって、Ｓ１０において提供される表面が、Ｓ１０の前に人間の設計者によって設計され、いくつかのスケールで局所形状を提示する局所ゾーンを有する、全体的プロセスにおいて、特に有益であると分かり得る。グレヴィル点の密度は、ゾーンの表面エリアによって分けられるゾーンのグレヴィル点の数として見られ得、そのような場合、局所ゾーンが高いレベルのディテールを提示する場合に、（統計的に）より高くなる。グレヴィル点のグリッドは、ＮＵＲＢＳ曲面の等横座標上で定義されるので、境界効果は、制限される。
【００３９】
方法は、３Ｄモデリングされた物体を表すＮＵＲＢＳ曲面（例えば、それの境界）の変更を可能にする。それ自体が知られているように、ＮＵＲＢＳ曲面は、いわゆる「制御点」の（２Ｄ）グリッドによって定義され、「グリッド」の定義は、通常のトポロジ的なものであり、例えば、いくつか（少なくとも２つ）の行と、いくつか（少なくとも２つ）の列とを有する。方法のどこであれ、コンピュータシステムは、ＮＵＲＢＳ曲面に属し、事前決定された可逆関数に従って制御点のグリッドに対応する表面点のグリッドを決定する（Ｓ２０）。表面点は、幾何学的に表面上にある／表面に属する点である。ＮＵＲＢＳの場合、表面の素直なグリッドは、例のグレヴィル点のグリッドである。ＮＵＲＢＳの表面グレヴィル点と（一般には表面自体の外側の）制御点との間の１対１対応を可能にする、事前決定された可逆関数が、ＮＵＲＢＳ幾何学的形状を記述する広く知られた数学から事前決定され、提供される。これらの数学は、しかしながら、完全を期して、これ以降で詳述される。Ｓ２０の決定は、表面およびその制御点が変更されるたびに、グレヴィル点をリアルタイムで再計算する、バックグラウンドプロセスとして、任意の方法で実行され得ることに留意されたい。
【００４０】
ＮＵＲＢＳ曲面は、２Ｄ空間において定義され、３Ｄ空間における値を有する、すなわち、Ｓ（ｕ，ｖ）→（ｘ，ｙ，ｚ）である、ＣＡＤにおいて広く使用されている、曲面である。ＮＵＲＢＳ曲面は、２つの節点ベクトルと、制御点の２次元配列と、場合によっては、使用されるＣＡＤソフトウェアに依存する他のデータとを用いて表される。一般に、節点ベクトルは、浮動小数点値の１Ｄ配列である。制御点の配列は、インデックス付けされ得る。各制御点は、座標ｘ、ｙ、ｚを有する３Ｄ点である。配列内の場所は、０≦ｉ＜Ｍ、０≦ｊ＜Ｎである、２つのインデックスｉ、ｊを用いて定められる。グレヴィルパラメータとして知られるパラメータのセットは、インデックスｉまたはｊの各値が、グレヴィルパラメータ（ｕi，ｖj）に関連付けられることができるように、節点ベクトルから計算されることができる。従来は、グレヴィルパラメータは、節点ベクトルの一定数の連続する値の平均の対である。「次数」と呼ばれる、この一定数は、節点ベクトルの各次元（ｕまたはｖ）によって異なり得る。一般に、１対の次数は、ＮＵＲＢＳ曲面を表すデータに属する。より詳しいことについては、論文（例えば、非特許文献５参照）が、ＮＵＲＢＳ曲面の基本を提供している。
【００４１】
古典的には、ＮＵＲＢＳ曲面は、以下の入力によって定義される。
【００４２】
１．（ｎ＋１）（ｍ＋１）個の制御点
【００４３】
【数２】
0006734044.tif 000003
【００４４】
のグリッド、ｉ∈｛０，．．．，ｎ｝、ｊ∈｛０，．．．，ｍ｝。
【００４５】
２．後で説明されるある理由で、「次数」と名付けられた２つの正の整数ｐ、ｑ。
【００４６】
３．「ｕ節点ベクトル」と名付けられた、実数ｕ0≦…≦ｕi≦ｕi+1≦…≦ｕp+n+1からなる第１の順序付けられたリスト、最初のｐ＋１個の値ｕiは、等しく、最後のｐ＋１個の値ｕiは、等しい。
【００４７】
４．「ｖ節点ベクトル」と名付けられた、実数ｖ0≦…≦ｖj≦ｖj+1≦…≦ｖq+m+1からなる第２の順序付けられたリスト、最初のｑ＋１個の値ｖjは、等しく、最後のｑ＋１個の値ｖjは、等しい。
【００４８】
５．（ｎ＋１）（ｍ＋１）個の重み数ωij＞０のグリッド、ｉ∈｛０，．．．，ｎ｝、ｊ∈｛０，．．．，ｍ｝。
【００４９】
これらの入力は、２つのＢスプライン基底を定義し、それぞれ、
【００５０】
【数３】
0006734044.tif 000004
【００５１】
、ｉ∈｛０，．．．，ｎ｝、および
【００５２】
【数４】
0006734044.tif 000005
【００５３】
、ｊ∈｛０，．．．，ｍ｝と表される。基底Ｂスプライン関数
【００５４】
【数５】
0006734044.tif 000006
【００５５】
および
【００５６】
【数６】
0006734044.tif 000007
【００５７】
は、次数がそれぞれｐおよびｑである、区分的多項式である。それらの詳細な定義は、本発明には有用ではない。ＮＵＲＢＳ曲面
【００５８】
【数７】
0006734044.tif 000008
【００５９】
は、以下の有理パラメータ化によって定義される。
【００６０】
【数８】
0006734044.tif 000009
【００６１】
同様に、ＮＵＲＢＳ曲線
【００６２】
【数９】
0006734044.tif 000010
【００６３】
は、以下の式に含まれる、次数ｐと、ｎ＋１個の制御点Ｐiからなるリストと、重みωiによって定義される。
【００６４】
【数１０】
0006734044.tif 000011
【００６５】
実際に、数学的な観点からは、ＮＵＲＢＳ曲面は、２つのＮＵＲＢＳ曲線のテンソル積である。明確にするために、方法は、ＮＵＲＢＳ曲面の代わりに、ＮＵＲＢＳ曲線を用いて、（以下の図において）主に説明される。
【００６６】
グレヴィル点が、今から説明される。
【００６７】
グレヴィル横座標は、
【００６８】
【数１１】
0006734044.tif 000012
【００６９】
、ｋ∈｛０，．．．，ｎ｝、ｌ∈｛０，．．．，ｍ｝と表される、（ｕ，ｖ）パラメータの特定の値である。それらは、以下の式によって一意的に定義される。
【００７０】
【数１２】
0006734044.tif 000013
【００７１】
言い換えると、グレヴィル横座標は、節点ベクトルのｐ個の（他方はｑ個の）連続する値の平均値である。制御点Ｐklによって最も影響される表面上の点が、いわゆるグレヴィル点
【００７２】
【数１３】
0006734044.tif 000014
【００７３】
である。ある意味で、グレヴィル点は、表面における制御点の影響を明らかにする。グレヴィル点を
【００７４】
【数１４】
0006734044.tif 000015
【００７５】
と表すと、ＮＵＲＢＳ曲面の定義に従って、グレヴィル点と制御点との間の関係は、以下の線形式によって定義される（また、これは、「事前決定された可逆関数」の可能な定式化である）。
【００７６】
【数１５】
0006734044.tif 000016
【００７７】
【数１６】
0006734044.tif 000017
【００７８】
より便利な式は、すべてのグレヴィル点のすべての座標からなる行ベクトルを、
【００７９】
【数１７】
0006734044.tif 000018
【００８０】
のように、Ｇと表すことによって、またすべての制御点のすべての座標からなる行ベクトルを、
【００８１】
【数１８】
0006734044.tif 000019
【００８２】
のように、Ｐと表すことによって、獲得される。
【００８３】
次に、先の式は、線形変換
【００８４】
【数１９】
0006734044.tif 000020
【００８５】
を定義し、
Ｇ＝ＡＰ
および
Ｐ＝Ａ-1Ｇ
である。
【００８６】
線形変換Ａは、（３（ｎ＋１）（ｍ＋１））×（３（ｎ＋１）（ｍ＋１））の正方行列であり、先行技術によれば、それは、（あらゆるグレヴィル点が、１回だけ選択されるならば、行列内の与えられた行が、２回出現しないならば）可逆である。
【００８７】
図４は、ＮＵＲＢＳ曲線を、そのｎ＋１＝６個の制御点Ｐiおよびグレヴィル点Ｇiと一緒に示している。
【００８８】
さて、方法は、ユーザ対話を介する表面の変更を可能にする。そのために、コンピュータシステムは、ＮＵＲＢＳ曲面を、およびＮＵＲＢＳ曲面上に表面点のグリッドを表示する（Ｓ３０）。Ｓ３０の表示は、ここでもやはり、バックグラウンドプロセスとして、例えば、方法全体にわたって（例えば、変更を実行するための方法の反復のどこででも）実行され得る。Ｓ３０の表示は、例えば、表面の境界を強調し、表面に陰影を付けることによって、ＣＡＤにおいて表面を表示する任意の古典的な方法で実行され得る。点のグリッドは、コンピュータシステムの表示デバイス（例えば、スクリーン）上に、例えば、肉太など、強調されて、黒丸または四角形として一般に表示され、それらは、表面のグラフィカル表現の上にあるように表示される。ユーザが、表面および表面上の表面点（例ではグレヴィル点）のグリッドの視覚的表現を提供される限り、他の任意のグラフィカル表現も、使用され得る。
【００８９】
ユーザは、次に、Ｓ４０において、グラフィカルユーザ対話によって、表面点のサブセットを選択する。グラフィカルユーザ対話は、任意の方法で実行され得る。一般に、ユーザは、選択機能を起動し、次に、例えば、カーソル、タッチペン、または自分の指を用いて、表示されたグレヴィル点の表現と対話する。あるいは、ユーザは、（機能を起動することなく）グレヴィル点の表示されたグラフィカル表現と直接的に対話し得る。先に言及されたように、コンピュータシステムは、Ｓ４０において、グリッドの同じ行または列の上にないいくつかの表面点を含む、表面点の任意のサブセットの選択を、実質的に同時に提供し得る。実際に、ユーザは、基準の幾何学的形状から同じ距離にあるいくつかの点を動かすことを望むことがあり、方法は、それによって、ただ１つの操作で、このアクションの達成を提供し得る。ユーザは、例えば、次々に、表面点を選択し得る。
【００９０】
ユーザは、次に、Ｓ５２において、グラフィカルユーザ対話によって、表面点の選択されたサブセットの位置を変更することができる。これは、任意の方法で、例えば、ドラッグアンドドロップ操作によって、実行され得る。ドラッグアンドドロップは、Ｓ４０の選択の後に連続的に続き得る。例えば、ユーザは、表示された表面点をクリック、タッチ、またはダブルクリック、もしくはダブルタッチすることができる。次に、ユーザは、全選択についてのクリック／タッチしながらのドラッグアンドドロップを実行することができる。システムは、そのような操作を、表面点の位置の変更と解釈し、解釈は、任意の古典的な方法で実行される。
【００９１】
コンピュータシステムとのこのグラフィカルユーザ対話全体に従って、方法は、コンピュータシステムによって、表面をリアルタイムに、例えば、自動的に更新する（Ｓ５４）。Ｓ５４の更新は、事前決定された可逆関数に従って実行され、すなわち、グレヴィル点の位置とＮＵＲＢＳの定義、すなわち、制御点の位置との間の数学的な結び付きを維持する。ＮＵＲＢＳを定義する他のすべての上で言及されたデータは、（先に説明されたように）触れずにおかれ得、それによって、ユーザの意図を保存する。Ｓ５４の更新の実施は、上で提供された数学的な説明から得られる。Ｓ５４の更新は、それによって、（制御点の位置を変更することによって）表面を変更し、したがって、Ｓ３０の表示を変更するが、（節点ベクトルはまったく変更されないので）ＮＵＲＢＳ曲面の初期構造を維持し、したがって、ユーザの意図を維持する。操作は、ユーザによって望まれるだけ何度も反復され得るが、反復がどのように処理されるか、ならびに変更の検証および／または取り消しの問題は、実施詳細であることに留意されたい。
【００９２】
従来のモデルの難点は、制御点が表面上に配置されないことである。それらは、表面から離れたグリッドを定義するので、表面の編集は、制御点を動かし、表面の変化をチェックし、必要であれば、再び制御点を動かすということを繰り返す、間接的なプロセスである。物理学ベースの方法は、力の印加を含み、ユーザは、力の大きさおよび位置を調整する必要があり、それは、実際のところ、間接的な操作であるので、同じ難点を抱えている力を印加することによって表面を変形させることは、時に「直接操作」と名付けられるが、ユーザは、実際には表面上の点を扱っていないので、これは、不適切であることに留意されたい。さらに、物理学ベースの方法は、非線形微分方程式を解くこと、および過剰決定された相反する制約を含むが、これは、計算時間を消費し得る。制御点は、ＣＡＤ業界で広く使用されているが、直接的な編集プロセスを通して、表面上に配置された点を動かすことによって、表面の形状を変化させる能力が、有利である。
【００９３】
例の方法は、本質的に表面上に配置されるグレヴィル点を使用することによって、ＮＵＲＢＳ曲面の直接的な変形を可能にする。さらに、スムージングプロセスを通して、また近隣の幾何学的形状を含むことによって、後で説明される別の例の方法は、グレヴィル点編集の望ましくない影響を回避する。先行技術とは対照的に、方法は、何らかの外部の幾何学的形状を選択することにはよらない、表面上の点を選択することによる、直接的な変形を可能にする。この直接的な変形は、非常にポピュラな制御点の直感的な挙動が、保存されるように、スムーズで淀みのないものにされる。数学的な解法は、後で提供される例におけるように、幾何学的な更新を非常に高速で信頼性の高いものにする、線形方程式に基づいている。これは、スタイリング設計の生産性を改善する。
【００９４】
素直なソリューションは、ユーザに、グレヴィル点Ｇの位置をＧ’に変化させ、新しい制御点Ｐ’を、Ｐ’＝Ａ-1Ｇ’を使用することによって計算させることである。発明者らによって実行された実験は、図５に示されるように、このソリューションによって、望ましくない振動が表面上に生じることを示している。左側の部分は、（図示されていない）６個の制御点によって定義された、水平なＮＵＲＢＳ曲線である。ドットは、曲線のグレヴィル点である。グレヴィル点Ｇ4が、Ｇ’4に動かされる。右側の部分は、予想外の振動を有する結果のＮＵＲＢＳ曲線を示している。点線の線分群は、ＮＵＲＢＳ曲線の制御多角形である。この副次的影響は、ＮＵＲＢＳ曲面を操作するために、グレヴィル点が従来は使用されなかった理由である。問題は、以下の誤解から生じている。現実的には、ユーザは、すべてのグレヴィル点を同時に変化させないが、式Ｐ’＝Ａ-1Ｇ’は、ユーザによって選択されたグレヴィル点を考慮して、他のすべてのグレヴィル点を変化させずに保つというように、要求を翻訳する。選択されないグレヴィル点を変化させずに保つことは、ソリューションを大変扱いにくくする。
【００９５】
方法は、いわゆる「緩和」を実行することによって、この問題を軽減し得る。ユーザによって選択されないグレヴィル点を自由にしようという発想である。この自由度のおかげで、選択されない制御点は、変位させられ、ユーザの期待したスムーズな挙動を生じる。特に、Ｓ５４の制御点のグリッドの更新は、表面点の選択されたサブセットの位置は変更された通りである（すなわち、Ｓ５２においてユーザによって要求された通りである）という（例えば、特有の）制約の下で、ＮＵＲＢＳ曲面の変形に対してペナライズするプログラムを最適化することによって実行され得る。言い換えると、Ｓ５４の更新は、ユーザによって選択され、動かされたグレヴィル点は、結局、ユーザがそれらを動かした通りであるが、必要であれば、選択されないグレヴィル点を動かすことによって、ＮＵＲＢＳ幾何学的形状の全体的な変形を最小化することを保証するだけである（一般的に言うと、その目的に役立つプログラムは、適用される数学の分野から知られるような、適切なペナライゼーション条件を用いて最適化される）。したがって、選択されないグレヴィル点は、Ｓ５４を実行するとき、自由にされ、または「緩和される」。
【００９６】
ＮＵＲＢＳ曲面の変形に対してペナライズするために保持される基準は、そのような機能を果たす任意の事前決定された数学的な基準である。例では、プログラムは、各それぞれの制御点について、更新前のそれぞれの制御点と更新後のそれぞれの制御点との間の距離に対してペナライズする。例えば、ユークリッド距離（またはソリューションの単一性を保証する、凸であるエネルギーを誘発する、任意のそのような距離）など、任意の距離が、使用され得る。言い換えると、プログラムは、Ｓ５４の更新後、制御点をそれらの元の位置に向かって、できるだけ（もちろん、ユーザによって課された制約を尊重しながら）「押す」。これは、高速な計算を可能にする。
【００９７】
Ｑijを、ユーザが変形を開始する前の表面である、初期表面の制御点であるとする。
【００９８】
【数２０】
0006734044.tif 000021
【００９９】
であるとし、ここで、Ｖ⊂｛０，．．．，ｎ｝×｛０，．．．，ｍ｝は、ユーザによって選択されたグレヴィル点である。必ずしもすべてのグレヴィル点が、同時に選択されるとは限らず（それも可能であり、その場合は、Ｐ＝Ａ-1Ｇである）、すなわち、Ｖ≠｛０，．．．，ｎ｝×｛０，．．．，ｍ｝であることに留意されたい。例のスムージング原理は、初期制御点Ｑijにできるだけ近い、新しい制御点Ｐijを計算することである。
【０１００】
数学的観点からは、新しい制御点Ｐijは、変化させられたグレヴィル点に従う、すなわち、
【０１０１】
【数２１】
0006734044.tif 000022
【０１０２】
であるという（線形）制約の下で、初期制御点と新しい制御点の間の平方距離の和は、例では、
【０１０３】
【数２２】
0006734044.tif 000023
【０１０４】
のように最小化され得る。
【０１０５】
この和は、すべての重みが１に等しい、後で言及される加重和と見なされることができることに最初に留意されたい。
【０１０６】
先の線形連立方程式は、３（ｎ＋１）（ｍ＋１）個のスカラ未知数（制御点Ｐijの座標）と、３｜Ｖ｜個のスカラ方程式とを有し、ここで、｜Ｖ｜は、集合Ｖの要素の数を表すことにも留意されたい。すべてのグレヴィル点が、選択されるとは限らないので、｜Ｖ｜＜（ｎ＋１）（ｍ＋１）である。結果として、先の線形連立方程式は、方程式よりも多くの未知数を有する。
それは、
【０１０７】
【数２３】
0006734044.tif 000024
【０１０８】
と書かれることができ、ここで、
【０１０９】
【数２４】
0006734044.tif 000025
【０１１０】
は、線形変換
【０１１１】
【数２５】
0006734044.tif 000026
【０１１２】
である。
【０１１３】
数学的な問題は、今では、線形制約の下での２次目的関数の最小化である。やはり、Ｑを、すべての制御点のすべての座標からなる行ベクトルとする。
【０１１４】
【数２６】
0006734044.tif 000027
【０１１５】
標準的な数学的定式化は、以下の通りであり、ここで、Ｐは、未知数であり、Ｑおよび
【０１１６】
【数２７】
0006734044.tif 000028
【０１１７】
は、入力ベクトルであり、
【０１１８】
【数２８】
0006734044.tif 000029
【０１１９】
は、入力行列である。
【０１２０】
【数２９】
0006734044.tif 000030
【０１２１】
図６は、（１）ユーザがグレヴィル点Ｇ4、Ｇ5を選択し、（２）ユーザが点Ｇ4をＧ’4に動かすというシーケンスからもたらされる、ＮＵＲＢＳ曲線を示している。システムの観点からは、選択されたグレヴィル点Ｇ5は、固定的に設定され、選択されないグレヴィル点Ｇ１、Ｇ２、Ｇ３は、Ｇ’4およびＧ5に適合する非振動曲線を保証するために、動かされる。点線の線分群は、ＮＵＲＢＳ曲線の制御多角形である。
【０１２２】
プログラムは、ラグランジュの解法を用いて、効率的に解かれ得る。これは、線形時間の解法を可能にする。実際に、ラグランジュの解法は、それ自体が知られているように、付随関数のパラメータを決定することを含み得、付随関数は、Ｓ４０において選択された表面点のサブセットの位置を入力として取り、付随関数は、更新された制御点を出力する。方法は、次に、変更された通りの表面点の選択されたサブセットの位置に付随関数を適用し得、それによって、線形時間で結果を出力する。
【０１２３】
ラグランジュの解法は、特に、解法をサブステップに分解することを可能にし、そのいくつかの結果は、効率を高めるために再使用され得、したがって、応答性を改善する。表面点の選択されたサブセットの位置を変更するステップＳ５２、および制御点のグリッドを更新するステップＳ５４は、実際に、表面点の同じ選択されたサブセットを用いて反復され得る。言い換えると、ユーザは、Ｓ４０において、グレヴィル点のセットを選択し、次に、反復されるステップバイステップの操作で（例えば、試行錯誤方式で）それらを動かす。付随関数のパラメータは、そのような場合は、最初の反復において計算および記憶され得、その後、後続の反復にわたって取り出され得る。ラグランジュの解法によって可能にされる、グラフィカル応答を最適化する、すでに計算された行列のこのスマートな再使用は、以下で詳述される。
【０１２４】
記号的な解決は、ラグランジュの未定乗数法の古典的な適用である。計算は、一貫性を保つために再現される。もっぱら解法の目的で、未知のラグランジュ乗数ベクトル
【０１２５】
【数３０】
0006734044.tif 000031
【０１２６】
が、問題のラグランジュ関数が
【０１２７】
【数３１】
0006734044.tif 000032
【０１２８】
となるように、導入される。
【０１２９】
問題の方程式は、
【０１３０】
【数３２】
0006734044.tif 000033
【０１３１】
である。
【０１３２】
行列の転置を・Tと表すと、Ｌの偏導関数は、
【０１３３】
【数３３】
0006734044.tif 000034
【０１３４】
である。
【０１３５】
結果として、未知数Ｐおよびλを有する線形連立方程式は、
【０１３６】
【数３４】
0006734044.tif 000035
【０１３７】
となる。
【０１３８】
行列とベクトルによる等価の定式化は、
【０１３９】
【数３５】
0006734044.tif 000036
【０１４０】
であり、この式の左端の行列は、各グレヴィル点の単一性のため、可逆であることに留意されたい。
【０１４１】
この連立方程式は、以下のように解かれる。第１の方程式を
【０１４２】
【数３６】
0006734044.tif 000037
【０１４３】
によって乗算すると、
【０１４４】
【数３７】
0006734044.tif 000038
【０１４５】
となる。
【０１４６】
次に、第２の方程式を使用することによって、
【０１４７】
【数３８】
0006734044.tif 000039
【０１４８】
となる。
【０１４９】
行列
【０１５０】
【数３９】
0006734044.tif 000040
【０１５１】
は、行列Ａを可逆にするのと同じ理由で、先行技術によれば、可逆である。結果として、λは、
【０１５２】
【数４０】
0006734044.tif 000041
【０１５３】
と計算される。
【０１５４】
最後に
【０１５５】
【数４１】
0006734044.tif 000042
【０１５６】
である。
【０１５７】
これは、入力データＱおよび
【０１５８】
【数４２】
0006734044.tif 000043
【０１５９】
の役割を分離することによって、
【０１６０】
【数４３】
0006734044.tif 000044
【０１６１】
と整理されることができる。
【０１６２】
このように、反復的な適用に対するフィードバックをリアルタイムに表示する場合、第１の項は、一定のままであり、第２の項だけが、更新される必要がある。ＮＵＲＢＳ曲面およびグレヴィル点が、ひとたび選択されると、第１のステップが、行列
【０１６３】
【数４４】
0006734044.tif 000045
【０１６４】
と、ベクトル
【０１６５】
【数４５】
0006734044.tif 000046
【０１６６】
とを計算する。行列ＭおよびベクトルＶは、グレヴィル点の操作中、変化させずに保たれる。次に、ユーザが、選択されたグレヴィル点
【０１６７】
【数４６】
0006734044.tif 000047
【０１６８】
を動かした場合、アルゴリズムは、
【０１６９】
【数４７】
0006734044.tif 000048
【０１７０】
を計算することによって、制御点Ｐを更新する。図７は、この例のデータフローを示している。正方行列
【０１７１】
【数４８】
0006734044.tif 000049
【０１７２】
のサイズは、ユーザ選択されたグレヴィル点の数に比例し、一般には非常に小さいことに留意されたい。
【０１７３】
別の例では、プログラムは、各それぞれの制御点について、一般に１とは異なる（すなわち、上で説明された例におけるのとは異なる）（例えば、正の）重みを用いて、更新前のそれぞれの制御点と更新後のそれぞれの制御点との間の距離に対してペナライズする。重みは、それぞれの制御点に対応する表面点と表面点の選択されたサブセットとの間の距離の増加関数の値によって提供され得る。言い換えると、距離が、（例えば、厳密に）より高いほど、重みは、（例えば、厳密に）より低い。先のように、選択されない表面点は、（選択されないグレヴィル点については、それらの初期位置である、ユーザの要求に対して）自由に動き得るが、今では、自由は、グレヴィル点がＳ４０において実行された選択から遠くなるにつれて「減少する」。点と点のセットの間の距離は、数学的に定義され、明確である。ここでは、保持される距離は、例えば、表面点のグリッドに基づいたマンハッタン距離であり得る。そのようなソリューションは、より直感的な結果をもたらす。方法は、グラフィカルユーザ対話によって、増加関数をパラメータ化するステップをまたさらに含み得る。したがって、ユーザは、Ｓ５４の更新の背後の数学とグラフィカルに対話し得る。これは、スライダなど、システムのＧＵＩによって提供される特定のウィジェットを介して実行され得る。これは、すべて、「ユーザ制御の微調整」を可能にする。
【０１７４】
そのような制御をユーザに提供するために、いわゆる「影響エリア」、いわゆる「影響率」、およびいわゆる「規制パラメータ」の定義が、例において、方法によって使用され得る。方法のこの例では、増加関数は、選択されたグレヴィル点に対応する各それぞれの制御点については、１に等しく、影響エリア内のグレヴィル点に対応する他の制御点については、１よりも大きい第１の事前決定された数（実質的に実数）（第１の事前決定された数は、例では、後で詳述される１／αである）に等しく、（影響エリア外のグレヴィル点に対応する）他の（すべての）制御点については、第１の事前決定された数よりも少なくとも１０倍大きいが、好ましくは、実質的に無限大である、第２の事前決定された数（実質的に実数）（すなわち、最適化プログラムにおいて、そのような第２の数によって加重された制御点のいかなる動きも妨げる機能を有する数）に等しい、インジケータ関数である。例えば、この影響エリアは、特に、（選択されたグレヴィル点、および）表面点の選択されたサブセットまでのマンハッタン距離が、表面点のグリッドに関して（すなわち、基づいて）、事前決定された閾値を下回る、すべての選択されないグレヴィル点を含み得る。より洗練されたユーザフレンドリな別の例が、しかしながら、後で詳述される。グラフィカルユーザ対話によるパラメータ化は、（上で言及されたスライダによって）第１の事前決定された数において実行され得る。コンピュータシステムは、ユーザにかかる負担を相対的に低く保つために、他のすべてのパラメータ（すなわち、事前決定された閾値および第２の数）を、事前決定された方法で（例えば、第１の事前決定された数は、例えば、影響エリアを定義する閾値パラメータに関連する）、処理し得る。
【０１７５】
微調整は、他の方法によって（一般には、ガウス関数の畳み込み積を使用することによって）実施されることができることに留意されなければならない。重みは、ガウス関数のデカルト積として定義されることができる（これは、画像処理において広く使用されている技法である）。そのような場合、上で言及された唯一の閾値パラメータの代わりに、２つのパラメータ（ガウス分布の標準偏差および大きさ）が、存在する。重みは、それぞれの制御点に対応するグレヴィル横座標における２Ｄガウス分布の値に関連する。しかし、上で言及され、これ以降で詳述される技法は、ユーザの観点からは、良好な結果を与える。
【０１７６】
以下では、Ｎ∞は、非常に大きい定数であり、一般に、Ｎ∞＝１０12、
【０１７７】
【数４９】
0006734044.tif 000050
【０１７８】
である。ユーザの観点からは、εは、ゼロの役割を果たす。強化されたソリューションとして、方法は、例では、グレヴィル点の選択に加えて、変形の程度を調整するために、ユーザ定義の影響率を提供する。スライダは、上で言及された閾値を全単射的に決定し得る、影響率だけのために提供され得る。影響エリアは、事前決定された方法で計算され得る。例の方法は、したがって、図８のフローチャートに従って実行され得る。
【０１７９】
（影響エリア）
上で言及されたように、影響エリアは、洗練された例では、選択された非角隅表面点に中心が置かれた表面点のグリッド内の最大の正方形に属する、または選択された角隅表面点を含む表面点のグリッドのクオータに属する、すべての表面点からなる。これは、これ以降で詳述される。
【０１８０】
Ｔ＝｛（ｉ，ｊ）∈｛０，．．．，ｎ｝×｛０，．．．，ｍ｝｝を、グレヴィル点のグリッドのインデックスとし、（ｉ0，ｊ0）∈｛０，．．．，ｎ｝×｛０，．．．，ｍ｝を、任意のインデックスとする。おおまかに言うと、Ｚ（ｉ0，ｊ0）と表される、（ｉ0，ｊ0）の影響ゾーン／エリアは、Ｔ内に含まれることができる（ｉ0，ｊ0）に中心が置かれた最大の正方形として、任意に定義され得る。
【０１８１】
より正確には、
【０１８２】
【数５０】
0006734044.tif 000051
【０１８３】
を、δ（０）＝１、ｘ≠０ならば、δ（ｘ）＝０によって定義されるとする。
【０１８４】
ｋmin（ｉ，ｊ）＝ｍｉｎ｛ｍｉｎ｛ｉ0，ｎ−ｉ0｝，ｍｉｎ｛ｊ0，ｍ−ｊ0｝｝
とし、
ｋmax（ｉ，ｊ）＝ｍａｘ｛ｍｉｎ｛ｉ0，ｎ−ｉ0｝，ｍｉｎ｛ｊ0，ｍ−ｊ0｝｝
とする。
【０１８５】
ここで、
ｋ1（ｉ，ｊ）＝ｋmin（ｉ，ｊ）＋δ（ｋmin（ｉ，ｊ））ｋmax（ｉ，ｊ）
とする。
【０１８６】
（ｉ0，ｊ0）が、Ｔの角隅インデックスではないことを意味する、ｋ1（ｉ0，ｊ0）＞０である場合、影響エリアは、
Ｚ（ｉ0，ｊ0）＝｛（ｉ0＋ｉ，ｊ0＋ｊ）；ｉ，ｊ∈｛−ｋ1（ｉ0，ｊ0），．．．，ｋ1（ｉ0，ｊ0）｝∩Ｔ｝
である。
【０１８７】
（ｉ0，ｊ0）が、Ｔの角隅インデックスであることを意味する、ｋ1（ｉ0，ｊ0）＝０である場合、影響エリアは、（ｉ0，ｊ0）を含むグリッドのクオータである。
【０１８８】
【数５１】
0006734044.tif 000052
【０１８９】
定義によって、インデックス（ｋ，ｌ）∈Ｖのサブセットの影響エリアは、すべての影響エリアの和集合である。
【０１９０】
【数５２】
0006734044.tif 000053
【０１９１】
図９は、グリッドの内部の選択されたグレヴィル点の影響エリア（のインデックス）（左側グリッド）と、グリッド境界上の選択されたグレヴィル点の影響エリア（のインデックス）（中央および右側グリッド）とを示している。選択されたグレヴィル点は、「○」で印付けされ、影響エリアは、「×」点および「○」点を含む。図１０は、２つの選択されたグレヴィル点の影響エリア（のインデックス）（左側グリッド）と、一列の選択されたグレヴィル点の影響エリア（のインデックス）（右側グリッド）とを示している。最後に、ユーザ選択のグレヴィル点（Ｇkl）(k,l)∈VのインデックスＶを与えると、グリッドＴのインデックスは、３つのカテゴリに整理される。影響エリアの外部Ｔ−Ｚ（Ｖ）、ユーザ選択のインデックスＶ、およびユーザ選択ではない影響インデックスＺ（Ｖ）−Ｖである。
【０１９２】
（影響率）
影響率は、ユーザ定義された数α∈［ε，１］である。それは、第１の事前決定された数を一意的に定義し、それは、それによって、ユーザ設定を介してパラメータ化可能である。それは、影響エリアを間接的に定義するためにも使用され得る。最も小さい変形率は、α＝εを用いて獲得される。最も広い変形率は、α＝１を用いて獲得される。ユーザインターフェースの観点からは、ゼロ値が、εの代わりに表示される。このように、ユーザは、区間［０，１］内でパラメータを操作し、それは、より簡単である。
【０１９３】
（規制パラメータ）
多次元規制パラメータμが、導入される。それは、例では、ユーザには隠されている、内部モデリングパラメータである。
【０１９４】
【数５３】
0006734044.tif 000054
【０１９５】
規制パラメータの役割は、未知の制御点Ｐijが、初期制御点Ｑijの近くにどのように保たれるかを調整することである。先に定義された最小化プログラムは、以下のように適合される。
【０１９６】
【数５４】
0006734044.tif 000055
【０１９７】
規制パラメータμの数値は、事前決定された影響エリアＺ（Ｖ）と、ユーザ定義の影響率αとによって定義される。
●  （ｉ，ｊ）が、影響エリアの外にある、すなわち、（ｉ，ｊ）∈Ｔ−Ｚ（Ｖ）である場合、μij＝Ｎ∞である。
●  （ｉ，ｊ）が、ユーザ選択のグレヴィル点のインデックスである、すなわち、（ｉ，ｊ）∈Ｖである場合、μij＝１である。
●  （ｉ，ｊ）が、影響エリアの内部であるが、ユーザ選択のグレヴィル点のインデックスではない、すなわち、（ｉ，ｊ）∈Ｚ（Ｖ）−Ｖである場合、
【０１９８】
【数５５】
0006734044.tif 000056
【０１９９】
である。
【０２００】
結果として、最小化された基準は、
【０２０１】
【数５６】
0006734044.tif 000057
【０２０２】
と書かれることができる。
【０２０３】
明らかに、ユーザが、α＝εと設定した場合、すべての（ｉ，ｊ）∈Ｔ−Ｖについて、μij＝Ｎ∞であり、最小化された基準は、
【０２０４】
【数５７】
0006734044.tif 000058
【０２０５】
に等価である。
【０２０６】
したがって、影響エリアの外のグレヴィル点と関連付けられたすべての初期制御点Ｑijは、非常に強い影響を有する。そのため、表面変形は、ユーザ選択されたグレヴィル点の近傍に狭められる。
【０２０７】
他方、ユーザが、α＝１と設定した場合、すべての（ｉ，ｊ）∈Ｚ（Ｖ）について、μij＝１であり、すべての（ｉ，ｊ）∈Ｔ−Ｚ（Ｖ）について、μij＝Ｎ∞であり、最小化された基準は、
【０２０８】
【数５８】
0006734044.tif 000059
【０２０９】
に等価である。
【０２１０】
図１１〜図１３は、例示的なＮＵＲＢＳ曲線における影響率の成形役割を示している。初期ＮＵＲＢＳ曲線は、水平曲線であり、ユーザのアクションは、左図に示されるように、中央のグレヴィル点を垂直に動かすことである。右図は、制御多角形（破線）と一緒の、結果のＮＵＲＢＳ曲線である。図１１では、影響率は、α＝１である。図１２では、影響率は、α＝０．５である。図１３では、影響率は、α＝εである。選択されたグレヴィル点と関連付けられた制御点だけが、変位させられていることに留意されたい。他の制御点は、初期水平ＮＵＲＢＳ曲線のそれらである。
【０２１１】
図１４〜図１６は、例示的なＮＵＲＢＳ曲面変形における影響率の影響を示している。初期ＮＵＲＢＳ曲面は、平坦な区画であり、ユーザのアクションは、選択されたグレヴィル点（肉太のドット）を上方に動かすことである。明確にするために、制御点は、示されていない。図１４では、影響率は、α＝１である。図１５では、影響率は、α＝０．５である。図１６では、影響率は、α＝εである。成形効果は、結果のＮＵＲＢＳ曲面の平坦化された角隅において、より良く見える。
【０２１２】
上で詳述されたように、例のプログラムは、タイプが、
【０２１３】
【数５９】
0006734044.tif 000060
【０２１４】
であり、ここで、ＰijおよびＱijは、それぞれ、更新後および更新前の制御点である。そのような２次目的関数は、線形時間で解かれることができ、したがって、高い応答性を提供するので、解くのが簡単である。
【０２１５】
この２次定式化が、今から説明される。
【０２１６】
最小化された基準のより適切な定式化は、その係数が規制パラメータμijである、行列
【０２１７】
【数６０】
0006734044.tif 000061
【０２１８】
を含む。行列Ｗは、先に説明されたように、規制パラメータμijを通して、影響率αに依存することに留意されなければならない。このように、式
【０２１９】
【数６１】
0006734044.tif 000062
【０２２０】
は、
（Ｐ−Ｑ）TＷ（Ｐ−Ｑ）
に等価である。
【０２２１】
先の定義から、Ｗが対角行列であることが、明らかである。
【０２２２】
例えば、
【０２２３】
【数６２】
0006734044.tif 000063
【０２２４】
と表し、ｎ＝ｍ＝１を選択すると、元の式は、
【０２２５】
【数６３】
0006734044.tif 000064
【０２２６】
である。
【０２２７】
行列
【０２２８】
【数６４】
0006734044.tif 000065
【０２２９】
を用いた、等価の簡潔な公式は、
【０２３０】
【数６５】
0006734044.tif 000066
【０２３１】
である。
【０２３２】
行列Ｗは、対角行列であるので、Ｗ＝ＷTである。さらに、行列Ｗは、規制パラメータが消えないので、可逆である。
【０２３３】
先に、重み付けされない（すなわち、重みμijがすべて１に等しい）例について、ラグランジュの解法が、説明されたので、この例のラグランジュの解法が、今から説明される。
【０２３４】
ここでもやはり、記号的な解決は、ラグランジュの未定乗数法の古典的な適用である。計算は、一貫性を保つために再現される。もっぱら解法の目的で、未知のラグランジュ乗数ベクトル
【０２３５】
【数６６】
0006734044.tif 000067
【０２３６】
が、問題のラグランジュ関数が
【０２３７】
【数６７】
0006734044.tif 000068
【０２３８】
となるように、導入される。
【０２３９】
問題の方程式は、
【０２４０】
【数６８】
0006734044.tif 000069
【０２４１】
である。
【０２４２】
Ｌの偏導関数は、
【０２４３】
【数６９】
0006734044.tif 000070
【０２４４】
である。
【０２４５】
【数７０】
0006734044.tif 000071
【０２４６】
が
【０２４７】
【数７１】
0006734044.tif 000072
【０２４８】
に等価であるように、第１の行は、
【０２４９】
【数７２】
0006734044.tif 000073
【０２５０】
と書かれることができる。結果として、未知数Ｐおよびλを有する線形連立方程式は、
【０２５１】
【数７３】
0006734044.tif 000074
【０２５２】
となる。
【０２５３】
行列とベクトルによる等価の定式化は、
【０２５４】
【数７４】
0006734044.tif 000075
【０２５５】
である。
【０２５６】
この連立方程式は、以下のように解かれる。
第１の方程式を
【０２５７】
【数７５】
0006734044.tif 000076
【０２５８】
によって乗算すると、
【０２５９】
【数７６】
0006734044.tif 000077
【０２６０】
となる。
【０２６１】
次に、第２の方程式を使用することによって、
【０２６２】
【数７７】
0006734044.tif 000078
【０２６３】
となる。
【０２６４】
行列
【０２６５】
【数７８】
0006734044.tif 000079
【０２６６】
は、行列
【０２６７】
【数７９】
0006734044.tif 000080
【０２６８】
が可逆であるので、可逆であり、そのため、λが、計算される。
【０２６９】
【数８０】
0006734044.tif 000081
【０２７０】
最後に
【０２７１】
【数８１】
0006734044.tif 000082
【０２７２】
である。
【０２７３】
これは、入力データＱおよび
【０２７４】
【数８２】
0006734044.tif 000083
【０２７５】
の役割を分離することによって、
【０２７６】
【数８３】
0006734044.tif 000084
【０２７７】
と整理されることができる。
【０２７８】
このように、リアルタイムフィードバックを表示する場合、グレヴィル点が、動かされるときは、第１の項は、一定のままである。反対に、影響率αが、変化させられる場合、規制パラメータμij、したがって、行列Ｗが、αに依存するので、両方の項が、更新される。
【０２７９】
ＮＵＲＢＳ曲面およびいくつかのグレヴィル点が、ひとたび選択され、影響率αのデフォルト値が、設定されると、第１のステップが、行列
【０２８０】
【数８４】
0006734044.tif 000085
【０２８１】
と、ベクトル
【０２８２】
【数８５】
0006734044.tif 000086
【０２８３】
とを計算する。行列ＭおよびベクトルＶは、グレヴィル点の操作中、変化させずに保たれる。次に、ユーザが、選択されたグレヴィル点
【０２８４】
【数８６】
0006734044.tif 000087
【０２８５】
を動かした場合、アルゴリズムは、
【０２８６】
【数８７】
0006734044.tif 000088
【０２８７】
を計算することによって、制御点Ｐを更新する。ユーザが、影響率αを変化させた場合、行列Ｍが、αに依存するので、すべての項が、更新を必要とする。図１７は、データフローを示している。
【図１】
0006734044.tif 000089
【図２】
0006734044.tif 000090
【図３】
0006734044.tif 000091
【図４】
0006734044.tif 000092
【図５】
0006734044.tif 000093
【図６】
0006734044.tif 000094
【図７】
0006734044.tif 000095
【図８】
0006734044.tif 000096
【図９】
0006734044.tif 000097
【図１０】
0006734044.tif 000098
【図１１】
0006734044.tif 000099
【図１２】
0006734044.tif 000100
【図１３】
0006734044.tif 000101
【図１４】
0006734044.tif 000102
【図１５】
0006734044.tif 000103
【図１６】
0006734044.tif 000104
【図１７】
0006734044.tif 000105