三维几何模型在计算机内的表示三维几何模型在计算机内的表示CAD/CAM的核心技术是几何造型技术一项研究在计算机中如何表示物体模型形状的技术。
在CAD/CAM技术四十多年的发展历程中,经历了四次重大的变革。
60年代初期的CAD系统只能处理简单的线框模型,提供二维的绘图环境,用途比较单一。
进入70年代,根据汽车造型中的设计需求,法国人提出了贝塞尔算法,随之产生了三维曲面造型系统CATIA。
它的出现,标志着CAD技术从单纯模仿工程图纸的三视图模式中解放出来,首次实现以计算机完整描述产品零件的主要信息。
这是CAD发展历史中的第一次重大飞跃。
1979年,SDRC公司发布了世界上第一个完全基于实体造型技术的大型CAD/CAE软件──IDEAS。
由于实体造型技术能够精确表达零件的全部属性,在理论上有助于统一CAD、CAE、CAM的模型表达,给设计带来了惊人的方便性。
可以说,实体造型技术的普及应用标志着CAD发展史上的第二次技术革命。
但是,在当时的硬件条件下,实体造型的计算及显示速度太慢,限制了它在整个行业的推广。
90年代初期,参数化技术逐渐成熟,标志着CAD技术的第三次革命。
参数化技术的成功应用,使得它在1990年前后几乎成为CAD业界的标准。
随后,SDRC攻克了欠约束情况下全参数的方程组求解问题,形成了一套独特的变量化造型理论。
SDRC将变量化技术成功的应用到CAD系统中,标志着CAD技术的第四次革命。
随着CAD技术和几何造型技术的发展,近年来,市场上出现了一大批优秀的几何造型软件及工具。
例如,PTC公司的产品Pro/E、SDRC 的产品I-DEAS Master Series、UGS公司的产品Unigraphics、IBM公司的产品CATIA/CADAM、Autodesk公司的产品MDT、Spatial Tech公司的ACIS、EDS公司的Parasolid等。
在国内,清华大学、北京航空航天大学、华中理工大学、浙江大学、上海交通大学、西北工业大学,以及其他一些单位也发表了一些关于特征造型技术研究的论著,并开发了一些特征造型系统,例如:清华大学开发的TiGems造型系统,北京航空航天大学研制出的微机版“金银花(LONICERA)”系统,武汉开目信Parasolid有较强的造型功能,但是只能支持正则实体造型。
它提供的主要功能有:集合运算、特征的创建和编辑、局部操作、数据交换文件接口等。
Parasolid采用精确的边界表示,包括拓扑、几何和关联三种数据类型。
ACIS具有和Parasolid相似的形体结构,但在系统结构上采用了核心和外壳相结合的方式。
ACIS支持线框、表面和实体的统一表示,支持非正则形体的造型。
在上述几何实体造型系统中,通常都会提供一些基本的形体输入方法,以及拉伸,旋转,蒙皮,扫描等直接构造形体的方法,通过集合运算对形体进行拼合。
虽然对这些造型方法的研究取得了一系列新进展,但是集合运算仍基本局限在对两个体进行正则运算(交,并,差)上,而且结果形体的信息都已经包含在两个参加运算的原始形体之中,不能引入新的信息。
实际应用中,有些机械零件具有特定的形状特征,不能通过集合运算来直接完成,或者直接实现时操作步骤非常复杂。
但是,它们的生成方法和集合运算非常相似,可以看作是集合运算的扩展。
拔模和抽壳都属于这一类型的造型方法。
三维形体的表示三维造型技术是建立恰当的模型来表示自然界中形态丰富的三维物体的技术,根据造型对象将造型技术分成3类。
第一类是曲面造型,主要研究计算机内如何描述一张曲面,及曲面的显示与控制。
曲面造型又分成规则曲面和不规则曲面两种。
不规则曲面造型方法主要有贝塞尔曲线曲面、B样条曲线曲面和孔斯曲面等。
(二维曲线:Nurbs(通过拟合点)、三次B样条(通过控制点)、贝塞尔(控制点和拟合点重合)和波浪线(B样条)))第二类是立体造型方法,主要研究在计算机内如何定义、表示一个三维物体,主要有体素构造法、边界表示法和八叉数法等等。
曲面造型和立体造型合称几何模型造型。
该技术主要应用在机械行业辅助设计制造领域(CAD)。
第三类是自然景物模拟,主要研究在计算机内如何模拟自然景物,如云、流水、树等。
该造型技术主要应用在游戏和艺术造型等领域。
如下主要说说几何模型的表示。
在计算机中,表示几何形体的方法通常有三种:线框模型、表面模型和实体模型一、线框模型该模型采用三维形体的全部顶点及边的集合来描述三维形体,即用顶点表和边表两个表的数据结构来表示三维模型。
每条边由两个顶点表示。
主要优点是结构简单,处理容易。
描述二维目标十分理想。
但对三维物体,存在如下缺点:1)没有面的信息,它不能表示表面含有曲面的物体。
2)不能明确定义点与物体之间的关系。
3)点和边信息容易出现二义性。
二、表面模型在线框模型的基础上,增加了物体中的面的信息,用面的集合来表示物体,每个面由多条有向边构成,用环来定义面的边界,即是用顶点表、边表和面表来描述模型。
表面模型又分为平面模型和曲面模型。
前者以多边形网格为基础。
后者以参数曲面块为基础。
表面模型存在的不足就是它只能表示物体的表面边界,而不能表达出真实实体的属性,很难确认一个表面模型表示的三维图形是一个实体还是一个空壳。
这个不足,在实体模型中得到了解决。
三、实体模型实体模型是最高级的模型,它能完整表示物体的所有形体信息,可以无歧义地确定一个点是在物体外部还是内部或表面上。
实体模型使用有向边的右手法则来确定所在面的外法线方向。
即用右手沿边的顺序方向握住,大拇指所指向为该面的外法线方向。
法线方向指向体外。
体外实体模型存在着不同的数据结构,在这些结构中存在一个共同点,即数据结构不仅记录了物体全部的几何信息,而且还记录了所有的点、线、面、体的拓扑信息(即空间位置关系)。
实体模型的构造通常使用体素(即原始的基本实体),经集合论中的交、并、差运算构成复杂形体。
1.实体的定义实体就是有效的物体,即客观世界中确实存在的物体,要在计算机内表示、构造一个实体,就必须给出实体的确切定义(即用最小的数据结构唯一地确定实体的形状和位置。
)如下图带有悬挂面的立方体就不是实体,在客观世界中不可能存在这样的物体。
作为实体应满足如下条件:1.刚性。
一个实体必须具有一定的形状(流体不属于实体)2.维数一致性。
一个实体的各个部分必须是三维的,不能存在悬挂的、孤立的边界。
3.有限性。
一个实体必须占有有限的空间。
4.边界确定性。
根据实体的边界,可确定实体的内部或外部。
5.封闭性。
经过集合运算后,仍然是有效的实体。
实体的表面必须具备如下性质:1.连通性。
表面任意两点都可用表面上的一条路径连接起来。
2.边界性。
3.非自相交性。
一个实体表面不可自相交。
4.可定向性。
一个实体的表面两则可明确定义出实体的内侧和外侧。
5.封闭性。
一个表面的封闭性由多边形网格各元素的拓扑关系确定的。
即每条边连接且仅连接两个面,每条边有且仅有两个端点。
从点集拓扑角度给出实体的定义。
将三维实体看作是空间中点的集合,它由内点与边界点共同组成。
内点是指点集中的这样一些点:它们具有完全包含于该点集的充分小的领域。
点集中除内点外的所有的点就是边界点。
所以三维物体A可表示为:A= {bA,iA}bA为物体A的边界点集;iA为物体A的内部点集。
定义点集的正则运算r如下:rA = ciAi为取A的内点运算;c为取闭包运算;A为一个点集。
iA为A的全体内点组成的集合,称为A的内部,它是一个开集(“开集”可以理解为没有边界值去判断点是否为内点)。
ciA为A的内部的闭包,是iA与其边界点的并集。
(据此可以理解“闭包”的含义),它本身是一个闭集,(“闭集”可以理解为可以通过明确的边界值来判断点是否在集合中)。
正则运算即为:先对物体取内点再取闭包的运算。
rA称为物体A的正则点集。
如图:带有悬边的二维点集A内点集合 iA(没有粗边界)正则点集ciA(有粗边界)以上图中,图1有悬边所以点集不是有效实体,图2没有边界,不是满足“封闭性”所以也不是实体。
图3为正则点集,封闭性,也满足实体的其他条件,所以为实体。
正则点集有时也不一定是实体。
如下图:左图为正则点集,但它不是有效的物体。
由此,就会涉及到另外一个概念“二维流体”。
二维流体是指对于实体表面上的任何一点,都可以找到一个围绕着它的任意小的领域,该领域在拓扑(即是空间位置)上与平面上的一个圆盘是等价的(也就是在表面上存在着一个领域围绕着某个点)。
这意味着,在领域的点集和圆盘之间存在着连续的一对一的对应关系。
如上右图,立体表面上任一点都存在与圆盘同构的领域。
而左图,两个立方体共享边被四个面共享,其上的点不存在这样的唯一的领域(在上图中,共享边的点,存在围绕它的领域有两个)。
有了上述概念后,实体可以这样描述为:对于一个占据有限空间的正则点集,如果其表面是二维流形,则该正则点集为实体(有效物体)。
2.正则集合运算能产生正则几何体(有正则点集组成的形体)的集合运算称为正则集合运算。
正则集合运算与传统集合运算的区别主要是在对产生结果的边界面的处理上,其内部点的处理是一致的。
正则运算主要是考虑如何消除或不产生悬点、悬边和悬面。
如下图:上图,左边为传统的交运算结果,右边为正则的交运算结果。
在传统的集合运算符后加“*”号表示正则运算符。
实现正则集合运算有两种方法:间接法和直接法。
间接法是先按普通集合运算求出结果,后用一些规则判断,以消除不符合正则几何定义的部分(即悬边、悬面等),从而得到正则几何体。
直接法是定义正则集合算子的表达式,用以直接得出符合正则几何体定义的结果。
正则几何运算定义如下:A<OP>* B = r ( A <OP> B ) ;式中<OP>表示传统集合并、交、差算子;<OP>*表示相应的正则并、交、差算子;r是集合的正则化算子。
实体造型是以立方体、圆柱体、球体、锥体、环状体等多种基本体素为单位元素,通过集合运算(拼合或布尔运算),生成所需要的几何形体。
这些形体具有完整的几何信息,是真实而唯一的三维物体。
所以,实体造型包括两部分内容:即体素定义和描述,以及体素之间的布尔运算(并、交、差)。
布尔运算是构造复杂实体的有效工具。
目前常用的实体表示方法主要有:构造实体几何法(CSG)、边界表示法(BRep)和扫描法。
物体的CSG树表示物体的体素构造表示法(Constructive Solid Geometry, CSG)是用两个物体间的并、交、差正则集合运算操作生成一个新的物体的方法。
CSG表示法:先定义一些形状比较简单的常用体素,如方块、圆柱、圆锥、球、棱柱等。
然后用集合运算并、交、差把体素修改成复杂形状的形体。
早期的CSG模型仅使用代数方程及半空间的概念,体素只支持多面体与二次曲面体,而不支持表面含有自由曲面的实体。