半边数据结构
来源:互联网 发布:物流信息软件 编辑:程序博客网 时间:2024/04/28 22:39
三维网格信息分为两个部分:几何(Geometry:顶点的位置信息)信息和拓扑(Topology:点线面之间的邻接关系)信息
保存点面信息的数据结构:
1. 以面为中心(face set):储存面,每个面包含三角形的顶点的坐标值.占用大量内存
2. 共享顶点:顶点坐标数组,三角面片为顶点索引,没有邻接关系。
3. 基于面连接
4. 基于边连接
5. 邻接矩阵
6. 角表
7. 半边数据结构
半边数据结构
http://www.flipcode.com/archives/The_Half-Edge_Data_Structure.shtml(内容来源)
如下图使用半边数据结构表示三角面片,黄点为点,蓝线为半边,半边具有方向,黄线为指针。
点:位置信息以及和此点相关的一个半边(后面再查找相邻的边的时候会介绍为啥这么处理)
struct HE_vert{float x;float y;float z;HE_edge* edge; // one of the half-edges emantating from the vertex };
半边:半边的终点,另一条与该半边方向相反的半边,该半边所在的面,以及半边顺时针(或逆时针)的顺序的半边
struct HE_edge{ HE_vert* vert; // vertex at the end of the half-edgeHE_edge* pair; // oppositely oriented adjacent half-edge HE_face* face; // face the half-edge bordersHE_edge* next; // next half-edge around the face};
面:从示图可以看出,一个半边其实就可以表示一个面
struct HE_face{HE_edge* edge; // one of the half-edges bordering the face};
应用:半边相邻的点和面(最两个面,封闭模型必定有两个面)
HE_vert* vert1 = edge->vert;HE_vert* vert2 = edge->pair->vert;HE_face* face1 = edge->face;HE_face* face2 = edge->pair->face;
迭代一个面所有的边
HE_edge* edge = face->edge; do {// do something with edgeedge = edge->next; } while (edge != face->edge);
处理一个点所有的邻接点:
HE_edge* edge = vert->edge;
do { // do something with edge, edge->pair or edge->face edge = edge->pair->next; } while (edge != vert->edge);
优点:相对于邻接矩阵和角表,利用了更少的空间保存了更加丰富的信息,利于很多局部操作。
粗略地实现了半边数据结构,以及将Unity3d的面片存储结构转换为半边结构。https://github.com/GeorgeDon/MyPrivate/blob/master/Unity3dTool/MeshProcessing/HalfEdge.cs
0 0
- 半边数据结构
- 半边数据结构
- 半边数据结构
- 半边数据结构
- 半边数据结构
- 半边数据结构
- 半边数据结构
- 半边数据结构
- 半边数据结构(转载)
- 半边数据结构及其使用
- 半边数据结构讲解
- 半边数据结构的相关网站
- 半边数据结构(The_Half-Edge_Data_Structure)
- OpenMesh学习笔记3 半边数据结构
- 三维形体的数据结构(1)半边数据结构
- 半边结构
- CGAL几何库 半边网格数据结构 模板类 设计核心思想
- CGAL几何库 半边网格数据结构 模板类 设计核心思想
- Xutils的参数设置post、get
- [乡土民间故事_徐苟三传奇]第三十回_贪宝锅财主出大丑
- STL编程题2(C++程序设计第9周)
- Java面试题集(71-85)
- Android经典文章收藏笔记3
- 半边数据结构
- [乡土民间故事_徐苟三传奇]第卅一回_再上当财主打儿子
- java多线程下载文件
- Android RadioGroup和RadioButton案例及详解
- 字符串与数字转换-C语言
- 【KMP+矩阵加速】BZOJ1009[HNOI2008]GT考试
- Java面试题集(86-115)
- Qwt中坐标轴的设置
- Wireshark与设备解析字节不一致问题