边界表示的数据结构
2016-05-30 17:57
453 查看
转自:
http://netclass.csu.edu.cn/NCourse/hep089/Chapter3/CG_Txt_3_039.htm
在实体造型技术的研究中,有不少边界表示的数据结构相继提出,比较著名的有半边数据结构、翼边数据结构、辐射边数据结构等。
其中翼边数据结构是在1972年,由美国斯坦福大学Baumgart作为多面体的表示模式而被提出来的,它是基于边表示的数据结构,如图3.2.11所示。它用指针记录了每一边的两个邻面(即左外环和右外环)、两个顶点、两侧各自相邻的两个邻边(即左上边、左下边、右上边和右下边),用这一数据结构表示多面体模型是完备的,但它不能表示带有精确曲面边界的实体。
图3.2.10 翼边数据结构
为了表示非正则形体,1986年,Weiler提出了辐射边(Radial
Edge)数据结构,如图3.2.12所示。辐射边结构的形体模型由几何信息(Geometry)和拓扑信息(Topology)两部分组成。几何信息有面(face)、环(loop)、边(edge)和点(vertex),拓扑信息有模型(model)、
区域(region)、外壳(shell)、面引用(face
use)、环引用(loop use)、边引用(edge use)和点引用(vertex
use)。这里点是三维空间的一个位置,边可以是直线边或曲线边,边的端点可以重合。环是由首尾相接的一些边组成,而且最后一条边的终点与第一条边的起点重合;环也可以是一个孤立点。外壳是一些点、边、环、面的集合;外壳所含的面集有可能围成封闭的三维区域,从而构成一个实体;外壳还可以表示任意的一张曲面或若干个曲面构成的面组;外壳还可以是一条边或一个孤立点。外壳中的环和边有时被称为“线框环”和“线框边”,这是因为它们可以用于表示形体的线框图。区域由一组外壳组成,而模型由区域组成。图3.2.11是用辐射边数据结构表示的一个形体模型,注意其中实体、面、线是用统一的数据结构表示的。
图3.2.11 辐射边数据结构 图3.2.12 一个用辐射边结构表示的非正则形体模型
清华大学国家CAD工程中心开发的几何造型系统GEMS5.0中,采用的数据结构如图3.2.14所示。
图3.2.13 GEMS5.0的数据结构
该数据结构基于线框、表面、实体和特征统一表示,且具有以下特点:
采用自顶向下的设计思想。在形体的表示上,遵循了从大到小,分解表示的原则;
支持非流形形体的表示;
实体拓扑数据与几何数据双链表连接,存放紧凑;
能够支持特征造型。
http://netclass.csu.edu.cn/NCourse/hep089/Chapter3/CG_Txt_3_039.htm
在实体造型技术的研究中,有不少边界表示的数据结构相继提出,比较著名的有半边数据结构、翼边数据结构、辐射边数据结构等。
其中翼边数据结构是在1972年,由美国斯坦福大学Baumgart作为多面体的表示模式而被提出来的,它是基于边表示的数据结构,如图3.2.11所示。它用指针记录了每一边的两个邻面(即左外环和右外环)、两个顶点、两侧各自相邻的两个邻边(即左上边、左下边、右上边和右下边),用这一数据结构表示多面体模型是完备的,但它不能表示带有精确曲面边界的实体。
图3.2.10 翼边数据结构
为了表示非正则形体,1986年,Weiler提出了辐射边(Radial
Edge)数据结构,如图3.2.12所示。辐射边结构的形体模型由几何信息(Geometry)和拓扑信息(Topology)两部分组成。几何信息有面(face)、环(loop)、边(edge)和点(vertex),拓扑信息有模型(model)、
区域(region)、外壳(shell)、面引用(face
use)、环引用(loop use)、边引用(edge use)和点引用(vertex
use)。这里点是三维空间的一个位置,边可以是直线边或曲线边,边的端点可以重合。环是由首尾相接的一些边组成,而且最后一条边的终点与第一条边的起点重合;环也可以是一个孤立点。外壳是一些点、边、环、面的集合;外壳所含的面集有可能围成封闭的三维区域,从而构成一个实体;外壳还可以表示任意的一张曲面或若干个曲面构成的面组;外壳还可以是一条边或一个孤立点。外壳中的环和边有时被称为“线框环”和“线框边”,这是因为它们可以用于表示形体的线框图。区域由一组外壳组成,而模型由区域组成。图3.2.11是用辐射边数据结构表示的一个形体模型,注意其中实体、面、线是用统一的数据结构表示的。
图3.2.11 辐射边数据结构 图3.2.12 一个用辐射边结构表示的非正则形体模型
清华大学国家CAD工程中心开发的几何造型系统GEMS5.0中,采用的数据结构如图3.2.14所示。
图3.2.13 GEMS5.0的数据结构
该数据结构基于线框、表面、实体和特征统一表示,且具有以下特点:
采用自顶向下的设计思想。在形体的表示上,遵循了从大到小,分解表示的原则;
支持非流形形体的表示;
实体拓扑数据与几何数据双链表连接,存放紧凑;
能够支持特征造型。
相关文章推荐
- C#数据结构之顺序表(SeqList)实例详解
- Lua教程(七):数据结构详解
- 解析从源码分析常见的基于Array的数据结构动态扩容机制的详解
- C#数据结构之队列(Quene)实例详解
- C#数据结构揭秘一
- C#数据结构之单链表(LinkList)实例详解
- 数据结构之Treap详解
- 用C语言举例讲解数据结构中的算法复杂度结与顺序表
- C#数据结构之堆栈(Stack)实例详解
- C#数据结构之双向链表(DbLinkList)实例详解
- JavaScript数据结构和算法之图和图算法
- Java数据结构及算法实例:冒泡排序 Bubble Sort
- Java数据结构及算法实例:插入排序 Insertion Sort
- Java数据结构及算法实例:考拉兹猜想 Collatz Conjecture
- java数据结构之java实现栈
- java数据结构之实现双向链表的示例
- Java数据结构及算法实例:选择排序 Selection Sort
- Java数据结构及算法实例:朴素字符匹配 Brute Force
- Java数据结构及算法实例:汉诺塔问题 Hanoi
- Java数据结构及算法实例:快速计算二进制数中1的个数(Fast Bit Counting)