[发明专利]基于邻接矩阵的三角网格细分的并行计算方法及系统在审
| 申请号: | 202310490467.8 | 申请日: | 2023-05-04 |
| 公开(公告)号: | CN116503580A | 公开(公告)日: | 2023-07-28 |
| 发明(设计)人: | 陈仁杰;王克淳 | 申请(专利权)人: | 中国科学技术大学 |
| 主分类号: | G06T17/20 | 分类号: | G06T17/20 |
| 代理公司: | 北京科迪生专利代理有限责任公司 11251 | 代理人: | 金怡 |
| 地址: | 230026 安*** | 国省代码: | 安徽;34 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 基于 邻接矩阵 三角 网格 细分 并行 计算方法 系统 | ||
1.一种基于邻接矩阵的三角网格细分的并行计算方法,其特征在于,包括:
步骤S1:获取三角网格,其顶点坐标集合表示为P={v0,v1,…,vn-1},三角面集合表示为M={f0,f1,…,fm-1};指定细分次数N;
步骤S2:利用所述三角网格,生成邻接矩阵用于存储顶点及与之相连顶点和边的信息;
步骤S3:利用所述邻接矩阵并行地计算所述三角网格的顶点与新增加顶点的位置坐标,根据细分后三角网格更新三角面集合M;重复执行步骤S2~S3直到达到所述细分次数,得到最终细分的三角网格。
2.根据权利要求1所述的基于邻接矩阵的三角网格细分的并行计算方法,其特征在于,所述步骤S2:利用所述三角网格,生成邻接矩阵用于存储顶点及与之相连顶点和边的信息,具体包括:
步骤S21:定义所述邻接矩阵由四个数组组成:columptr,rowindex,values,values2其中,columptr[i]存储前i个顶点的度之和,其中,顶点的度为与顶点i相邻的顶点个数;rowindex[columptr[i]]储存与顶点i相连的所有顶点的编号;values储存与顶点i相连的边的编号,values2储存values中边的顺时针方向相邻边所对应的顶点对的编号,其中,所述相邻边为与values中共享顶点i的边;
步骤S22:依次访问M中每个fk的每个顶点,若当前访问的fk的第i个顶点为vi,那么令columptr[vi]增加1,并将这时columptr[vi]的值记录在一个辅助数组offset中,即令:
columptr[vi]=columptr[vi]+1;
offset[3k+i]=columptr[vi];
再次更新columptr使得columptr[vi]等于前i项之和;
步骤S23:计算rowindex:并行地访问每个三角面fk,令fk的顶点为(va,vb,vc),那么则有:
rowindex[columptr[va]+offset[3k]]=vb
rowindex[columptr[vb]+offset[3k+1]]=vc
rowindex[columptr[vc]+offset[3k+2]]=va
步骤S24:计算values:并行地访问每个三角面fk,令fk的顶点为(va,vb,vc),那么则有:
步骤S25:根据values给每条边编号:首先更新values,使得values中的每一项更新为原来的前所有项之和,即更新后的values[s]等于原来的values数组的前s项之和;此时对于边(va,vb),假设vavb则它的编号存在数组values[ptr[va+j]]对应的位置,j满足要求使得:rowindex[ptr[va+j]]=vb;
步骤S26:计算values2:并行地访问每个三角面fk,令fk的顶点为(va,vb,vc),那么则有:
values2[columper[va]+offset[3k]]=(va,vc)
values2[columptr[vb]+offset[3k+1]]=(vb,va)
values2[columptr[vc]+offset[3k+2]]=(vc,vb)。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学技术大学,未经中国科学技术大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202310490467.8/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种抗菌型聚乙烯管材及其制备方法
- 下一篇:一种水汽分离装置及其使用方法





