《電子技術應用》
您所在的位置:首頁 > EDA與制造 > 設計應用 > 一種三次均勻B樣條曲線快速反算的方法
一種三次均勻B樣條曲線快速反算的方法
來源:微型機與應用2011年第11期
李道軍1,鄔向偉2
(1.鄭州職業(yè)技術學院,河南 鄭州 450121;2.中州大學,河南 鄭州 450044)
摘要: 提出了均勻三次B-spline曲線反算的快速算法。在Matlab中編程實現(xiàn),大大降低了程序的復雜性,提高了運算效率,并使重構所得曲線的兩個端點處曲率不為零,滿足了一階連續(xù),并給出了應用實例。
Abstract:
Key words :

摘  要: 提出了均勻三次B-spline曲線反算的快速算法。在Matlab中編程實現(xiàn),大大降低了程序的復雜性,提高了運算效率,并使重構所得曲線的兩個端點處曲率不為零,滿足了一階連續(xù),并給出了應用實例。
關鍵詞: 逆向工程;B-spline;反算算法;Matlab

 在計算機輔助幾何設計(CAGD)實踐中,常遇到設計者事先并不知道控制多邊形頂點的位置,而只知道曲線上的某些型值點的情況。從設計角度上來說,通??紤]的是曲線的大致形狀,而非控制多邊形的大致形狀。為了構造B-spline曲線,就需要由已知的型值點反算出控制多邊形的頂點。在實際工程應用中,B-spline 曲線的反算過程所涉及到的計算量很大,因此討論B-spline 曲線的快速反算算法有著很重要的意義[1]。
 對于三次均勻B-spline曲線的反算,朱心雄[2]給出了一種計算速度快且易于編程的反算控制頂點的迭代方法,可以得到在允許誤差范圍內的C2連續(xù)曲線。而參考文獻[3]通過A-1的研究對三對角矩陣提出了一種優(yōu)于追趕法和LU分解法的求解方法。但是它們都是以兩端曲率為零作為邊界條件,可能出現(xiàn)人們所不希望看到的曲線在端點處不連續(xù)的現(xiàn)象。針對B-spline 曲線的反算過程計算量大,重構曲線端點處曲率不連續(xù)的問題,本文提出了一個有效的解決辦法,并在Matlab[4]中予以編程實現(xiàn),大大降低了程序的復雜性,提高了運算效率,并使重構所得曲線的兩個端點處曲率不為零,至少滿足了一階連續(xù)。

 式中總共有m+1個線性方程組,但有n+1個控制頂點未知量。因此,要想得到唯一解,需要另外補充兩個方程,這兩個方程一般由邊界條件給定。邊界的補充條件有多種形式,如給定兩端點的切向量、自由端點條件、虛節(jié)點條件和拋物線條件等,實際應用中根據(jù)具體情況選取適合的邊界補充條件。有了補充方程,即可用迭代法或追趕法等求解所建立的線性方程組。
2 快速反算算法
 將定義在每一個節(jié)點區(qū)間上用整體參數(shù)u表示的B-spline基變換成用局部參數(shù)t∈[0,1]表示,則三次均勻B-spline曲線段的矩陣表示為:

 




參考文獻
[1] 劉德平.逆向工程關鍵技術及其應用研究[D].西安:西安電子科技大學,2008.
[2] 朱心雄.自由曲線曲面造型技術[M].北京:科學出版社,1999.
[3] 吳光亞,王小華.反求三次B樣條曲線控制頂點的一種快速算法[J].杭州電子科技大學學報,2005,25(3):64-66.
[4] 王學輝,張明輝.Matlab 6.1最新應用詳解[M].北京:中國水利水電出版社,2002.

此內容為AET網(wǎng)站原創(chuàng),未經(jīng)授權禁止轉載。