三次B樣條曲線擬合演算法
阿新 • • 發佈:2022-04-10
1 三次B樣條曲線方程
B樣條曲線分為近似擬合和插值擬合,所謂近似擬合就是不過特徵點,而插值擬合就是通過特徵點,但是插值擬合需要經過反算得到控制點再擬合出過特徵點的B樣條曲線方程。這裡會一次介紹兩種擬合算法。首先介紹B樣條的曲線方程。
B樣條曲線的總方程為:
其中P i 是控制曲線的特徵點,Fi,k(u)則是K階B樣條基函式。
1.1 三次B樣條曲線方程中基函式為:
其中 表示階乘。化成看的明白的式子就是(以四個控制點為例):
將圖片上的基函式代入到方程(1)中,就是:
方程(3)就是三次B樣條曲線方程。上式(2)的j是什麼意思,其實j就是控制點的索引值。這裡我把書上的公式摘抄下來,可能看起來更為清晰。參考書籍:《計算機圖形學 第3版》何援軍 第13章
三次B樣條曲線計算
2 三次B樣條曲線近似擬合
近似擬合很簡單。不需要求控制點,求得, 由上述方程(3),代入,就可以得到由這四個點近似擬合的一段三次B樣條曲線,起始點在P 0,終點在P 1,對於閉合輪廓,最後一段可以取前兩點做輔助,擬合實驗結果我最後一塊給出。這種近似擬合曲線光滑,但是最大不足就是不過特徵點,也就是不過P i ,需要過點需要反求控制點再擬合。
3 三次B樣條插值擬合
插值擬合較為複雜。其實也不算是很複雜,找資料過程和理解過程是一個複雜的過程。不過有了前面大神做工作,我們只是借用別人的成果寫程式碼就好了。我給大家看一篇論文,大家可以百度或者去知網搜尋,閉合 B 樣條曲線控制點的快速求解演算法及應用。文章講解了反求控制點的具體步驟,寫的非常詳細,基本上貼近程式碼的那種。大家可以根據這篇論文反求控制點,擬合出來的三次B樣條曲線是
4 擬合結果
緣輪廓