記事詳細
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回おわり)