NURBS の背後にある数学

多項方程式

最も単純な数学的表現から始めましょう。数学の授業で、2 次元の直線を y = 2x のような方程式で表せることを習ったと思います。x の各値について、2 を掛けて y の値を求め、その 2 つの値をグラフにプロットします。

この種の方程式を一般化すると、ax + by = c という形式になります。等記号の左側の式を多項式と呼びます(「多項」とは、式に複数の項が含まれることを示します)。

y = x * x * x のように、x 自体を掛け合わせることによって、より複雑な式を作ることもできます。この場合は通常、各 x を 1 つの項として書く代わりに、x の個数を上付き文字として書きます。この上付き文字を、「べき乗数」と呼びます。つまり、先ほどの式は、y = x 3 と書くことができます。

べき乗数を使った多項式として、次のような式を書くことができます。y = ax 2 + bx + c 数学の授業では、これを 2 次方程式として習ったと思います。最初の x のべき乗数(2)は、この関数のグラフが直線ではなく曲線になることを示します。

次数

多項方程式の次数とは、方程式内の最大のべき乗数のことです。直線の方程式での最大のべき乗数は 1 だったことを思い出してください(項にべき乗数が書かれていない場合、そのべき乗数は 1 です)。

パラメトリック表現

カーブの方程式は、一般的に 2 つの方法で書くことができます。陰関数表現では、1 つの長い非線形方程式の中ですべての項を結合します。たとえば、次のようになります。ax 3 + by 2 + 2cxy + 2dx +2ey +f = 0

この表現を使う場合、x と y の値を計算してグラフにプロットするには、非線形方程式全体を解く必要があります。

パラメトリック表現では、1 つの変数を他の変数の値で表すことによって、方程式を次のような短く解きやすい形式に書き換えます。x = a + bt + ct 2 + dt 3 + ... y = g + ht + jt 2 + kt 3 + ...

この表現を使うと、x と y の方程式が単純になります。この場合、必要なのは、xy を計算するためのカーブに沿ったポイントである t の値のみです。

パラメトリック カーブが描かれる様子は、空間内を移動する 1 つのポイントから思い浮かべることができます。どの時点の t においても、その移動するポイントの xy の値を計算できます。

これはとても重要な点です。パラメータ値を線上の各ポイントと関連付けるというコンセプトは、多くのツールで利用されています。これは、カーブの U 次元に対応します。

NURBS を使用した複雑なカーブ タイプ

カーブ方程式の次数が低いほど、カーブは単純になります。では、複雑なカーブを描くにはどのようにしたらよいでしょうか。単純に考えれば、カーブの次数を高くすればよいのですが、これはあまり効率的ではありません。カーブの次数が高くなるほど、計算が複雑になります。また、次数が 7 よりも高いカーブでは、シェイプの振れが大きくなるため、インタラクティブなモデリングでは非現実的です。

解決策は、比較的低い次数(1 ~ 7)のカーブ方程式をセグメントとして結合して、より大きくて複雑な複合カーブを作成することです。カーブ セグメント(スパン)が結合するポイントをエディット ポイントと呼びます。

ただし、高次数のカーブを完全に無視するべきではありません。5 次および 7 次のカーブには、よりスムーズな曲率やより強い“張力”を表現できるなど、いくつかの利点があります。これらは、自動車デザインの分野でよく使われます。

スムーズな結合

カーブの次数によって、スパン間の結合の平滑性が決まります。次数 1 (1 次)カーブでは、結合部に位置連続性が保たれます。次数 2 (2 次)カーブでは、接線連続性が保たれます。次数 3 (3 次)カーブでは、曲率連続性が保たれます。