Bezier Curve

Bernstein Polynomials of degree n:
B i n ( u ) = i n u i ( 1 u ) n i f o r   i { 0 , 1 , , n } B^{n}_{i}(u) = \lgroup^{n}_{i}\rgroup u^{i}(1-u)^{n-i} \hspace{1cm} for \ i \in \{0,1,\dots,n\}

Properties of Bernstein Polynomials
  1. They are linearly independent.
    Let i = 0 n b i u i ( 1 u ) n i = 0 \sum^{n}_{i=0} b_{i} u^{i}(1-u)^{n-i} = 0 , then

i = 0 n b i u i ( 1 u ) n i ( 1 u ) n = i = 0 n b i u i ( 1 u ) i = i = 0 n b i ( u 1 u ) i = 0 \begin{aligned} \sum^{n}_{i=0} b_{i} u^{i}\frac{(1-u)^{n-i}}{(1-u)^{n}} = \sum^{n}_{i=0} b_{i} u^{i} (1-u)^{-i} = \sum^{n}_{i=0} b_{i} (\frac{u}{1-u})^{i} = 0 \end{aligned}

Since u ( 0 , 1 ) u \in (0,1) , ( u 1 u ) i (\frac{u}{1-u})^{i} are always greater than zero. i = 0 n b i u i ( 1 u ) n i \sum^{n}_{i=0} b_{i} u^{i}(1-u)^{n-i} equals zero, only when all b i b_{i} equal zero, which means that i = 0 n b i u i ( 1 u ) n i = 0 \sum^{n}_{i=0} b_{i} u^{i}(1-u)^{n-i} = 0 iif all b i b_{i} equal zero. Thus, u i ( 1 u ) n i u^{i}(1-u)^{n-i} are linearly independent, and B i n ( u ) B_{i}^{n}(u) are also linearly independent.

  1. They are symmetric.
    B i n ( u ) = B n i n ( 1 u ) B_{i}^{n}(u) = B_{n-i}^{n}(1-u)

  2. They have roots at 0 0 and 1 1 only.
    B i n ( 0 ) = B n i n ( 1 ) = { 1 f o r   i = 0 , 0 f o r   i > 0. B_{i}^{n}(0) = B_{n-i}^{n}(1) = \begin{cases} 1 \hspace{1cm} for \ i = 0, \\ 0 \hspace{1cm} for \ i > 0. \end{cases}

  3. They form a partition of unity.
    i = 0 n B i n ( u ) = 1 f o r   a l l   u R . i = 0 n B i n ( u ) = ( u + ( 1 u ) ) n = 1 n = 1 \begin{aligned} \sum_{i=0}^{n}B_{i}^{n}(u) = 1 \hspace{1cm} for \ all \ u \in R. \\ \sum_{i=0}^{n}B_{i}^{n}(u) = (u+(1-u))^{n} = 1^n = 1 \end{aligned}

  4. They are positive in ( 0 , 1 ) (0,1) .
    B i n ( u ) > 0 f o r   u ( 0 , 1 ) B_{i}^{n}(u) > 0 \hspace{1cm} for \ u \in (0,1)

  5. They satisfy the recursion formula.
    B i n + 1 ( u ) = u B i 1 n ( u ) + ( 1 u ) B i n ( u ) i n + 1 u i ( 1 u ) n + 1 i = u i 1 n u i 1 ( 1 u ) n + 1 i + ( 1 u ) i n u i ( 1 u ) n i ( n + 1 ) ! i ! ( n + 1 i ) ! u i ( 1 u ) n + 1 i = i 1 n u i ( 1 u ) n + 1 i + i n u i ( 1 u ) n i + 1 = [ n ! ( i 1 ) ! ( n i + 1 ) ! + n ! i ! ( n i ) ! ] u i ( 1 u ) n i + 1 = [ i n ! ( i ) ! ( n i + 1 ) ! + n ! ( n i + 1 ) i ! ( n i + 1 ) ! ] u i ( 1 u ) n i + 1 \begin{aligned} B_{i}^{n+1}(u) & = uB_{i-1}^{n}(u) + (1-u)B_{i}^{n}(u) \\ \lgroup_{i}^{n+1} \rgroup u^{i}(1-u)^{n+1-i} & = u \lgroup_{i-1}^{n} \rgroup u^{i-1}(1-u)^{n+1-i} + (1-u) \lgroup_{i}^{n} \rgroup u^{i}(1-u)^{n-i} \\ \frac{(n+1)!}{i!(n+1-i)!}u^{i}(1-u)^{n+1-i} & = \lgroup_{i-1}^{n} \rgroup u^{i}(1-u)^{n+1-i} + \lgroup_{i}^{n} \rgroup u^{i}(1-u)^{n-i+1} \\ & = [\frac{n!}{(i-1)!(n-i+1)!} + \frac{n!}{i!(n-i)!}] u^{i}(1-u)^{n-i+1} \\ & = [\frac{i \cdot n!}{(i)!(n-i+1)!} + \frac{n! \cdot (n-i+1)}{i!(n-i+1)!}] u^{i}(1-u)^{n-i+1} \end{aligned}

Bezier Representation

b ( u ) = i = 0 n c i B i n ( u ) b(u) = \sum_{i=0}^{n} c_{i}B_{i}^{n}(u)

任何次数小于等于 n n 的曲线 b ( u ) b(u) 都可以通过对 B i n ( u ) B_{i}^{n}(u) 的线性组合来表示。其中, B i n ( u ) B_{i}^{n}(u) form a basis for all polynomials of degree n \le n .

u = a ( 1 t ) + b t f o r   a b u = a(1-t) + bt \hspace{1cm} for \ a \ne b

在这里插入图片描述

b ( u ) = i = 0 n b i B i n ( t ) b(u) = \sum_{i=0}^{n} b_{i}B_{i}^{n}(t)
如果 b i b_{i} 是一个向量,且 i = 0 n B i n ( t ) = 1 \sum_{i=0}^{n}B_{i}^{n}(t) = 1 ,那么 b ( u ) b(u) 相当于是向量 b i b_{i} 的一个线性组合,在由 b i b_{i} 组成的凸面体里。(Affine Combination: In mathematics, a linear combination of vectors x 1 , , x n x_{1},\dots,x_{n} ,
i = 1 n a i x i = a 1 x 1 + + a n x n \sum_{i=1}^{n} a_{i}x_{i} = a_{1}x_{1} + \dots + a_{n}x_{n}
is called an affine combination of x 1 , , x n x_{1},\dots,x_{n} when the sum of the coefficients is 1, that is, i = 1 n a i = 1 \sum_{i=1}^{n}a_{i} = 1 .

Affine Map: In geometry, affine map is a function between affine spaces which preserve points, straight lines and planes. Also, sets of parallel lines remain parallel after an affine transformation. An affine transformation does not necessarily preserve angles between lines or distance between points, though it does preserve ratios of distances between points lying on a straight line.

Examples of affine map includes translation, scaling, homothety, similarity transformation, reflection, rotation, shear mapping, and compositions of them in any cobination and sequence.
f : x y x M x + b f:x \rightarrow y \hspace{1cm} x \rightarrow Mx+b

The De Casteljau’s algorithm

A curve: b ( u ) = i = 0 n b i 0 B i n ( t ) b(u) = \sum_{i=0}^{n} b_{i}^{0}B_{i}^{n}(t) , with u = a ( 1 t ) + b t u = a(1-t) + bt .

在这里插入图片描述

b ( u ) = i = 0 n b i 0 B i n ( t ) = i = 0 n 1 b i 1 B i n 1 ( t ) = = i = 0 0 b i 0 B i 0 ( t ) = b 0 n b(u) = \sum_{i=0}^{n}b_{i}^{0}B_{i}^{n}(t) = \sum_{i=0}^{n-1}b_{i}^{1}B_{i}^{n-1}(t) = \dots = \sum_{i=0}^{0}b_{i}^{0}B_{i}^{0}(t) = b_{0}^{n}

Derivatives

Derivatives of Bernstein Polynomials
d d t B i n ( t ) = d d t i n t i ( 1 t ) n i = d d t n ! i ! ( n i ) ! t i ( 1 t ) n i = n ! i ! ( n i ) ! [ i t i 1 ( 1 t ) n i t i ( 1 t ) n i 1 ( n i ) ] = n ! i ! ( n i ) ! i t i 1 ( 1 t ) n i n ! i ! ( n i ) ! t i ( 1 t ) n i 1 ( n i ) = n ( n 1 ) ! ( i 1 ) ! ( n i ) ! t i 1 ( 1 t ) n i n ( n 1 ) ! i ! ( n i 1 ) ! t i ( 1 t ) n i 1 = n i 1 n 1 t i 1 ( 1 t ) n i n i n 1 t i ( 1 t ) n i 1 = n [ B i 1 n 1 ( t ) + B i n 1 ( t ) ] \begin{aligned} \frac{d}{dt}B_{i}^{n}(t) &= \frac{d}{dt} \lgroup_{i}^{n} \rgroup t^{i}(1-t)^{n-i} \\ &= \frac{d}{dt} \frac{n!}{i!(n-i)!}t^{i}(1-t)^{n-i} \\ &= \frac{n!}{i!(n-i)!}[i \cdot t^{i-1}(1-t)^{n-i} - t^{i}(1-t)^{n-i-1} \cdot (n-i)] \\ &= \frac{n!}{i!(n-i)!} i \cdot t^{i-1}(1-t)^{n-i} - \frac{n!}{i!(n-i)!} t^{i}(1-t)^{n-i-1} \cdot (n-i) \\ &= \frac{n(n-1)!}{(i-1)!(n-i)!} t^{i-1}(1-t)^{n-i} - \frac{n(n-1)!}{i!(n-i-1)!} t^{i}(1-t)^{n-i-1} \\ &= n\lgroup_{i-1}^{n-1} \rgroup t^{i-1}(1-t)^{n-i} - n \lgroup_{i}^{n-1} \rgroup t^{i}(1-t)^{n-i-1} \\ &= n [B_{i-1}^{n-1}(t) + B_{i}^{n-1}(t)] \end{aligned}

Define B 1 n 1 = 0 ,   B n n 1 = 0 B_{-1}^{n-1} = 0, \ B_{n}^{n-1} = 0 .

Derivatives of the curve b ( u ) b(u) with Bezier Representation
d d u i = 0 n b i B i n ( t ) = i = 0 n b i d d t B i n ( t ) d t d u = i = 0 n b i n [ B i 1 n 1 ( t ) B i n 1 ( t ) ] 1 b a = n b a i = 0 n b i [ B i 1 n 1 ( t ) B i n 1 ( t ) ] = n b a [ b 0 B 1 n 1 ( t ) b 0 B 0 n 1 ( t ) + b 1 B 0 n 1 ( t ) b 1 B 1 n 1 ( t ) + + b n 1 B n 2 n 1 ( t ) b n 1 B n 1 n 1 ( t ) + b n B n 1 n 1 ( t ) b n B n n 1 ( t ) ] = n b a i = 0 n 1 ( b i + 1 b i ) B i n 1 ( t ) = n b a i = 0 n 1 b i B i n 1 ( t ) \begin{aligned} \frac{d}{du} \sum_{i=0}^{n}b_{i}B_{i}^{n}(t) &= \sum_{i=0}^{n}b_{i} \frac{d}{dt} B_{i}^{n}(t) \frac{dt}{du} \\ &= \sum_{i=0}^{n}b_{i} \cdot n[B_{i-1}^{n-1}(t) - B_{i}^{n-1}(t)] \frac{1}{b-a} \\ &= \frac{n}{b-a} \sum_{i=0}^{n}b_{i} [B_{i-1}^{n-1}(t) - B_{i}^{n-1}(t)] \\ &= \frac{n}{b-a} [b_{0}B_{-1}^{n-1}(t) - b_{0}B_{0}^{n-1}(t) + b_{1}B_{0}^{n-1}(t) - b_{1}B_{1}^{n-1}(t) + \dots + b_{n-1}B_{n-2}^{n-1}(t) - b_{n-1}B_{n-1}^{n-1}(t) + b_{n}B_{n-1}^{n-1}(t) - b_{n}B_{n}^{n-1}(t)] \\ &= \frac{n}{b-a} \sum_{i=0}^{n-1}(b_{i+1}-b{i})B_{i}^{n-1}(t) \\ &= \frac{n}{b-a} \sum_{i=0}^{n-1}\triangle{b_{i}} B_{i}^{n-1}(t) \end{aligned}

The tangents of b ( u ) b(u) at t = 0 t=0 and t = 1 t=1 are spaned by b 0 b_{0} , b 0 b_{0} and b n 1 b_{n-1} , b n b_{n} .

在这里插入图片描述

紫色的线条验证了Bernstein Polynomials的partition of unity: i = 0 n B i n ( u ) = 1 \sum_{i=0}^{n}B_{i}^{n}(u) = 1 .

t = 0 t = 0 时,只有 B 0 n = 1 B_{0}^{n} = 1 ,其余 B i n ( t ) = 0 , i 0 B_{i}^{n}(t) = 0, i \ne 0 。故只有 b 1 b_{1} b 0 b_{0} 影响 b ( u ) b(u) t = 0 t = 0 时的切线(参考上图蓝色线条)。

t = 1 t = 1 时,只有 B n n = 1 B_{n}^{n} = 1 ,其余 B i n ( t ) = 0 , i n B_{i}^{n}(t) = 0, i \ne n 。故只有 b n 1 b_{n-1} b n b_{n} 影响 b ( u ) b(u) t = 1 t = 1 时的切线(参考上图红色线条)。

猜你喜欢

转载自blog.csdn.net/u012841922/article/details/89096609