,拓?fù)渲亟▋H需要2s多的時間。
[0021] 實(shí)施例=:通過頂點(diǎn)數(shù)據(jù)復(fù)本消除和曲面網(wǎng)格拓?fù)渲亟▋蓚€實(shí)驗(yàn)表明,本文算 法在冗余頂點(diǎn)數(shù)據(jù)消除與網(wǎng)格曲面拓?fù)渲亟ǖ姆矫嫘史浅8摺5珜τ谝粋€網(wǎng)格模型的 拓?fù)渲亟?,多?shù)情況下只需重建一次,后期常常需要對網(wǎng)格進(jìn)行去噪、平滑、精簡等工作,因 此網(wǎng)格曲面拓?fù)溧徲虿樵儠罄m(xù)工作起到非常關(guān)鍵的作用,查詢效率的高低在一定程度 上將決定算法的優(yōu)劣。為測試本算法的拓?fù)溧徲虿樵冃阅?,對圖12~17所示網(wǎng)格曲面上任 意一點(diǎn)進(jìn)行1-環(huán)域查詢,即查詢圍繞該頂點(diǎn)的所有S角面片信息,如圖21所示。在不同網(wǎng) 格曲面上隨機(jī)采集樣點(diǎn)進(jìn)行1-環(huán)域查詢操作,記錄查詢時間,為避免查詢時間的偶然性, 將該一過程重復(fù)1000次,計算平均查詢時間,并記錄拓?fù)溧徲虿樵兯玫臅r間,用時越少, 查詢性能越好。在1-環(huán)域查詢過程中,空間索引葉節(jié)點(diǎn)存儲網(wǎng)格曲面頂點(diǎn)和半邊信息,通 過KD樹快速查詢頂點(diǎn)信息,并利用半邊結(jié)構(gòu)的半邊環(huán)序及對偶半邊信息,直接定位對偶半 邊所指向的面片信息,并依據(jù)半邊環(huán)序,順次查找下一條半邊所指向的面片信息,直至半邊 環(huán)序遍歷結(jié)束,即可得到該點(diǎn)的1-環(huán)域。本文算法采用半邊結(jié)構(gòu)與KD樹相融合的索引結(jié) 構(gòu),充分利用KD樹查詢速度快與半邊結(jié)構(gòu)存儲鄰域面片信息的優(yōu)勢,使拓?fù)溧徲虿樵冃?大大提高。本文算法1-環(huán)域查詢時間結(jié)果如圖22所示。
[0022] W上所述,僅是本發(fā)明的較佳實(shí)例而已,并非是對本發(fā)明作其它形式的限制,任何 熟悉本專業(yè)的技術(shù)人員可能利用上述揭示的技術(shù)內(nèi)容加W變更或改型為同等變化的等效 實(shí)施例。但是凡是未脫離本發(fā)明技術(shù)方案內(nèi)容,依據(jù)本發(fā)明的技術(shù)實(shí)質(zhì)對W上實(shí)施例所作 的任何簡單修改、同等變化與改型,仍屬于本發(fā)明技術(shù)方案的保護(hù)范圍。
【主權(quán)項(xiàng)】
1. 一種支持STL數(shù)據(jù)源的網(wǎng)格曲面動態(tài)空間索引構(gòu)建方法,其特征在于步驟依次為: (1)對STL文件格式的數(shù)字模型構(gòu)建網(wǎng)格曲面頂點(diǎn)的KD樹索引,在構(gòu)建的過程中逐步消除 網(wǎng)格曲面中的頂點(diǎn)冗余數(shù)據(jù);(2)通過KD樹的最近鄰查詢算法在所構(gòu)建的KD樹中快速查 詢STL數(shù)據(jù)源中的頂點(diǎn)信息,提高頂點(diǎn)數(shù)據(jù)復(fù)本消除效率;(3)基于KD樹葉節(jié)點(diǎn)層數(shù)據(jù)存 儲的開放性融入半邊數(shù)據(jù)結(jié)構(gòu),將STL中記錄的三角面片信息轉(zhuǎn)化為半邊結(jié)構(gòu)中的半邊信 息,進(jìn)而將半邊信息轉(zhuǎn)化為KD樹中頂點(diǎn)信息的引用,實(shí)現(xiàn)半邊結(jié)構(gòu)與KD樹的融合;(4)通 過KD樹的最近鄰查詢算法,在構(gòu)建好的頂點(diǎn)KD樹中快速查詢網(wǎng)格頂點(diǎn)信息,間接地獲取半 邊信息,并充分利用半邊結(jié)構(gòu)中的半邊環(huán)序及對偶半邊信息,連接相鄰三角面片,實(shí)現(xiàn)完整 曲面拓?fù)浣Y(jié)構(gòu)的快速重建。
2. 根據(jù)權(quán)利要求1所屬的支持STL數(shù)據(jù)源的網(wǎng)格曲面動態(tài)空間索引構(gòu)建方法,其特征 在于步驟(1)對STL文件格式的數(shù)字模型構(gòu)建網(wǎng)格曲面頂點(diǎn)的KD樹索引,在構(gòu)建的過程中 逐步消除網(wǎng)格曲面中的頂點(diǎn)冗余數(shù)據(jù),具體步驟為:(I) i- 1,V- 其中i=l,2,…,n ,公表示空集,&表示構(gòu)建的頂點(diǎn)KD樹,并將為空集,n為STL文件中的面片數(shù));(2)解 析STL文件中的第i個面片的數(shù)據(jù)區(qū)段,獲得的三個頂點(diǎn)以(3) 1 (其 中J =1,2, 3) ; (4)應(yīng)用KD樹的最近鄰查詢算法在沖查詢F7的最近鄰點(diǎn)F7 z,若F7辛 K7 z,則用KD樹的構(gòu)建算法將F7插入至沖;否則,直接轉(zhuǎn)(5) ; (5) J - JVl ; (6)重復(fù) (4)與(5),直至J > 3 ; (7) i - ; (8)重復(fù)⑵至(7),直至i> /?;當(dāng)上述過程結(jié) 束后,游]葉節(jié)點(diǎn)層所存儲的數(shù)據(jù)即為去除頂點(diǎn)數(shù)據(jù)復(fù)本后的網(wǎng)格曲面頂點(diǎn)集合。
3. 根據(jù)權(quán)利要求1所屬的支持STL數(shù)據(jù)源的網(wǎng)格曲面動態(tài)空間索引構(gòu)建方法,其特征 在于步驟(3)中的基于KD樹葉節(jié)點(diǎn)層數(shù)據(jù)存儲的開放性融入半邊數(shù)據(jù)結(jié)構(gòu),將STL中記錄 的三角面片信息轉(zhuǎn)化為半邊結(jié)構(gòu)中的半邊信息,進(jìn)而將半邊信息轉(zhuǎn)化為KD樹中頂點(diǎn)信息 的引用,實(shí)現(xiàn)半邊結(jié)構(gòu)與KD樹的融合,具體步驟為1,^- 0 (其中減示 半邊集合,/表示面片集合,將為空集);(2)解析STL文件中的第i個面片的數(shù) 據(jù)區(qū)段,獲得面片法向A與頂點(diǎn)數(shù)據(jù)6,; (3)構(gòu)造半邊數(shù)據(jù)結(jié)構(gòu)Ai,以及面 片數(shù)據(jù)結(jié)構(gòu)/,.,并將其數(shù)據(jù)域均初始化為空;(4) j'- l,j'- CAl)m〇d3;(6)應(yīng)用KD樹的 最近鄰查詢算法,在網(wǎng)格曲面頂點(diǎn)KD樹沖獲取^的最近鄰點(diǎn)所在的葉節(jié)點(diǎn)沉 %); (7) 將沉%)作為么7的終點(diǎn),并將Aii作為么7的下一條半邊;(8)將A ii作為Fr7的一條出射半 邊添加至沉b)的半邊集合_ ;(9) J - JVl ;(1〇)重復(fù)(5)至(9),直至J > 3 ;(11) 將么7作為的起始半邊,將存入對應(yīng)的法向信息的數(shù)據(jù)區(qū)域,然后將添加至_ ; (12)將Zi作為么7,匕,與L的所屬面片,然后將么7,匕,與A i,逐次添加至_;(13) Y - ; (14)重復(fù)⑵至(13),直至i> /?;該過程可以實(shí)現(xiàn)STL文件中每個三角面片的拓?fù)?重建。
4. 根據(jù)權(quán)利要求1所屬的支持STL數(shù)據(jù)源的網(wǎng)格曲面動態(tài)空間索引構(gòu)建方法,其特征 在于步驟(4)中的通過KD樹的最近鄰查詢算法,在KD樹中利用最近鄰查詢算法快速查詢頂 點(diǎn)信息,間接地獲取半邊信息,并充分利用半邊結(jié)構(gòu)中的半邊環(huán)序及對偶半邊信息,連接相 鄰三角面片,實(shí)現(xiàn)完整曲面拓?fù)浣Y(jié)構(gòu)的快速重建,其中對偶半邊的判斷規(guī)則為:對于任一半 邊A(e,4, 6 4),若其對偶半邊4存在,則必定存在于e的出射半邊集合沖,且4的終點(diǎn) 對應(yīng)的出射半邊集合中也必包含設(shè)半邊集合_總共包含i半邊,則為每條半邊搜索 對偶半邊的過程如下:(1) i- 1 ; (2)對于_第i條半邊之,在其終點(diǎn)的出射半邊集合J 中按上述判斷規(guī)則搜索的對偶半邊AZ ; (3)若AZ存在,將其信息記錄于的對偶半邊 數(shù)據(jù)域,并從4.終點(diǎn)的半邊集合中刪除AZ ;(4) i- i+1 ;(5)重復(fù)(2)至(4),直至/> ?完成半邊結(jié)構(gòu)形式的曲面拓?fù)渲亟ǖ恼麄€過程;其中KD樹的葉節(jié)點(diǎn)記錄了全部的網(wǎng)格曲 面頂點(diǎn)數(shù)據(jù),同時也記錄了該頂點(diǎn)一條出射半邊的信息,在半邊結(jié)構(gòu)中,每條半邊的終點(diǎn)均 為KD樹葉節(jié)點(diǎn)層存儲的網(wǎng)格曲面頂點(diǎn)的引用,半邊結(jié)構(gòu)與KD樹相互融合的動態(tài)空間索引 最終建立。
【專利摘要】本發(fā)明提供一種支持STL數(shù)據(jù)源的網(wǎng)格曲面動態(tài)空間索引構(gòu)建方法,屬于數(shù)字化設(shè)計與制造領(lǐng)域,其特征在于:對STL文件格式的數(shù)字模型構(gòu)建網(wǎng)格曲面頂點(diǎn)的KD樹索引,在構(gòu)建的過程中逐步消除網(wǎng)格曲面中的頂點(diǎn)冗余數(shù)據(jù);通過KD樹的最近鄰查詢算法快速查詢STL數(shù)據(jù)源中的頂點(diǎn)信息,提高頂點(diǎn)數(shù)據(jù)復(fù)本消除效率;基于KD樹葉節(jié)點(diǎn)層數(shù)據(jù)存儲的開放性融入半邊數(shù)據(jù)結(jié)構(gòu);利用半邊結(jié)構(gòu)中的半邊環(huán)序及對偶半邊信息,連接相鄰三角面片,實(shí)現(xiàn)完整曲面拓?fù)浣Y(jié)構(gòu)的快速重建。本發(fā)明方法使所得的KD樹與半邊結(jié)構(gòu)相融合的動態(tài)索引,大大減少了冗余頂點(diǎn)的去除時間和拓?fù)渲亟〞r間,并且有效支持網(wǎng)格曲面拓?fù)溧徲蛐畔⒌目焖俨樵儭?br>【IPC分類】G06F17-50
【公開號】CN104866687
【申請?zhí)枴緾N201510313725
【發(fā)明人】孫殿柱, 郭洪帥, 李延瑞, 聶樂魁
【申請人】山東理工大學(xué)
【公開日】2015年8月26日
【申請日】2015年6月10日