欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

三角網(wǎng)格曲面模型的空間查詢方法

文檔序號:6466823閱讀:197來源:國知局
專利名稱:三角網(wǎng)格曲面模型的空間查詢方法
技術領域
本發(fā)明提供一種三角網(wǎng)格曲面模型的空間查詢方法,屬于產品逆向工程技術領域。
背景技術
在產品逆向工程中,三角網(wǎng)格曲面可快速靈活地重建復雜型面產品模型,為精確表達產 品信息,三角網(wǎng)格曲面模型數(shù)據(jù)表現(xiàn)為數(shù)據(jù)量大、空間復雜度高且數(shù)據(jù)之間缺乏拓撲關系等 特點,為三角網(wǎng)格曲面模型建立穩(wěn)定、高效的索引結構對于提高三角網(wǎng)格曲面模型的精簡與 加密、三角網(wǎng)格曲面模型交線求解以及基于三角網(wǎng)格曲面模型的數(shù)控加工刀軌生成等的效率 具有重要意義。
對現(xiàn)有的技術文獻檢索發(fā)現(xiàn),王磊等在學術期刊《計算機應用研究》2004, 9, P95-97 上發(fā)表的論文"細分曲面的有序鄰接頂點表數(shù)據(jù)結構",根據(jù)三角網(wǎng)格曲面模型中離散三角面 片的頂點信息和邊信息,為每個三角面片建立鄰接關系表,將三角面片鄰接關系表中存放與 該三角面片拓撲相鄰的三角面片信息,僅適于快速三角網(wǎng)格曲面模型局部鄰域數(shù)據(jù),不能滿 足逆向工程中其他空間査詢的高效率需求。
周海在其博士學位論文"細分曲面造型技術研究"中采用空間八叉樹作為三角網(wǎng)格曲面 模型索引結構,根據(jù)三角面片包圍盒中心在空間八叉樹中的位置將三角面片作為八叉樹的結 點插入,建立三角網(wǎng)格曲面模型索引結構,該索引方法僅適合于建立在空間范圍內均勻分布 的三角網(wǎng)格曲面模型索引結構,此外,以三角面片包圍盒中心代替三角面片建立索引結構, 丟失了三角面片信息,基于該索引結構進行空間査詢,其査詢結果不準確,常漏査三角面片。
王占禮在其博士學位論文"面向虛擬制造的數(shù)控加工仿真技術研究"中采用一個大包圍
盒包圍三角網(wǎng)格曲面模型,將該包圍盒作為根索引結點,然后將其中的三角面片分割成兩個 部分,每一部分用一個包圍盒包圍,再對每一個包圍盒遞推分割進行,直到一個包圍盒只包 含一個三角面片,建立三角網(wǎng)格曲面模型的非平衡二叉樹索引結構,基于該結構提高了三角 網(wǎng)格曲面模型各種査詢操作的效率,由于該結構為非平衡二叉樹,僅適合于三角面片數(shù)據(jù)均 勻分布的三角網(wǎng)格曲面模型,當三角網(wǎng)格曲面模型數(shù)據(jù)分布疏密不均時,容易出現(xiàn)樹的某一 分支層數(shù)過多現(xiàn)象,導致數(shù)據(jù)結構急劇惡化,嚴重影響空間查詢效率。
綜上所述,為三角網(wǎng)格曲面模型數(shù)據(jù)建立有效的索引結構已成為本領域技術人員亟待解決的技術問題。

發(fā)明內容
本發(fā)明的目的在于提供一種三角網(wǎng)格曲面模型的空間查詢方法,以縮短基于三角網(wǎng)格曲 面模型的各種空間查詢操作時間,提高逆向工程數(shù)據(jù)處理效率。其技術方案如下
采用以下步驟 一、從三角網(wǎng)格曲面模型數(shù)據(jù)文件讀取三角網(wǎng)格曲面模型數(shù)據(jù)并建立數(shù) 據(jù)結點,為每個三角面片建立軸向包圍盒,根據(jù)軸向包圍盒中心及軸向包圍盒外接球半徑將 數(shù)據(jù)結點處理成四維點對象,建立數(shù)據(jù)結點鏈表;二、基于三角面片的軸向包圍盒及對應的 四維點對象,建立三角網(wǎng)格曲面模型索引結構,其步驟為為結點選擇插入位置、采用四維 聚類分簇方法實現(xiàn)結點分裂、索引結構中結點軸向包圍盒及對應四維點對象調整;三、基于 三角網(wǎng)格曲面模型索引結構,采用剪枝策略實現(xiàn)三角面片拓撲近鄰三角面片查詢和兩三角網(wǎng) 格曲面模型的相交區(qū)域查詢。
為實現(xiàn)發(fā)明目的,所述的三角網(wǎng)格曲面模型的空間査詢方法,在步驟一中,根據(jù)三角面 片的三個頂點的坐標為每個三角面片建立沿坐標軸方向且恰好包圍三角面片的軸向包圍盒, 根據(jù)軸向包圍盒中心坐標Oc,乂 z)和軸向包圍盒的外接球半徑r建立四維點對象P z, r), 并建立數(shù)據(jù)結點鏈表,數(shù)據(jù)結點包含三角面片信息、軸向包圍盒以及對應的四維點對象信息。
為實現(xiàn)發(fā)明目的,所述的三角網(wǎng)格曲面模型的空間査詢方法,在步驟二中,結點包括數(shù) 據(jù)結點和索引結點,索引結點包含根索引結點、內部索引結點和葉索引結點,索引結構的最 上層結點為根索引結點、最下層結點為葉索引結點,其他索引結點為內部索引結點,定義索 引結點的子結點上限值為大于2的整數(shù)M、下限值為小于或等于M/2的整數(shù)m,每個索引結 點的子結點數(shù)小于等于M且除根索引結點外所有索引結點的子結點數(shù)大于等于m,所有葉索 引結點均在同一層;索引結構中每個索引結點的軸向包圍盒恰好包圍該索引結點的所有子結 點的軸向包圍盒,每個索引結點都對應一個四維點對象,四維點對象坐標為(x,乂z,r),其 中為索引結點軸向包圍盒中心坐標,r為索引結點軸向包圍盒外接球半徑。
為實現(xiàn)發(fā)明目的,所述的三角網(wǎng)格曲面模型的空間查詢方法,步驟二中為結點選擇插入 位置的步驟具體是1)指定要插入的新結點和插入層號,2)設當前結點為current—node,如 果索引結構為空則返回空,否則令current一iiode為索引結構根結點、當前層號為1; 3)令 current—node的每個子結點包含欲插入到索引結構的新結點,計算包含新結點后結點的軸向包 圍盒外接球半徑,與原結點外接球半徑相比較,以外接球半徑增量最小的結點作為 current node; 4)如果存在大于或等于2個結點在包含新結點后符合外接球增量最小,則選擇外接球重疊度增量最小的結點作為currenLnode; 5)如果存在大于或等于2個符合條件的 結點,則選擇包含新結點后外接球半徑最小的結點作為currenLnode,令當前層號加l; 6) 重復步驟3)直到當前層號等于新結點欲插入的層號。
為實現(xiàn)發(fā)明目的,所述的三角網(wǎng)格曲面模型的空間査詢方法,在步驟二中,設新結點N 的插入位置為node,將結點N作為結點node的子結點插入到索引結構中,如果結點node的 子結點數(shù)"大于子結點上限M,則采用四維聚類分簇方法對結點node進行結點分裂,分裂步 驟具體是1)選擇中心間距離最遠的一對結點的中心作為初始分簇中心;2)將所有結點按 照中心到兩簇中心的距離,將結點插入到中心距其中心較近的簇中;3)計算分簇后兩簇的新 分簇中心;4)比較每簇結點的新分簇中心與原分簇中心是否相同,若均相同則結束分簇,執(zhí) 行步驟6),否則執(zhí)行步驟5); 5)若分簇次數(shù)大于或等于2w則結束分簇,執(zhí)行步驟6),若
分簇次數(shù)小于2w則返回步驟2)繼續(xù)分簇;6)若某簇中結點個數(shù)",小于索引結點的子結點 數(shù)下限值m,則將另一簇中距離G最近的m- 個結點插入到簇G中;7)更新各分簇中心,
結束分簇;8)將其中一簇作為結點node的子結點調整結點node的軸向包圍盒及對應的四維 點坐標值,新建結點new_node,將另一簇結點作為new_node的子結點,計算new一node的軸 向包圍盒及對應的四維點坐標值,將new_node作為node的父結點的子結點插入到索引結構 中。
為實現(xiàn)發(fā)明目的,所述的三角網(wǎng)格曲面模型的空間査詢方法,在步驟二中,索引結構結
點軸向包圍盒及對應四維點對象調整步驟具體是1)設軸向包圍盒發(fā)生變化的索引結點為
src_node; 2)調整索引結點src_node的軸向包圍盒,使得src一node的軸向包圍盒恰好包含 src—node的所有子結點的軸向包圍盒,并調整索引結點src;ode對應的四維點坐標值;3)若 src,jiode為根索引結點,程序返回,否則執(zhí)行步驟4); 4)令src—node為src—node的父結點, 調整索引結點src_node軸向包圍盒,使得src—node的軸向包圍盒恰好包含src—node的所有子 結點的軸向包圍盒,并調整索引結點src—node對應的四維點坐標值,返回步驟3)。
為實現(xiàn)發(fā)明目的,所述的三角網(wǎng)格曲面模型的空間查詢方法,在步驟三中,采用剪枝策 略查詢三角面片拓撲近鄰三角面片的步驟具體是1)設當前結點current—node為三角網(wǎng)格曲 面模型索引結構的根索引結點;2)若currenUiode的軸向包圍盒與目標三角面片的執(zhí)向包圍 盒相交則執(zhí)行步驟3),若current_node的軸向包圍盒與目標三角面片軸向包圍盒不相交則返 回;3)若currenUiode為非葉索引結點則執(zhí)行步驟4),若current—node為葉索引結點,
7則依次比較current_node的子結點軸向包圍盒是否與目標三角面片軸向包圍盒是否相交,如 果不相交則繼續(xù)比較下一個子結點,如果相交則比較該子結點對應的三角面片是否與目標三 角面片存在公共邊,若存在公共邊則將該子結點添加到目標三角面片的鄰接關系表中,若不 存公共邊在則繼續(xù)比較下一個子結點,直到比較完current—node所有子結點,程序返回;4) 令current—node依次為current—node的子結點,執(zhí)行步驟2)。
為實現(xiàn)發(fā)明目的,所述的三角網(wǎng)格曲面模型的空間査詢方法,在步驟三中,采用剪枝策 略查詢兩三角網(wǎng)格曲面模型相交區(qū)域的步驟具體是:1)設兩三角網(wǎng)格曲面模型分別為Sl和 S2; 2)遍歷三角網(wǎng)格曲面模型S1中的三角面片,以S1中的每個三角面片作為目標三角面 片執(zhí)行步驟3); 3)設當前結點currenLnode為三角網(wǎng)格曲面模型S2的索引結構的根索引結 點;4)若current一node的軸向包圍盒與目標三角面片的軸向包圍盒相交則執(zhí)行步驟5),若 current_node的軸向包圍盒與目標三角面片軸向包圍盒不相交則返回;5)若current—node為 葉索引結點,則依次比較current—node的子結點軸向包圍盒與目標三角面片軸向包圍盒是否 相交,如果不相交則繼續(xù)比較下一個子結點,如果相交則對該子結點對應的三角面片與目標 三角面片進行求交運算,如果存在交點則將該子結點對應的三角面片標記為相交區(qū)域三角面 片,同時標記目標三角面片為相交區(qū)域三角面片,若不存在則繼續(xù)比較下一個子結點,直到 比較完current一node所有子結點,程序返回,若current_node為非葉索引結點則執(zhí)行步驟6); 6)令current—node依次為current—node的子結點,執(zhí)行步驟4)。
本發(fā)明與現(xiàn)有技術相比,具有以下四個優(yōu)點
1) 將三角面片、索引結構中的結點都表示成四維點對象,降低了復雜數(shù)據(jù)分簇的難度, 且結點分裂過程采用四維聚類分簇方法,充分考慮了數(shù)據(jù)對象在空間內的體積特性,提高了 結點在空間范圍內的聚合性,分簇效果更合理;
2) 采用外接球作為數(shù)據(jù)對象屬性,可處理低維數(shù)據(jù)的分簇,即使對平面三角網(wǎng)格曲面模 型數(shù)據(jù)也可建立有效的索引結構;
3) 索引結構采用高度平衡樹結構,避免索引結構某一分支層數(shù)過深而導致査詢效率低的 現(xiàn)象,同時采用最大、最小子結點數(shù)限制結點的子結點個數(shù),使索引結構的平衡性更好;
4) 采用嵌套的結點軸向包圍盒,可快速縮小查詢范圍,提高空間査詢操作的査詢效率。


圖1是三角面片及其軸向包圍盒。
圖2是本發(fā)明索引結構的結點軸向包圍盒示意圖。
8圖3是本發(fā)明索引結構的結構圖。
圖4是本發(fā)明三角網(wǎng)格曲面模型數(shù)據(jù)索引結構新結點插入流程圖。
圖5 a和圖5 b分別是本發(fā)明實施案例中所采用的三角網(wǎng)格曲面模型渲染效果和網(wǎng)格效果。
圖6 a至圖6 e是本發(fā)明的索引結構各層結點軸向包圍盒示意圖。 圖7 a和圖7 b分別為兩相交三角網(wǎng)格曲面模型與獲取的相交三角面片集合。
具體實施例方式
圖1是13個三角面片的集合。定義索引結點的子結點數(shù)上限值M-8、下限值1 =3,圖2 是為圖1所示的13個三角面片建立的索引結構中結點軸向包圍盒示意圖,圖3為索引結構的 結構示意圖,結點A是根索引結點,B、 C為葉索引結點,D、 E、 F、 G、 H、 I、 J、 K、 L、 M、 N、 O、 P、 Q為數(shù)據(jù)結點。
本發(fā)明采用C程序設計語言實現(xiàn)三角網(wǎng)格曲面模型索引結構的建立。三角網(wǎng)格曲面模型 索引結構的結點分為根索引結點、內部索引結點和葉索引結點,其中內部索引結點中存儲了 其父結點地址、子結點(可能是內部索引結點,也可能是葉索引結點)地址表、索引結點的 軸向包圍盒信息(軸向包圍盒兩對角頂點信息)及對應的四維點對象信息。葉索引結點中存 儲了其父結點地址、數(shù)據(jù)結點地址表、結點的軸向包圍盒信息及對應的四維點對象信息。三 角網(wǎng)格曲面模型索引結構的根索引結點可能同時也是葉索引結點,根索引結點的父結點地址 為空。三角網(wǎng)格曲面模型索引結構中的數(shù)據(jù)結點存儲三角面片對象信息的地址。在各類索引 結點的實現(xiàn)中,本發(fā)明采用標識位區(qū)分不同類型的索引結點,在程序運行過程中,根據(jù)結點 標識位的值識別結點類型。對于三角網(wǎng)格曲面模型索引結構中每個索引結點的子結點數(shù)上限 值M和下限值m由用戶根據(jù)三角網(wǎng)格曲面模型中面片規(guī)模自行設置, 一般情況下取m-0.4 XM。本發(fā)明的三角網(wǎng)格曲面模型數(shù)據(jù)索引與査詢方法包括以下步驟三角網(wǎng)格曲面模型數(shù) 據(jù)讀入及建立數(shù)據(jù)結點鏈表、新結點插入位置選擇及基于三角網(wǎng)格曲面模型數(shù)據(jù)索引結構采 用剪枝策略實現(xiàn)三角面片拓撲近鄰查詢和兩三角網(wǎng)格曲面模型的相交區(qū)域查詢,新結點插入 模塊包括選擇插入位置程序、結點分裂處理程序、索引結構中結點軸向包圍盒及對應四維點 對象調整程序。
所述三角網(wǎng)格曲面模型數(shù)據(jù)讀取及數(shù)據(jù)結點鏈表建立模塊用于讀取三角網(wǎng)格曲面模型數(shù) 據(jù),根據(jù)三角面片的三個頂點的坐標為每個三角面片建立沿坐標軸方向且恰好包圍三角面片 的軸向包圍盒,根據(jù)軸向包圍盒中心坐標(;c,乂z)和軸向包圍盒的外接球半徑A"建立四維點
9對象P (jc,;;,z,r),并建立數(shù)據(jù)結點鏈表,數(shù)據(jù)結點包含三角面片信息、軸向包圍盒以及對應 的四維點對象信息。
所述的新結點插入模塊用于將結點插入到索引結構中,如果索引結構的根索引結點為空 則新建根索引結點,將欲插入結點作為根索引結點的子結點插入;若索引結構非空,圖4所 示為結點插入流程,根據(jù)欲插入結點P、插入層號L及結點的子結點數(shù)上限值M、下限值m, 1)調用結點選擇插入位置程序査詢最優(yōu)插入位置N; 2)將結點P作為結點N的子結點插入 到索引結構中;3)如果結點N插入新結點后子結點個數(shù)未超出子結點數(shù)上限值M,則執(zhí)行 步驟6);如果結點N插入新結點后子結點個數(shù)大于子結點數(shù)上限值M,則調用結點分裂處理 程序將結點N分為兩個結點N和at,調整結點N和at的軸向包圍盒及對應四維點對象信息, 將新結點at作為結點N的父結點的子結點插入到索引結構中;4)令N為N的父結點,如果 N為根索引結點則執(zhí)行步驟5),否則執(zhí)行步驟2); 5)如果結點N的子結點數(shù)大于子結點數(shù) 上限值M,則將結點分裂為兩個結點N和iV',調整結點N和7V'的軸向包圍盒及對應四維點 對象信息,新建根索引結點R,將結點N和W'作為R的子結點插入,令索引結構的根索引結 點指針指向R,令N-R; 6)從結點N開始向上調整索引結構中各層結點的軸向包圍盒及對 因的四維點對象信息。
選擇插入位置模塊接受新插入結點和欲插入的層號L,選擇插入位置步驟如下l)如果 當前索引結構為空,則返回空,否則設當前結點current—node為索引結構的根索引結點、設 當前層號currentj為1; 2)如果current」大于等于L,返回當前結點current—node,否則執(zhí) 行步驟3); 3) current」加1,將結點依次插入到curren_n0de的每個子結點中,選擇插入新 結點后結點對應的包圍盒的外接球增量最小的作為currenLnode,如果存在大于或等于2個結 點在插入新結點后外接球增量最小,則計算外接球增量最小的結點在插入新結點后與其兄弟 結點的外接球重疊度增量,設結點的兄弟結點個數(shù)為w、軸向包圍盒中心坐標分別為(x,,乂,a )
/=1,2,...,"、外接球半徑分別為r,. /=1,2,...,",軸向包圍盒中心坐標為G,乂z)、外接球半徑 為r的結點與其兄弟結點外接球重疊度計算方法為
計算插入新結點前后的外接球重疊度,從而求得插入新結點后外接球重疊度增量,選擇重疊 度增量較小的子結點作為current一node,如果存在大于或等于2個結點外接球重疊度增量最小,則選擇插入新結點后外接球半徑最小的結點作為currenLnode,返回步驟2)繼續(xù)向下査詢插 入位置。
所述的結點分裂處理用于當索引結點的子結點數(shù)大于定義的最大子結點上限值M而溢出 時處理結點分裂,結點分裂程序接受傳入的溢出結點N以及N所在索引層的層號L1,則采 用四維聚類分簇方法進行結點分裂的步驟如下1)結點N的子結點集合形成結點集合C; 2) 以軸向包圍盒中心相距最遠的一對結點的中心作為初始分簇中心;3)依次計算集合C中每 個結點的中心到兩分簇中心的距離,將結點插入分簇中心距其中心較近的分簇中;4)兩簇結 點個數(shù)分別為a和《2 ,兩簇結點對應的四維點坐標分別為(xa, ,&,^) z'l = 1,2,..., a和
(&,乂2,z,2,&) /2 = 1,2,...,"2; 5)根據(jù)分簇結果重新計算分簇中心,兩分簇中心的新分簇中
心分別為(3^力,^)和(3^,72,52),其中
/il wl m1
5—/1=1 —Ml ,—''1=1 — W ! id5 =》"1 ;1=1 , 〃=1
一 '2=1 一 w2 , ,2=1—,2=1 — W J 》,2 i2=l5 = 2 ■ /2=1
以0^,A,f,)和0^,^,&)更新兩分簇中心;6)若分簇次數(shù)大于或等于2 (M+l)則結束分簇,
若分簇次數(shù)小于2 (M+l)則執(zhí)行步驟7)繼續(xù)分簇,否則執(zhí)行步驟8); 7)比較前后兩次各 分簇中心是否發(fā)生變化,如果變化則返回步驟3)繼續(xù)分簇,否則執(zhí)行步驟8); 8)若某簇中 結點個數(shù) (k4或2)小于指定子結點下限值m,則將另一簇中距離G最近的m- 個結點
插入到分簇c;中執(zhí)行步驟9),否則直接執(zhí)行步驟9); 9)更新分簇中心建立新結點w',將
兩簇結點分別作為結點N和N'的子結點。
所述的索引結構中結點軸向包圍盒及對應四維點對象調整用于在結點插入結束后從發(fā)生 變化的結點向上調整索引結構中結點的軸向包圍盒及對應四維點對象信息,設結點軸向包圍 盒發(fā)生變化的源結點為src—node,索引結構中結點軸向包圍盒及對應四維點對象調整的執(zhí)行 步驟如下1 )調整結點src—node的軸向包圍盒,使得src—node的軸向包圍盒恰好包含src_node的所有子結點的軸向包圍盒,并調整結點src—node對應的四維點坐標值;2)若src_node為 根索引結點,程序返回,否則執(zhí)行步驟3); 3)令src—node為src—node的父結點,調整結點 src_node軸向包圍盒,使得src_node的軸向包圍盒恰好包含src—node的所有子結點的軸向包 圍盒,并調整結點sr^node對應的四維點坐標值,返回步驟2)。
指定目標三角面片,鄰接三角面片的査詢程序用于在三角網(wǎng)格曲面模型中搜索與目標三 角面片存在公共邊的三角面片,采用剪枝策略查詢的步驟如下1)令currenLnode指向三角 網(wǎng)格曲面模型數(shù)據(jù)索引結構的根索引結點;2)若current—node的軸向包圍盒與目標三角面片 的軸向包圍盒相交則執(zhí)行步驟3),若current—node的軸向包圍盒與目標三角面片軸向包圍盒 不相交則返回;3)若current—node為葉索引結點,則依次比較current_node的子結點軸向包 圍盒與目標三角面片軸向包圍盒是否相交,如果不相交則繼續(xù)比較下一個,如果相交則比較 該子結點是否與目標三角面片存在公共點或公共邊,若存在則將該子結點存入目標三角面片 的鄰接關系表中,若不存在則繼續(xù)比較下一個子結點,直到比較完currenUiode所有子結點, 程序返回,若currenLnode為非葉索引結點則執(zhí)行步驟4); 4)令current—node依次為 current—node的子結點,執(zhí)行步驟2)。
基于所述的三角網(wǎng)格曲面模型數(shù)據(jù)索引結構,兩三角網(wǎng)格曲面模型分別為S1和S2,采 用剪枝策略査詢兩三角網(wǎng)格曲面模型相交區(qū)域的步驟如下1)遍歷三角網(wǎng)格曲面模型S1中 的三角面片,以S1中的每個三角面片作為目標三角面片執(zhí)行步驟2); 2)令currentjK)de指 向三角網(wǎng)格曲面模型S2的索引結構的根索引結點;3)若currenLnode的軸向包圍盒與目標 三角面片的軸向包圍盒相交則執(zhí)行步驟4),若current—node的軸向包圍盒與目標三角面片軸 向包圍盒不相交則返回;4)若current—node為葉索引結點,則依次比較current—node的子結 點軸向包圍盒與目標三角面片軸向包圍盒是否相交,如果不相交則繼續(xù)比較下一個,如果相 交則對該子結點對應的三角面片與目標三角面片進行求交運算,如果存在交點則將該子結點 對應的三角面片標記為相交區(qū)域三角面片,同時標記目標三角面片為相交區(qū)域三角面片,若 不存在則繼續(xù)比較下一個子結點,直到比較完current—node所有子結點,程序返回,若 current—node為非葉索引結點則執(zhí)行步驟5); 5)令current—node依次為current_node的子結 點,執(zhí)行步驟3)。
如圖5為本文實施案例中所采用的三角網(wǎng)格曲面模型,圖5a和圖5b分別為渲染圖、網(wǎng) 格效果圖,其中三角面片數(shù)為69469。取N^20、 m=8、 k=5對圖5所示三角網(wǎng)格曲面模型建 立索引結構,建立的索引結構分為5層,圖6a 圖6d分別為索引結構第二層、第三層、第三層和葉索引結點層結點軸向包圍盒效果,圖6e為數(shù)據(jù)結點層軸向包圍盒效果。
圖7a為兩相交的三角網(wǎng)格模型,兩模型的三角面片數(shù)均為12000,圖7b為采用本發(fā)明
的三角網(wǎng)格曲面模型查詢方法獲取的相交三角面片集合。 其它三角網(wǎng)格曲面模型的索引與査詢方法同上。
權利要求
1、一種三角網(wǎng)格曲面模型的空間查詢方法,其特征在于包含以下步驟一、從三角網(wǎng)格曲面模型數(shù)據(jù)文件讀取三角網(wǎng)格曲面模型數(shù)據(jù)并建立數(shù)據(jù)結點,為每個三角面片建立軸向包圍盒,根據(jù)軸向包圍盒中心及軸向包圍盒外接球半徑將數(shù)據(jù)結點處理成四維點對象,建立數(shù)據(jù)結點鏈表;二、基于三角面片的軸向包圍盒及對應的四維點對象,建立三角網(wǎng)格曲面模型索引結構,其步驟為為結點選擇插入位置、采用四維聚類分簇方法實現(xiàn)結點分裂、索引結構中結點軸向包圍盒及對應四維點對象調整;三、基于三角網(wǎng)格曲面模型索引結構,采用剪枝策略實現(xiàn)三角面片拓撲近鄰三角面片查詢和兩三角網(wǎng)格曲面模型的相交區(qū)域查詢。
2、 如權利要求l所述的三角網(wǎng)格曲面模型的空間査詢方法,其特征在于在步驟一中, 根據(jù)三角面片的三個頂點的坐標為每個三角面片建立沿坐標軸方向且恰好包圍三角面片的軸 向包圍盒,根據(jù)軸向包圍盒中心坐標和軸向包圍盒的外接球半徑r建立四維點對象 P (;c,y,z,。,并建立數(shù)據(jù)結點鏈表,數(shù)據(jù)結點包含三角面片信息、軸向包圍盒以及對應的四 維點對象信息。
3、 如權利要求l所述的三角網(wǎng)格曲面模型的空間査詢方法,其特征在于在步驟二中, 結點包括數(shù)據(jù)結點和索引結點,索引結點包含根索引結點、內部索引結點和葉索引結點,索 引結構的最上層結點為根索引結點、最下層結點為葉索引結點,其他索引結點為內部索引結 點,定義索引結點的子結點上限值為大于2的整數(shù)M、下限值為小于或等于M/2的整數(shù)m, 每個索引結點的子結點數(shù)小于等于M且除根索引結點外所有索引結點的子結點數(shù)大于等于 m,所有葉索引結點均在同一層;索引結構中每個索引結點的軸向包圍盒恰好包圍該索引結 點的所有子結點的軸向包圍盒,每個索引結點都對應一個四維點對象,四維點對象坐標為Oc, 乂i,r),其中Oc,;;,力為索引結點軸向包圍盒中心坐標,r為索引結點軸向包圍盒外接球半徑。
4、 如權利要求l所述的三角網(wǎng)格曲面模型的空間査詢方法,其特征在于步驟二中為結 點選擇插入位置的步彈具體是1)指定要插入的新結點和插入層號,2)設當前結點為 current—node,如果索引結構為空則返回空,否則令current—node為索引結構根結點、當前層 號為l; 3)令current—node的每個子結點包含欲插入到索引結構的新結點,計算包含新結點 后結點的軸向包圍盒外接球半徑,與原結點外接球半徑相比較,以外接球半徑增量最小的結 點作為current_node; 4)如果存在大于或等于2個結點在包含新結點后符合外接球增量最小, 則選擇外接球重疊度增量最小的結點作為current—node; 5)如果存在大于或等于2符合條件 的結點,則選擇包含新結點后外接球半徑最小的結點作為current—node,令當前層號加1; 6)重復步驟3)直到當前層號等于新結點欲插入的層號。
5、 如權利要求l所述的三角網(wǎng)格曲面模型的空間查詢方法,其特征在于在步驟二中, 設新結點N的插入位置為node,將結點N作為結點node的子結點插入到索引結構中,如果 結點node的子結點數(shù)"大于子結點上限M,則采用四維聚類分簇方法對結點node進行結點 分裂,分裂步驟具體是1)選擇中心間距離最遠的一對結點的中心作為初始分簇中心;2) 將所有結點按照中心到兩簇中心的距離,將結點插入到中心距其中心較近的簇中;3)計算分 簇后兩簇的新分簇中心;4)比較每簇結點的新分簇中心與原分簇中心是否相同,若均相同則 結束分簇,執(zhí)行步驟6),否則執(zhí)行步驟5); 5)若分簇次數(shù)大于或等于2"則結束分簇,執(zhí)行步驟6),若分簇次數(shù)小于2"則返回步驟2)繼續(xù)分簇;6)若某簇中結點個數(shù) 小于索引結 點的子結點數(shù)下限值m,則將另一簇中距離C,最近的m- 個結點插入到簇&中;7)更新各分簇中心,結束分簇;8)將其中一簇作為結點node的子結點調整結點node的軸向包圍盒 及對應的四維點坐標值,新建結點new—node,將另一簇結點作為new—node的子結點,計算 new_node的軸向包圍盒及對應的四維點坐標值,將new—node作為node的父結點的子結點插 入到索引結構中。
6、 如權利要求l所述的三角網(wǎng)格曲面數(shù)據(jù)索引與査詢方法,其特征在于在步驟二中, 索引結構結點軸向包圍盒及對應四維點對象調整步驟具體是1)設軸向包圍盒發(fā)生變化的索 引結點為src—node; 2)調整索引結點src_node的軸向包圍盒,使得src—node的軸向包圍盒恰 好包含src—node的所有子結點的軸向包圍盒,并調整索引結點src—node對應的四維點坐標值; 3)若src—node為根索引結點,程序返回,否則執(zhí)行步驟4); 4)令src_node為src—node的父 結點,調整索引結點src—node軸向包圍盒,使得src一node的軸向包圍盒恰好包含src_node的 所有子結點的軸向包圍盒,并調整索引結點src—node對應的四維點坐標值,返回步驟3)。
7、 如權利要求l所述的三角網(wǎng)格曲面數(shù)據(jù)索引與査詢方法,其特征在于在步驟三中, 采用剪枝策略査詢三角面片拓撲近鄰三角面片的具體步驟是1)設當前結點current—node為 三角網(wǎng)格曲面模型索引結構的根索引結點;2)若current—node的軸向包圍盒與目標三角面片 的軸向包圍盒相交則執(zhí)行步驟3),若current—node的軸向包圍盒與目標三角面片軸向包圍盒 不相交則返回;3)若current—node為非葉索引結點則執(zhí)行步驟4),若current—node為葉索引 結點,則依次比較current—node的子結點軸向包圍盒是否與目標三角面片軸向包圍盒是否相 交,如果不相交則繼續(xù)比較下一個子結點,如果相交則比較該子結點對應的三角面片是否與 目標三角面片存在公共邊,若存在公共邊則將該子結點添加到目標三角面片的鄰接關系表中,若不存公共邊在則繼續(xù)比較下一個子結點,直到比較完current—node所有子結點,程序返回; 令current—node依次為current—node的子結點,執(zhí)行步驟2)。
8.5) ,若current—node的軸向包圍盒與目標三角面片軸向包圍盒不相交則返回;5)若current—node 為葉索引結點,則依次比較current—node的子結點軸向包圍盒與目標三角面片軸向包圍盒是 否相交,如果不相交則繼續(xù)比較下一個子結點,如果相交則對該子結點對應的三角面片與目 標三角面片進行求交運算,如果存在交點則將該子結點對應的三角面片標記為相交區(qū)域三角 面片,同時標記目標三角面片為相交區(qū)域三角面片,若不存在則繼續(xù)比較下一個子結點,直 到比較完current—node所有子結點,程序返回,若current—node為非葉索引結點則執(zhí)行步驟6);6) 令current_node依次為current_node的子結點,執(zhí)行步驟4)。
全文摘要
本發(fā)明提供一種三角網(wǎng)格曲面模型的空間查詢方法,首先將表達產品型面信息的三角面片數(shù)據(jù)與索引結構中的結點均表達成相應的四維點對象,通過選擇插入位置、采用四維聚類分簇方法實現(xiàn)結點分裂、索引結構中結點軸向包圍盒及對應四維點對象調整等步驟對四維點對象進行空間聚類劃分,實現(xiàn)三角網(wǎng)格曲面中三角面片的空間聚類劃分,建立三角網(wǎng)格曲面模型索引結構,基于該結構可提高離散三角網(wǎng)格曲面模型各種空間查詢操作效率,有效提高產品逆向工程數(shù)據(jù)處理速度,并保證處理結果的穩(wěn)定性與準確性。
文檔編號G06T17/00GK101430693SQ200810159748
公開日2009年5月13日 申請日期2008年11月12日 優(yōu)先權日2008年11月12日
發(fā)明者孫殿柱, 李延瑞, 李心成, 田中朝 申請人:山東理工大學
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
钦州市| 台中县| 元朗区| 西平县| 安顺市| 温州市| 张家界市| 永清县| 龙里县| 页游| 华阴市| 西吉县| 平果县| 织金县| 黔西| 吉隆县| 吉木乃县| 禄劝| 正定县| 常山县| 彭州市| 台中县| 榆林市| 韶山市| 潼南县| 孝义市| 绥棱县| 五峰| 黑水县| 永善县| 宣汉县| 营口市| 灌云县| 文水县| 濮阳市| 临夏市| 庄浪县| 湟源县| 蛟河市| 绵阳市| 伊宁县|