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\} Bin(u)=inui(1u)nifor i{0,1,,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 i=0nbiui(1u)ni=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} i=0nbiui(1u)n(1u)ni=i=0nbiui(1u)i=i=0nbi(1uu)i=0

Since u ∈ ( 0 , 1 ) u \in (0,1) u(0,1), ( u 1 − u ) i (\frac{u}{1-u})^{i} (1uu)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} i=0nbiui(1u)ni equals zero, only when all b i b_{i} bi 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 i=0nbiui(1u)ni=0 iif all b i b_{i} bi equal zero. Thus, u i ( 1 − u ) n − i u^{i}(1-u)^{n-i} ui(1u)ni are linearly independent, and B i n ( u ) B_{i}^{n}(u) Bin(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) Bin(u)=Bnin(1u)

  2. They have roots at 0 0 0 and 1 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} Bin(0)=Bnin(1)={1for i=0,0for i>0.

  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} i=0nBin(u)=1for all uR.i=0nBin(u)=(u+(1u))n=1n=1

  4. They are positive in ( 0 , 1 ) (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) Bin(u)>0for u(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} Bin+1(u)in+1ui(1u)n+1ii!(n+1i)!(n+1)!ui(1u)n+1i=uBi1n(u)+(1u)Bin(u)=ui1nui1(1u)n+1i+(1u)inui(1u)ni=i1nui(1u)n+1i+inui(1u)ni+1=[(i1)!(ni+1)!n!+i!(ni)!n!]ui(1u)ni+1=[(i)!(ni+1)!in!+i!(ni+1)!n!(ni+1)]ui(1u)ni+1

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) b(u)=i=0nciBin(u)

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

u = a ( 1 − t ) + b t f o r   a ≠ b u = a(1-t) + bt \hspace{1cm} for \ a \ne b u=a(1t)+btfor a̸=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(u)=i=0nbiBin(t)
如果 b i b_{i} bi是一个向量,且 ∑ i = 0 n B i n ( t ) = 1 \sum_{i=0}^{n}B_{i}^{n}(t) = 1 i=0nBin(t)=1,那么 b ( u ) b(u) b(u)相当于是向量 b i b_{i} bi的一个线性组合,在由 b i b_{i} bi组成的凸面体里。(Affine Combination: In mathematics, a linear combination of vectors x 1 , … , x n x_{1},\dots,x_{n} x1,,xn,
∑ 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} i=1naixi=a1x1++anxn
is called an affine combination of x 1 , … , x n x_{1},\dots,x_{n} x1,,xn when the sum of the coefficients is 1, that is, ∑ i = 1 n a i = 1 \sum_{i=1}^{n}a_{i} = 1 i=1nai=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 f:xyxMx+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) b(u)=i=0nbi0Bin(t), with u = a ( 1 − t ) + b t u = a(1-t) + bt u=a(1t)+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} b(u)=i=0nbi0Bin(t)=i=0n1bi1Bin1(t)==i=00bi0Bi0(t)=b0n

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} dtdBin(t)=dtdinti(1t)ni=dtdi!(ni)!n!ti(1t)ni=i!(ni)!n![iti1(1t)niti(1t)ni1(ni)]=i!(ni)!n!iti1(1t)nii!(ni)!n!ti(1t)ni1(ni)=(i1)!(ni)!n(n1)!ti1(1t)nii!(ni1)!n(n1)!ti(1t)ni1=ni1n1ti1(1t)ninin1ti(1t)ni1=n[Bi1n1(t)+Bin1(t)]

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

Derivatives of the curve b ( u ) 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} dudi=0nbiBin(t)=i=0nbidtdBin(t)dudt=i=0nbin[Bi1n1(t)Bin1(t)]ba1=bani=0nbi[Bi1n1(t)Bin1(t)]=ban[b0B1n1(t)b0B0n1(t)+b1B0n1(t)b1B1n1(t)++bn1Bn2n1(t)bn1Bn1n1(t)+bnBn1n1(t)bnBnn1(t)]=bani=0n1(bi+1bi)Bin1(t)=bani=0n1biBin1(t)

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

在这里插入图片描述

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值