词条 | 半边表 |
释义 | 简介半边表是一种比较流行的数据结构,它以指针的形式保存网格的拓扑关系。 图1是半边表的是个例子。半边表是由顶点,半边以及面组成。顶点表示网格中的实际点,在图中用黄点表示。其中半边可视为一条有向边,封闭的网格中的一条边由2条方向相反的半边组成,在图中用蓝色有向边表示。整个网格的邻接关系主要靠半边间的关系来表示。对于每条半边,用next指针来记录同个面上的下一条边,图中表示为顺时针方向的下一条边;用pair指针来记录相邻面的相邻关系,这样一条实际边上的2条半边互为pair关系,图中紫色箭头表示了pair指针。表示了邻接关系后,每条半边再记录它的起始点以及所在的面,每个点记录它射出的半边,每个面记录属于它的任意一条半边,我们就可以完全记录网格的结构并对它进行操作了。 结构表示半边表3种结构表示如下: struct HE_edge { HE_vert* vert; //该边的起始点指针 HE_edge* pair; //该边的相对半边指针 HE_face* face; //该边所在的面指针 HE_edge* next;//该边所在面顺时针方向的下一条半边的指针 }; struct HE_vert { float x; float y; float z; HE_edge* edge; //以该点为起始点的半边的指针 } struct HE_face { HE_edge* edge; //该面中任意一条半边的指针 } |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。