文章目录
前言
关于mesh 网格的数据结构设计需要考虑两方面的要求:1.Topological requirements. 2.Algorithmic requirements. 评估数据结构需要测量各种标准,例如在预处理期间构建它的时间,响应具体问题的时间,执行特定操作的时间,以及内存消耗和冗余等。
本文将详细介绍半边结构(Halfedge-based data),以及Face-based data,Edge-based data, Directed-edge data structure.
1. Face-based data structure
这是表示表面网格的最简单方法,存储一组由顶点位置表示的单独多边形面(所谓的面集)。对于三角形网格的简单情况,这需要每个面存储三个顶点位置。 再者需要一张表存储vetex 所共享的面。
一般以.off, .obj, .vrml 结尾的格式文件存储。然而,这种存储方式没有额外的连接信息,这种数据结构需要昂贵的搜索来恢复顶点的局部邻接信息,因此对大多数算法来说效率不够高。
2.大多数算法常用的操作
a. 访问单个顶点、边和面。这包括以未指定顺序枚举所有元素
b. 面边缘的定向遍历,即寻找面中的下一条边(或前一条边)。例如,通过对顶点的额外访问,可以启用面的渲染。
c.