« 2010年01月 | メイン | 2010年08月 »

2010年03月 アーカイブ

2010年03月25日

Foundation of bezier curve

最近ベジェ曲線をいじいじしていたのですが、案外衝突判定とか切断のまとまった情報がなかったので書いておきます。

とりあえずここでは三次ベジェ曲線を取り上げます。Adobe Illustratorとかでお馴染みのアレです。(以下図版はWikipediaより引用)

三次ベジェ曲線は次の式によって与えられます。

ここでtは長さを表すパラメータで0≦t≦1です。P0(始点)が0、P4(終点)が1になります。P1,P2は制御点です。
ベジェ曲線はふつうの直線の描画とことなり、媒介変数tを動かしてそのtの時のx,y座標を求める、というやり方でしか描画ができなかったりします。

さて、このパスを適当なtの位置(長さ)を決めて、パスの形をそのままにそこで切断するとした時、どのようにしたらよいでしょうか。

これには、de Casteljau's algorithmというのを使います。de Casteljauはベジェ曲線を考えた人ですが、これを使うと新しいコントロールポイントの位置が多項式を逐次的に計算していくだけで簡単に決まります。(続く)

参考:
The Essentials of CAGD
http://www.farinhansford.com/books/essentials-cagd/