パラメトリック曲線


いままで曲線を描くパラメトリック曲線(スプラインカーブ)についてあまりちゃんと勉強する機会がなかったので、いろいろ調べてみてUnityで実装してみた。あまりコードが洗練されていないかもしれないけど、githubへアップしてみました。[ExecuteInEditMode]で設定しているので再生しなくても動きます。
github | naochang | Curve

ざっと下記のような曲線について勉強してみました。

エルミート曲線 (Hermite Curve)
各点において次の線がどのベクトルへ向かうかを持った曲線。

Catmull-Romスプライン曲線
エルミート曲線で指定するベクトルを前後の点から自動的に作る曲線。点だけ置けばスムーズに繋いでくれるので扱いやすい。

ベジェ曲線(Bézier Curve)
おなじみIllustratorやAnimator(旧Flash)にて使われている曲線。

有理ベジェ曲線 (Rational Bézier Curve)
ベジェ曲線に重みをもたせたもの。

B-スプライン曲線 (B-spline Curve)
通常点の上は通らないが自然なカーブが描くことができる。

NURBS (非一様有理Bスプライン)
B-スプライン曲線を拡張したもので自然なカーブに変化をつけられる。

参考)
DIGITAL FRONTIER | スプライン曲線の話
魔法使いの森 | 自由曲面実現の歴史

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です