[發明專利]一種漸進最優的三角網格重復頂點快速去除方法有效
| 申請號: | 201310376046.9 | 申請日: | 2013-08-26 |
| 公開(公告)號: | CN103425787A | 公開(公告)日: | 2013-12-04 |
| 發明(設計)人: | 王文珂;王攀;蔡勛;李思昆;曾亮;沈恩亞;王懷暉;劉華海 | 申請(專利權)人: | 中國人民解放軍國防科學技術大學 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30 |
| 代理公司: | 國防科技大學專利服務中心 43202 | 代理人: | 郭敏 |
| 地址: | 410073 湖*** | 國省代碼: | 湖南;43 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 漸進 最優 三角 網格 重復 頂點 快速 去除 方法 | ||
1.一種漸進最優的三角網格重復頂點快速去除方法,其特征在于包括以下步驟:
第一步,申請兩個長度為3n的一維數組T與S,T與S中的元素為三角頂點,初始化各個頂點為0,其中n為幾何圖形三角面片個數,T與S每個元素大小為三個32位浮點數;初始化數組Vx、Vxy、Vxyz為長度3n的數組,每個元素為三個32位浮點數;初始化頂點索引數組F為長度3n的數組,每個元素為一個32位整數,F中的元素初始化為0;
第二步,初始化變量i=0,istr=0;
第三步,采用二分查找方法查找T,去除V中的重復頂點vi,得到沒有重復頂點的數組T,V是存放3n個三角形頂點的數組,每個頂點由三個32位浮點數構成,每個浮點數指每個頂點的X坐標、Y坐標、Z坐標,每三個頂點再組成一組,表示一個三角面片,共計n個三角面片,方法是:
3.1讀取V中的頂點vi={xi,yi,zi},xi,yi,zi分別為vi的X坐標、Y坐標、Z坐標;
3.2根據頂點vi(xi,yi,zi)的X坐標值xi大小,采用二分查找方法查找T中的頂點,若在T中找到了X坐標值等于xi的頂點,將T中的X坐標值為xi的頂點全放入集合Vx,轉3.3;若在T中未找到X坐標值等于xi的頂點,將此時二分查找方法得到的位置值賦給變量istr,轉第五步;
3.3在Vx中根據頂點vi(xi,yi,zi)的Y坐標值yi大小,利用二分查找方法查找與yi相同的頂點,若在Vx中找到Y坐標值等于yi的頂點,將Y坐標值為yi的頂點全放入集合Vxy,轉3.4;若在Vx中找不到Y坐標值等于yi的頂點,將此時二分查找方法得到的位置值賦給變量istr,轉第五步;
3.4在Vxy中根據頂點vi(xi,yi,zi)的Z坐標值zi大小,利用二分查找方法查找與zi相同的頂點,若在Vxy中找到Z坐標值等于zi的頂點,將Z坐標值為zi的頂點全放入集合Vxyz,記集合Vxyz中第一個元素是數組T中的第istr個元素,轉第四步;若在Vxy中找不到Z坐標值等于zi的頂點,將此時二分查找方法得到的位置值賦給變量istr,轉第五步;
第四步,如果Vxyz不為空,則說明頂點vi為T中存貯的重復的頂點,執行第六步;若Vxyz為空,則說明頂點vi目前不是重復頂點,執行第五步;
第五步,將頂點vi插入數組T:采用英特爾流式單指令多數據擴展指令集4即SSE4指令集技術,復制數組T中的元素集合T[istr,m]到臨時緩沖數組S[istr+1,m+1]中,然后將vi復制到數組T中序號為istr的元素的位置即作為元素T[istr],再復制S[istr+1,m+1]到T[istr+1,m+1],所述T[istr,m]是指數組T中,第istr個元素到第m個元素之間的一段連續空間上的所有數組元素,T[istr+1,m+1]是指數組T中,第istr+1個元素到第m+1個元素之間的一段連續空間上的所有數組元素,S[istr+1,m+1]是指數組S中,第istr+1個元素到第m+1個元素之間的一段連續空間上的所有數組元素;
第六步,令i=i+1并清空集合Vx、Vxy、Vxyz,若i>3n-1則執行第七步,否則轉第三步;
第七步,設置計數變量Counter=0,i=0;
第八步,在原始頂點集合V中選取頂點vi,使用二分查找方法查找T,分別沿X、Y、Z方向在集合T中查找頂點vi,方法是:
8.1讀取集合V中的頂點vi={xi,yi,zi};
8.2根據頂點vi(xi,yi,zi)的X坐標值xi大小,采用二分查找方法查找T中的頂點,在T中找到X坐標值等于xi的頂點,將T中的X坐標值為xi的頂點全放入集合Vx,轉8.3;
8.3在Vx集合中根據頂點vi(xi,yi,zi)的Y坐標值yi利用二分查找方法查找與vi具有相同yi頂點,將Y坐標值為yi的頂點全放入集合Vxy,轉8.4;
8.4在集合Vxy中根據頂點vi(xi,yi,zi)的Z坐標值zi大小利用二分查找方法查找與vi具有相同zi的頂點,將Z坐標值為zi的頂點v'i在數組T中的序號賦給變量Idxxyz,轉第九步;
第九步,將變量Idxxyz的值賦給頂點索引數組F中序號為Counter的元素F[Counter];
第十步,計數變量Counter增1,i增1,并清空集合Vx、Vxy;
第十一步,判斷i是否大于3n-1,若i大于3n-1,說明所有頂點已經處理,得到了正確的頂點索引數組F,轉第十二步,否則轉第八步;
第十二步,輸出沒有重復頂點的頂點數組T與頂點索引數組F,結束。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國人民解放軍國防科學技術大學,未經中國人民解放軍國防科學技術大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310376046.9/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種磁盤文件的快速檢索方法
- 下一篇:一種彈性透氣吸濕面料





