« NSImageに文字を描画するとさかさまになる? | メイン | 手稲高校インターンシップ 2010 »

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/

トラックバック

このエントリーのトラックバックURL:
http://antas.jp/mtsys/mt-tb.cgi/819

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)