B樣條基函數
B樣條基函數的定義
由de Boor和Cox分別導出B樣條基函數的遞推定義,B樣條基函數可以表示爲
Ni,0(u)Ni,p(u)={1,ui⩽u<ui+10,其他=ui+p−uiu−uiNi,p−1(u)+ui+p+1−ui+1ui+p+1−uNi+1,p−1(u),p>0
並約定0/0=0。式中p表示B樣條的冪次,u爲節點,下標i爲B樣條的序號。
上式表明,任意p次B樣條基函數可由兩個相鄰的p−1次B樣條基函數的線性組合構成。
B樣條基函數的性質
- 如果u∈/[ui,ui+p+1),則Ni,p(u)=0。
- 當u∈[ui,ui+1)時,j=i−p∑iNj,p(u)=1。
B樣條基函數的導數
B樣條基函數的求導公式爲
Ni,p′(u)=ui+p−uipNi,p−1(u)−ui+p+1−ui+1pNi+1,p−1(u).
下面通過對p利用數學歸納法來證明求導公式。當p=1時,Ni,p−1(u) 和Ni+1,p−1(u) 在每個節點區間內或者爲0,或者爲1,因此Ni,p′(u) 等於ui+1−ui1或者−ui+2−ui+11。我們假設當p−1(p>1)時求導公式成立。根據求導法則(fg)′=f′g+fg′,對基函數
Ni,p(u)=ui+p−uiu−uiNi,p−1(u)+ui+p+1−ui+1ui+p+1−uNi+1,p−1(u)
求導,得到
Ni,p′(u)===ui+p−ui1Ni,p−1(u)+ui+p−uiu−uiNi,p−1′(u)−ui+p+1−ui+11Ni+1,p−1(u)+ui+p+1−ui+1ui+p+1−uNi+1,p−1′(u)ui+p−ui1Ni,p−1(u)−ui+p+1−ui+11Ni+1,p−1(u)+ui+p−uiu−ui(ui+p−1−uip−1Ni,p−2(u)−ui+p−ui+1p−1Ni+1,p−2(u))+ui+p+1−ui+1ui+p+1−u(ui+p−ui+1p−1Ni+1,p−2(u)−ui+p+1−ui+2p−1Ni+2,p−2(u))ui+p−ui1Ni,p−1(u)−ui+p+1−ui+11Ni+1,p−1(u)+ui+p−uip−1ui+p−1−uiu−uiNi,p−2(u)+ui+p−ui+1p−1(ui+p+1−ui+1ui+p+1−u−ui+p−uiu−ui)Ni+1,p−2(u)−ui+p+1−ui+1p−1ui+p+1−ui+2ui+p+1−uNi+2,p−2(u).
由於
ui+p+1−ui+1ui+p+1−u−ui+p−uiu−ui===−1+ui+p+1−ui+1ui+p+1−u+1−ui+p−uiu−ui−ui+p+1−ui+1ui+p+1−ui+1+ui+p+1−ui+1ui+p+1−u+ui+p−uiui+p−ui−ui+p−uiu−uiui+p−uiui+p−u−ui+p+1−ui+1u−ui+1.
於是得到
Ni,p′(u)===ui+p−ui1Ni,p−1(u)−ui+p+1−ui+11Ni+1,p−1(u)+ui+p−uip−1(ui+p−1−uiu−uiNi,p−2(u)+ui+p−ui+1ui+p−uNi+1,p−2(u))−ui+p+1−ui+1p−1(ui+p−ui+1u−ui+1Ni+1,p−2(u)+ui+p+1−ui+2ui+p+1−uNi+2,p−2(u))ui+p−ui1Ni,p−1(u)−ui+p+1−ui+11Ni+1,p−1(u)+ui+p−uip−1Ni,p−1(u)−ui+p+1−ui+1p−1Ni+1,p−1(u)ui+p−uipNi,p−1(u)−ui+p+1−ui+1pNi+1,p−1(u).
證畢。
B樣條曲線曲面
B樣條曲線的定義
p次B樣條曲線的定義爲
P(u)=i=0∑nNi,p(u)Vi,a⩽u⩽b
這裏{Vi}是控制點,{Ni,p(u)}是定義在非週期(並且非均勻)節點矢量
U=⎩⎨⎧p+1a,⋯,a,up+1,⋯,um−p−1,p+1b,⋯,b⎭⎬⎫
(包含m+1個節點)上的p次B樣條基函數。由{Vi}構成的多邊形稱爲控制多邊形。
有理B樣條曲線曲面
NURBS曲線的定義
一條p次NURBS曲線的定義爲
P(u)=i=0∑nNi,p(u)ωii=0∑nNi,p(u)ωiVi,a⩽u⩽b
這裏{Vi}是控制點(它們形成控制多邊形),{ωi}是權因子,{Ni,p(u)}是定義在非週期(並且非均勻)節點矢量U上的p次B樣條基函數。其中
U=⎩⎨⎧p+1a,⋯,a,up+1,⋯,um−p−1,p+1b,⋯,b⎭⎬⎫