构造B样条基函数: 以三次为例
1. 参数化
型值点参数,建立 di与ti之间的关系。
👆 图中是均匀参数化的例子。 i 是参数, i 的取值构成节点向量基函数通过结点向量来定义,每个基函数定义在几个特定的节点上。
2. 构造基函数𝑏(𝑡)
𝑏(𝑡)应满足以下性质
- 𝑏(𝑡) is C2 continuous
- 𝑏(𝑡) is piecewise polynomial, degree 3 (cubic)
- 𝑏(𝑡) is has local support
- Overlaying shifted 𝑏(𝑡+i) forms a partition of unity
- 𝑏(𝑡)≥0 for all 𝑡
In short: - All desirable properties build into the basis
- Linear combinations will inherit these
基函数的构造方法
Repeated linear interpolation:从0阶(水平直线)开始,使用t和(1−t)进行线性组合、即升阶每升一次阶,曲线会更光滑,跨度区间会多覆盖一个结点。
基函数的定义
De Boor Recursion: uniform k阶 B样条基函数的定义
Uniform:使用均匀参数化
B‐spline curves: general case
此页公式定义在非均匀结点上。
Given: knot sequence t0<t1<⋯<tn<⋯<tn+k (t0,ti,⋯,tn=k) is called knot vector
Normalized B‐spline functions Ni,kof the order (degree k−1) are defined as:
Ni,1(t)={1,ti≤t<ti+10,otherwise
Ni,1(t)=t−titi+k−1−tiNi,k−1(t)+ti+k−tti+k−ti+1Ni+1,k−1(t)
for k>1, and i=0,...,n
基函数的例子
Example 1
Ni,1(t)={1,ti≤t<ti+10,otherwise
Ni,1(t)=t−titi+k−1−tiNi,k−1(t)+ti+k−tti+k−ti+1Ni+1,k−1(t)
fork>1, and i=0,...,n
Ni,k:K代表阶数,i代表第i个基函数。
N1,1和N2,1组合,得到N1,2
N1,2和N2,2组合,得到N1,3
Example 2
Example 3
3. 基函数的平移和伸缩
每个基函数是同一个基函数的平移或伸缩得到,其中第 i 个基函数是以ti为中心的局部函数。
基函数性质
局部性
𝑁i,k(t) > 0 for 𝑡i<𝑡<ti+k
𝑁i,k(t) = 0 for 𝑡0<𝑡<ti or ti+k<t<tn+k
The interval [ti,ti+k], is called support of Ni,k
权性 + 凸包性
∑ni=0Ni,k(t)=1for tk−1≤t≤tn+1
光滑性
For ti≤tj≤ti+k, the basis functions Ni,k(t) are Ck−2 at the knots tj
本文出自CaterpillarStudyGroup,转载请注明出处。 https://caterpillarstudygroup.github.io/GAMES102_mdbook/