Bernstein基函数的性质
🔎 定义见上一页
对称性
B(n)i(t)=Bnn−i(1−t)
且
B(n)i(t) 在t=in达到最大值
正权性
正性(非负性)+ 权性 = 凸包性
B(n)i(t)≥0,∀t∈[0,1]
n∑i=1B(n)i(t)=1,∀t∈[0,1]
基性
B={B(n)0,B(n)1,...,B(n)N}是次数不高于n的多项式集合(空间)的一组基
且与幂基可以相互线性表达:
递推公式
基函数的递推公式
B(n)i(t)=(1−t)B(n−1)i(t)+tB(n−1)i−1(1−t)
with B(0)0(t)=1,Bni(t)=0 for i∉{0⋯n}
由 (n−1i)+(n−1i−1)=(ni)可推导得到
n阶的基函数由2个n−1阶的基函数加权得到,利于保持一些良好的性质
导数
ddtB(n)i(t)=n[B(n−1)i−1(t)−B(n−1)i(t)]
d2dt2B(n)i(t)=n(n−1)[B(n−2)i−2(t)−2B(n−2)i−1(t)+B(n−2)i(t)]
升阶
(1−t)Bni(t)=(1−in+1)B(n+1)i(t)
tBni(t)=i+1n+1Bn+1i(t)
Bezier曲线的性质
凸包性
凸包性:曲线在控制点组成的多边形内部。
系数满足性和权性的线性组合称为凸组合。
端点插值性
B00(0)=1,Bn1(0)=…Bnn(0)=0
Bn0(1)=⋯=Bnn−1(1)=0,Bnn(0)=1
↓
Bezier曲线经过首末两个控制顶点p0,pn
导数
Bezier曲线的导数(切线)
已知p0,…,pn,f(t)=∑ni=0Bni(t)pi,可得:
f′(t)=nn−1∑i=0Bn−1i(t)(pi+1−pi)
f[r](t)=n!(n−r)!⋅n−r∑i=0Bn−ri(t)⋅Δrpi
Bezier曲线的端点性质
端点插值:
f(0)=p0
f(1)=pn
端点的切线方向与边相同:
(f)′(0)=n[p1−p0]
(f)′(1)=n[pn−1−pn]
端点的2阶(k)切线与3点(k+1)相关:
(f)″(0)=n(n−1)[p2−2p1+p0]
(f)″(1)=n(n−1)[pn−2pn−1+pn−2]
结合几何意义来理解
升阶
根据Bernstein基的升阶公式可得出Bezier曲线的升阶性质:
f(t)=n+1∑i=0Bn+1i(t)[n+1−in+1pi+in+1pi−1]
系数为4个控制点,黑色为5个控制点,但它们生成的曲线相同。 所生成的桔色曲线本质阶数是3阶。
本文出自CaterpillarStudyGroup,转载请注明出处。 https://caterpillarstudygroup.github.io/GAMES102_mdbook/