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

构造B样条基函数: 以三次为例

1. 参数化

型值点参数,建立 diti之间的关系。

👆 图中是均匀参数化的例子。 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(1t)进行线性组合、即升阶每升一次阶,曲线会更光滑,跨度区间会多覆盖一个结点。



基函数的定义

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 k1) are defined as:

Ni,1(t)={1,tit<ti+10,otherwise

Ni,1(t)=ttiti+k1tiNi,k1(t)+ti+ktti+kti+1Ni+1,k1(t)

for k>1, and i=0,...,n

基函数的例子

Example 1

Ni,1(t)={1,tit<ti+10,otherwise

Ni,1(t)=ttiti+k1tiNi,k1(t)+ti+ktti+kti+1Ni+1,k1(t)

fork>1, and i=0,...,n

Ni,k:Kii个基函数。
N1,1N2,1N1,2
N1,2N2,2N1,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 tk1ttn+1

光滑性

For titjti+k, the basis functions Ni,k(t) are Ck2 at the knots tj


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