3次元図形処理技術解説 第11回 NURBS曲線

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

 

今回はNURBS曲線について解説します。NURBSとはnon-uniform rational B-splineの略で、日本語では「非一様有理Bスプライン」と呼びます。NURBSはこれまで解説してきたB-Spline曲線の拡張系であり、その 特徴点のほとんどは、B-Spline曲線と同様です。
NURBS曲線はまた、Bezier曲線やB-Spline曲線をより一般化して、多くの対象で使えるようにしたものであるとも言えます。
Pierre Bezier氏や、Paul de Casteljau氏のBezier曲線の研究の成果から、1960年代にはNURBSがBezier曲線の一般化した表現になるであろうことが判り始め ていたようですが、実際に市販のCADやCGシステムで使われるようになったのは1989年のことです。
「非一様」については、前回説明した通りですが、新たに「有理」という言葉が出てきました。これは各制御点に与える「重みベクトル」(ウエイトとも言います)を与えることができるような表現のことを言います。
B-Spline曲線も,Bezier曲線と同様,円弧や楕円を正確に表現できません。しかし、「重みベクトル」の値を調整してやることで、誤差なく円弧 や楕円を表せるようになります。実はこれがNURBSの最大の特徴点で、NURBSが現在CAD/CAMシステムで最も使われる表現になった要因のひとつ でもあります。

 

■NURBS曲線の数学的表現
NURBS曲線は制御点をqi、重みをwiとすると、以下の式で表現されます。

 

 

■NURBS曲線による円表現
それでは、重みベクトルを使った表現のしかたを、円を使って具体的に説明していきましょう。
円を1セグメントで表す場合,制御点q0, q1, q2の中心角を90度として,次のように設定します。

 

 

●ノットベクトル
{x0, x1, x2, ・・・・・・, x11}
={0,0,0, π/2, π/2, π, π, 3π/2, 3π/2, 2π, 2π}
={0,0,0,1,1,2,2,3,3,4,4,4}
●重みベクトル
{w1, w2, w3, ・・・・・・, w8} = {1,√2/2, 1,√2/2, 1,√2/2, 1,√2/2, 1}

 

ノットベクトルが90度ごとに多重化されており、重みベクトルも90度ごとに1となっています。従い、この点では必ず制御点を通るように制御されます。一 方、上図の正方形頂点部における重みベクトルは√2/2となっています。これは中心から制御点までの距離を1としたときに、円弧が通る点の相対位置の値と 一致しています。こうすることで、正確な円弧がB-Spline曲線で表現できるようになります。

 

ところでG1,G2連続性ですが、これまで紹介したFerguson/Coons、Bezier、B-Spline曲線はどれもG1連続は保てても、G2 連続性を保証できませんでした。それに対してNURBSは、G2連続性を保証できます。このことも他と大きくことなる特性で、近年ほとんどのCADが NURBSを採用する大きな要因となっています。

 

次回はそれぞれの曲線理論について、互換性の観点からまとめをしてみます。

 

(第11回おわり)

パブリシティ・イベント