朱厚盛 朱春元 鮑憲帥 謝益武(大連海事大學(xué)信息科學(xué)技術(shù)學(xué)院 遼寧 大連 116026)
圖形構(gòu)造是指使用點(diǎn)、線結(jié)合的方式在二維平面構(gòu)造出符合實(shí)際需要圖形的一種有效方法,在平面設(shè)計(jì)、圖形構(gòu)造、空間模擬等工程領(lǐng)域有著廣泛應(yīng)用[1]。當(dāng)前常見的圖形構(gòu)造方法有構(gòu)造幾何法和邊界表示法等[2-5]。構(gòu)造幾何法通過基本圖元構(gòu)造圖形,由于構(gòu)造幾何法可以調(diào)整基本圖元來修改圖形,因而有一定的復(fù)用性,但同時(shí)缺乏交互性。邊界表示法通過直接構(gòu)造邊界來設(shè)計(jì)圖形,直觀而簡潔,交互性好,但復(fù)用性不足?;谝陨蠁栴},Kim等[6]提出分解構(gòu)造合成特征樹法改進(jìn)邊界表示法構(gòu)造圖形過程。該方法可以有效地提高邊界表示法的復(fù)用性,但是對邊界表示法的圖形構(gòu)造效率造成一定影響。曹秉萬等[7]提出一套實(shí)現(xiàn)組合曲面模型的自動特征簡化和高質(zhì)量邊界生成的算法,引入離散曲面和虛面等概念,擴(kuò)展邊界表示法自動識別短邊、鄰近和不光滑邊界等四類曲面特征,最終通過若干特征簡化和網(wǎng)格生成提高構(gòu)圖效率,但是操作上較為復(fù)雜,適用性較低。王鑫[8]提出基于STEP標(biāo)準(zhǔn)的中性文件向MCNP幾何文件的轉(zhuǎn)換法,將構(gòu)造幾何法拆分成子模塊,通過輸入圖元數(shù)據(jù)、特征點(diǎn)分類和MCNP幾何文件構(gòu)造目標(biāo)圖形,有效地提高了構(gòu)造幾何法的交互性和效率性,但是其構(gòu)造出的圖形不具有復(fù)用性。因此,當(dāng)前構(gòu)圖方法的缺點(diǎn)是無法兼顧復(fù)用性和交互性。缺乏交互性,設(shè)計(jì)者的意圖很難直觀地顯示在圖形里;而缺乏復(fù)用性,則會使得設(shè)計(jì)者在不同的設(shè)計(jì)中做一些重復(fù)的工作,降低了工作效率。為克服這些缺點(diǎn),本文提出了一種兼顧復(fù)用性和交互性的基于中軸變換的參數(shù)化構(gòu)圖方法。本文方法利用中軸的控制點(diǎn)進(jìn)行交互,確保了構(gòu)造時(shí)的交互性;同時(shí),只需對參數(shù)值進(jìn)行改變,即可構(gòu)造相似的圖形,因而也保證了方法的復(fù)用性。
中軸最先是由Blum[9]作為描述幾何對象而引入的一種圖形的表示方法,是指一個(gè)形狀內(nèi)部與邊界有兩個(gè)或以上最近點(diǎn)的點(diǎn)集。由于其出色的性能表現(xiàn)和嚴(yán)格規(guī)范的數(shù)學(xué)定義,使得其在三維打印、碰撞檢測和表面重建等工程領(lǐng)域得到了廣泛的應(yīng)用[10]。中軸點(diǎn)與邊界的距離稱作中軸半徑。利用中軸半徑,圖形中軸可以與圖形邊界進(jìn)行變換,這種變換稱作中軸變換[11-12]?;谥休S變換思想,丁展等[13]提出一種基于線框映射的中值面提取方法;Zhang等[14]提出基于compensated-convexity的方法用于提取圖形的中軸,首先計(jì)算距離場函數(shù)的平方,然后構(gòu)造出一個(gè)含參數(shù)的凸變換函數(shù),最后得到參數(shù)二次多尺度的圖形中軸;Boussuge等[15]提出一種從給定的B-rep形狀中精確提取圖形中軸的方法;Zhu等[16]提出一種計(jì)算自由曲線圖形中軸的方法。由于中軸與圖形邊界存在基于中軸半徑的變換關(guān)系,因而也可以將中軸變換應(yīng)用于圖形邊界的構(gòu)造方法中。
本文方法首先通過控制點(diǎn)生成中軸段;然后,通過中軸半徑確定圖形邊界信息;接著,基于上一條中軸段的端點(diǎn)迭代生成中軸段及其邊界;最后,基于這些邊界信息,構(gòu)造出圖形。
幾乎所有圖形都可以進(jìn)行極限分割處理最終得到一系列基本圖元數(shù)據(jù),這些基本圖元是由一些規(guī)則的圖形組成[17-18],如三角形、圓等。不過,現(xiàn)實(shí)生活中的圖形通常比較復(fù)雜和不規(guī)則,而使用極限分割的構(gòu)造幾何法會比較繁瑣。構(gòu)造幾何法在具體實(shí)施過程中分為三大步驟:① 確定基本圖形;② 對基本圖元不斷進(jìn)行布爾運(yùn)算得到新的圖形;③ 調(diào)整和優(yōu)化布爾運(yùn)算后的圖形。通過這種方法構(gòu)造的圖形容易對局部細(xì)節(jié)進(jìn)行構(gòu)造,并且圖形的結(jié)構(gòu)層次清晰,易于修改和重用,且效率較高[17]。但是通過這種方法構(gòu)造圖形的過程較為繁瑣,需要不斷地通過布爾運(yùn)算來達(dá)到最終的圖形,導(dǎo)致構(gòu)造過程中交互性不足。綜上,構(gòu)造幾何法有一定的復(fù)用性和效率,但交互性不足。
常見的圖形都是由不同形狀的線條構(gòu)成,這些線條也組成了圖形的邊界信息[17-18]。因此,如果根據(jù)圖形的邊界信息來構(gòu)造一個(gè)圖形,可以精確地構(gòu)造出圖形的邊界,交互性較好。但是邊界表示法只針對圖形的邊界進(jìn)行描述,無法體現(xiàn)出圖形的特征,因此在對圖形進(jìn)行修改和復(fù)用時(shí),需要重新繪制圖形邊界,在復(fù)用性上不足。同時(shí),在構(gòu)造圖形邊界時(shí)由于邊界邊的數(shù)量較多,構(gòu)造效率不高。綜上,邊界表示法有一定的交互性,但復(fù)用性和效率不足。
基于圖像的虛擬技術(shù)構(gòu)造法是指通過利用相機(jī)等設(shè)備采集圖形的離散圖像或者利用攝像機(jī)連續(xù)采集圖形的視頻資料為基礎(chǔ)構(gòu)造圖形的一種方法[19]。該方法對采集到的數(shù)據(jù)進(jìn)行研究和處理,然后借助圖像處理軟件進(jìn)行分析并生成全景圖像,再將全景圖像通過自適應(yīng)圖形進(jìn)行加工處理,構(gòu)造成最終的圖形[20-21]。這種建模方法不需要幾何建模系統(tǒng)的參與,適應(yīng)于構(gòu)造精度要求不高的圖形,雖然效率較高,但精度不足。同時(shí),針對不同的圖形,均需要重新進(jìn)行采樣收集,沒有交互性和復(fù)用性。綜上,虛擬技術(shù)構(gòu)造法效率較高,但精度、交互性和復(fù)用性不足。
依據(jù)Blum[9]提出的中軸變換理論,每個(gè)圖形都有其降維表示的中軸變換。因此,當(dāng)構(gòu)造一個(gè)圖形時(shí),可以根據(jù)圖形的中軸、中軸半徑等參數(shù)值確定其形狀。由于中軸變換是圖形邊界的降維表示,而中軸可以分解為中軸段,各個(gè)中軸段構(gòu)造簡單且易于交互修改,因而使用這種方法構(gòu)造圖形,不僅能夠很好地解決圖形構(gòu)造中的效率問題,還可以確保構(gòu)造過程中的交互性和復(fù)用性[22-24]。該方法主要流程如圖1所示。
圖1 中軸構(gòu)造法流程
(1) 構(gòu)造中軸段:首先通過輸入控制點(diǎn)的數(shù)據(jù)來確定中軸段位置。(2) 確定中軸段對應(yīng)邊界:輸入特征參數(shù)值,結(jié)合步驟(1)中已確定的中軸段,共同確定中軸段對應(yīng)的邊界。(3) 迭代生成新中軸段及其對應(yīng)邊界:基于上一條中軸段的端點(diǎn),重復(fù)步驟(1)和(2),迭代生成中軸段及其邊界。(4) 生成圖形:最終基于這些生成的邊界信息,構(gòu)造出圖形。
本節(jié)主要介紹論文中提到的一些相關(guān)概念。
中軸:一個(gè)形狀內(nèi)部距離邊界至少具有兩個(gè)及以上最近點(diǎn)的點(diǎn)的集合,也可以看成是一個(gè)形狀的邊界最大內(nèi)切圓圓心的集合[25-26]。
中軸段:由形狀內(nèi)部中軸點(diǎn)的集合所構(gòu)成的線段,如圖2所示,l1、l2和l3都是中軸段。
中軸端點(diǎn):中軸段兩端的點(diǎn)稱作其端點(diǎn),如圖2所示,中軸段l1的端點(diǎn)是A(x1,y1)和P(x4,y4)。
中軸縫合點(diǎn):三個(gè)或三個(gè)以上中軸段之間的交叉點(diǎn),如圖2所示,P(x4,y4)為中軸縫合點(diǎn)。
中軸方向:中軸段的兩個(gè)端點(diǎn)之間形成的向量,如圖2所示,中軸段l1的中軸方向是(x1-x4,y1-y4)。
邊界方向:中軸段與其對應(yīng)兩條邊界線之間的相對角度,如圖2所示,中軸段l1的邊界方向是l1和AB或AC形成的方向角。根據(jù)中軸定義可知,這兩個(gè)角度值相同。
在構(gòu)造圖形之前,首先需要確定圖形中軸,其可以通過輸入的控制點(diǎn)進(jìn)行確定。在平面坐標(biāo)中,給定中軸段的初始控制點(diǎn)和終控制點(diǎn)的坐標(biāo)位置(x1,y1)、(x2,y2),連接兩控制點(diǎn)即可得到中軸段,如圖3所示。
圖3 輸入控制點(diǎn)獲取中軸段
輸入中軸段對應(yīng)的特征參數(shù)值,結(jié)合3.1節(jié)中的已確定的中軸段,共同確定該中軸段對應(yīng)的邊界。根據(jù)特征值的不同,可以分為以下三種情況。
1) 當(dāng)輸入的中軸半徑值r1=r2=d時(shí),可以得到如圖4所示的中軸段對應(yīng)邊界。
2) 當(dāng)中軸半徑值r1≠r2時(shí),可以構(gòu)造出如圖5所示的圖形。
圖5 半徑不等的中軸段構(gòu)造圖
3) 當(dāng)中軸半徑值r1=0且r2≠d時(shí),該中軸段構(gòu)造出的圖形如圖6所示,實(shí)際是一個(gè)內(nèi)角的角平分線。
圖6 角平分線中軸段構(gòu)造圖
在3.2節(jié)中,通過輸入特征參數(shù)值,結(jié)合已確定的中軸段,可以初步構(gòu)造中軸段對應(yīng)的邊界。在舊的中軸段節(jié)點(diǎn)(起點(diǎn)或終點(diǎn))的基礎(chǔ)上迭代生成新中軸段及其對應(yīng)邊界,基于點(diǎn)P2(x2,y2)繼續(xù)延伸中軸段至點(diǎn)P3(x3,y3)或點(diǎn)P4(x4,y4),并給出對應(yīng)的中軸半徑值r3=0,則可以得到新的中軸段l2,根據(jù)新的中軸段和中軸半徑進(jìn)而生成新的對應(yīng)邊界,如圖7所示。
(a)
重復(fù)進(jìn)行3.3節(jié)中的操作,即可得到與中軸對應(yīng)的所有邊界,最終能夠構(gòu)造的圖形如圖8所示。
(b)圖8 中軸構(gòu)造圖形示例
當(dāng)給定中軸的起始點(diǎn)P1(x1,y1)和終止點(diǎn)P2(x2,y2),并給定邊界方向∠AEP1(用α來表示,0°≤α≤90°)和中軸半徑值r1=d1,r2=d2,如圖9所示。
圖9 平面構(gòu)造圖示例
根據(jù)中軸段在平面中的坐標(biāo)可知P1、P2的歐氏距離:
(1)
kP1P2=(y1-y2)/(x1-x2)
(2)
以P1(x1,y1)為參考點(diǎn),構(gòu)造水平角α1及α2:
tanα1=kP1P2
(3)
α1=tan-1kP1P2
(4)
根據(jù)直角三角形的兩角互余和三角形外角定理可知:
α2=α1+α
(5)
|AP1|x=d1×sinα2
(6)
|AP1|y=d1×cosα2
(7)
于是可以求得A的坐標(biāo)(x3,y3)為(x1±|AP1|x,y1±|AP1|y),正負(fù)值根據(jù)kP1P2值的正負(fù)進(jìn)行判斷。
具體的距離長度獲取算法和坐標(biāo)獲取算法如算法1和算法2所示。
算法1距離長度獲取算法
根據(jù)給定的半徑r和方向角度α,確定邊界起始點(diǎn)距離中軸邊界點(diǎn)的坐標(biāo)長度;
根據(jù)求得的距離,由getPoint()中的坐標(biāo)運(yùn)算確定邊界點(diǎn);
//start
getDistance(r,α){
求得中軸段的斜率k,根據(jù)k值轉(zhuǎn)換為α2;
根據(jù)α和α2值以及r值求出|AP1|x和|AP1|y;
算法2坐標(biāo)獲取算法
輸入:P1和P2坐標(biāo)點(diǎn)的位置,特征半徑r,以及延展方向參數(shù)α。
輸出:P1和P2端點(diǎn)位置pointP1、pointP2對應(yīng)的對稱邊界點(diǎn)point的坐標(biāo)。
//start
getPoint(pointP1,pointP2,r,α){
if(slope_p1p2>0){
point.x=pointP1.x-|AP1|x
在平臺創(chuàng)辦主體上,調(diào)研的7家平臺既有企業(yè)創(chuàng)辦的,也有創(chuàng)辦于事業(yè)單位和新型研發(fā)機(jī)構(gòu)的,有兩家平臺還是創(chuàng)業(yè)人士為實(shí)現(xiàn)個(gè)人夢想創(chuàng)辦的。創(chuàng)辦企業(yè)的背景資料顯示,有的平臺具有科技金融投資背景,有的是資深科技服務(wù)機(jī)構(gòu),有的是行業(yè)聯(lián)合創(chuàng)新中心,都與科技產(chǎn)業(yè)緊密關(guān)聯(lián)。在平臺規(guī)模上,調(diào)研發(fā)現(xiàn),科研眾包平臺普遍規(guī)模較小,大的平臺有40來個(gè)員工,小的則不到20人,人員結(jié)構(gòu)上主要采取“平臺運(yùn)維人員+專業(yè)服務(wù)團(tuán)隊(duì)”的模式,呈現(xiàn)出很典型的互聯(lián)網(wǎng)企業(yè)特征。
point.y=pointP1.y+|AP1|y
return(point);
elseif(slope_p1p2<0){
point.x=pointP1.x-|AP1|x
point.y=pointP1.y-|AP1|y
returnpoint;
}……
}
//end
點(diǎn)A(x3,y3)和點(diǎn)B(x4,y4)也是關(guān)于直線lP1P2軸對稱,即A和B的對稱中心點(diǎn)在直線lP1P2上,因此可知:
(y-y1)/(x-x1)=(y2-y1)/(x2-x1)
(8)
y=(y2-y1)/(x2-x1)×(x-x1)+y1
(9)
kAB×kP1P2=-1
(10)
(y-y3)/(x-x3)×(y2-y1)/(x2-x1)=-1
(11)
將A、B點(diǎn)的軸對稱點(diǎn)坐標(biāo)((x3+x4)/2,(y3+y4)/2)代入式(9)中的(x,y),并利用式(11)中已知點(diǎn)A坐標(biāo)(x3,y3),即可求得對稱點(diǎn)B(x4,y4)的坐標(biāo)。同理即可求得其余C點(diǎn)和D點(diǎn)的坐標(biāo)值。
若該圖僅有一條中軸線,那么接下來的邊界可知為圓弧,求圓弧公式如下:
x=x1+radius×cos(angle)
(12)
y=y1+radius×sin(angle)
(13)
式中:P1(x1,y1)為圓心;半徑radius=d1;angle為角度。
以上求得各特征點(diǎn)的坐標(biāo)值后,再結(jié)合已有的r=d1處中軸端點(diǎn),即可構(gòu)造出圖形。
為了比較三種構(gòu)圖方法的效率性,采取了不同的數(shù)據(jù)進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)過程中使用的開發(fā)平臺是Visual Studio 2015,處理器為Intel i7-8700,內(nèi)存大小為8 GB,顯卡為NVIDIA GTX 1050Ti。實(shí)驗(yàn)共分成六組:實(shí)驗(yàn)1是利用中軸構(gòu)造簡單圖形;實(shí)驗(yàn)2和實(shí)驗(yàn)4是利用中軸構(gòu)造不規(guī)則圖形;實(shí)驗(yàn)3、實(shí)驗(yàn)5和實(shí)驗(yàn)6則是利用中軸構(gòu)造較為復(fù)雜圖形。實(shí)驗(yàn)構(gòu)造圖形如圖10-圖15所示。
圖12 實(shí)驗(yàn)3構(gòu)造圖形 圖13 實(shí)驗(yàn)4構(gòu)造圖形
圖14 實(shí)驗(yàn)5構(gòu)造圖形圖15 實(shí)驗(yàn)6構(gòu)造圖形
針對不用構(gòu)圖方法分別對實(shí)驗(yàn)1-實(shí)驗(yàn)6進(jìn)行多次構(gòu)圖實(shí)驗(yàn)并取平均用時(shí),得到數(shù)據(jù)如表1所示。
使用邊界表示法構(gòu)造圖形,需要確定圖形的邊界信息。因此在構(gòu)造圖形時(shí),如果圖形形狀和邊界信息較少,可以較快地構(gòu)造出基本圖形,具有良好的效率性。但是,如果圖形邊界信息較多、較為復(fù)雜時(shí),需要確定的邊界信息也隨之增加,此時(shí)使用邊界表示法構(gòu)造目標(biāo)圖形的邊界耗時(shí)明顯增多,已經(jīng)大幅度超過中軸構(gòu)造法構(gòu)圖時(shí)間。
在構(gòu)造幾何法構(gòu)造圖形中,首先需要確定圖形的基本圖元組成,接著重復(fù)對基本圖元進(jìn)行布爾運(yùn)算并消除重復(fù)邊界,這使得該方法構(gòu)造圖形的耗時(shí)急劇增多,用時(shí)遠(yuǎn)超過另外兩種方法,表現(xiàn)出較差的效率性。
中軸構(gòu)造法在構(gòu)造中軸信息較少圖形時(shí),由于圖形內(nèi)部構(gòu)造簡單,此時(shí)其效率比邊界表示法稍好,優(yōu)于構(gòu)造幾何法。但在構(gòu)造復(fù)雜多邊形時(shí),利用中軸變換的特征優(yōu)勢,將圖形的中軸特征變換為邊界特征,使得構(gòu)造圖形時(shí)可以很好地簡化構(gòu)圖過程,從而降低構(gòu)圖用時(shí)。所以,中軸構(gòu)造法在構(gòu)造圖形上時(shí)具有更好的效率。
通過第4節(jié)介紹可知,利用中軸變換的特性以及給定特征參數(shù),可以構(gòu)造符合要求的圖形。下面利用傳統(tǒng)的構(gòu)造幾何法和邊界表示法分別對圖11、圖12進(jìn)行構(gòu)造過程分析,用于對比本文提出的圖形構(gòu)造方法的交互性和復(fù)用性效果。
根據(jù)構(gòu)造幾何法中的定義可知,首先確定構(gòu)造圖形需要的基本圖元,接著對基本圖元不斷進(jìn)行布爾運(yùn)算,最終消除圖元之間的重復(fù)邊界,確定最后的圖形。因此構(gòu)造幾何法的構(gòu)造過程如下:根據(jù)圖12的結(jié)構(gòu),可知其由兩個(gè)長方形組成,即可選定合適的三角形圖元,如圖16(a)所示,接著對基本圖元進(jìn)行布爾運(yùn)算,最后消除圖元之間的重復(fù)部分得到圖形,即如圖12所示的圖形。構(gòu)造圖11的步驟和構(gòu)造圖12步驟相同,圖11由多個(gè)圖形組成,因此首先需要確定多個(gè)基本圖元,如圖16(b)所示,接著對基本圖元進(jìn)行多次布爾運(yùn)算,最終才能得到圖11所示的圖形。
使用邊界構(gòu)造法構(gòu)造圖形不同于構(gòu)造幾何法,它需要確定原圖形的邊界信息,根據(jù)圖形的邊界信息,一步一步構(gòu)造圖形,最終確定圖形的原狀,如圖17所示。
通過對比三種不同的構(gòu)造圖形方法可知,中軸構(gòu)造法在構(gòu)造過程中,通過輸入中軸段和特征參數(shù)構(gòu)造目標(biāo)圖形的內(nèi)部結(jié)構(gòu)和外表特征,在圖形構(gòu)造時(shí)有直觀的輸入輸出效果,對圖形的結(jié)構(gòu)和邊界信息有直接的展示,并且詳細(xì)地記錄了構(gòu)圖過程中特征元素的幾何關(guān)系及相互間的拓?fù)湫畔ⅰ4送?,該方法在?gòu)圖過程中強(qiáng)調(diào)圖形外表的細(xì)節(jié),清晰地顯示了所有構(gòu)圖元素(點(diǎn)、線、邊界)的幾何信息和之間的連接關(guān)系,具有很好的表達(dá)性和交互性。使用邊界表示法確定目標(biāo)圖形的邊界信息后,輸入邊界信息構(gòu)造圖形,一步步獲得輸出邊界信息并最終得到目標(biāo)圖形,能夠很好地體驗(yàn)構(gòu)圖過程,因此也具有一定的交互性。使用構(gòu)造幾何法,在確定基本圖元后,對基本圖元進(jìn)行布爾運(yùn)算,消除重復(fù)邊界信息后獲得目標(biāo)圖形。該方法通過直接輸入基本圖元構(gòu)造目標(biāo)圖形,雖然在輸入輸出過程中具有一定的交互性,但是圖元不同于邊界信息,不能很好地展示圖形基本構(gòu)造信息,并且在布爾運(yùn)算消除重復(fù)邊界后無法記錄各個(gè)圖元的原始狀態(tài),圖形邊界和內(nèi)部結(jié)構(gòu)沒有任何特征顯示,在構(gòu)造圖形時(shí)存在交互性不足的問題。
使用中軸構(gòu)造法在原始圖形的基礎(chǔ)上構(gòu)造相似圖形時(shí),因?yàn)橹休S構(gòu)造法是基于中軸變換和參數(shù)化特征進(jìn)行的,所以在構(gòu)造相似圖形時(shí),對于局部性變化,通過調(diào)整對應(yīng)中軸段和特征參數(shù)值即可得到目標(biāo)圖形。如構(gòu)造圖11-圖12的相似圖形,使用中軸構(gòu)造法僅需要改變中軸段P1A的長度和對應(yīng)的特征參數(shù)r=0,即可得到相似圖形,如圖18(a)所示;同理,使用該方法改變圖12中軸段PP1對應(yīng)的特征參數(shù)r=d,即可構(gòu)造出相似圖形,如圖18(b)所示。此外,在圖12的基礎(chǔ)上對中軸段PP1的P點(diǎn)和P1點(diǎn)進(jìn)行延展和特征值化,可以得到相似圖形,如圖14所示。當(dāng)需要對原圖形進(jìn)行整體變化時(shí),根據(jù)中軸構(gòu)造法的定義,通過同步改變原始圖形的中軸段和特征值,可以快速得到目標(biāo)圖形。中軸構(gòu)造法在構(gòu)造相似圖形時(shí)極大地簡化了構(gòu)造步驟,其具有較好的復(fù)用性。
(a) (b)圖18 中軸構(gòu)造法構(gòu)造相似圖形
使用邊界表示法在已構(gòu)造圖形的基礎(chǔ)上構(gòu)造相似圖形時(shí),由于邊界表示法基于邊界信息構(gòu)造圖形,當(dāng)圖形局部特征發(fā)生變化,需要重新修改對應(yīng)的邊界信息并重新進(jìn)行構(gòu)造,如構(gòu)造圖11的相似圖形時(shí),需要調(diào)整邊界AB和CD信息并進(jìn)行重新構(gòu)造,如圖19所示。構(gòu)造圖12的相似圖形時(shí),需要重新調(diào)整邊界AB、HG和圓弧AH信息并進(jìn)行構(gòu)造,如圖20所示。該過程在構(gòu)圖中耗時(shí)較多,復(fù)用性表現(xiàn)較差。當(dāng)對原始圖形進(jìn)行整體變化時(shí),由于邊界信息不同于基本圖元信息,當(dāng)邊界信息發(fā)生變化時(shí),需要重新確定邊界信息。此時(shí)使用邊界表示法,需要對所有邊界信息進(jìn)行變化才能構(gòu)造目標(biāo)圖形,因此幾乎沒有復(fù)用性。
圖20 邊界表示法構(gòu)造相似圖形
在構(gòu)造幾何法中,基于基本圖元構(gòu)造圖形在對原始圖形整體進(jìn)行變化時(shí),可以同步調(diào)整原始基本圖元的大小,再對變換后的基本圖元進(jìn)行布爾運(yùn)算即可構(gòu)造目標(biāo)圖形,此時(shí)具有較好的復(fù)用性。當(dāng)需要對原始圖形進(jìn)行局部變化時(shí),使用該方法只需要對局部基本圖元信息進(jìn)行調(diào)整,再重新對調(diào)整后的基本圖元進(jìn)行布爾運(yùn)算,便可以構(gòu)造目標(biāo)圖形,如構(gòu)造圖11-圖12的相似圖形時(shí),僅需調(diào)整圖21(a)中E圖元和圖21(b)中的A圖元即可,此時(shí)構(gòu)圖的復(fù)用性表現(xiàn)較好。
(a) (b)圖21 構(gòu)造幾何法構(gòu)造相似圖形
使用三種方法分別對實(shí)驗(yàn)2-實(shí)驗(yàn)5等多邊圖形多次進(jìn)行復(fù)用性構(gòu)圖實(shí)驗(yàn)并取平均用時(shí),得到如表2所示數(shù)據(jù)。
通過對比三種不同的圖形構(gòu)造過程,從構(gòu)造圖形的過程和用時(shí)可知:構(gòu)造幾何法有一定的復(fù)用性和效率,但構(gòu)圖過程中交互性不足,無法很好地表現(xiàn)出圖形的自身特征;而邊界表示法有一定的交互性,但復(fù)用性和構(gòu)圖過程中的效率不足;基于中軸變換的參數(shù)化圖形構(gòu)造方法則在效率、交互性上均具有較好的表現(xiàn),同時(shí)參數(shù)化的方式可以使得構(gòu)造出的圖形能以數(shù)據(jù)的形式進(jìn)行存儲。因此構(gòu)造圖形時(shí)采用中軸變換的參數(shù)化構(gòu)圖方法,綜合來看具有更好的性能。
使用中軸構(gòu)造圖形的方法是簡單、高效和可行的,可以在此基礎(chǔ)上實(shí)現(xiàn)各種不同的圖形構(gòu)造。相比傳統(tǒng)的構(gòu)造幾何法和邊界表示法,利用中軸構(gòu)造法構(gòu)造圖形不僅僅更加簡單、高效,具有很強(qiáng)的交互性,而且還有很好的復(fù)用性。另外,通過坐標(biāo)數(shù)據(jù)來描述中軸和特征值,具有很好的數(shù)據(jù)結(jié)構(gòu),十分便于保存和復(fù)原。此外,當(dāng)利用中軸構(gòu)造相似的圖形時(shí),僅需要改動特征參數(shù)值即可達(dá)到預(yù)期效果,極大地提高了原有數(shù)據(jù)的利用率,具有極佳的復(fù)用率。因此本文的主要貢獻(xiàn)在于:(1) 利用中軸的特性構(gòu)造圖形,只需提供相關(guān)參數(shù)值就可構(gòu)造出符合要求的圖形,具有很好的交互性;(2) 根據(jù)中軸的數(shù)學(xué)定義,中軸和參數(shù)值的數(shù)據(jù)可以選擇適當(dāng)?shù)臄?shù)據(jù)結(jié)構(gòu)進(jìn)行保存,數(shù)據(jù)重用性很高;(3) 構(gòu)造相似的圖形時(shí),只需適當(dāng)更改參數(shù)值,即可得到所需的新圖形,極大地提高了構(gòu)圖過程中的復(fù)用性。
未來的工作將主要集中在使用該方法生成復(fù)雜結(jié)構(gòu)的圖形,同時(shí)將其合理有效地拓展到三維空間中,并進(jìn)一步研究如何利用中軸實(shí)現(xiàn)三維模型的模型構(gòu)造。