半边数据结构

本文探讨了三维网格信息的几何和拓扑结构,并重点介绍了半边数据结构。这种结构通过节省空间并存储丰富的信息,适用于表示面、边和点的邻接关系,尤其适合进行局部操作。文中还提及了一个Unity3d面片到半边结构转换的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

三维网格信息分为两个部分:几何(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-edge
HE_edge* pair;   // oppositely oriented adjacent hal
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值