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

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

 

前々回解説したように、B-Spline曲線の「素の姿」は、与えた制御点のどれも通らない曲線でした。しかし実際によく目にするB-Spline曲線は少なくとも両端点は与えた制御点上を通過しています。
実はこの違いは、前回の数学的表現の解説で説明したB-Spline曲線の「ノットベクトル」の与え方によって起こっています。

 

実際にCADで採用されているB-Spline曲線では、ノットベクトルの扱い方を工夫することで、より表現力を増していますが、その扱い方の違いによって
●一様(uniform)
●開一様(open uniform)
●非一様(non-uniform)
という3つの形式があります。

 

■一様(uniform)
この表現はB-Spline曲線の基本形というべきもので、「素の姿」という言葉を使いました。 一様表現では、ノットで分けられた区間上を移動する時間が一定であるとして表現します。
3次のB-Spline曲線では、ノットベクトル{x0, x1, x2, x3, x4, x5, x6, x7}={0,1,2,3,4,5,6,7}と、増分値が一定、すなわちノットベクトルで分けられた区間を通過する時間を同じと捉えます。
そうすると、ノットとB-Spline基底関数との関係は下図のようになり、等間隔に並びます。
これに従って曲線上の点を計算していくと、結果として両端点は通りようがなく、途中から始まるように見える曲線になります。

 

 

■開一様(open-uniform)
ノットベクトルを両端で位数分重複させ、それ以外の箇所での増分値は一定にしたものを開一様(open uniform)と呼びます。

 

3次の開一様B-Spline曲線では、{x0, x1, x2, x3, x4, x5, x6, x7}= {0,0,0,0,1,1,1,1}のように、端点で位数だけ重複します。
単一セグメントが生成される場合、この区間でのB-Spline基底関数の グラフはBezier曲線のバーンスタイン基底関数のそれと一致します。従い、その形状はBezier曲線そのものになります。

 

■非一様(non-uniform)
ノットベクトルの増分値が一様でないものを非一様(non-uniform)と呼びます。現在CADで最も多く使われているのは、この非一様の形式です。 NURBSの「NU」はnon-uniformのことです。

 

ノットベクトルは、{x0, x1, x2, x3, x4, x5, x6, x7}={0,1,2,2,2,2,3,4}のように、途中のノットを多重に表現することができ、これによりある特定の制御点に近いところを通過させるこ とも、折れ線にするような制御をすることも可能になります。

 

 

以上のように、ノットベクトルを使うことで、B-Splineはさらに表現力豊かな曲線になります。

 

(第10回おわり)

パブリシティ・イベント