SSブログ

太さの変わるBezier曲線の生成 - その6 [考え中 - 太さの変わるBezier曲線]

Photoshopで描いたような、タブレットによるブラシの線のようなBezier曲線を生成するソフトを作りたいという話。ここ何日かBezier曲線の数学のディテールをしょぼしょぼと追いかけている。

Bezier pathの分割

図-9のように(これはIllustratorの「パスファインダ」で分割したときのスクリーンショット)、式-5で表される3次のBezier曲線を途中の任意の位置で分割して二つのBezier曲線で表すことを考えてみる。

1010fig9.png
自明ではないけど3次曲線を分割しても3次曲線なのでBezierで表現できるはずである。逆に任意の二つの3次のBezier曲線を一つの3次のBezier曲線につなぐことは、微係数を結合点で一致させたとしても一般にはできないことは明らかである(次数が足りなくなるような二つの曲線を選ぶことができることから)。

ということで、ふたつに分割することを考えてみる。やり方は簡単。

もとのBezier曲線をP(t)として媒介変数tの範囲で[0,α]と[α,1]に分割する。最初の曲線をPs(t)、あとをPe(t)として

1010eq28.png
とする。これらの曲線はそれぞれ
1010eq30.png
に一致しているとする。上の式を両辺展開して、tnの係数比較をすると
1010eq32.png
および
1010eq33.png
である。うわあ、あってるかなあ。

これを解くと

1010eq34.png
および
1010eq35.png
となる。

当然Ps(t)の始点とPe(t)の終点はそれぞれP(t)と一致しているはずだし、Bs3 = Be0になっているのであってそう。対称になってるし。制御点が端点から離れるに従って、端点からの制御点の個数が次数となるBezier曲線の式と同じ形になっている。これって、当たり前?

ということで、これは単に多項式の代数の問題で簡単だった。めんどくさいけど。

今後使うBezier曲線のノーテーション

以上は一般的なBezier曲線の表し方だけど、今後の便利のためにちょっとだけ書き方を変えておく。 多数の3次のBezier曲線を考える。n番目の3次Bezier曲線Pn(t)の始点と終点をBnBn+1とする。n番目のBezier曲線Pn(t)の終点Bn+1番目のBezier曲線Pn+1(t)の始点になっている。中間の制御点をB-nB+nとする。

つまり、図-10のように

1010fig10.png
1010eq36.png
と書き換えることにする。


nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

ゲルギエフ「マーラー7番」献立10/11 ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。