arXiv探訪

興味の赴くままに数学するだけ

Bezier曲線メモ

Bezier曲線とはルノーRenault)社のPierre Bezier及びシトロエン(Citroen)社のPaul de Casteliauにより独立に得られた曲線である。少ない制御点で高い表現力を持つため、主にCAGD(Computer Aided Geometric Design)で用いられる。Bezier曲線は線分の内分点を繰り返して得ることができる。例えば{ b_{0}, b_{1}, b_{2} }を空間上の点(実数でも複素数でも)として、

{ \begin{align*} b_{0}^{1}( t ) &= ( 1-t )b_{0}+tb_{1}, \\ b_{1}^{1}( t ) &= ( 1-t )b_{1}+tb_{2}, \\ b_{0}^{2}( t ) &= ( 1-t )b_{0}^{1}+tb_{1}^{1} \\ &= (1-t)^{2}b_{0}+2t(1-t)b_{1}+t^{2}b_{2} \end{align*} }

で定義される。一般には{ b_{0}, \dotsc, b_{n} }に対して漸化式

{ b_{j}^{0}=b_{j}, b_{j}^{r+1}(t)=( 1-t )b_{j}^{r}+tb_{j+1}^{r} }

により定まる多項式の族を考え、{ b_{0}^{n}( t ) }{ n }次のBezier曲線と呼ぶ。

いくつか計算すると

{ \begin{align*} b_{0}^{3}( t ) &= ( 1-t )^{3}b_{0}+3t( 1-t )^{2}b_{1}+3t^{2}( 1-t )b_{2}+t^{3}b_{3}, \\ b_{0}^{4}( t ) &= ( 1-t )^{4}b_{0}+4t( 1-t )^{3}b_{1}+6t^{2}( 1-t )^{2}b_{2}+4t^{3}( 1-t )b_{3}+t^{5}b_{4} \end{align*} }

などとなるため、Bernstein多項式

{ B_{j}^{n}( t )=\left( \begin{matrix} r \\ j \end{matrix} \right) t^{j}( 1-t )^{n-j} }

が関係しそうではある。Bernstein多項式が満たす漸化式は

{ B_{j}^{r+1}( t )=( 1-t )B_{j}^{r}( t )+tB_{j-1}^{r}( t ) }

であるため似てるけど違う。実は次が知られている。

命題

{ b_{k}^{r}=\sum_{j=0}^{r}B_{j}^{r}b_{k+j} }

を満たす。ただし範囲外の{ b_{m} }はゼロとする。

(証明)帰納法{ \square }

他にもアファイン不変性だったり凸包性、{ \sum B_{j}^{n}=1 }などが成り立つ。

射影空間上の曲線と思って、その射影像を考えると扱える曲線が増える。{ b_{j}\mapsto (b_{j}, 1)=(w_{j}b_{j}, w_{j}) }から定まるBezier曲線は

{ \left(\sum w_{j}B_{j}^{n}b_{j}, \sum w_{j}B_{j}^{n} \right) }

で表される。これを{ (x, 1) }平面に射影したものが

{ \displaystyle \frac{\sum w_{j}B_{j}^{n}b_{j} }{\sum w_{j}B_{j}^{n}} }

となる。これが有理化Bezier曲線である。{ t=\frac{\beta u}{1-u+\beta u} }で変数変換すると{ w_{j}\mapsto \beta^{j}w_{j} }とウェイトがずれた有理化Bezier曲線が現れる。

更に平面に拡張したものが

{ \displaystyle x^{m, n}(u, v):=\frac{\sum_{i, j}w_{i, j}B_{i}^{m}( u )B_{j}^{n}( v )b_{ij}}{\sum_{i, j}w_{i, j}B_{i}^{m}( u )B_{j}^{n}( v )} }

である。