当前位置:
文档之家› 计算机图形学孙家广第三版第3章3
计算机图形学孙家广第三版第3章3
在几何造型系统中,根据特征的参数我们并不 能直接得到特征的几何元素信息,而在对特 征及在特征之间进行操作时需要这些信息。 特征方法表示形体的覆盖域受限于特征的种类。
应用系统
用户
特征造型器
特征模型
几何造型器
几何模型
图3.2.8 基于特征的造型系统
R H L W H H R
(a)方块
(b)圆柱 图3.2.9 特征形状表示
CSG表示可以看成是一棵有序的二叉树。 其终端节点或是体素、或是形体变换参数。 非终端结点或是正则的集合运算,或是变换(平 移和/或旋转)操作,这种运算或变换只对其紧 接着的子结点(子形体)起作用。
CSG树是无二义性的,但不是唯一的.
CSG表示的优点: 数据结构比较简单,数据量比较小,内部数据的 管理比较容易; CSG表示可方便地转换成边界(Brep)表示; CSG方法表示的形体的形状,比较容易修改。 CSG表示的缺点: 对形体的表示受体素的种类和对体素操作的种类 的限制,也就是说,CSG方法表示形体的覆盖域 有较大的局限性。
对形体的局部操作不易实现,例如,不能对基本 体素的交线倒圆角; 由于形体的边界几何元素(点、边、面)是隐含 地表示在CSG中,故显示与绘制CSG表示的形体需 要较长的时间。
(c)特征表示
从应用层来定义形体,因而可以较好的表达设 计者的意图。从功能上可分为形状、精度、 材料和技术特征。 特征是面向应用、面向用户的。特征模型的表 示仍然要通过传统的几何造型系统来实现。 不同的应用领域,具有不同的应用特征。
观看GEMS5.0演示 欧拉操作 选读
欧拉操作 对于任意的简单多面体,其面 (f) 、边 (e)、 顶点(v)的数目满足 欧拉公式 v-e+f=2 对于任意的正则形体,引入形体的其它几 个参数:形体所有面上的内孔总数 (r) 、 穿透形体的孔洞数 (h) 和形体非连通部分 总数(s),则形体满足公式: v - e + f = 2(s-h) + r
2.构造表示。通常有扫描表示、构造实体 几何表示和特征表示三种。
(a)扫描表示体。
扫描是生成三维形体的有效方法 用扫描变换产生的形体可能出现维数不一致的问 题。 扫描方法不能直接获取形体的边界信息,表示形 体的覆盖域非常有限。
(b)构造实体几何表示(CSG).通过对体素定义 运算而得到新的形体的一种表示方法。体素 可以是立方体、圆柱、圆锥等,也可以是半 空间,其运算为变换或正则集合运算并、交、 差。
点是三维空间的一个位置 边可以是直线边或曲线边,边的端点可以重合。 环是由首尾相接的一些边组成,而且最后一条边的终点 与第一条边的起点重合;环也可以是一个孤立点。外 壳是一些点、边、环、面的集合; 外壳是一些点、边、环、面的集合。 区域由一组外壳组成。 模型由区域组成。
model region
中心线 剖切平面
将形体按某种规则分解为小的更易于描述的部分,每 一小部分又可分为更小的部分,这种分解过程直至每 一小部分都能够直接描述为止。 (a)将形体空间细分为小的立方体单元。这种表示方 法的优点是简单,容易实现形体的交、并、差计算, 但是占用的存储量太大,物体的边界面没有显式的解 析表达式,不便于运算。
(b)八叉树法表示形体.首先对形体定义一个外接立方 体,再把它分解成八个子立方体,并对立方体依次 编号为0,1,2,…,7。如果子立方体单元已经一 致,即为满(该立方体充满形体)或为空(没有形 体在其中),则该子立方体可停止分解;否则,需 要对该立方体作进一步分解,再一分为八个子立方 体。在八叉树中,非叶结点的每个结点都有八个分 支。
C=A∩B
C*=A∩*B
为了能够处理非正则形体,产生了非正则 造型技术。 九十年代以来,基于约束的参数化、变量 化造型和支持线框、曲面、实体统一表 示的非正则形体造型技术已成为几何造 型技术的主流。
3.6.2 形体表示模型
在实体模型的表示中,基本上可以分 为分解表示、构造表示和边界表示三大类。 1、分解表示
(6)kef(e),删除一条边e和该边的一个邻面f。 (7)kemr(e),删除一条边e,生成该边某一邻面上的一新的 内环。 (8)mekr(v1,v2,e),连接两个点v1、v2,生成一条新的边e, 并删除掉v1和v2所在面上的一个内环。 (9)kfmrh(f1,f2),删除与面f1相接触的一个面f2,生成面f1 上的一个内环,并形成体上的一个通孔。 (10)mfkrh(f1,f2),删除面f1上的一个内环,生成一个新的 面f2,由此也删除了体上的一个通孔。
拓扑信息描述形体上的顶点、边、面的连接关系, 拓扑信息形成物体边界表示的“骨架”。 形体的几何信息犹如附着在“骨架”上的肌肉。
U
图3.2.10 边界表示
Brep表示的优点是:
表示形体的点、边、面等几何元素是显式表示 的,使得绘制Brep表示的形体的速度较快, 而且比较容易确定几何元素间的连接关系; 容易支持对物体的各种局部操作,比如进行倒 角。 便于在数据结构上附加各种非几何信息,如精 度、表面粗糙度等。
shell face use loop use edge use vertex use topology 图3.2.12 face loop edge vertex geometry 辐射边数据结构
实体 中心线
图3.2.13 一个用辐射边结构表示的 非正则形体模型
清华大学国家CAD工程中心开发的几何造型系统GEMS5.0中,采用 的数据结构如图
一些非正则形体的实例
(a)有悬面
(b)有悬边
(c)邻面
集合运算(并、交、差)是构造形体的基 本方法。正则形体经过集合运算后,可 能会产生悬边、悬面等低于三维的形体。 Requicha在引入正则形体概念的同时,还 定义了正则集合运算的概念。正则集合 运算保证集合运算的结果仍是一个正则 形体,即丢弃悬边、悬面等。
优点主要是: (1)形体表示的数据结构简单。
(2)简化了形体的集合运算。只需同时遍历参加 集合运算的两形体相应的八叉树,无需进行复杂的 求交运算。 (3)简化了隐藏线(或面)的消除,因为在八叉 树表示中,形体上各元素已按空间位置排成了一定 的顺序。 (4)分析算法适合于并行处理。 八叉树表示的缺点:占用的存储多,只能近似表示 形体,以及不易获取形体的边界信息等。
左外环
右外环 边
图3.2.11
左 下 边
翼边数据结构
右 边 下 右
上 边
边 上 左
辐射边:为了表示非正则形体,1986年, Weiler提出了辐射边(Radial Edge)数据结 构。
辐射边结构的形体模型由几何信息和拓扑信息两 部分组成。
几何信息有面(face)、环(loop)、边(edge)和点 (vertex) 拓扑信息有模型(model)、区域(region)、外壳 (shell)、面引用(face use)、环引用(loop use)、 边引用(edge use)和点引用(vertex use)。
边界表示的数据结构
翼边数据结构:在1972年,由美国斯坦福 大学Baumgart作为多面体的表示模式提 出。
它用指针记录了每一边的两个邻面(即左外环 和右外环)、两个顶点、两侧各自相邻的两 个邻边(即左上边、左下边、右上边和右下 边),用这一数据结构表示多面体模型是完 备的,但它不能表示带有精确曲面边界的实 体。
(c)圆锥
构造表示的特点:
构造表示通常具有不便于直接获取形体几何元 素的信息、覆盖域有限等缺点, 但是,便于用户输入形体,在CAD/CAM系统中, 通常作为辅助表示方法。
3.边界表示(BR表示或BRep表示)
按照体-面-环-边-点的层次,详细记录了 构成形体的所有几何元素的几何信息及其相互 连接的拓扑关系。 边界表示的一个重要特点是在该表示法中,描 述形体的信息包括几何信息(Geometry)和拓 扑信息(Topology)两个方面。
3.6形体在计算机内的表示
3.6.1 引言
计算机中表示形体,通常用线框、表面和实体三种模型。线 框模型和表面模型保存的三维形体信息都不完整,只有实 体模型才能够完整的、无歧义的表示三维形体。 几何造型历史:早期的线框表示 实体造型与曲面造型 70’ 独立发展 到 互相溶合 NURBS + 边界表示
正则形体 对于任一形体,如果它是3维欧氏空间中非 空、有界的封闭子集,且其边界是二维 流形(即该形体是连通的),我们称该 形体为正则形体,否则称为非正则形体。
3. 环。环(Loop)是有序、有向边(Edge) 组成的封闭边界。环有方向、内外之分,外 环边通常按逆时针方向排序,内环边通常按 顺时针方向排序。 4.面。面(Face)由一个外环和若干个内环 (可以没有内环)来表示,内环完全在外环 之内。
若一个面的外法矢向外,称为正向面;反之,称 为反向面。
面的形状可以是平面或曲面。平面可用平 面方程来描述,曲面可用控制多边形或型 值点来描述,也可用曲面方程(隐式、显 式或参数形式)来描述。对于参数曲面, 通常在其二维参数域上定义环,这样就可 由一些二维的有向边来表示环,集合运算 中对面的分割也可在二维参数域上进行。 5.体。体(Body)是面的并集。
为了方便对形体的修改,还定义了两个辅助的操作: 公共端点。 (11)semv(e1,v,e2),将边e1分割成两段,生成一个新的点v 和一条新的边e2。 (12)jekv(e1,e2),合并两条相邻的边e1、e2,删除它们的 公共端点。 以上十种欧拉操作和两个辅助操作,每两个一组,构成 了六组互为可逆的操作。 可以证明:欧拉操作是有效的,即用欧拉操作对形体操 作的结果在物理上是可实现的;欧拉操作是完备的, 即任何形体都可用有限步骤的欧拉操作构造出来。
Brep表示的缺点是:
数据结构复杂,需要大量的存储空间,维护内部数据结 构的程序比较复杂; Brep表示不一定对应一个有效形体,通常运用欧拉操作 来保证Brep表示形体的有效性、正则性等。