本發(fā)明涉及一種隱式曲線的定義方法,特別涉及一種能夠自由且光滑變形的隱式曲線的定義方法,屬于計(jì)算機(jī)輔助幾何設(shè)計(jì)領(lǐng)域和計(jì)算機(jī)圖形學(xué)領(lǐng)域。
背景技術(shù):
在計(jì)算機(jī)輔助幾何設(shè)計(jì)領(lǐng)域,熟知有兩種常見的定義曲線曲面的方法:參數(shù)形式與隱式形式。這兩種形式各有優(yōu)缺點(diǎn):參數(shù)形式易于繪制,在造型上也便于控制,但難以構(gòu)建任意拓?fù)涞膸缀文P?;隱式形式便于判斷模型相互位置關(guān)系,在布爾運(yùn)算時(shí)具有封閉性,但難以直觀有效地應(yīng)用于幾何造型。
相對于參數(shù)形式中最具代表性的非均勻有理b樣條曲線曲面,現(xiàn)有隱式曲線曲面在幾何造型中的表現(xiàn)常處于兩個(gè)極端:一類是能夠描述和構(gòu)建任意拓?fù)涞膹?fù)雜幾何模型,但其參數(shù)定義在高一維空間中,參數(shù)數(shù)目過于龐大,如徑向基函數(shù)隱式曲面;另一類是定義方式簡潔且所用參數(shù)很少,但其局部表達(dá)能力很弱,難以構(gòu)建出自由光滑可變的幾何模型,如超二次曲面及其改進(jìn)形式。
文獻(xiàn)1“zhoul,kambhamettuc.extendingsuperquadricswithexponentfunctions:modelingandreconstruction.graphicalmodels,1999,63(1):1-20.”和文獻(xiàn)2“周林.擴(kuò)展超二次曲面:一種新的光滑變形曲面模型.電子學(xué)報(bào),1998,26(8):47-50.”公開了一種隱式曲線曲面的定義方法。這兩個(gè)文獻(xiàn)將超二次曲線或曲面的變形參數(shù)擴(kuò)展為極坐標(biāo)或球坐標(biāo)中角度的函數(shù),使用參數(shù)較少且局部表達(dá)能力較強(qiáng)。然而,該方法所定義的擴(kuò)展超二次曲線和擴(kuò)展超二次曲面在變形過程中必然要分別經(jīng)過坐標(biāo)軸上的四個(gè)確定點(diǎn)和六個(gè)確定點(diǎn),在很大程度上限制了它們的表達(dá)能力和變形能力。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提的目的是針對上述現(xiàn)有技術(shù)的缺點(diǎn),提供一種自由光滑變形隱式曲線的定義方法,不僅可以使用少量參數(shù)描述非對稱復(fù)雜模型,還可以自由光滑地變形,也即在光滑變形過程中不受任何確定點(diǎn)的約束。
本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的:一種自由光滑變形隱式曲線的定義方法包括以下步驟:
步驟一、用隱式形式定義直角坐標(biāo)系下的超二次曲線,超二次曲線的隱式方程為:
式中,ε為超二次曲線的變形參數(shù),a和b為兩個(gè)主軸方向的半軸長,這三個(gè)參數(shù)均為正實(shí)數(shù);
步驟二、將超二次曲線的半軸長擴(kuò)展為極坐標(biāo)中角度的函數(shù),擴(kuò)展后的超二次曲線的隱式方程為:
式中,θ為極坐標(biāo)中的極角,f(θ)為極角θ的連續(xù)函數(shù)且其值大于0;
步驟三、結(jié)合b樣條基函數(shù)將f(θ)構(gòu)建成光滑連續(xù)的函數(shù),函數(shù)f(θ)的表達(dá)式為:
式中,ni,p(ξ)為b樣條基函數(shù),n是b樣條基函數(shù)的個(gè)數(shù),p是b樣條基函數(shù)的次數(shù),ξ為參數(shù)區(qū)域坐標(biāo),ξ的取值范圍為[0,1),pi為控制參數(shù),pi為大于0的標(biāo)量且p1等于pn;
步驟四、將極角θ轉(zhuǎn)換為直角坐標(biāo)(x,y)的函數(shù),利用反正切函數(shù)將公式(3)的參數(shù)θ轉(zhuǎn)換為:
式中,sgn(x)為x的符號函數(shù),極角θ的值域?yàn)閇-π/2,3π/2);
步驟五、將公式(3)和公式(4)代入公式(2)即定義出能夠自由且光滑變形的隱式曲線;
步驟六、將步驟五定義的隱式曲線應(yīng)用于逆向工程中,對給定非對稱模型進(jìn)行重構(gòu),以展現(xiàn)該隱式曲線的表達(dá)能力。給定被重構(gòu)幾何模型并在其邊界上選取一系列采樣點(diǎn)(xj,yj),定義如下目標(biāo)函數(shù):
式中,m為采樣點(diǎn)的個(gè)數(shù),半軸長函數(shù)f(θ(xj,yj))展開如下:
以公式(5)所定義的函數(shù)j為優(yōu)化目標(biāo),以變形參數(shù)ε和控制參數(shù)pi為設(shè)計(jì)變量,選用非線性優(yōu)化算法進(jìn)行優(yōu)化,該優(yōu)化問題的數(shù)學(xué)模型為:
規(guī)定優(yōu)化設(shè)計(jì)的迭代終止條件,使用優(yōu)化后的變形參數(shù)ε和控制參數(shù)pi,即可構(gòu)建出逼近所選幾何模型的隱式曲線。
本發(fā)明將超二次曲線的半軸長擴(kuò)展為極坐標(biāo)中角度的函數(shù),所定義的新型擴(kuò)展超二次曲線不僅可以使用少量參數(shù)描述非對稱復(fù)雜模型,還可以自由光滑地變形,也即在光滑變形過程中不受任何確定點(diǎn)的約束。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是應(yīng)用背景技術(shù)文獻(xiàn)中的方法對單位圓進(jìn)行擴(kuò)展而得到的隱式曲線示意圖;
圖2是具體實(shí)施例應(yīng)用本發(fā)明方法對單位圓進(jìn)行擴(kuò)展而得到的隱式曲線示意圖;
圖3是本發(fā)明實(shí)施例中給定的被重構(gòu)幾何模型和模型邊界上64個(gè)采樣點(diǎn);
圖4是應(yīng)用背景技術(shù)文獻(xiàn)中的方法對圖3采樣點(diǎn)進(jìn)行擬合而得到的隱式曲線示意圖;
圖5是具體實(shí)施例應(yīng)用本發(fā)明方法對圖3采樣點(diǎn)進(jìn)行擬合而得到的隱式曲線示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有付出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
一種自由光滑變形隱式曲線的定義方法,其特征在于包括以下步驟:
步驟一、用隱式形式定義直角坐標(biāo)系下的超二次曲線,超二次曲線的隱式方程為:
式中,ε為超二次曲線的變形參數(shù),a和b為兩個(gè)主軸方向的半軸長,這三個(gè)參數(shù)均為正實(shí)數(shù)。
當(dāng)ε等于1時(shí),該超二次曲線為半軸長為a和b的橢圓;當(dāng)ε等于2時(shí),該超二次曲線為對角線長為2a和2b的菱形;當(dāng)ε大于2時(shí),該超二次曲線變化為類似于星形線的形狀;當(dāng)ε小于1時(shí),該超二次曲線隨著ε的減小向矩形演化。
步驟二、將超二次曲線的半軸長擴(kuò)展為極坐標(biāo)中角度的函數(shù),擴(kuò)展后的超二次曲線的隱式方程為:
式中,θ為極坐標(biāo)中的極角,f(θ)為極角θ的連續(xù)函數(shù)且其值大于0。
當(dāng)ε等于1時(shí),f(θ)即為該擴(kuò)展超二次曲線上極角為θ的點(diǎn)的極徑;當(dāng)ε為其它值時(shí),f(θ)的變化能使該擴(kuò)展超二次曲線上極角為θ的點(diǎn)的極徑發(fā)生變化。
步驟三、結(jié)合b樣條基函數(shù)將f(θ)構(gòu)建成光滑連續(xù)的函數(shù),函數(shù)f(θ)的表達(dá)式為:
式中,ni,p(ξ)為b樣條基函數(shù),n是b樣條基函數(shù)的個(gè)數(shù),p是b樣條基函數(shù)的次數(shù),ξ為參數(shù)區(qū)域坐標(biāo),ξ的取值范圍為[0,1),pi為控制參數(shù),pi為大于0的標(biāo)量且p1等于pn。
步驟四、將極角θ轉(zhuǎn)換為直角坐標(biāo)(x,y)的函數(shù),利用反正切函數(shù)將公式(3)的參數(shù)θ轉(zhuǎn)換為:
式中,sgn(x)為x的符號函數(shù)。
當(dāng)x大于0時(shí),sgn(x)為1,則θ在-π/2到π/2之間取值;當(dāng)x小于0時(shí),sgn(x)為-1,則θ在π/2到3π/2之間取值;當(dāng)x等于0時(shí),sgn(x)為0,則θ取值為π/2或-π/2。因此,公式(4)定義的極角θ的值域?yàn)閇-π/2,3π/2),公式(3)中ξ的取值范圍也即參數(shù)區(qū)域?yàn)閇0,1)。
步驟五、將公式(3)和公式(4)代入公式(2)即定義出能夠自由且光滑變形的隱式曲線。
步驟六、將步驟五定義的隱式曲線應(yīng)用于逆向工程中,對給定非對稱模型進(jìn)行重構(gòu),以展現(xiàn)該隱式曲線的表達(dá)能力。給定被重構(gòu)幾何模型并在其邊界上選取一系列采樣點(diǎn)(xj,yj),定義如下目標(biāo)函數(shù):
式中,m為采樣點(diǎn)的個(gè)數(shù),半軸長函數(shù)f(θ(xj,yj))展開如下:
以公式(5)所定義的函數(shù)j為優(yōu)化目標(biāo),以變形參數(shù)ε和控制參數(shù)pi為設(shè)計(jì)變量,選用非線性優(yōu)化算法進(jìn)行優(yōu)化,該優(yōu)化問題的數(shù)學(xué)模型為:
式中的優(yōu)化變量不包含pn,是因?yàn)榍懊嬉?guī)定pn等于p1。規(guī)定優(yōu)化設(shè)計(jì)的迭代終止條件,使用優(yōu)化后的變形參數(shù)ε和控制參數(shù)pi,即可構(gòu)建出逼近給定幾何模型的隱式曲線。
本發(fā)明方法將超二次曲線的半軸長擴(kuò)展為極角的函數(shù),而這個(gè)函數(shù)又由b樣條基函數(shù)構(gòu)建而成。本發(fā)明所定義的隱式曲線一方面繼承了現(xiàn)有擴(kuò)展超二次曲面使用參數(shù)較少的優(yōu)點(diǎn),每個(gè)參數(shù)對曲線形狀都有著局部的直接的影響,而不是通過改變高維曲面而間接地影響曲線形狀;另一方面具有很強(qiáng)的表達(dá)能力和變形能力,而現(xiàn)有擴(kuò)展超二次曲線在變形過程中總要經(jīng)過(±a,0)和(0,±b)四個(gè)確定點(diǎn),其中a和b分別為超二次曲線在x軸和y軸方向的半軸長。通過實(shí)施例可以看出,本發(fā)明方法所定義的隱式曲線能夠很好地逼近給定的非對稱幾何模型,不受任何確定點(diǎn)的約束。下面結(jié)合圖2、圖3、圖5和實(shí)施例對本發(fā)明作詳細(xì)說明。
測試本發(fā)明隱式曲線表達(dá)能力的“鞋印”幾何模型見圖3,其位于[-6,+6]×[-2,3]的矩形區(qū)域內(nèi),圖3中的圓點(diǎn)為模型邊界上隨機(jī)選取的64個(gè)采樣點(diǎn)。下面采用本發(fā)明的方法定義自由光滑變形隱式曲線并對圖3模型進(jìn)行重構(gòu):
步驟一、用隱式形式定義直角坐標(biāo)系下的超二次曲線。超二次曲線的隱式方程為:
式中,ε為超二次曲線的變形參數(shù),a和b為兩個(gè)主軸方向的半軸長,這三個(gè)參數(shù)均為正實(shí)數(shù)。
步驟二、將超二次曲線的半軸長擴(kuò)展為極坐標(biāo)中角度的函數(shù)。按此種方式擴(kuò)展后的超二次曲線的隱式方程為:
式中,θ為極坐標(biāo)中的極角,f(θ)為極角θ的連續(xù)函數(shù)且其值大于0。
步驟三、結(jié)合b樣條基函數(shù)將f(θ)構(gòu)建成光滑連續(xù)的函數(shù)。與b樣條曲線的數(shù)學(xué)表達(dá)式相似,函數(shù)f(θ)的表達(dá)式為:
式中,ni,p(ξ)為b樣條基函數(shù),n和p分別是b樣條基函數(shù)的個(gè)數(shù)和次數(shù),ξ為參數(shù)區(qū)域坐標(biāo),pi為控制參數(shù)。這里要求:pi為大于0的標(biāo)量且p1等于pn。
在本實(shí)施例中,ni,p(ξ)為定義在節(jié)點(diǎn)矢量{0,0,0,0.05,0.1,0.15,0.2,0.25,0.3,0.35,0.4,0.45,0.5,0.55,0.6,0.65,0.7,0.75,0.8,0.85,0.9,0.95,1,1,1}上的二次b樣條基函數(shù),則次數(shù)p為2,控制參數(shù)pi的個(gè)數(shù)n為22(n=節(jié)點(diǎn)個(gè)數(shù)-p-1)。
步驟四、將極角θ轉(zhuǎn)換為直角坐標(biāo)(x,y)的函數(shù)。利用反正切函數(shù)將公式(3)的參數(shù)θ轉(zhuǎn)換為:
式中,sgn(x)為x的符號函數(shù),極角θ的值域?yàn)閇-π/2,3π/2)。
步驟五、將公式(3)和公式(4)代入公式(2)即定義出能夠自由且光滑變形的隱式曲線。假定擴(kuò)展前的超二次曲線為單位圓,當(dāng)控制參數(shù){pi}在保證p1等于p22的條件下,隨機(jī)設(shè)置為{1.5,2,0.5,2,1,1.5,0.5,2,1,1.5,1,1.5,0.5,1.5,2,1,0.5,1,1.5,2,0.5,1.5}時(shí),采用背景技術(shù)方法所定義的擴(kuò)展超二次曲線如圖1所示,采用本步驟所定義的隱式曲線如圖2所示。
由圖2可以看出,本發(fā)明方法將單位圓擴(kuò)展成為了十分不規(guī)則、不經(jīng)過任何確定點(diǎn)的光滑隱式曲線。相對背景技術(shù)方法所定義的必然經(jīng)過(±1,0)和(0,±1)點(diǎn)的擴(kuò)展超二次曲線(見圖1),本發(fā)明方法所定義的自由光滑變形隱式曲線在變形能力上有著很大的提升。
步驟六、將步驟五定義的隱式曲線應(yīng)用于逆向工程中,對給定非對稱模型進(jìn)行重構(gòu),以展現(xiàn)該隱式曲線的表達(dá)能力。給定被重構(gòu)幾何模型并在其邊界上選取一系列采樣點(diǎn)(xj,yj),見圖3,該幾何模型為一“鞋印”,采樣點(diǎn)為鞋印邊界上隨機(jī)選取的64個(gè)圓點(diǎn)。定義如下目標(biāo)函數(shù):
式中,m為采樣點(diǎn)的個(gè)數(shù)(即m=64),半軸長函數(shù)f(θ(xj,yj))展開如下:
以公式(5)所定義的函數(shù)j為優(yōu)化目標(biāo),以變形參數(shù)ε和控制參數(shù)pi為設(shè)計(jì)變量,選用matlab軟件自帶的適用于求解有約束非線性最優(yōu)化問題的“fmincon”函數(shù)對該問題進(jìn)行求解。該優(yōu)化問題的數(shù)學(xué)模型為:
式中的優(yōu)化變量不包含p22,是因?yàn)榍懊嬉?guī)定p22等于p1。在求解優(yōu)化問題(7)時(shí),采用matlab軟件fmincon函數(shù)的默認(rèn)設(shè)置(包括迭代終止條件設(shè)置、優(yōu)化算法選擇等),并將變量ε和pi的初始值均設(shè)為1。使用優(yōu)化后的變形參數(shù)ε和控制參數(shù)pi,即可構(gòu)建出逼近圖3幾何模型的隱式曲線,見圖5,此時(shí)目標(biāo)函數(shù)j為0.043。
采用背景技術(shù)方法所定義的擴(kuò)展超二次曲線對圖3采樣點(diǎn)進(jìn)行擬合,并使用相同數(shù)目的設(shè)計(jì)變量以及同樣的目標(biāo)函數(shù)、優(yōu)化算法和初始條件等,模型重構(gòu)結(jié)果見圖4,優(yōu)化后的目標(biāo)函數(shù)為1.079。相對于圖4中必然經(jīng)過(±a,0)和(0,±b)點(diǎn)的隱式曲線(這四個(gè)點(diǎn)在圖中用叉號表示,優(yōu)化后的半軸長為a=5.716和b=2.525),本發(fā)明方法所定義的自由光滑變形隱式曲線在表達(dá)能力有著很大的提升。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。