曲线均匀分布_曲线篇:深刻理解B 样条曲线(下)
前兩篇中講解了貝塞爾曲線和B樣條基礎。
FrancisZhao:曲線篇: 貝塞爾曲線?zhuanlan.zhihu.comFrancisZhao:曲線篇:深刻理解B 樣條曲線(上)?zhuanlan.zhihu.com本文講一下B樣條的進階
clamped B樣條
由于我們常用的B樣條是clamped B樣條,我們就直接以其為例。
一個由n + 1 控制點和一個節點向量U = { u0, u1, ...., um } 定義的 p次B-樣條曲線C(u),其中前p+1個和最后 p+1個節點是 "clamped" (即,u0 = u1 = ... = up和 um-p = um-p+1 = ... = um).
比如 3次clampedB樣條,節點向量可以為[0 0 0 0 0.3 0.6 0.9 1 1 1 1].
在下圖中,其中n = 10, m = 14 和p = 3, 頭四個節點和最后四個節點是clamped而中間7個節點上均勻分布的。有8個節點區間,每個對應于一個曲線段。在下面左圖,這些節點點以三角形標示。
節點區間[0 0 0 0 1/8 2/8 3/8 4/8 5/8 6/8 7/8 1 1 1 1].
方形為控制點,三角形為節點為同樣控制點的貝塞爾曲線,與上圖對比分別為7次5次3次B樣條曲線以上幾組中, 體現了clamped B樣條的關鍵兩個特性,1 曲線的端點經過頭尾的控制點 2 曲線的首位切線方向和分別與第一第二,倒數第一第二的控制點組成的直線方向相同。
那么為什么clamped B樣條會會有這種特性呢?
如果你不能回答這個問題, 那么實際上就沒有理解B樣條的性質.
這 要回到B樣條基函數計算的的本身
假設僅僅有7個節點假設我們僅僅有7個節點, 如果 u0=u1=0, u2不為0, 那么區間[u0 u1)就是[0 0 ), 這個區間是不存在的, 所以基函數N0,0就是為0.
這個在上圖中的意思, 當有6個控制點的時候, B樣條是0階曲線, 那么N0,0是0, 所以控制點P0根本就沒有用上, 因為系數一直是0.
假設u0=u1=u2=0, u3不為0. 那么對于0階b樣條來說, N0,0 N1,0,都為0, 控制點P0 P1都沒有用上. 對于1階B樣條, N0,1為0, 所以第一個控制點P0也是沒有用上.對于2階B樣條, N0,2,不為0了, 因為是N2,0不為0. 所以N0,2 僅僅由N1,1決定, N1,1僅僅由N2,0決定.
再回頭看B樣條的基函數公式, u趨近于0的時候N0,2的系數是趨近于1的, 因此必然經過P0點.
因此也可以清楚,如果我認為B樣條的局部是具有貝塞爾的性質,那么最大的區別就是基函數的作用范圍,貝塞爾的所有基函數都是作用在整個區間,但是B樣條有著明確的作用范圍,這個性質導致了B樣條沒有必然通過控制點端點的性質。
B樣條的導數:
先講clamped B樣條
既然B樣條是貝塞爾曲線的擴展,那么必然要繼承貝塞爾曲線一些優良的性質。貝塞爾曲線的導數還是貝塞爾, B樣條的導數還是B樣條。
接下來看推導公式:
B樣條公式基函數求導基函數求導為低一階的基函數求導最終的基函數求導因此,可知,B樣條的導數還是B樣條, 依然保留B樣條的優良特性。
控制點減1,階數減1,那么節點數目必然是減2. 對于clamped B樣條,只要是去除第一個和最后一個節點就ok了,因此clamped B樣條的求導還是clamped B樣條,這個性質使其方便計算,應用廣泛。
移動控制點
強凸包性質,如果u位于 [ui,ui+1),那么 C(u) 位于由控制點Pi, Pi-1, ..., Pi-p+1, Pi-p定義的凸包內。
可以理解為B樣條為分區間的貝塞爾曲線,因此必然滿足貝塞爾的凸包性質。
如果在 [ui,ui+1)區間,Pi, Pi-1, ..., Pi-p+1, Pi-p都在同一直線上,那么這一段B樣條必然也在這個直線上。
ok,如果你已經掌握了這些知識,那么恭喜你,已經入門了。
專欄里每一篇都是我一個字一個字打的,都是我認為的原創干貨。
歡迎指正討論,轉載請注明,認同請點贊。
這個系列的文章很容易出錯,希望大佬們多多指正補充。
僅僅收藏是學不會的,還得點贊喜歡加轉發啊。
本文的主要參考資料:
搜索結果提示 - 博客園找找看CS3621 Introduction to Computing with Geometry Course Notes
B-樣條曲線教程(B-spline Curves Notes)目錄
總結
以上是生活随笔為你收集整理的曲线均匀分布_曲线篇:深刻理解B 样条曲线(下)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 延边大学计算机金小峰,第九届中国信息安全
- 下一篇: 个别学生计算机辅导计划,网络学院计算机基