蔡 恒, 張 慧
(清華大學(xué)軟件學(xué)院, 北京 100084)
帶自由曲面的三視圖重建算法研究
蔡 恒, 張 慧
(清華大學(xué)軟件學(xué)院, 北京 100084)
針對(duì)蘊(yùn)含自由曲面的三視圖,提出了通過恢復(fù)邊界線和輪廓線進(jìn)而根據(jù)這些恢復(fù)的空間曲線重建自由曲面的算法。首先分析并證明了自由曲面在三視圖中的投影性質(zhì),從而提出邊界投影和輪廓投影的匹配算法。針對(duì)視圖中存在的被打斷的樣條曲線,提出了分段樣條曲線的爬坡算法來解決此類曲線不能匹配的問題。然后基于投影匹配序列重建出自由曲面的邊界線,再由邊界投影上的點(diǎn)和輪廓投影端點(diǎn)的對(duì)應(yīng)關(guān)系重建出空間輪廓線。由輪廓線等參采樣構(gòu)造截面線并和邊界線一起蒙皮生成最終自由曲面。本文提出的算法擴(kuò)展了工程圖的重建域。
自由曲面重建;三視圖;曲面蒙皮
工程圖的三維重建是計(jì)算機(jī)輔助設(shè)計(jì)領(lǐng)域的重要研究課題。隨著制造業(yè)的發(fā)展,早先積累下來的設(shè)計(jì)圖紙已經(jīng)達(dá)到了難以想象的規(guī)模,在如此浩瀚的圖紙面前,人們?cè)絹碓诫y以從之前的二維圖紙中獲得有用的設(shè)計(jì)靈感和信息。用計(jì)算機(jī)管理這些遺產(chǎn)并且還能快速重建出圖紙所代表的造型成為人們迫切希望解決的問題。正是工業(yè)界的強(qiáng)烈需求催發(fā)了學(xué)術(shù)界對(duì)工程圖三維重建的熱衷。Idesawa[1]于20世紀(jì)70年代發(fā)表工程圖重建論文后,學(xué)術(shù)界對(duì)工程圖的三維重建進(jìn)行了長(zhǎng)達(dá)四十多年的研究,取得了一定的進(jìn)展,開始只能重建多面體[1-2],現(xiàn)在已經(jīng)能重建二次曲面[3-8]。但工程圖中也存在自由曲面,這類視圖無法用先前的方法來重建。
本文基于由空間曲線構(gòu)造曲面的方法,提出了包含自由曲面的三視圖重建算法,首先對(duì)視圖進(jìn)行投影匹配,繼而根據(jù)投影匹配生成空間自由曲面的邊界線和輪廓線,最后由邊界線和輪廓線重建出自由曲面。
工程圖重建按照重建方法可分為2類:面向線框的重建方法和面向體的重建方法。其中面向線框的方法可以用來表示復(fù)雜的形體。Wesley和Markowsky[2]首先把基于線框模型的多面體重建算法引入到了工程圖的重建,首先由視圖中投影點(diǎn)生成空間頂點(diǎn),由空間點(diǎn)構(gòu)造線框模型,再由線框模型重建出多面體。Sakurai和 Gossard[3]在文獻(xiàn)[2]的基礎(chǔ)上首次提出了二次曲面的重建方法,但其要求二次曲面主軸必須與坐標(biāo)軸平行,才能重建二次曲面包括圓柱面、圓錐面、球面。Kuo[4]提出的由三視圖重建二次曲面的算法中用五點(diǎn)法來生成二次曲線,即通過二次曲線上不同的五個(gè)點(diǎn)來唯一確定一條二次曲線,算法統(tǒng)一了二次曲線的表示,但處理過程較復(fù)雜。Liu等[5]提出了由三視圖重建二次曲面和環(huán)面的算法,取消了二次曲面軸的位置限制即二次曲面對(duì)稱軸不必和坐標(biāo)軸平行或垂直。Gong等[6]在基于邊界表示模型的基礎(chǔ)上提出了混合線框模型重建三視圖中二次曲面體的方法,根據(jù)投影特征直接重建出二次曲面而不需要在線框模型中搜索二次曲面簡(jiǎn)化了重建過程。Fu等[7]提出了基于體的正交三視圖重建組合體的算法,根據(jù)線索來識(shí)別旋轉(zhuǎn)側(cè)面,并由旋轉(zhuǎn)側(cè)面重建出基元體,再布爾運(yùn)算得到最終實(shí)體,能夠較好地處理二次曲面相交的情況。Wen等[8]針對(duì)剖視圖提出了基于體的重建算法,適用于全剖視圖、部分剖視圖和斜剖視圖,對(duì)于二次曲面相交的高次曲線能進(jìn)行有效地處理?,F(xiàn)有的工程圖三維曲面的重建,仍局限在二次曲面。重建自由曲面是工程圖三維重建中的難點(diǎn)。因此需結(jié)合曲線到曲面的構(gòu)造方法對(duì)此進(jìn)行研究。
Woodward[9]開創(chuàng)了用B樣條截面線蒙皮生成曲面的研究。其算法要求輸入的B樣條截面線都為平面曲線,經(jīng)過處理后使得截面線具有相同的次數(shù)并且都在相同的定義域內(nèi)。Woodward還定義了脊線用來確定截面線在縱向的參數(shù)。再利用B樣條截面線的控制點(diǎn)反求出B樣條曲面的控制點(diǎn)。Piegl和 Tiller[10]提出了通過近似蒙皮一組非均勻有理B樣條(non-uniform rational B-spline,NURBS)截面曲線構(gòu)造曲面的方法。用NURBS表示截面輪廓線的好處是當(dāng)截面輪廓線是不同類型的曲線時(shí)可以統(tǒng)一表示。對(duì)這些截面輪廓線首先進(jìn)行相容性處理,針對(duì)產(chǎn)生大量控制點(diǎn)的問題,提出了近似NURBS曲面蒙皮算法。
Maekawa和 Ko[11]提出了通過擬合一組無序的曲線構(gòu)造曲面的算法,該算法不同于傳統(tǒng)的蒙皮或掃描方法,不需要輸入一組滿足等參條件的曲線,并且輸入的曲線可以相交。Qin和Wright[12]提出了一種漸進(jìn)地重建無序曲線曲面的方法,便于用戶的交互,但是其不能直接生成B樣條曲面,需要通過第三方的插件進(jìn)行轉(zhuǎn)換。Wang等[13]在文獻(xiàn)[10]的基礎(chǔ)上提出了把能量控制應(yīng)用在無序曲線擬合曲面的算法,曲面擬合的線性方程,該線性方程可以通過最小化曲面能量得到唯一解,證明了唯一解的存在,并通過能量約束,使得最終擬合的曲面相比文獻(xiàn)[10]方法得到的曲面更光滑,但存在數(shù)值穩(wěn)定性問題。
上述由曲線到曲面的構(gòu)造方法為包含自由曲面的工程圖重建提供了借鑒,但其輸入都是三維的曲線,所以本文首先基于三視圖重建出空間曲線,再結(jié)合曲面構(gòu)造方法重建出最后的自由曲面。
本文算法主要包括3個(gè)步驟:
步驟1. 三視圖投影匹配,分為空間自由曲面邊界線的投影匹配和輪廓投影匹配。其中邊界線的投影匹配是指從3個(gè)視圖中找出互相匹配的邊界線投影,構(gòu)成投影匹配序列。輪廓投影匹配是指找出視圖中輪廓投影和邊界線投影之間的對(duì)應(yīng)關(guān)系。
步驟2. 空間曲線的重建,分為空間邊界線的重建和輪廓線的重建,其中空間邊界線根據(jù)邊界線投影的匹配序列來重建。空間輪廓線則根據(jù)輪廓投影和邊界線投影的對(duì)應(yīng)關(guān)系進(jìn)行重建。
步驟 3. 在得到空間自由曲線后,根據(jù)空間輪廓線和邊界線恢復(fù)出一組空間截面線,由空間截面線和邊界線蒙皮生成最后的自由曲面。
本節(jié)首先討論自由曲面在三視圖中的投影性質(zhì),然后再討論空間樣條曲線在三視圖中投影性質(zhì),接著基于投影性質(zhì)查找視圖中自由曲面邊界線投影匹配序列,對(duì)視圖中沒有匹配的樣條曲線,找出其中包含的輪廓投影和邊界投影的對(duì)應(yīng)關(guān)系。
定義1. 公共軸:兩個(gè)視圖所在的平面在三維空間相交形成的直線為公共軸。
定義2. 投影鏈接(鏈接):視圖中邊的集合,是空間形體在視圖中的投影邊,包括直線邊、二次曲線邊以及代表自由曲面投影的樣條曲線邊。
定義 3. 投影匹配序列:設(shè) L為重建曲面的空間樣條邊界線,Lf、Ls、Lt分別為L(zhǎng)在前視圖、
分別為三個(gè)投影鏈接的起點(diǎn)和終點(diǎn),Bf、 Bs、Bt為投影鏈接的包圍盒。projectionA(P)表示點(diǎn)P在坐標(biāo)軸A上的投影點(diǎn),projectionA({S, E})表示一條投影鏈接的起點(diǎn)S和終點(diǎn)E在坐標(biāo)軸A上的投影區(qū)間,projectionA({B})表示一條投影鏈接的包圍盒在坐標(biāo)軸A上的投影區(qū)間。
或
則三條投影鏈接Lf、Ls、Lt在三視圖中相互匹配,即(Lf,Ls,Lt)是L在三視圖中投影匹配序列,如圖1所示。
圖1 空間曲線的三視圖投影匹配序列
曲面在投影面上的投影包含邊界投影和輪廓投影,其中邊界投影是曲面邊界線的投影,輪廓投影則是曲面在投影方向上的輪廓信息。如圖 2所示,曲面ABCD在投影面oxy上的投影即其四條邊界線的投影,而其在投影面 oyz上投影不僅包括4條邊界線的投影,還有曲面的輪廓投影,其中E¢F¢即為輪廓投影。本文重建自由曲面的基礎(chǔ)就是得到曲面在三視圖中的邊界投影和輪廓投影及其對(duì)應(yīng)關(guān)系。
圖2 自由曲面邊界線和輪廓投影
定理 1. 一條空間樣條曲線在三視圖中的投影中可能退化為二次曲線鏈接或直線鏈接,但不可能都退化成直線鏈接。
證明. 假設(shè)空間樣條曲線在三視圖中投影Lf、Lt、Ls都為直線鏈接,則樣條曲線所在的平面垂直于3個(gè)坐標(biāo)平面。但因?yàn)?個(gè)坐標(biāo)平面是正交的,任意一個(gè)空間平面只能最多和兩個(gè)坐標(biāo)平面垂直,所以產(chǎn)生矛盾。故一條空間樣條曲線在三視圖中的投影不可能都退化成直線。
如果空間樣條曲線在三視圖中都退化為二次曲線的投影,則根據(jù)已有的重建方法[4-6]重建出空間二次曲線。本文不考慮都退化為二次曲線的情況,只考慮三視圖投影中至少有一條是樣條曲線,其剩余退化的投影可以是二次曲線或直線。因而三個(gè)視圖的投影可分為:三條樣條曲線鏈接、兩條樣條曲線鏈接和一條退化投影鏈接、一條樣條曲線鏈接和兩條退化投影鏈接,如圖3所示。因此如果一個(gè)視圖中一條樣條曲線是曲面邊界線的投影,則一定能在另外兩個(gè)視圖中找到與之對(duì)應(yīng)的投影。
圖3 空間樣條曲線投影示例
3.1 邊界線投影匹配
由定理1得出自由曲面邊界線在三視圖中的投影為樣條曲線、二次曲線或直線但投影不能都退化為直線。本文不處理都退化為二次曲線的情況,處理的投影中至少有一條是樣條曲線,另外退化投影可能是二次曲線或直線。所以在處理投影時(shí),不僅視圖中樣條曲線之間要匹配,樣條曲線還需和二次曲線或直線匹配。在實(shí)際視圖中,自由曲面邊界線的投影存在分段投影邊的情況。如圖4所示,樣條曲線AC在B點(diǎn)被打斷,形成兩條樣條曲線AB和BC,曲線DE找不到與之匹配的曲線 AC。針對(duì)樣條曲線鏈接分段無法匹配的問題,本文提出分段樣條曲線的爬坡算法,用來解決此類鏈接之間的匹配。
圖4 樣條曲線邊在兩視圖中投影匹配示例
視圖中樣條曲線的爬坡匹配算法如下:
算法1. 樣條曲線爬坡匹配算法
輸入:三視圖V1, V2, V3
輸出:投影匹配序列的集合G
算法中相切的樣條曲線是指兩條樣條曲線在公共端點(diǎn)處G1連續(xù)。爬坡過程中滿足G1連續(xù)的樣條曲線會(huì)合并成一條樣條曲線。算法中與 l相切或共線是指當(dāng) l是樣條曲線或二次曲線時(shí),爬坡的曲線與l在公共端點(diǎn)處G1連續(xù),當(dāng)l為直線時(shí)爬坡的直線鏈接與其共線。
如圖5所示,視圖1中樣條鏈接A在視圖1和視圖2之間公共軸上的投影為[minA,MaxA],視圖 2中樣條鏈接投影 B在公共軸上的投影為[minB,MaxB],其中minA等于minB,maxA小于maxB,樣條鏈接A會(huì)沿著樣條鏈接C爬坡,其中A能沿C爬坡的條件是,A和C有公共端點(diǎn),并且A和C在公共端點(diǎn)處滿足G1連續(xù)。A和C合并后的樣條鏈接 A′在公共軸上的投影為[minA,MaxA′],如圖5所示爬坡后的樣條曲線鏈接A′在公共軸上的投影與B的相同,則B和A′匹配,然后再在視圖3中用同樣的方法查找是否存在和B,A′同時(shí)匹配的鏈接D,如果存在則{A′,B,D}構(gòu)成投影匹配組。
圖5 樣條鏈接爬坡匹配示意圖
3.2 輪廓投影對(duì)應(yīng)
視圖中剩余未匹配的樣條曲線鏈接中包含輪廓投影,輪廓投影鏈接不能在另外兩個(gè)視圖中找到與其匹配的投影鏈接。但是輪廓投影鏈接能找到與另外視圖中邊界投影鏈接之間的對(duì)應(yīng)關(guān)系。
對(duì)應(yīng)關(guān)系分為2種:①是投影鏈接只有一個(gè)端點(diǎn)和邊界線投影鏈接上的點(diǎn)對(duì)應(yīng)(圖 6中視圖Vs中AB,CD分別只有一個(gè)端點(diǎn)在視圖Vt中的邊界線投影鏈接上找到對(duì)應(yīng)點(diǎn));②是投影鏈接的兩個(gè)端點(diǎn)都存在對(duì)應(yīng)點(diǎn)(圖6中EF的兩個(gè)端點(diǎn)在視圖Vt都能找到對(duì)應(yīng)點(diǎn))。輪廓投影鏈接和對(duì)應(yīng)邊界線投影鏈接的匹配策略如下:輪廓投影鏈接的端點(diǎn)首先投影到兩視圖的公共軸上,再?gòu)墓草S上的投影點(diǎn)作垂線,求垂線和邊界線投影鏈接的交點(diǎn)即為邊界線投影鏈接與輪廓投影鏈接之間的對(duì)應(yīng)點(diǎn)。找到所有與邊界投影鏈接對(duì)應(yīng)的輪廓投影鏈接。并記錄每個(gè)對(duì)應(yīng)點(diǎn)在邊界投影鏈接上的參數(shù)。輪廓投影對(duì)應(yīng)算法具體步驟如下。
圖6 三視圖輪廓投影示例
算法2. 輪廓投影對(duì)應(yīng)算法
輸入:三視圖V1, V2, V3;邊界線投影匹配序列集合M
輸出:輪廓投影鏈接對(duì)應(yīng)邊界投影鏈接的匹配集合S
S中的元素為五元組{sl, P, bl, Pm, para}
sl: 輪廓投影鏈接
P:Sl其中一個(gè)端點(diǎn)
bl: P對(duì)應(yīng)的邊界投影鏈接
Pm: P在bl上的對(duì)應(yīng)點(diǎn)
para: Pm在bl上的參數(shù)值
FOR each V1中的未匹配的樣條曲線鏈接l1
FOR eachL1的端點(diǎn)P
IF ? P在V1中已經(jīng)匹配的邊界投影鏈接 bl1上bl2←V2中和bl1匹配的邊界投影鏈接
空間自由曲線的重建分為空間邊界線重建和空間輪廓線重建,其中空間邊界線由上節(jié)三視圖中查找的邊界投影匹配序列來重建??臻g輪廓線的重建則由輪廓投影鏈接和邊界線投影鏈接的對(duì)應(yīng)關(guān)系重建。本文用三次B樣條曲線來表示自由曲面的邊界線和輪廓線。
定義4. B樣條曲線:
其中,Pi為控制點(diǎn),u為參數(shù)[14]。
由于B樣條曲線具有仿射不變性[14],B樣條曲線的投影只作用于控制點(diǎn),所以空間B樣條曲線的恢復(fù)實(shí)質(zhì)上是空間曲線控制點(diǎn)的恢復(fù)。點(diǎn)的空間坐標(biāo)可由投影匹配序列中對(duì)應(yīng)點(diǎn)之間的相同坐標(biāo)值來確定。
4.1 重建空間邊界線
上節(jié)得到了空間自由曲線在三視圖中的投影匹配序列,重建空間自由曲線的問題轉(zhuǎn)化為如何通過投影匹配序列恢復(fù)空間自由曲線的控制點(diǎn)。針對(duì)空間自由曲線按照非退化投影和退化投影可以合并成為3類:①三條投影鏈接都是樣條曲線(圖3(a));②兩條投影鏈接為樣條曲線、一條為退化投影鏈接(圖 3(b));③一條投影鏈接為樣條曲線、兩條為退化投影鏈接(圖3(c))。
設(shè)(Lf,Lt,Ls)為空間 B樣條曲線的投影匹配序列。在非退化投影(圖 7(a))中,由圖中虛線表示的對(duì)應(yīng)關(guān)系可知,由控制點(diǎn)投影點(diǎn)(Pf0,Pt0,Ps0)、(Pf1,Pt1,Ps1)、(Pf2,Pt2,Ps2)、(Pf3,Pt3,Ps3)可以恢復(fù)出空間控制點(diǎn)P0、P1、P2、P3,由此可以恢復(fù)出空間B樣條曲線S。同理,在退化投影視圖(圖7(b)~(c))中也能通過視圖中控制點(diǎn)的投影點(diǎn)來恢復(fù)空間的控制點(diǎn)進(jìn)而重建出空間自由曲線。
通過邊界線投影匹配序列生成的空間邊界線的算法,具體步驟如下:
(1) 如果三條投影均為樣條曲線鏈接,相容性處理三條樣條曲線,由三條樣條曲線對(duì)應(yīng)控制點(diǎn)恢復(fù)空間邊界線控制點(diǎn),得到空間邊界線。
(2) 如果兩條投影鏈接為樣條曲線鏈接,一條為退化投影鏈接,相容性處理兩條樣條曲線鏈接,由兩條樣條曲線的控制點(diǎn)和退化投影鏈接上的點(diǎn)的對(duì)應(yīng)關(guān)系恢復(fù)空間邊界線控制點(diǎn),得到空間邊界線。
(3) 如果只有一條投影鏈接為樣條曲線鏈接,兩條為退化投影鏈接,由樣條曲線控制點(diǎn)和兩條退化投影鏈接上的點(diǎn)的對(duì)應(yīng)關(guān)系恢復(fù)空間邊界線控制點(diǎn),得到空間邊界線。
圖7 B樣條曲線的投影匹配類型
上述算法中對(duì)兩條或?qū)θ龡lB樣條曲線進(jìn)行相容性處理,使得視圖間對(duì)應(yīng)的幾條平面B樣條曲線具有相同個(gè)數(shù)的控制點(diǎn),定義在相同的節(jié)點(diǎn)向量上。
4.2 重建空間輪廓線
由 3.2節(jié)可得輪廓投影鏈接端點(diǎn)和邊界投影鏈接的對(duì)應(yīng)點(diǎn),在此基礎(chǔ)給出了空間輪廓線的重建算法,算法的具體步驟如下:
算法3. 空間輪廓線生成算法
輸入:輪廓線投影與邊界投影匹配集合S
輸出:空間輪廓線的集合Cset
FOR eachSi∈S
{sl, P, bl, Pm, para}←si輪廓線投影匹配五元組
sl ←si輪廓線投影
IFSl兩個(gè)端點(diǎn)都有匹配組
sp, ep ←sl 輪廓線的起點(diǎn)和終點(diǎn)
sp', ep'←兩個(gè)匹配組中起點(diǎn)和終點(diǎn)的對(duì)應(yīng)點(diǎn)
l1←Sp', ep'由兩對(duì)應(yīng)點(diǎn)構(gòu)造直線
cpn ←sl的控制點(diǎn)
cpn投影到sl, bl所在視圖的公共軸上
過控制點(diǎn)投影點(diǎn)分別作公共軸的垂線
垂線與l1的交點(diǎn)為每個(gè)控制點(diǎn)在l1的對(duì)應(yīng)點(diǎn)
nc ←sl所在視圖法向
axis←與nc平行的坐標(biāo)軸
scpn ←{cpn, axis,L1上的cpn對(duì)應(yīng)點(diǎn)},cpn的axis坐標(biāo)值替換成對(duì)應(yīng)點(diǎn)axis坐標(biāo)值,構(gòu)成空間控制點(diǎn)
C ←Scpn 得到空間輪廓線
ELSE IF sl只有一個(gè)端點(diǎn)都有匹配組
Pm←由匹配組得端點(diǎn)P的對(duì)應(yīng)點(diǎn)
nc ←sl所在視圖法向
axis←與nc平行的坐標(biāo)軸
scpn ←{cpn, axis, Pm},cpn的axis坐標(biāo)值替換成對(duì)應(yīng)點(diǎn)Pm的axis坐標(biāo)值,構(gòu)成空間控制點(diǎn)
C ←Scpn 得到空間輪廓線
END
END
圖 8為輪廓投影鏈接兩端點(diǎn)都有對(duì)應(yīng)點(diǎn)的情況,分別找出視圖 1中輪廓投影鏈接p0P3的兩個(gè)端點(diǎn)在視圖 2中邊界投影鏈接上的對(duì)應(yīng)點(diǎn)spm、epm,連接兩點(diǎn)構(gòu)成直線段 l,由直線段 l恢復(fù)出空間輪廓線C。具體方法如下:如果輪廓投影鏈接p0P3有 n個(gè)控制點(diǎn),則過每個(gè)控制點(diǎn)作p0P3所在視圖和對(duì)應(yīng)邊界線投影所在視圖的公共軸的垂線,再過每個(gè)控制點(diǎn)在公共軸上的投影點(diǎn)作公共軸的垂線,垂線與l的交點(diǎn)為每個(gè)控制點(diǎn)在l上的對(duì)應(yīng)點(diǎn),根據(jù)視圖1的法向來確定需要替換的坐標(biāo)類型 axisType,P0P3的控制點(diǎn)axisType坐標(biāo)值替換成l上的對(duì)應(yīng)點(diǎn)的該坐標(biāo)值。從而得到了空間輪廓線的控制點(diǎn),重建出了空間輪廓線C。
圖8 輪廓投影兩個(gè)端點(diǎn)都有對(duì)應(yīng)點(diǎn)
圖9為輪廓投影鏈接只有一個(gè)端點(diǎn)有對(duì)應(yīng)點(diǎn)情況,P1P3為空間自由曲面在視圖1中的輪廓投影鏈接,B0B1為視圖2中的邊界線投影鏈接,過P1P3端點(diǎn)P3作視圖1和視圖2公共軸的垂線垂足為p3′,過p3′再作垂線和 B0B1相交于點(diǎn)p0,P0即為p3在視圖 2中的對(duì)應(yīng)投影點(diǎn),由此可得到P0對(duì)應(yīng)的空間點(diǎn)p0′的第三個(gè)坐標(biāo)值。由于p1P3另一個(gè)端點(diǎn)P1在視圖2中沒有找到對(duì)應(yīng)點(diǎn),所以輪廓投影鏈接p1P3的空間輪廓線p4P0′,是通過P1P3平移距離P3P0′得到的。
圖9 輪廓投影只有一個(gè)端點(diǎn)有對(duì)應(yīng)點(diǎn)
通過上面的步驟重建出了自由曲面的空間邊界線和輪廓線,在輪廓投影匹配步驟,保存了輪廓投影鏈接與邊界投影鏈接的對(duì)應(yīng)點(diǎn)在邊界投影鏈接的參數(shù)u1。本文假設(shè)空間輪廓線與其具有連接關(guān)系的空間邊界線的對(duì)應(yīng)點(diǎn)在邊界線上的參數(shù)u2與u1相同,這樣可以由u1計(jì)算出空間輪廓線在空間邊界線上的對(duì)應(yīng)點(diǎn)。
雖然邊界線與對(duì)應(yīng)的輪廓線有對(duì)應(yīng)點(diǎn),但并不是所有對(duì)應(yīng)點(diǎn)都與輪廓線的端點(diǎn)重合(圖 10右下圖所示),因?yàn)樵谳喞队皩?duì)應(yīng)步驟,由于視圖繪制存在誤差,存在垂線與邊界投影鏈接有兩個(gè)交點(diǎn)或沒有交點(diǎn)的情況,當(dāng)有兩個(gè)交點(diǎn)時(shí)本文會(huì)選取兩交點(diǎn)之間的中點(diǎn)作為輪廓投影鏈接和邊界投影鏈接的對(duì)應(yīng)點(diǎn),當(dāng)沒有交點(diǎn)時(shí)會(huì)選取閾值范圍內(nèi)邊界投影鏈接到垂線的最近距離的點(diǎn)作為兩者的對(duì)應(yīng)點(diǎn),這會(huì)使得輪廓投影鏈接根據(jù)該對(duì)應(yīng)點(diǎn)恢復(fù)成空間輪廓線的端點(diǎn)不在邊界線上。所以本文在重建完邊界線和輪廓線后,還要驗(yàn)證對(duì)應(yīng)點(diǎn)是否和輪廓線的端點(diǎn)相同,如果不相同,平移輪廓線位置使其端點(diǎn)與邊界線上對(duì)應(yīng)點(diǎn)重合。
圖10 空間邊界線與其對(duì)應(yīng)的輪廓線
恢復(fù)空間邊界曲線和輪廓曲線后,本文構(gòu)造截面線,再由截面線蒙皮[13]構(gòu)造自由曲面。算法具體步驟如下:
步驟1. 按輪廓線對(duì)應(yīng)點(diǎn)參數(shù)大小順序,依次等參在每條輪廓線上取點(diǎn),插值各輪廓線上的等參點(diǎn)生成截面線,如圖11所示。
步驟2. 對(duì)邊界線和截面線蒙皮生成曲面。
圖11 輪廓線等參采樣生成截面線
本文算法已經(jīng)集成到清華大學(xué)自主開發(fā)的CAD造型系統(tǒng)GEMS7.0上實(shí)現(xiàn),輸入為dwg格式的工程圖文件。硬件配置為奔騰(R)雙核2.6 GHz處理器,2 GB內(nèi)存。圖12(a)中,由邊界投影匹配序列重建出空間邊界線如圖12(b)所示,由輪廓投影端點(diǎn)和邊界投影的對(duì)應(yīng)點(diǎn)重建出空間輪廓線如圖12(c)所示。圖12(d)中顯示了構(gòu)造出的兩組截面線,一組封閉,一組不封閉。圖 12(g)為最終重建出的自由曲面,設(shè)定誤差為0.01Mm,共有2張曲面,如圖12(e)所示,曲面1為3×3的B樣條曲面,節(jié)點(diǎn)向量 U={0,0,0,0.05,0.11,0.17, 0.23,0.28,0.33,0.37,0.43,0.53,0.58,0.63,0.68,0.73, 0.79,0.85,0.91,0.97,1.00,1.00,1.00,1.00},V={0,0,0, 0,0.12,0.14,0.15,0.17,0.18,0.59,0.59,0.63,0.63,0.64, 1.00,1.00,1.00,1.00},控制點(diǎn)數(shù)目為:21×14 = 294。如圖12(f)所示,曲面2為3×3的B樣條曲面,其中節(jié)點(diǎn)向量 U={0,0,0,0,0.05,0.11,0.17,0.22,0.28, 0.33,0.38,0.43,0.48,0.53,0.58,0.63,0.68,0.74,0.79, 0.85,0.91,0.97,1.00,1.00,1.00,1.00},V={0,0,0,0,0.25, 0.26,0.26,0.50,0.50,0.74,0.74,0.75,1.00,1.00,1.00, 1.00},控制點(diǎn)數(shù)目為:22×12 = 264。其生成空間曲線和等參截面線的處理時(shí)間是 0.25S,蒙皮生成自由曲面的處理時(shí)間是0.219S。
圖13中(三視圖如圖5所示),由邊界投影匹配序列重建出空間邊界線如圖13(a)所示,由輪廓投影端點(diǎn)和邊界投影的對(duì)應(yīng)點(diǎn)重建出空間輪廓線如圖 13(b)所示。圖 13(c)中顯示了構(gòu)造出的兩組封閉的截面線。圖13(f)為最終重建出的帶自由曲面的三維形體,其生成空間曲線和等參截面線的處理時(shí)間是0.421S,蒙皮生成自由曲面的處理時(shí)間為0.203S。
圖14中,由邊界投影匹配序列重建出空間邊界線如圖14(b)所示,由輪廓投影端點(diǎn)和邊界投影的對(duì)應(yīng)點(diǎn)重建出空間輪廓線如圖 14(c)所示。圖 14(d)中顯示了構(gòu)造出的兩組截面線,一組封閉,一組不封閉。圖14(g)為最終重建出的帶自由曲面的三維形體,設(shè)定誤差為0.01Mm,其中有兩個(gè)曲面,如圖 14(e)所示,曲面 1為 3×3的 B樣條曲面,節(jié)點(diǎn)向量 U={0,0,0,0.05,0.11,0.17, 0.23,0.28,0.33,0.38,0.43,0.54,0.59,0.64,0.69,0.74,0.79,0.86,0.92,0.97,1.00,1.00,1.00,1.00},V={0,0, 0,0,0.50,1.00,1.00,1.00, 1.00},控制點(diǎn)數(shù)目為:21×5 = 105。如圖14(f)所示,曲面2為3×3的B樣條曲面,節(jié)點(diǎn)向量 U = {0.0,0,0,0.05,0.11,0.17, 0.23,0.28,0.33,0.38,0.43,0.48,0.53,0.59,0.64,0.69,0.74, 0.80,0.86,0.92,0.97,1.00,1.00,1.00,1.00},V={0,0,0, 0,0.24,0.25,0.26,0.49,0.49,0.50,0.51,0.51,0.74,0.75, 0.76,1.00,1.00,1.00,1.00},控制點(diǎn)數(shù)目為:22×15 = 330。生成空間曲線和等參截面線的處理時(shí)間是0.187S,蒙皮生成自由曲面處理時(shí)間是0.156S。
圖12 實(shí)例1
圖13 實(shí)例2
圖14 實(shí)例3
本文對(duì)三視圖中的自由曲面進(jìn)行了重建。首先分析了空間曲線在三視圖中的投影鏈接性質(zhì)。由此提出了邊界線投影匹配算法,算法在視圖中搜索投影的匹配序列。在邊界線投影匹配序列搜索完成后,對(duì)剩余的沒有匹配的樣條曲線與邊界線投影進(jìn)行匹配從而找出輪廓投影并確定其和邊界投影的對(duì)應(yīng)關(guān)系;由投影匹配序列重建自由曲面邊界線,自由曲面的輪廓線則根據(jù)輪廓線投影鏈接端點(diǎn)和與之對(duì)應(yīng)的邊界投影鏈接上的對(duì)應(yīng)點(diǎn)來重建。在自由曲面邊界線和輪廓線重建完成后,對(duì)輪廓線進(jìn)行了等參采樣構(gòu)造截面線,再通過蒙皮方法重建出最后的自由曲面。
本文方法把從曲線到曲面的構(gòu)造方法應(yīng)用到工程圖的重建中,擴(kuò)展了工程圖的重建域。在重建曲面時(shí),要求輪廓線端點(diǎn)都在邊界線上,并且由輪廓線構(gòu)造了截面線來重建自由曲面。當(dāng)自由曲面是由多個(gè)曲面拼接修剪構(gòu)成時(shí),文本的算法無法處理此類情況。如何通過邊界線和輪廓線直接重建自由曲面是需要進(jìn)一步研究的內(nèi)容。
[1] IdesawaM. ASystem to generate aSolid figure from three views [J]. Bulletion of the JapanSociety ofMechanical Engineers, 1973, 16(9): 216-225.
[2] WesleyM A,Markowsky G. Fleshing out projections [J]. IBM Journal of Research and Development, 1981, 25(6) 934-954.
[3]Sakurai H, Gossard D C.SolidModel input through orthographic views [J]. Computer Graphics, 1983, 17(3) 243-252.
[4] KuoM H. Reconstruction of quadricSurfaceSolids from three-view engineering drawings [J]. Computer-Aided Design, 1998, 30(7): 517-527.
[5] LiuShixia, HuShimin, Chen Yujian, et al. Reconstruction of curvedSolids from engineering drawings [J]. Computer-Aided Design, 2001, 33(14): 1059-1072.
[6] Gong Jiehui, Zhang Hui, Zhang Guifang, et al.Solid reconstruction using recognition of quadricSurfaces from orthographic views [J]. Computer-Aided Design, 2006, 38(8): 821-835.
[7] Fu Zigang, Zou Beiji, Chen Yiming, et al. Reconstruction of intersecting curvedSolids from 2D orthographic views [J]. Computer-Aided Design, 2010,42(9): 841-846.
[8] Wen Yamei, Zhang Hui, Yu Zhongmian, et al. Reconstructing 3D objects from 2DSectional views of engineering drawings using volume-basedMethod [C]// Proceedings of International Conference onShapeModeling and Applications, Aix-en-Provence, France, 2010: 13-24.
[9] Woodward C D.Skinning techniques for interactive B-splineSurface interpolation [J]. Computer-Aided Design, 1988, 20(8):441-451.
[10] Piegl L, Tiller W. Algorithm for approximate NURBSSkinning [J]. Computer-Aided Design, 1996, 28(9): 699-706.
[11]Maekawa T, Ko K H.Surface construction by fitting unorganized curves [J]. GraphicalModels, 2003, 64(5):316-332.
[12] QinShengfeng, Wright D K. ProgressiveSurfaceModelingScheme from unorganized curves [J]. Computer-Aided Design, 2006, 38(10): 1113-1122.
[13] Wang Wenke, Zhang Hui, Yong Junhai, et al.Surface fitting to curves with energy control [C]//Lecture Notes in ComputerScience,4291, Lake Tahoe, USA, 2006:569-578.
[14] Piegl L, Tiller W. The NURBS book [M]. 2nd ed. New York:Springer, 1997: 81-100.
Research on Free-FormSurface Reconstruction Based on Three Orthographic Views
Cai Heng, Zhang Hui
(School ofSoftware, Tsinghua University, Beijing 100084, China)
In this paper an algorithm to reconstruct freeformSurfaces by recovering boundary curves and contour curves from three orthographic views which contain freeformSurface projections is proposed. First the projection properties of freeformSurface on three orthographic views are analyzed and proved. Then a boundary projection and contour projectionMatching algorithm is proposed. When there exist interruptedSpline curves that can′t beMatched by previousMethods in views, a climbing algorithm is used. FreeformSurface boundary curves are reconstructed based on projectionMatchingSequence andSpace contour curves are reconstructed based on the correspondence between the contour projection line′s endpoints and the points on the boundary projection lines. BySampling isoparametric points on the contour curves, cross-sectional curves are constructed by interpolating theseSample points. Finally, the freeformSurface is reconstructed from theSpatial boundary curves and cross-sectional curves bySkinningMethod. The proposed algorithm can handle freeformSurface in engineering drawings, and extend the body domain to be reconstructed than other existing algorithms.
freeformSurface reconstruction; three orthographic views;SurfaceSkinning
TP 391
A
2095-302X(2015)02-0205-10
2014-08-11;定稿日期:2014-08-20
國(guó)家“973”重點(diǎn)基礎(chǔ)研究發(fā)展規(guī)劃資助項(xiàng)目(2010CB328001);國(guó)家自然科學(xué)基金資助項(xiàng)目(61373070, 61035002);清華自主科研計(jì)劃資助項(xiàng)目(2012Z02170)
蔡 恒(1986–),男,湖北隨州人,碩士研究生。主要研究方向?yàn)榛诠こ虉D的三維重建。E-mail:caihength@163.com
張 慧(1974–),女,江蘇無錫人,副教授,博士。主要研究方向?yàn)橛?jì)算機(jī)輔助幾何設(shè)計(jì)、計(jì)算機(jī)圖形學(xué)。E-mail:huizhang@tsinghua.edu.cn