葉麗,謝明紅
(華僑大學機電及自動化學院,福建 泉州 362021)
采用積累弦長法擬合3次NURBS曲線
葉麗,謝明紅
(華僑大學機電及自動化學院,福建 泉州 362021)
根據(jù)已知的3次非均勻有理B樣條(NURBS)曲線型值點,采用效果較好的積累弦長參數(shù)化方法構造節(jié)點矢量,從而得到B樣條基;利用帶權控制頂點的矩陣計算出全部控制頂點,最后擬合出所要求的曲線.擬合結果表明,該方法可以反映數(shù)據(jù)點按弦長的分布情況,適用于構造任意次非均勻有理B樣條曲線節(jié)點矢量參數(shù)的計算,較好地適合于工程實踐的應用.
非均勻有理B樣條;積累弦長;參數(shù)化;型值點;控制頂點;曲線擬合
CAD系統(tǒng)在設計自由曲面零件時,由于缺乏傳統(tǒng)方法的觸覺和視覺優(yōu)勢,因此常采用粘土等材料進行傳統(tǒng)的手工設計,然后利用曲線曲面反求技術將其轉(zhuǎn)化為計算機可用的CAD模型.反求技術可以極大地縮短產(chǎn)品周期,更重要的是可以快速趕上或超過世界先進生產(chǎn)技術水平.STEP(Standard Exchange of Product Data Model)國際標準中關于工業(yè)產(chǎn)品幾何定義的統(tǒng)一數(shù)學方法——非均勻有理B樣條(NURBS)方法為標準解析形式的初等曲線曲面、自由型曲線曲面的精確表示和設計提供了一個公共的數(shù)學表示.NURBS曲線曲面在實際應用中可以分為兩種形式[1]:一種是已知控制點求解曲線曲面上的點,稱為正算問題;另一種情況是已知曲線曲面上的型值點求解曲線曲面的控制點,稱為反算問題.本文只討論3次NURBS曲線問題.
由n+1個多邊形控制頂點定義的1條k次NURBS曲線[2],可以表示為1條分段有理多項式矢函數(shù),即
式中:ωi(i=0,1,…,n)為權或者權因子,分別與控制頂點d(i=0,1,…,n)相聯(lián)系;首、末權因子ω0,ωn>0,其他ωi≥0,順序k個權因子不同時為零,以防止分母為零,保留凸包性質(zhì),曲線不致因權因子而退化為一點.Ni,k(u)是由節(jié)點矢量U=[u0,ui,…,un+k+1],按德布爾-考克斯遞推公式?jīng)Q定的k次規(guī)范B樣條基函數(shù).其遞推公式為
u0=u1=…=uk,un+1=un+2=…=un+k+1.
在大多數(shù)實際應用里,端節(jié)點值分別取為0與1,因此有曲線定義域u∈[uk,un+1]=[0,1].給定一組有序數(shù)據(jù)點qi(i=0,1,…,n),要求構造一條NURBS曲線,順序通過這些數(shù)據(jù)點,也就是要從給定的數(shù)據(jù)點,求出定義該NURBS曲線的控制頂點,進而擬合加工出NURBS曲線.
2.1 參數(shù)值的計算
同一組型值點,即使采用同樣的插值(逼近)法,若選擇不同的參數(shù)化方法[3],將得到不同的插值(逼近)曲線.型值點的參數(shù)化應盡可能反映被插值(逼近)曲線的性質(zhì),或設計員欲用型值點所構造的曲線的性質(zhì).對型值點的基本參數(shù)化方法,主要有均勻參數(shù)化、積累弦長參數(shù)化、向心參數(shù)化等.
均勻參數(shù)化就是使每個節(jié)點區(qū)間長度是一個常數(shù),即節(jié)點在參數(shù)軸上呈等距分布.這種參數(shù)化方法僅適合于型值點多邊形各邊(弦長)接近相等的場合.當相鄰段弦長相差懸殊的情況下,生成插值曲線后,弦長較長的那一段曲線顯得較扁平,弦長較短的那段曲線則容易出現(xiàn)尖點或自交.積累弦長參數(shù)化法,可以反映數(shù)據(jù)點按弦長的分布情況,適用于構造的任意k次非均勻有理B樣條曲線節(jié)點矢量,即參數(shù)的計算適合于工程實踐的應用.
假定一條k次NURBS曲線通過的數(shù)據(jù)點為qi(i=0,1,…,n),其參數(shù)值的計算為
對于3次NURBS曲線,則有
由此可準確算出每一個參數(shù)值,并得到其節(jié)點矢量U,以便繼續(xù)后面的運算.
2.2 控制頂點的定義
一條NURBS曲線通過一組給定的數(shù)據(jù)點qi(i=0,1,…,n),要使其首、末端點分別與首、末數(shù)據(jù)點一致.即曲線的分段連接點依次與曲線定義域內(nèi)的節(jié)點一一對應[4],qi點有節(jié)點值uk+i(i=0,1,…,n).該NURBS曲線由n+2個控制頂點di(i=0,1,…,n+2)與節(jié)點矢量U=[u0,u1,…,un+6]來定義,即控制頂點數(shù)目要比數(shù)據(jù)點數(shù)目多2個,共有n+2個未知頂點.對于一條通過數(shù)據(jù)點qi(i=0,1,…,n)的3次NURBS曲線(k=3),其節(jié)點值為u3+i(i=0,1,…,n),節(jié)點矢量為U=[u0,u1,…,un+6],對應的控制頂點為di(i=0,1,…,n+2).
2.3 3次B樣條基的計算
對于周期3次NURBS曲線,首、末數(shù)據(jù)點q0=qn.由于數(shù)據(jù)點是作為NURBS曲線的分段連接點,因此由NURBS曲線的性質(zhì)可知,這些數(shù)據(jù)點僅由其前后相鄰的3個帶權控制頂點決定[5].
設帶權控制頂點為di(i=0,1,…,n+2).其中:每一個di都是用齊次坐標表示,而帶權數(shù)據(jù)點qi,i=0,1,…,n亦轉(zhuǎn)化為齊次坐標表示.它們之間關系為
由上述NURBS曲線基本理論可知,Ni,3(u)叫做3次規(guī)范B樣條基函數(shù),是由節(jié)點矢量U=[u0,u1,…,un+6]按德布爾-考克斯遞推公式?jīng)Q定的,即式(1).
對于3次NURBS開曲線,常將兩端節(jié)點的重復度取為4,即
u0=u1=…=u3,un+3=un+4=…=un+6.
在大多數(shù)實際應用里,端節(jié)點值分別取為0與1.因此,有曲線定義域u∈[u3,un+3]=[0,1].于是,3次NURBS曲線有
u0=u1=…=u3=0,un+3=un+4=…=un+6=1.
當u∈[ui,ui+1],u=ui,i=0,1,2,…,n時,只有Ni+3,0(u)=1,其余均為0.這樣就將B樣條基中所有包含分母為0的項全部去掉了.經(jīng)整理,其公式為
2.4 控制頂點的計算
式(1)共含n+1個方程,對于C2連續(xù)的3次NURBS閉曲線,因首、末數(shù)據(jù)點相重,q0=qn,不計重復,方程數(shù)減少1個,剩下n個.又由于首、末3個控制頂點依次相重[7],即dn=d0,dn+1=d1,dn+2=d2,則未知控制頂點數(shù)少了3個,也剩下了n個.因此,可從n個方程構成的線性方程組中求解出n個未知控制頂點.
將上述計算的3次B樣條基的結果代入,得到求解帶權控制頂點的矩陣表達式為
式(4)中:系數(shù)矩陣中的元素均為B樣條基函數(shù)的值,只與節(jié)點值有關,采用更直接方便的矩陣形式,有
由此,可求出全部未知控制頂點.
對于3次NURBS開曲線,以及不要求在相重的首、末數(shù)據(jù)點q0=qn處C2連續(xù)的閉曲線,方程組(2)中的n+1個方程,不足以解決其中包含的n+3個未知控制頂點,還必須增加2個通常有邊界條件給定的附加方程.這時,求解擬合曲線未知控制頂點的線性方程組,可寫成矩陣形式,有式(6)中:系數(shù)矩陣中首行非零元素a1,b1,c1與右端列陣中矢量e1表示了首端點邊界條件;系數(shù)矩陣中末行非零元素an+1,bn+1,cn+1與右端列陣中矢量en+1表示了末端點邊界條件;其余各行元素ai,bi,ci(i=2,3,…,n)與閉曲線情況相同.較為常用的是切矢邊界條件[8],即節(jié)點矢量兩端為4重節(jié)點和給定曲線兩端端點條件.
當取首、末端節(jié)點重復度為4時,在四維空間中3次NURBS曲線首、末控制頂點就是首、末數(shù)據(jù)點,即d0=q0,dn+2=qn,且曲線在首、末端點處分別有切矢,即
其中:q0與qn分別為給定的首、末數(shù)據(jù)點q0與qn處的切矢,即端點切矢;其余元素的值同式(5).
由節(jié)點矢量可求出系數(shù)矩陣,代入式(6),即可求出全部未知控制頂點.
2.5 3次NURBS曲線擬合流程圖
在3次NURBS曲線擬合的過程中,首先根據(jù)已知的型值點,采用積累弦長參數(shù)化化法求出各個參數(shù)值;然后,求得節(jié)點矢量.根據(jù)節(jié)點矢量的節(jié)點集分別計算B樣條基函數(shù),帶入帶權控制頂點矩陣,求解線性方程組.最后,經(jīng)計算可得到所有的控制頂點,并擬合出曲線.這個功能可以很方便的用C++語言編程實現(xiàn),插補流程圖,如圖1所示.
圖1 3次NURBS曲線擬合流程圖Fig.1 Flow chart of third-order NURBS curve fitting
設qk={(-80,-60),(-40,20),(-20,10),(-10,20),(30,-20),(50,40),(70,30)},采用3次曲線來重構qk.其分段弦長分別是
則總弦長是266.所以,有節(jié)點矢量的值為
將節(jié)點矢量代入線性方程組,再結合式(5),可算出全部控制頂點,所擬合出的曲線,如圖2所示.
圖2 3次NURBS曲線擬合Fig.2 Third-order NURBS curve fitting
在反算控制點過程中,用的參數(shù)化方法不同,最后的結果也有差別.所以,在實際應用中要根據(jù)數(shù)據(jù)點的分布情況,選擇合適的參數(shù)化方法來反算控制點.比較而言,采用積累弦長參數(shù)化法最合適.積累弦長參數(shù)化法如實反映了數(shù)據(jù)點按弦長的分布情況,克服了數(shù)據(jù)點按弦長分布不均勻情況下采用均勻參數(shù)化所出現(xiàn)的問題,一直被認為是最佳參數(shù)化法,擬合出的NURBS曲線符合要求.
[1]朱心雄.自由曲線曲面造型技術[M].北京:科學出版社,2000.
[2]施法中.計算機輔助幾何設計與非均勻有理B樣條[M].北京:高等教育出版社,2001.
[3]BRADLEY C,VICKERS G W.Automated rapid prototyping utilizing laser scanning and free-form machining[J].CIRP Annals,1992,41(2):37-40.
[4]呂丹,童創(chuàng)明,鄧發(fā)升,等.3次NURBS曲線控制點的計算[J].彈箭與制導學報,2006,26(4):357-359.
[5]ZHANG Ying-jie,LIU Shang-ning.Feature extraction from slice data for reverse engineering[J].Frontiers of Mechanical Engineering,2007,2(1):25-31.
[6]韓慶瑤,趙保亞,譚建鑫,等.NURBS曲線曲面重構的方法[J].機械設計與制造,2006,3(3):137-139.
[7]SHAMSUDDIN S M,AHMEDL M A,SAMIAN Y.NURBS skinning surface for ship hull design based on new parameterization method[J].The International Journal of Advanced Manufacturing Technology,2006,28(9):936-941.
[8]YEH Syh-Shiuh,SU Hsin-Chuan.Implementation of online NURBS curve fitting process on CNC machines[J].The International Journal of Advanced Manufacturing Technology,2009,40(5/6):531-540.
Third-Order Non-Uniform Rational B-Spline Curve Fitting Based on Method of Accumulating Chord Length
YE Li,XIE Ming-hong
(College of Mechanical Engineering and Automation,Huaqiao University,Quanzhou 362021,China)
According to a given set of data points of the third-order non-uniform rational B-spline(NURBS)curve,the parametrization method of accumulating chord length which is more effective is used to construct the knot vectors to obtain the B-spline basis.All of the control points are calculated using the matrix of the control points with powers to fit the required curve finally.The final result reveals that data distribution according to the chord length can be shown by this method.This method can be used in parameter calculation during construction of the knot vector of any order NURBS curve,and can be better fit for engineering practice.
non-uniform rational B-spline;accumulating chord length;parameterization;data point;control points;curve fitting
TB 115;TP 391.7
A
1000-5013(2010)04-0383-05
(責任編輯:陳志賢 英文審校:鄭亞青)
2008-12-12
謝明紅(1968-),男,研究員,主要從事于數(shù)控技術、CAD/CAM及計算機視覺的研究.E-mail:xmh3721@tom.com.
福建省自然科學基金計劃資助項目(E0640007)