国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      產(chǎn)品stl模型的空間索引結(jié)構(gòu)建立方法

      文檔序號:6481235閱讀:308來源:國知局
      專利名稱:產(chǎn)品stl模型的空間索引結(jié)構(gòu)建立方法
      技術(shù)領(lǐng)域
      本發(fā)明提供一種產(chǎn)品STL模型的空間索引結(jié)構(gòu)建立方法,屬于產(chǎn)品逆向工程技術(shù)領(lǐng)域。
      背景技術(shù)
      在產(chǎn)品逆向工程中,通常采用激光掃描儀等設(shè)備獲取實體模型表面的散亂點云數(shù)據(jù),并 對該數(shù)據(jù)進行三角剖分生成產(chǎn)品STL模型,逼近原實體模型。產(chǎn)品STL模型由一些離散的三 角面片組成,目前主要通過建立鄰接關(guān)系表、空間八叉樹、R、樹等方法組織三角面片間的近 鄰關(guān)系,為產(chǎn)品STL模型建立穩(wěn)定、高效的索引結(jié)構(gòu)對于提高產(chǎn)品STL模型的精簡與細分、 產(chǎn)品STL模型求交及基于產(chǎn)品STL模型的數(shù)控加工刀軌生成等運算具有重要意義。
      在現(xiàn)有的技術(shù)文獻中沒有發(fā)現(xiàn)產(chǎn)品STL模型的空間索引結(jié)構(gòu)建立方法,在三角網(wǎng)格的空 間索引結(jié)構(gòu)建立方法中,王磊等在學術(shù)期刊《計算機應(yīng)用研究》(2004, 9, P95-97)上發(fā)表 的論文"細分曲面的有序鄰接頂點表數(shù)據(jù)結(jié)構(gòu)"中,依據(jù)三角網(wǎng)格模型中各三角面片的頂點 信息和邊信息,為每個三角面片建立鄰接關(guān)系表,存放與該三角面片拓撲相鄰的三角面片, 該方法可準確獲取三角網(wǎng)格模型中各三角面片的近鄰關(guān)系,但是,由鄰接關(guān)系表的構(gòu)建過程 可知,其索引效率依賴于構(gòu)建鄰接關(guān)系表時三角面片的插入順序,且鄰接關(guān)系表為靜態(tài)索引 結(jié)構(gòu),對三角面片進行插入、刪除等操作時,需遍歷整個鄰接關(guān)系表以重新組織三角面片間 的鄰接關(guān)系,算法運行效率低、系統(tǒng)資源消耗高。周海在其博士學位論文"細分曲面造型技 術(shù)研究"(南京航空航天大學,2005)中采用空間八叉樹作為三角網(wǎng)格模型的空間索引結(jié)構(gòu), 依據(jù)三角面片包圍盒中心的位置將三角面片插入到空間八叉樹中,建立三角網(wǎng)格模型索引結(jié) 構(gòu),組織三角面片間的近鄰關(guān)系,該方法以三角面片包圍盒中心表示三角面片,不能準確反 映三角面片所在位置及所占空間區(qū)域大小,準確性差,降低了索引結(jié)構(gòu)的質(zhì)量及基于該結(jié)構(gòu) 的空間査詢效率。王占禮在其博士學位論文"面向虛擬制造的數(shù)控加工仿真技術(shù)研究"(吉 林大學,2007)中采用一個大包圍盒包圍三角網(wǎng)格模型,將該包圍盒作為根索引結(jié)點,然后 將其中的三角面片分割成兩部分,每一部分用一個包圍盒包圍,再對每一個包圍盒遞推進行 分割,直到一個包圍盒只包含一個三角面片,建立三角網(wǎng)格模型的非平衡二叉樹索引結(jié)構(gòu), 該結(jié)構(gòu)提高了三角網(wǎng)格模型的空間查詢效率,但由于該結(jié)構(gòu)為非平衡二叉樹,故只適用于分 布較為均勻的三角網(wǎng)格模型,當三角網(wǎng)格模型分布疏密不均時,容易出現(xiàn)樹的某一分支層數(shù)過多現(xiàn)象,導致數(shù)據(jù)結(jié)構(gòu)急劇惡化,嚴重影響基于該結(jié)構(gòu)的空間査詢效率。
      綜上所述,目前的三角網(wǎng)格空間索引結(jié)構(gòu)存在建立效率低、系統(tǒng)資源消耗高等問題,因 此,為產(chǎn)品STL模型數(shù)據(jù)建立穩(wěn)定高效的索引結(jié)構(gòu)己成為本領(lǐng)域技術(shù)人員亟待解決的技術(shù)問 題。

      發(fā)明內(nèi)容
      為克服現(xiàn)有產(chǎn)品STL模型的空間索引結(jié)構(gòu)建立方法在產(chǎn)品逆向工程數(shù)據(jù)處理中的不足, 本發(fā)明的目的在于提供一種產(chǎn)品STL模型的空間索引結(jié)構(gòu)建立方法,使之能索引各種復雜型 面產(chǎn)品STL模型,具有穩(wěn)定性強、查詢效率高的特點,技術(shù)方案如下
      一種用于產(chǎn)品逆向工程中的產(chǎn)品STL模型的空間索引結(jié)構(gòu)建立方法,其特征在于包含以 下步驟 一、讀取產(chǎn)品STL模型數(shù)據(jù),建立各三角面片的軸向包圍盒,依據(jù)軸向包圍盒的中 心及外接球半徑建立三角面片對應(yīng)的數(shù)據(jù)結(jié)點,并存入數(shù)據(jù)結(jié)點序列;二、將數(shù)據(jù)結(jié)點插入 到索引結(jié)構(gòu)中,步驟具體是1)為數(shù)據(jù)結(jié)點選擇插入位置;2)將數(shù)據(jù)結(jié)點插入到步驟1) 中得到的插入位置;3)令數(shù)據(jù)結(jié)點插入到結(jié)點node下,判斷結(jié)點node的子結(jié)點數(shù)是否大于 結(jié)點的最大子結(jié)點數(shù),若大于則對結(jié)點node進行結(jié)點分裂;4)調(diào)整各結(jié)點的軸向包圍盒; 三、將體積過大的軸向包圍盒重新插入到索引結(jié)構(gòu)中,實現(xiàn)索引結(jié)構(gòu)的優(yōu)化;四、基于產(chǎn)品 STL模型空間索引結(jié)構(gòu),實現(xiàn)三角面片的拓撲近鄰查詢。
      為實現(xiàn)發(fā)明目的,所述的產(chǎn)品STL模型的空間索引結(jié)構(gòu)建立方法,在步驟一中,讀取產(chǎn) 品STL模型數(shù)據(jù)文件,根據(jù)三角面片三個頂點的坐標為每個三角面片建立恰好包圍三角面片 且各條棱均平行于坐標軸的軸向包圍盒,建立各三角面片對應(yīng)的數(shù)據(jù)結(jié)點,并將其存入數(shù)據(jù) 結(jié)點序列,數(shù)據(jù)結(jié)點包含三角面片信息及對應(yīng)的軸向包圍盒信息。
      為實現(xiàn)發(fā)明目的,所述的產(chǎn)品STL模型的空間索引結(jié)構(gòu)建立方法,在步驟二中,將數(shù)據(jù) 結(jié)點插入到索引結(jié)構(gòu),方法是結(jié)點包括索引結(jié)點和數(shù)據(jù)結(jié)點,索引結(jié)點包含根索引結(jié)點、 內(nèi)部索引結(jié)點和葉索引結(jié)點,索引結(jié)構(gòu)的最上層結(jié)點為根索引結(jié)點、最下層結(jié)點為葉索引結(jié) 點、其余結(jié)點為內(nèi)部索引結(jié)點,定義M為結(jié)點的最大子結(jié)點數(shù)(M為大于2的整數(shù))、m為結(jié) 點最小子結(jié)點數(shù)(m為小于或等于M/2的整數(shù)),除根索引結(jié)點外,每個索引結(jié)點的子結(jié)點數(shù) 均小于等于M且大于等于m;索引結(jié)構(gòu)中每個結(jié)點的軸向包圍盒恰好包圍該結(jié)點的所有子 結(jié)點。
      為實現(xiàn)發(fā)明目的,所述的產(chǎn)品STL模型的空間索引結(jié)構(gòu)建立方法,在步驟二中為結(jié)點選 擇插入位置的步驟具體是1)令當前結(jié)點為current—node,如果索引結(jié)構(gòu)為空則返回空,否 則令current—node為索引結(jié)構(gòu)根索引結(jié)點;2)計算current—node的每個子結(jié)點與待插入結(jié)點的軸向包圍盒外接球重疊度,選擇重疊度最小的作為current—node; 3)重復步驟2)直到 current—node所在層為葉索引結(jié)點層。
      為實現(xiàn)發(fā)明目的,所述的產(chǎn)品STL模型的空間索引結(jié)構(gòu)建立方法,在步驟二中,將數(shù)據(jù) 結(jié)點插入到索引結(jié)構(gòu),令任意兩結(jié)點c,、。軸向包圍盒的外接球半徑分別為。、。,軸向包
      圍盒中心間的距離為"",采用公式《,,=;二計算兩結(jié)點軸向包圍盒的外接球重疊度,以
      《乂
      結(jié)點軸向包圍盒外接球重疊度衡量兩結(jié)點間的相似性大小,重疊度越大則結(jié)點間的相似性越 大,否則越小,令N為任一結(jié)點,其包含的子結(jié)點集合為。=&|/ = 0,1, — ,"-1},計算結(jié)點q
      與集合(7中其他結(jié)點的軸向包圍盒外接球重疊度之和4( = g《,;,以&^值最大的結(jié)點為 子結(jié)點集合C的中心。
      為實現(xiàn)發(fā)明目的,所述的產(chǎn)品STL模型的空間索引結(jié)構(gòu)建立方法,在步驟二的步驟3) 中,結(jié)點分裂的步驟具體是1)隨機取兩個結(jié)點作為初始分簇中心;2)將結(jié)點node包含的 結(jié)點插入到中心與其相似性較大的簇中;3)計算分簇后兩簇的分簇中心,若分簇中心與上次 分簇中心相同則執(zhí)行步驟4),否則以新分簇中心代替上次分簇中心,返回步驟2)繼續(xù)分 簇;4)若某簇的結(jié)點數(shù)m小于最小子結(jié)點數(shù)附,則將另一簇中與當前簇中心相似性較大的 m-"個結(jié)點插入到當前簇中;5)將其中一簇作為結(jié)點node的子結(jié)點,新建結(jié)點new—node, 將另一簇作為新建結(jié)點new—node的子結(jié)點,計算新建結(jié)點new—node的軸向包圍盒,并將新 建結(jié)點new—node作為結(jié)點node的父結(jié)點的子結(jié)點插入到索引結(jié)構(gòu)中。
      為實現(xiàn)發(fā)明目的,所述的產(chǎn)品STL模型的空間索引結(jié)構(gòu)建立方法,在步驟二中,將數(shù)據(jù) 結(jié)點插入到索引結(jié)構(gòu),調(diào)整結(jié)點軸向包圍盒的步驟具體是l)設(shè)新插入到索引結(jié)構(gòu)中的數(shù)據(jù) 結(jié)點的父結(jié)點為src—node; 2)調(diào)整父結(jié)點src_node的軸向包圍盒,使其恰好包含父結(jié)點 src—node的所有子結(jié)點;3)若父結(jié)點src—node為根索引結(jié)點,程序返回,否則繼續(xù)執(zhí)行;4) 令父結(jié)點src—node為步驟l)中父結(jié)點src—node的父結(jié)點,返回步驟2)。
      為實現(xiàn)發(fā)明目的,所述的產(chǎn)品STL模型的空間索引結(jié)構(gòu)建立方法,在步驟三中對索引結(jié) 構(gòu)進行優(yōu)化,步驟具體是l)遍歷索引結(jié)構(gòu),計算葉索引結(jié)點層軸向包圍盒的平均體積 w/imje — avg; 2)遍歷索引結(jié)構(gòu)各葉索引結(jié)點,若該葉索引結(jié)點軸向包圍盒的體積大于
      //xvo/Mwe —flvg, //為用戶設(shè)定的閾值,通常取3~5,則將其包含的數(shù)據(jù)結(jié)點添加到臨時 序列L中,并將其包含的數(shù)據(jù)結(jié)點從索引結(jié)構(gòu)中刪除;3)將序列L中的數(shù)據(jù)結(jié)點重新插入到索引結(jié)構(gòu)中,實現(xiàn)索引結(jié)構(gòu)的全局優(yōu)化。
      為實現(xiàn)發(fā)明目的,所述的產(chǎn)品STL模型的空間索引結(jié)構(gòu)建立方法,在步驟四中,査詢?nèi)?一三角面片T的鄰接三角面片的具體步驟如下1 )令三角面片T的軸向包圍盒外接球為S, 將當前結(jié)點N初始化為索引結(jié)構(gòu)的根索引結(jié)點;2)若當前結(jié)點N的軸向包圍盒外接球與外 接球S相交,則繼續(xù)執(zhí)行,否則執(zhí)行步驟4); 3)若當前結(jié)點N為數(shù)據(jù)結(jié)點,則將其包含的 三角面片存入三角面片T的近鄰三角面片集合L; 4)若當前結(jié)點N為索引結(jié)點,則令當前 結(jié)點N為其子結(jié)點,返回步驟2) ; 5)令當前結(jié)點N為其下一結(jié)點,返回步驟2) ; 6)從 近鄰三角面片集合L中査詢?nèi)敲嫫琓的拓撲近鄰三角面片。
      本發(fā)明與現(xiàn)有技術(shù)相比,具有以下四個特點
      1) 依據(jù)結(jié)點軸向包圍盒外接球重疊度衡量三角面片間的相似性,既反映了三角面片所在 位置又反映了其所占空間區(qū)域大小,提高了結(jié)點在空間范圍內(nèi)的聚合性,分簇結(jié)果更合理;
      2) 結(jié)合k-means算法進行結(jié)點分裂,提高了點云空間索引結(jié)構(gòu)的建立效率;
      3) 將體積過大的葉索引結(jié)點包含的數(shù)據(jù)結(jié)點重新插入到索引結(jié)構(gòu)中,避免了軸向包圍盒 奇異的結(jié)點的產(chǎn)生,提高了索引結(jié)構(gòu)的質(zhì)量;
      4) 采用深度優(yōu)先遍歷方法快速準確的獲取三角面片的拓撲近鄰三角面片,可有效縮小査 詢范圍,提高目標三角面片拓撲近鄰面片的査詢效率。


      圖1是本發(fā)明產(chǎn)品STL模型的空間索引結(jié)構(gòu)建立程序?qū)崿F(xiàn)流程圖。
      圖2是三角面片及其軸向包圍盒示意圖。
      圖3是本發(fā)明索引結(jié)構(gòu)的平面結(jié)構(gòu)示意圖。
      圖4是本發(fā)明索引結(jié)構(gòu)的樹狀結(jié)構(gòu)示意圖。
      圖5是本發(fā)明產(chǎn)品STL模型數(shù)據(jù)索引結(jié)構(gòu)新結(jié)點插入流程圖。
      圖6是本發(fā)明維納斯頭像三角網(wǎng)格模型。
      圖7-圖10是本發(fā)明對維納斯頭像產(chǎn)品STL模型建立的空間索引結(jié)構(gòu)各層結(jié)點軸向包圍
      具體實施例方式
      下面結(jié)合附圖對本發(fā)明作進一步說明
      圖1是本發(fā)明產(chǎn)品STL模型的空間索引結(jié)構(gòu)建立程序?qū)崿F(xiàn)流程圖,產(chǎn)品STL模型的空間 索引結(jié)構(gòu)建立程序包含讀取產(chǎn)品STL模型數(shù)據(jù)文件程序1,將數(shù)據(jù)結(jié)點插入到索引結(jié)構(gòu)程序 2,優(yōu)化索引結(jié)構(gòu)程序3及目標三角面片近鄰面片査詢程序4,其中,讀取產(chǎn)品STL模型數(shù)據(jù)文件程序1讀取產(chǎn)品STL模型數(shù)據(jù)文件,建立各三角面片的軸向包圍盒,依據(jù)軸向包圍盒的 中心及外接球半徑建立三角面片對應(yīng)的數(shù)據(jù)結(jié)點,并存入數(shù)據(jù)結(jié)點序列;將數(shù)據(jù)結(jié)點插入到 索引結(jié)構(gòu)程序2讀取數(shù)據(jù)結(jié)點序列,選擇結(jié)點插入位置,判斷結(jié)點的子結(jié)點數(shù)是否大于結(jié)點 的最大子結(jié)點數(shù),若大于則進行結(jié)點分裂,自軸向包圍盒發(fā)生變化的結(jié)點,沿著R、tree的一 條分枝,自底向上調(diào)整各結(jié)點的軸向包圍盒;優(yōu)化索引結(jié)構(gòu)程序程序3刪除軸向包圍盒體積 過大或過于狹長的葉索引結(jié)點,將其包含的子結(jié)點重新插入到索引結(jié)構(gòu)中,實現(xiàn)索引結(jié)構(gòu)的 優(yōu)化;三角面片拓撲近鄰面片査詢程序4深度優(yōu)先遍歷產(chǎn)品STL模型的空間索引結(jié)構(gòu),獲取 與目標三角面片軸向包圍盒外接球相交的數(shù)據(jù)結(jié)點,從其包含的三角面片中選擇目標三角面 片的拓撲近鄰面片。
      圖2是若干三角面片集合。定義索引結(jié)構(gòu)中結(jié)點的最小子結(jié)點數(shù)m=3、最大子結(jié)點數(shù) M=8,圖3是對圖2所示三角面片集合建立的空間索引結(jié)構(gòu)中結(jié)點軸向包圍盒示意圖,圖4 為索引結(jié)構(gòu)的樹狀結(jié)構(gòu)示意圖,結(jié)點A是根索引結(jié)點,B、 C為葉索引結(jié)點,D、 E、 F、 G、 H、 I、 J、 K、 L、 M、 N、 O、 P、 Q為數(shù)據(jù)結(jié)點,每個數(shù)據(jù)結(jié)點包含一個三角面片。
      圖5所示為將數(shù)據(jù)結(jié)點插入到索引結(jié)構(gòu)程序2實現(xiàn)流程圖,調(diào)用選擇結(jié)點插入位置程序 1)選擇結(jié)點應(yīng)插入的位置,調(diào)用結(jié)點插入位置程序2)將結(jié)點插入到程序l)得到的位置, 判斷結(jié)點的父結(jié)點的子結(jié)點數(shù)是否大于結(jié)點的最大子結(jié)點數(shù),若大于則調(diào)用結(jié)點分裂程序3) 對新插入結(jié)點的父結(jié)點進行結(jié)點分裂,調(diào)用調(diào)整結(jié)點軸向包圍盒程序4)對自新插入結(jié)點,沿 著索引結(jié)構(gòu)的一條分枝,調(diào)整各結(jié)點的軸向包圍盒,使各結(jié)點的軸向包圍盒恰好包圍其包含 的子結(jié)點。
      將數(shù)據(jù)結(jié)點插入到索引結(jié)構(gòu)程序2中,選擇結(jié)點插入位置程序l)的步驟具體是1)若 當前索引結(jié)構(gòu)為空,則返回空;否則設(shè)當前結(jié)點current—node為索引結(jié)構(gòu)的根索引結(jié)點;2) 計算當前結(jié)點current—node的每個子結(jié)點與待插入結(jié)點的軸向包圍盒外接球重疊度,選擇重 疊度最小的作為當前結(jié)點current—node; 3)重復步驟2)直到當前結(jié)點current—node所在層為 葉索引結(jié)點層。
      將數(shù)據(jù)結(jié)點插入到索引結(jié)構(gòu)程序2中,令任意兩結(jié)點。、。的軸向包圍盒外接球半徑分
      別為^、 ^,軸向包圍盒中心間的距離為《j,采用公式《,;=^^計算兩結(jié)點的外接球重
      《;
      疊度,以重疊度衡量兩結(jié)點間的相似性大小,重疊度越大則結(jié)點間的相似性越大,否則越小, 令N為任一結(jié)點,其包含的子結(jié)點集合為C-feh、0,l,…,"-l),計算結(jié)點c,與集合C中其他結(jié)點的軸向包圍盒外接球重疊度之和& 1= Z^.,以《,值最大的結(jié)點為子結(jié)點集合C
      的中心。
      將數(shù)據(jù)結(jié)點插入到索引結(jié)構(gòu)程序2中,若結(jié)點node的子結(jié)點數(shù)"大于最大子結(jié)點數(shù)M, 則調(diào)用結(jié)點分裂程序3)對結(jié)點node進行結(jié)點分裂,步驟具體是l)隨機取兩個結(jié)點作為初 始分簇中心;2)將結(jié)點node包含的結(jié)點插入到中心與其相似性較大的簇中;3)計算分簇后 兩簇的分簇中心,若分簇中心與上次分簇中心相同則執(zhí)行步驟4),否則以新分簇中心代替 上次分簇中心,返回步驟2)繼續(xù)分簇;4)若某簇的結(jié)點數(shù)w小于最小子結(jié)點數(shù)附,則將另 一簇中與當前簇中心相似性較大的/n-"個結(jié)點插入到當前簇中;5)將其中一簇作為結(jié)點node 的子結(jié)點,新建結(jié)點new—node,將另一簇作為新建結(jié)點new—node的子結(jié)點,計算新建結(jié)點 new一node的軸向包圍盒,并將新建結(jié)點new_node作為結(jié)點node的父結(jié)點的子結(jié)點插入到索 引結(jié)構(gòu)中。
      優(yōu)化索引結(jié)構(gòu)程序3的步驟具體是l)遍歷索引結(jié)構(gòu),計算葉索引結(jié)點層軸向包圍盒的 平均體積w/wwe —flVg; 2)遍歷索引結(jié)構(gòu)各葉索引結(jié)點,若該葉索引結(jié)點軸向包圍盒的體積
      大于Axw/w^ —(//為用戶設(shè)定的閾值,通常取3-5),則將其從索引結(jié)構(gòu)中刪除,并將
      其包含的三角面片添加到臨時序列L中;3)將序列L中的三角面片重新插入到索引結(jié)構(gòu)中,
      實現(xiàn)索引結(jié)構(gòu)的全局優(yōu)化。
      圖6是本發(fā)明維納斯頭像三角網(wǎng)格模型,該模型型面特征較為復雜,由27963個三角面 片構(gòu)成,采用本發(fā)明建立其空間索引結(jié)構(gòu),各層結(jié)點軸向包圍盒效果如圖7-圖IO所示。圖7 為根索引結(jié)點的軸向包圍盒,圖8為內(nèi)部索引結(jié)點的軸向包圍盒,圖9為葉索引結(jié)點的軸向 包圍盒,圖10為數(shù)據(jù)結(jié)點的軸向包圍盒,除根索引結(jié)點外,每個索引結(jié)點的子結(jié)點數(shù)均在 8~20范圍內(nèi),每個數(shù)據(jù)結(jié)點包含一個三角面片。
      査詢?nèi)我蝗敲嫫琓的鄰接三角面片的步驟具體是1)令三角面片T的軸向包圍盒外 接球為S,將當前結(jié)點N初始化為索引結(jié)構(gòu)的根索引結(jié)點;2)若當前結(jié)點N的軸向包圍盒 外接球與外接球S相交,則繼續(xù)執(zhí)行,否則執(zhí)行步驟4); 3)若當前結(jié)點N為數(shù)據(jù)結(jié)點,則 將其包含的三角面片存入三角面片T的近鄰三角面片集合L; 4)若當前結(jié)點N為索引結(jié)點, 則令當前結(jié)點N為其子結(jié)點,返回步驟2); 5)令當前結(jié)點N為其下一結(jié)點,返回步驟2); 6)從近鄰三角面片集合L中査詢?nèi)敲嫫琓的拓撲近鄰三角面片。
      其它產(chǎn)品STL模型的索引結(jié)構(gòu)構(gòu)建方法同上。
      權(quán)利要求
      1、一種用于產(chǎn)品逆向工程中的產(chǎn)品STL模型的空間索引結(jié)構(gòu)建立方法,其特征在于包含以下步驟一、讀取產(chǎn)品STL模型數(shù)據(jù),建立各三角面片的軸向包圍盒,依據(jù)軸向包圍盒的中心及外接球半徑建立三角面片對應(yīng)的數(shù)據(jù)結(jié)點,并存入數(shù)據(jù)結(jié)點序列;二、將數(shù)據(jù)結(jié)點插入到索引結(jié)構(gòu)中,步驟具體是1)為數(shù)據(jù)結(jié)點選擇插入位置;2)將數(shù)據(jù)結(jié)點插入到步驟1)中得到的插入位置;3)令數(shù)據(jù)結(jié)點插入到結(jié)點node下,判斷結(jié)點node的子結(jié)點數(shù)是否大于結(jié)點的最大子結(jié)點數(shù),若大于則對結(jié)點node進行結(jié)點分裂;4)調(diào)整各結(jié)點的軸向包圍盒;三、將體積過大的軸向包圍盒重新插入到索引結(jié)構(gòu)中,實現(xiàn)索引結(jié)構(gòu)的優(yōu)化;四、基于產(chǎn)品STL模型空間索引結(jié)構(gòu),實現(xiàn)三角面片的拓撲近鄰查詢。
      2、 如權(quán)利要求1所述的產(chǎn)品STL模型的空間索引結(jié)構(gòu)建立方法,其特征在于在步驟 二中,結(jié)點包括索引結(jié)點和數(shù)據(jù)結(jié)點,索引結(jié)點包含根索引結(jié)點、內(nèi)部索引結(jié)點和葉索引結(jié) 點,索引結(jié)構(gòu)的最上層結(jié)點為根索引結(jié)點、最下層結(jié)點為葉索引結(jié)點、其余結(jié)點為內(nèi)部索引 結(jié)點,定義M為結(jié)點的最大子結(jié)點數(shù)、m為結(jié)點最小子結(jié)點數(shù),其中M為大于2的整數(shù),/n 為小于或等于M/2的整數(shù),除根索引結(jié)點外,每個索引結(jié)點的子結(jié)點數(shù)均小于等于M且大 于等于附;索引結(jié)構(gòu)中每個結(jié)點的軸向包圍盒恰好包圍該結(jié)點的所有子結(jié)點。
      3、 如權(quán)利要求1所述的產(chǎn)品STL模型的空間索引結(jié)構(gòu)建立方法,其特征在于在步驟 二中為結(jié)點選擇插入位置的步驟具體是1)令當前結(jié)點為current—node,如果索引結(jié)構(gòu)為空 則返回空,否則令current—node為索引結(jié)構(gòu)根索引結(jié)點;2)計算current—node的每個子結(jié)點 與待插入結(jié)點的軸向包圍盒外接球重疊度,選擇重疊度最小的作為current—node; 3)重復步 驟2)直到current—node所在層為葉索引結(jié)點層。
      4、 如權(quán)利要求1所述的產(chǎn)品STL模型的空間索引結(jié)構(gòu)建立方法,其特征在于在步驟二中,將數(shù)據(jù)結(jié)點插入到索引結(jié)構(gòu),令任意兩結(jié)點c,、。的軸向包圍盒外接球半徑分別為r,、G,軸向包圍盒中心間的距離為《,,采用公式^,.="^計算兩結(jié)點軸向包圍盒的外接球《■/重疊度,以重疊度衡量兩結(jié)點間的相似性大小,重疊度越大則結(jié)點間的相似性越大,否則越 小,令N為任一結(jié)點,其包含的子結(jié)點集合為C二(c, |/ = 0,1, ,"-1},計算結(jié)點。與集合C中其他結(jié)點的軸向包圍盒外接球重疊度之和乙 = ,以^m值最大的結(jié)點為子結(jié)點集合c的中心。
      5、 如權(quán)利要求1所述的產(chǎn)品STL模型的空間索引結(jié)構(gòu)建立方法,其特征在于在步驟二的步驟3)中,結(jié)點分裂的步驟具體是1)隨機取兩個結(jié)點作為初始分簇中心;2)將結(jié)點node包含的結(jié)點插入到中心與其相似性較大的簇中;3)計算分簇后兩簇的分簇中心,若 分簇中心與上次分簇中心相同則執(zhí)行步驟4),否則以新分簇中心代替上次分簇中心,返回步驟2)繼續(xù)分簇;4)若某簇的結(jié)點數(shù)"小于最小子結(jié)點數(shù)m,則將另一簇中與當前簇中心相似性較大的m-"個結(jié)點插入到當前簇中;5)將其中一簇作為結(jié)點node的子結(jié)點,新建結(jié) 點new—node,將另一簇作為新建結(jié)點new—node的子結(jié)點,計算新建結(jié)點new—node的軸向包 圍盒,并將新建結(jié)點new—node作為結(jié)點node的父結(jié)點的子結(jié)點插入到索引結(jié)構(gòu)中。
      6、 如權(quán)利要求1所述的產(chǎn)品STL模型的空間索引結(jié)構(gòu)建立方法,其特征在于在步驟 二中,將數(shù)據(jù)結(jié)點插入到索引結(jié)構(gòu),調(diào)整結(jié)點軸向包圍盒的步驟具體是l)設(shè)新插入到索引 結(jié)構(gòu)中的數(shù)據(jù)結(jié)點的父結(jié)點為src—node; 2)調(diào)整父結(jié)點src—node的軸向包圍盒,使其恰好包 含父結(jié)點src_node的所有子結(jié)點;3)若父結(jié)點src—node為根索引結(jié)點,程序返回,否則繼 續(xù)執(zhí)行;4)令父結(jié)點src—node為步驟l)中父結(jié)點src—node的父結(jié)點,返回步驟2)。
      7、 如權(quán)利要求1所述的產(chǎn)品STL模型的空間索引結(jié)構(gòu)建立方法,其特征在于在步驟 三中對索引結(jié)構(gòu)進行優(yōu)化,步驟具體是l)遍歷索引結(jié)構(gòu),計算葉索引結(jié)點層軸向包圍盒的 平均體積vo/wme —avg; 2)遍歷索引結(jié)構(gòu)各葉索引結(jié)點,若該葉索引結(jié)點軸向包圍盒的體積大于/zxw/"me —OTg, //為用戶設(shè)定的閾值,通常取3~5,則將其包含的數(shù)據(jù)結(jié)點添加到臨時序列L中,并將其包含的數(shù)據(jù)結(jié)點從索引結(jié)構(gòu)中刪除;3)將序列L中的數(shù)據(jù)結(jié)點重新插入到 索引結(jié)構(gòu)中,實現(xiàn)索引結(jié)構(gòu)的全局優(yōu)化。
      8、 如權(quán)利要求1所述的產(chǎn)品STL模型的空間索引結(jié)構(gòu)建立方法,其特征在于在步驟 四中,査詢?nèi)我蝗敲嫫琓的鄰接三角面片的具體步驟如下1)令三角面片T的軸向包圍 盒外接球為S,將當前結(jié)點N初始化為索引結(jié)構(gòu)的根索引結(jié)點;2)若當前結(jié)點N的軸向包 圍盒外接球與外接球S相交,則繼續(xù)執(zhí)行,否則執(zhí)行步驟4); 3)若當前結(jié)點N為數(shù)據(jù)結(jié)點, 則將其包含的三角面片存入三角面片T的近鄰三角面片集合L; 4)若當前結(jié)點N為索引結(jié) 點,則令當前結(jié)點N為其子結(jié)點,返回步驟2); 5)令當前結(jié)點N為其下一結(jié)點,返回步驟 2); 6)從近鄰三角面片集合L中査詢?nèi)敲嫫琓的拓撲近鄰三角面片。
      全文摘要
      本發(fā)明提供一種產(chǎn)品STL模型空間索引結(jié)構(gòu)建立方法,其特征在于首先讀取產(chǎn)品STL模型數(shù)據(jù)文件,建立各三角面片的軸向包圍盒,依據(jù)軸向包圍盒的中心及外接球半徑建立三角面片對應(yīng)的數(shù)據(jù)結(jié)點,并存入數(shù)據(jù)結(jié)點序列,通過選擇插入位置、結(jié)點分裂、調(diào)整結(jié)點軸向包圍盒等步驟將序列中各數(shù)據(jù)結(jié)點插入到索引結(jié)構(gòu)中,將軸向包圍盒體積較大的數(shù)據(jù)結(jié)點重新插入到索引結(jié)構(gòu)中,進一步優(yōu)化索引結(jié)構(gòu),實現(xiàn)產(chǎn)品STL模型空間索引結(jié)構(gòu)的建立。本發(fā)明可建立各種復雜型面三角網(wǎng)格的空間索引結(jié)構(gòu),具有穩(wěn)定性強、查詢效率高的特點。
      文檔編號G06F17/30GK101510315SQ200910019899
      公開日2009年8月19日 申請日期2009年3月26日 優(yōu)先權(quán)日2009年3月26日
      發(fā)明者孫殿柱, 崔傳輝, 朱昌志, 李延瑞 申請人:山東理工大學
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1