2次ベジェ曲線の分割

Top »

曲線上に一つのアンカーポイントを追加する

図

曲線上 t に一つのアンカーを置くことでベジェ曲線を2分割し、新たな制御点を得たい。

元となる2次ベジェ曲線の制御点はABCとする。

線分AB上にt:1-tで分割した点をD、同じくBC上にE、DE上にFを置く。これをベクトルの数式で表すと:

D = (1-t)*A + t*B
E = (1-t)*B + t*C
F = (1-t)*D + t*E = (1-t)^2*A + 2*(1-t)*t*B + t^2*C

Fの軌道がベジェ曲線である。

新たな2つのベジェ曲線の制御点は、A側ががADF、C側がFECとなる。

曲線の任意の範囲を切り出す

図

曲線上の t1, t2 にアンカーを置き、新たな制御点を得たい。

元となる2次ベジェ曲線の制御点はABCとする。

線分AB上にt1:1-t1で分割した点をD1、同じくBC上にE1、D1E1上にF1、 AB上にt2:1-t2で分割した点をD2、同じくBC上にE2、D2E2上にF2を置く。 これをベクトルの数式で表すと:

D1 = (1-t1)*A + t1*B
E1 = (1-t1)*B + t1*C
F1 = (1-t1)*D1 + t1*E1 = (1-t1)^2*A + 2*(1-t1)*t*B + t1^2*C
D2 = (1-t2)*A + t2*B
E2 = (1-t2)*B + t2*C
F2 = (1-t2)*D2 + t2*E2 = (1-t2)^2*A + 2*(1-t2)*t*B + t2^2*C

D1E1とD2E2の交点GはD1E1上をt2:1-t2で分割した点であると考えられる。

G = (1-t2)*D1 + t2*E1 = (1-t1)*D2 + t1*E2
= (1-t1)*(1-t2)*A + ((1-t1)*t2 + t1*(1-t2))*B + t1*t2*C

切り出された新たなベジェ曲線の制御点は F1, G, F2 である。

inserted by FC2 system