3次元図形処理技術解説 第9回 B-Spline曲線(2)

技術ディビジョン・プロフェッショナルコンサルタント 宮木 邦宏

 

■B-Spline曲線の内部表現方法
今回はB-Spline曲線の数学的な表現方法について解説します。

 

次数k-1(2?k?n+1)のB-Spline曲線のセグメントは、n個の制御点列q0,…,qnを用いて、以下のように定義されます。これは「コックス(Cox)とド・ブール(de Boor)の計算法」と呼ばれます。

 

 

N(t)の関数を「B-Spline基底関数」と呼びます。kは「位数」ないしは「階数」と言い、k=次数+1となります。
B-Spline曲線は、内部では細かく区間分割されており、その境界点をノット(日本語では節点)と言います。上記数式ではノット情報を与えると、B-Spline基底関数の取る値が一意に決まるようになっています。
B-Spline曲線中のノットの数は、与えた制御点数と位数の和になります。
例えば4つの制御点によって生成される3次のB-Spline曲線には、4+3+1=8個のノットが存在し、その区間によって細かく制御されています。この8個の点のリストを「ノットベクトル」と呼びます。「ベクトル」と言っていますが、3次元空間内の方向を示すものではありません。上記に示したP(t) という、時間をパラメータとした関数の中では、「出発してからその区間を通過するまでにかかるまでの時間」と考えると良いでしょう。
さて、B-Spline基底関数は、ノットベクトルをX0≦X1≦・・・≦Xk+nとすると

 

 

と表現できます。この式は再帰的な計算を意味しており、下図のように計算することを示しています。

 

次回は、B-Spline曲線の、細かな種類について説明します。

 

(第9回おわり)

パブリシティ・イベント