3.2 三维几何造型的理论基础
3.2.1 形体的定义
任何复杂形体都是由基本几何元素构成的。几何造型就是通过对几何元素进行各种变换、处理以及集合运算,生成所需几何模型的过程。图3.2描述了构成三维几何形体的几何元素及其层次结构。
图3.2 形体层次结构
1.点
点通常分为端点、交点、切点和孤立点等。二维坐标系中的点可用(x, y)或[x(t), y(t)]来表示,三维空间中的点可用(x, y, z)或 [x(t), y(t), z(t)]来表示,n维空间中的点在各次坐标系下可用n+1维表示。点是几何造型中最基本的元素,任何形体都可用有序的点集表示,计算机处理形体的实质是对点集与其连接关系的处理。在形体定义中,一般不允许存在孤立点。在自由曲线和曲面中常用到三种类型的点:控制点、型值点和插值点。其中,控制点用来确定曲线、曲面的位置和形状,但相应的曲面和曲线则不一定经过控制点;型值点用于确定曲线、曲面的位置和形状,而且相应的曲线和曲面一定要经过型值点;插值点则是为了提高曲线和曲面的输出精度,或为了便于修改曲线和曲面的形状,而在型值点或控制点之间插入的一系列点。
2.边
边是两个邻面(正则形体)或多个邻面(非正则形体)的交线。直线边由两个端点确定;曲线边由一系列型值点或控制点描述,也可用方程表示,但曲线通常是通过一系列的型值点或控制点来定义,并以显式或隐式方程式来表示。
3.面
面是二维几何元素,是形体上一个有限、非零的区域,由一个外环和若干个内环界定其范围(但可以无内环)。面有方向性,一般用其外法矢方向作为该面的正向,反之为反向。区分正、反向在面面求交、交线分类、真实图形显示等应用中是很重要的。几何造型中的面常分为平面、二次面、双三次参数曲面等形式。
4.环
环是有序、有向边组成面的封闭边界。环有内外之分,确定面的最大外边界的环称为外环,通常其边按逆时针方向排序,确定面中内孔等边界的环称为内环,与外环排序方向相反,按顺时针方向排序。按这一定义,在面上沿一个环前进,其左侧总是面内,右侧总是面外。
5.体
体是由封闭表面围成的空间,也是三维空间中非空、有界的封闭子集,其边界是有限面的并集。
6.壳
壳是由一组连续的面围成的。其中,实体的边界称为外壳;如果壳所包围的空间是空集,则为内壳。一个体至少由一个壳组成,也可能由多个壳组成。
3.2.2 形体的几何信息和拓扑信息
一个完整的几何模型包括两个主要概念,即拓扑元素(Topological Element)和几何元素(Geometric Element)。几何元素具有几何意义,包括点、线、面等,具有确定的位置和度量值(长度、面积等)。我们知道,用数学表达式可以描述几何元素在空间中的位置及大小。
但是,数学表达式中的几何元素是无界的。实际应用时,需要将数学表达式和边界条件结合起来。拓扑元素表示几何模型的拓扑信息,包括点、线、面之间的连接关系、邻近关系及边界关系。有了拓扑关系,就允许三维实体做弹性运动,可以随意地伸张扭曲。因此,对于两个形状、大小不一样的实体,它们的拓扑关系却有可能等价。
从拓扑信息的角度看,顶点、边和面是构成模型的三种基本几何要素。从几何信息的角度看,这三种基本几何要素分别对应于点、直线(或曲线)、平面(或曲面)。上述三种基本元素之间存在着多种可能的连接关系。以平面构成的立方体为例,它的顶点、边和面的连接关系共有九种:面相邻性、面-顶点包含性、面-边包含性、顶点-面相邻性、顶点相邻性、顶点-边相邻性、边-面相邻性、边-顶点相邻性、边相邻性。
3.2.3 正则形体
为保证几何造型的可靠性和可加工性,要求形体上任意一点的足够小的邻域在拓扑上应是一个等价的封闭圆,即围绕该点的形体邻域在二维空间中可构成一个并连通域。我们把满足这一定义的形体称为正则形体。在设计中,不构建多余的图形对象或不漏建应有的图形对象是设计的目标。例如,在图3.3(a)中可以看到有一个多余的悬面。这是两个实体经过普通的集合运算“交”后经常发生的。悬面在构建实体时是不需要的。普通集合运算的基本算法不能保证各种情况下得到理想实体,因为有可能生成带有悬边、悬面或悬点的低维对象,如图3.3(b)、图3.3(c)所示。
图3.3 非正则形体示例
为了避免出现这种悬伸图形对象,有必要使用正则化的布尔集合算子来构建图形对象,其过程如图3.4所示。这些算子经过数学定义,使实体的操作始终建立不带悬点、悬边或者悬面的闭合实体。正则化的算子用上标*表示,例如:
正则化的并集算子=∪*
正则化的交集算子=∩*
正则化的差集算子=-*
正则化的运算定义如下:
(A op*B)=闭包 [内部(A op B)]
其中,op代表集合运算子,如“∪”“∩”“-”。
图3.4 非正则运算
例如,A∩*B在实际运算中要经过以下步骤:
第一步,由普遍布尔交集A∩B算出交集体对象加上低维的悬面、悬边或悬点。
第二步,找到(A∩B)内部空间点的集合=内部(A)∩内部(B)。
第三步,增加(A∩B)的边界点(这些也是面、边和点,但仅仅是A与B交集内部点的相邻点),最后形成的图形呈闭合状。
正则化消除所有悬伸的低维图形对象,这些对象不与新对象内部任何点相邻接,但正则化保留了边界上的所有点。
3.2.4 型体
不同的实体造型系统中,造型过程中所用的要素可能会有差异,但一般均包括基本实体、附加型体、构造几何体三种,统称型体。
基本实体能够在实体造型系统中独立创建,其本身可以是一个简单的零件,也可以与其他的实体和附加形体进一步构造实体模型。基本型体又分为三类。
1.体素
由造型系统定义的简单型体称为体素(Primitive)。
体素是指最基本的形体,如长方体、楔形体、圆柱体、圆锥体、球体、圆环等。体素是实体造型的基本元素。体素十分简单,概念也清楚,所以对初学二维造型的用户来讲容易接受。体素可以是用一些确定的尺寸参数控制其最终位置和形状的一组单元实体,也可以是由参数定义的一条(或一组)截面轮廓线沿一条(或一组)空间参数曲线做扫描运动而产生的形体。现有造型系统为用户提供了基本体素,这些体素的尺寸、形状、位置、方向由用户输入较少的参数值来确定。例如,大多数系统提供长方形体素,用户可输入长、宽、高和原始位置参数,系统可以检查这些参数的正确性和有效性。
体素的定义方法分为两类,分别为定义无界体素和定义有界体素。无界体素用半空间域定义,这时体素是在有限个半空间内集合组成。例如,一个圆柱体可以表示为三个半空间的交集。有界体素可用B-Rep表示,也可用与之相似的数据结构表示。它们均可以清楚地表示出组合成体素的面、边、点等。
2.扫描体
扫描体是实体造型系统中最基本的生成实体的方法。扫描体都有一个表征其外形的截面形状。按照扫描方式的不同,可分为直线扫描、回转扫描、路径扫描和混合扫描。
3.雕刻体
雕刻体需要用复杂的雕刻曲面生成实体,雕刻造型具有非常灵活的曲面造型方法。
附加形体本身不能作为独立的实体而形成零件,必须附加在其他的实体之上。常见的附加型体有倒角、倒圆角等。
构造几何体又称为虚体,用来协助其他造型要素的定位。典型的构造几何体有虚平面、虚轴线和虚点。
3.2.5 布尔运算
几何建模中,集合运算的理论依据是集合论中的交(Intersection)、并(Union)、差(Difference)等运算,是用来把简单形体(体素)组成复杂形体的工具。设有形体A和B,则集合运算定义如下(图3.5):
图3.5 集合运算定义示例
C=A∩B=B∩A,交集,形体C包含所有A和B的共同点;
C=A∪B=B∪A,并集,形体C包含A和B的所有点;
C=A-B,差集,形体C包含从A中减去A和B共同点的其余点;
C=B-A,差集,形体C包含从B中减去A和B共同点的其余点。
进行集合操作后,几何形体应保持边界良好,并应保持初始形状的维数。图3.6所示的A∩B是具有良好边界的体素,但经过交运算后,形成了一个没有内部点集的直线,不再是二维实体。尽管这样的集合运算在数学上是正确的,但有时引用在几何上是不适当的。运用正则集和正则集合运算的理论可以有效解决上述问题。总之,集合运算仍是几何建模的基本运算方法,我们可用它去构造较复杂的形体,这也是目前许多几何建模系统采用的基本方法。
图3.6 A∩B产生退化的结果