Loading [MathJax]/jax/output/HTML-CSS/jax.js

Bernstein基函数的性质

🔎 定义见上一页

对称性

B(n)i(t)=Bnni(1t)

B(n)i(t)t=in达到最大值

正权性

正性(非负性)+ 权性 = 凸包性

B(n)i(t)0,t[0,1]

ni=1B(n)i(t)=1,t[0,1]

基性

B={B(n)0,B(n)1,...,B(n)N}是次数不高于n的多项式集合(空间)的一组基

且与幂基可以相互线性表达:

递推公式

基函数的递推公式

B(n)i(t)=1tB(n1)i(t)+tB(n1)i1(1t)

with B(0)0(t)=1Bni(t)=0 for i{0n}

(n1i)+(n1i1)=(ni)可推导得到

n阶的基函数由2个n1阶的基函数加权得到,利于保持一些良好的性质

导数

ddtB(n)i(t)=n[B(n1)i1(t)B(n1)i(t)]

d2dt2B(n)i(t)=n(n1)[B(n2)i2(t)2B(n2)i1(t)+B(n2)i(t)]

升阶

(1t)Bni(t)=(1in+1)B(n+1)i(t)

tBni(t)=i+1n+1Bn+1i(t)

Bezier曲线的性质

凸包性

凸包性:曲线在控制点组成的多边形内部。

系数满足性和权性的线性组合称为凸组合。

端点插值性

B00(0)=1,Bn1(0)=Bnn(0)=0

Bn0(1)==Bnn1(1)=0,Bnn(0)=1

Bezier曲线经过首末两个控制顶点p0,pn

导数

Bezier曲线的导数(切线)
已知p0,,pn,f(t)=ni=0Bni(t)pi,可得:

f(t)=nn1i=0Bn1i(t)(pi+1pi)

f[r](t)=n!(nr)!nri=0Bnri(t)Δrpi

Bezier曲线的端点性质

端点插值:
f(0)=p0

f(1)=pn

端点的切线方向与边相同:

(f)(0)=n[p1p0]

(f)(1)=n[pn1pn]

端点的2阶(k)切线与3点(k+1)相关:

(f)(0)=n(n1)[p22p1+p0]

(f)(1)=n(n1)[pn2pn1+pn2]

结合几何意义来理解

升阶

根据Bernstein基的升阶公式可得出Bezier曲线的升阶性质:

f(t)=n+1i=0Bn+1i(t)[n+1in+1pi+in+1pi1]

系数为4个控制点,黑色为5个控制点,但它们生成的曲线相同。 所生成的桔色曲线本质阶数是3阶。


本文出自CaterpillarStudyGroup,转载请注明出处。 https://caterpillarstudygroup.github.io/GAMES102_mdbook/