[发明专利]一种渐进最优的三角网格重复顶点快速去除方法有效
申请号: | 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.vipzhuanli.com/pat/books/201310376046.9/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种磁盘文件的快速检索方法
- 下一篇:一种弹性透气吸湿面料