NURBS
微分幾何学において最も重要なのは曲率 κ {\displaystyle \kappa } である。曲率はその曲線のエッジやコーナーなど局部的な様子を示すのに最適である。1次と2次の導関数の関係性を示すものでもあるため、曲線の形状を正確に知るためにも有用である。一度導関数がわかれば簡単な計算で曲線全体の曲率がわかる。
κ = | r ′ ( t ) × r ′′ ( t ) | | r ′ ( t ) | 3 {\displaystyle \kappa ={\frac {|r'(t)\times r''(t)|}{|r'(t)|^{3}}}} または近似式で2次導関数の弧長で計算することもできる: κ = | r ′′ ( s o ) | {\displaystyle \kappa =|r''(s_{o})|} . このような曲率の直接的な計算ができることは、ポリゴンによる表現に対するNURBSのような媒介変数曲線の大きな強みである。
NURBS曲線の階数orderは、その曲線上の任意の点へ影響をおよぼす制御点の数である。次数degreeはその曲線の項の数である。階数=次数+1であり、曲線は次数(つまり階数−1)個の項をもつ多項式であらわされる。階数2のNURBS曲線の次数は1であり、つまりy=ax+bのような直線である。次数2のNURBS曲線の階数は3となり、2つの項で構成される線形多項式で表現される。そのため二次曲線と呼ばれる。同様に階数4であれば次数3, 3次関数を表す。制御点の数は階数以上である必要がある。大抵のCADではそれ以下の制御点で曲線描画が終われないか、そうでなければとりうる最高の階数に置き換えられる(例えばRhinoceros 3Dで次数5に指定して曲線を描く場合、ほんとうに次数5の曲線にしたいのならば初点と終点を含めて6点以上制御点をうてばよく、4点しか打たなかった場合は次数が3、3点しか指定しなかった場合は次数が2の曲線になる)。
定義上は階数5や階数7のものも問題ないが、実際のCADでは2,3,4,6,8(それぞれ次数が1,2,3,5,7)、特にほとんどの用途がこなせる階数4=次数3の曲線が多く用いられる。高い階数のものはより滑らかになるが、高すぎる階数は内部的に数値的問題を引き起こしやすく、しかも計算が無意味に遅くなるため実用上意味がない。
NURBSオブジェクトには様々な変形をほどこすことができる。例えばある曲線が次数 d {\displaystyle d} であり n {\displaystyle n} 個の制御点で表されているとしよう。全く同じ曲線が次数 d {\displaystyle d} であり n + 1 {\displaystyle n+1} 個の制御点で表すことができる。ただそのためには複数の制御点の位置が変更され、またノットがひとつノットベクトルに追加されることになる。
こういった変形はデザインの過程で様々な方法で用いられている。以下に変形の例を示す。
制御点は一般に曲線上の点ではなく、曲線の形状を決定するために用いられる。曲線上のとある点の位置は、その前後に配置されたいくつかの制御点の位置の重み付き線形和で表現される。制御点が曲線上の各点に与える影響は、その点と制御点の間の距離によって定義され、一般には距離が短いほど影響が大きくなる。次数 d {\displaystyle d} の曲線、すなわち各制御点への重みがパラメータ t {\displaystyle t} の d {\displaystyle d} 次多項式で定まる基底関数により表現される場合を考えると、パラメータ空間は各制御点により d + 1 {\displaystyle d+1} 個に分割され、その区間内でのみ曲線上の点に影響を与える。これらの区間の両端では、基底関数の値は滑らかに0に近づく。この時の曲線の滑らかさは曲線の次数 d {\displaystyle d} により決定される。
基底関数の一例として次数が1のものを考えると、これは三角形関数(テント関数)であり、その値は0から1へ向かって線形に上昇し、その後、1から0へ向かって線形に降下する。この場合、次数が1であることから、曲線のとある区間上の点は2つの制御点から影響を受ける。基底関数が0から1へと上昇する間に、2つの制御点のうち手前の制御点からの影響が低下していく。