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}
由 \binom{n-1}{i} +\binom{n-1}{i-1}=\binom{n}{i} 可推导得到
n阶的基函数由2个n-1阶的基函数加权得到,利于保持一些良好的性质
导数
\frac{d}{dt}B_i^{(n)}(t)=n[B_{i-1}^{(n-1)}(t)-B_i^{(n-1)}(t)]
\frac{d^2}{dt^2}B_i^{(n)}(t)=n(n-1)[B_{i-2}^{(n-2)}(t)-2B_{i-1}^{(n-2)}(t)+B_i^{(n-2)}(t)]
升阶
(1-t)B^n_i(t)=(1-\frac{i}{n+1})B^{(n+1)}_i (t)
tB^n_i(t)=\frac{i+1}{n+1}B^{n+1}_i (t)
Bezier曲线的性质
凸包性
凸包性:曲线在控制点组成的多边形内部。
系数满足性和权性的线性组合称为凸组合。
端点插值性
B_0^0(0)=1,B_1^n(0)= \dots B_n^n(0)=0
B_0^n(1)= \dots =B_{n-1}^n(1)=0,B_n^n(0)=1
\downarrow
Bezier曲线经过首末两个控制顶点p_0,p_n
导数
Bezier曲线的导数(切线)
已知p_0,\dots ,p_n,f(t)=\sum_{i=0}^{n} B_i^n(t)p_i,可得:
{f}' (t)=n\sum_{i=0}^{n-1} B_i^{n-1}(t)(p_{i+1}-p_i)
f^{[r]} (t)=\frac{n!}{(n-r)!} \cdot \sum_{i=0}^{n-r}B_i^{n-r}(t)\cdot \Delta ^r p_i
Bezier曲线的端点性质
端点插值:
f(0)=p_0
f(1)=p_n
端点的切线方向与边相同:
(f)'(0)=n[p_1-p_0]
(f)'(1)=n[p_{n-1}-p_n]
端点的2阶(k)切线与3点(k+1)相关:
(f)''(0)=n(n-1)[p_2-2p_1+p_0]
(f)''(1)=n(n-1)[p_n-2p_{n-1}+p_{n-2}]
结合几何意义来理解
升阶
根据Bernstein基的升阶公式可得出Bezier曲线的升阶性质:
f(t)=\sum_{i=0}^{n+1} B_i^{n+1}(t)[\frac{n+1-i}{n+1} p_i+\frac{i}{n+1} p_{i-1}]
系数为4个控制点,黑色为5个控制点,但它们生成的曲线相同。 所生成的桔色曲线本质阶数是3阶。
本文出自CaterpillarStudyGroup,转载请注明出处。 https://caterpillarstudygroup.github.io/GAMES102_mdbook/