《维实体的表示》PPT课件.ppt
《《维实体的表示》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《维实体的表示》PPT课件.ppt(62页珍藏版)》请在三一办公上搜索。
1、计算机图形学,主讲:刘圣军,1,第七章 三维实体的表示,2,真实世界存在着千姿百态的物体,研究如何在建立恰当的模型表示这些物体的技术称为造型技术计算机图形学研究的重要内容之一。其中,实体造型技术关注表示实体的信息的完备性和可操作性,它是由于计算机辅助设计与制造的需要而发展起来的,现在已经广泛应用于各种造型系统中。,三维实体的表示,表示实体的方法空间分割表示法;由简单物体基本体素,通过粘合构造新的物体。(立方体,长方体,圆柱体等)单元分解表示,八叉树表示,特征表示法构造实体几何表示法;方法基本同上,将实体表示称基本体素的组合,采用更多的运算,如并、交、差等。边界表示法。通过描述构成实体边界的点、
2、边、面来表示实体。推移表示法,3,4,实体的定义,实体造型中必须保证物体的有效性(客观存在)。真实世界中物体具有的性质具有一定的形状;具有确定的封闭的边界;是一个内部连通的三维点集;如果该物体分成了独立的几个部分,不妨将其看作多个物体。占据有限的空间,即体积有限;经过任意的运算(切割、粘合),仍为有效物体;满足以上性质的物体,称为有效物体或实体。,5,实体的定义,从点集拓扑的角度给出实体的简洁定义将三维物体看作一个点集,它由内点及边界点共同组成。内点:具有完全包含于该点集的充分小邻域。边界点:指那些不具有这个性质的点集中的点。定义正则运算r如下:rA=ci A。其中,i为取内点运算,c为取闭包
3、运算,A为一个点集。那么i A为A的全体内点组成的集合,称作A的内部(一个开集)。ci A为A的内部的闭包,是i A与其边界点的并集(一个闭集)。正则运算即为先对物体取内点再取闭包的运算。rA为A的正则点集。但正则点集未必是实体。,6,实体的定义,下图是带悬挂边与孤立点、边的二维物体,以此为例来说明正则运算的过程。二维流形:是指这样一些面,其上任一点都存在一个充分小的邻域,该领域与平面上的圆盘是同构的,即在该邻域与圆盘之间存在连续的一一映射。对于一个占据有限空间的正则点集,如果其表面是二维流形,则该正则点集是实体(有效物体)。这个描述中的条件在计算机中是可检测的。,7,正则集合运算,通过对简单
4、实体做适当的运算来构造复杂实体是一个有效的方法。实体可看作点集,对实体进行的运算主要是集合运算。但是对两个实体做普通的集合运算并不能保证其结果仍是实体。如下,两个二维实体A、B求交:,8,正则集合运算,为了保证运算结果仍为实体,定义正则集合运算op*为:A op*B=r(A op B);其中op=是普通集合运算,r为正则运算,op*=正则交、正则并、正则差。(注意定义的含义),9,正则集合运算,计算机中正则集合运算的实现 任意实体S可以用它的边界bS和内部iS来表示:由实体的定义可知,bS是封闭的,它将整个三维空间分成了三个区域(iS,bS,eS)。边界bS与实体S是一一对应的,确定了边界,也
5、就唯一确定了一个实体。为了求实体A,B的正则运算结果Aop*B,只要求出其边界b(Aop*B)即可。我们有:,10,正则集合运算,11,下面来讨论A、B两实体正则交、正则并、正则差的边界构成。,通过类似的讨论,可以得到A,B正则并、正则差的边界表达式:,正则集合运算,12,实体表示方法,空间分割表示边界表示特征表示推移表示构造实体表示,13,实体表示方法空间分割表示,空间分割表示在此表示方法中,实体被分割表示为互不相交的粘合在一起的更基本的体素。基本体素的大小、位置、类型可以多种多样,但它们的一般形状比较简单。空间位置枚举表示二维平面,为表示图像,平面分割成大小相同、形状规则的像素,然后用像素
6、的集合来表示图像,采用的数据结构是二维数组。推广到三维即是空间位置枚举表示法。选择一个包含物体的立方体作为考虑空间,将立方体划分成均匀的小立方体,建立一个三维数组CIJK。,14,实体表示方法空间分割表示,数组中的元素Cijk与左下角点坐标是(i,j,k)的小立方体对应。当该立方体被物体占据时,取Cijk的值为1,否则为0。这样数组C就唯一表示了包含于立方体之内的所有物体。其中为小立方体的边长。数组的大小取决于空间分辨()的大小和我们感兴趣的立方体空间的大小。优点:可以表示任何物体(通常情况下是近似表示),容易实现物体的集合运算以及计算物体的体积等许多整数性质。缺点:没有明确给出物体的边界信息
7、,不适于图形显示;占据的存储量非常大。,15,实体表示方法空间分割表示,八叉树表示此法对空间位置枚举法中的空间分割方法作了改进,即并非统一将物体所在的立方体空间均匀分成边长为的小立方体,而是对空间进行自适应划分,采用具有层次结构的八叉树表示物体。类似于二维图形的四叉树表示。对于四叉树表示,我们在一个包含二维图形区域的正方形区域中考虑问题,此正方形区域为四叉树的根节点,它可能处于三种状态:完全被图形覆盖(F)、部分被覆盖(P)或完全没有被覆盖(E)。若根节点处于状态F或E,则四叉树建立完毕;否则,将其分成四个小正方形区域,分别标0,1,2,3。,16,实体表示方法空间分割表示,这四个小正方形成为
8、第一层子节点,对它们做类似根节点的处理,如此下去,直到建立图形的四叉树表示。对状态P的节点的分割层次根据实际需要予以指定。如图,一个空间自适应分割过程:,17,实体表示方法空间分割表示,建立物体的八叉树表示的过程与四叉树表示大体一样。此时,每个节点代表的是一个立方体,对它分割的结果产生八个子节点。编码是0到7。用八叉树表示实体,具有许多优点:容易实现实体之间的正则集合运算;容易计算实体的整体性质;容易实现隐藏线和隐藏面的消除。缺点:通常不能精确地表示一个实体,并且对八叉树表示的实体做任意的几何变换比较困难。如旋转角度为非90o倍数的旋转变换,放缩的比例非2的倍数的放缩变换。八叉树需要较大存储空
9、间。,18,实体表示方法空间分割表示,减少所需存储空间的方法很多,最简单有效的是线性八叉树:用一个线性结构存储八叉树,在数组中仅仅存放八叉树中状态为F的节点。,19,实体表示方法单元分解表示,单元分解表示从另一角度对空间位置枚举表示做了改进。它以不同类型的基本体素(不是单一的立方体)通过粘合运算来构造新的实体。这些基本体素可以是任何简单实体,如圆柱、圆锥、多面体等。粘合运算使两个实体在边界面上相接触,但它们的内部并不相交。只要基本体素的类型足够多,单元分解表示法能表示范围相当广泛的物体。单元分解表示法不具有唯一性,即同一实体可具有多种表示形式。另外,此法所构造物体的有效性难以保证,20,实体表
10、示方法边界表示,边界表示即通过描述实体的边界来表示一个实体的方法。边界与实体是一一对应的,定义了实体的边界,该实体就被唯一确定。边界可以是多边形或曲面片。通常,曲面片被近似地离散成多边形来处理。本节讨论多面体的边界表示。,21,实体表示方法边界表示,多面体及欧拉公式:平面多面体是指表面由平面多边形构成的三维体,其表面上的每条边被偶数个多边形共享。多面体表面具有二维流形的性质,即多面体的每条边只严格属于两个多边形。,22,实体表示方法边界表示,简单多面体是指与球拓扑同构的的多面体,可连续变换成一个球。它满足下面的欧拉公式:v-e+f=2其中v,e,f分别是多面体的顶点数、边数和面数。欧拉公式是一
11、个多面体为简单多面体的必要但非充分条件。,23,实体表示方法边界表示,检验一个具有多边形表面的体是不是简单多面体,除了要验证欧拉公式外,还要附加一些条件,如每条边连接两个顶点,每条边只被两个面共享,每个顶点至少被三条边共享。如图所示的非简单多面体,满足广义欧拉公式:v-e+f-r=2(s-h)。其中r表示多面体表面上孔的个数,h为贯穿多面体的孔洞的个数,s为相互分离的多面体数。并且,广义欧拉公式仍是检查一个多边形表面的体是否为实体的必要条件。,24,实体表示方法边界表示,平面方程的计算构成平面多面体边界的是多边形。我们讨论求多边形所在平面的方程。平面方程表示为:其中,N=Nx,Ny Nz取作平
12、面的单位法矢量,空间任意一点V到平面的距离为NV+d。当V落在平面的某一侧时,它的值为正,另一侧的值为负,落在平面上时为0。当多边形是三角形时,三个顶点唯一确定一个平面。其单位法向量为:,25,实体表示方法边界表示,将N和P0(或P1,P2)的坐标代入方程,可求出:这样,可求出要求的平面方程。当多边形的顶点多于3个时,它们不一定共面,此时,只有以一张与各个顶点距离之和最小的平面来近似表示它们。设多边形的顶点为Pi(xi,yi,zi),则所求平面的单位法矢量为:其中,取Pn+1=P0。展开上式得到:,26,实体表示方法边界表示,边界表示的数据结构最简单的边界表示方法将多面体表示成其边界的一列多边
13、形,每个多边形又由一列顶点坐标来表示。将顶点统一按一个方向(如逆时针或顺时针)排列。由于每个顶点属于多个多边形,在多边形中只保存各顶点的序号,将多面体的所有顶点存放在一个数组中。这里,边的信息是隐含的,即多边形顶点序列中相邻两个顶点构成一条边。,27,实体表示方法边界表示,边界表示的数据结构此法数据结构简单,但效率不高。如查找共享某条边的两个多边形,则需要遍历组成该多面体边界的所有多边形,才能确定哪两个多边形包含这条边。(原因:数据结构中包含多面体边界的拓扑信息不完整。),28,实体表示方法边界表示,几何信息指的是顶点、边、面的位置、大小、形状等几何数据。拓扑信息指的是顶点、边、面之间的连接关
14、系。多面体的顶点、边、面之间的拓扑关系可用九中不同的形式描述:vv,ve,vf,ev,ee,ef,fv,fe,ff。每一种关系都可由其它关系通过适当的运算得到。,29,实体表示方法边界表示,在表示法中究竟采用哪种拓扑关系或哪几种关系的组合取决于边界表示所支持的各种运算以及存储空间的限制。数据结构中保存的拓扑关系越多,对多面体的操作越方便,但占用的存储空间也越大。拓扑关系的选择要合理折中。,30,实体表示方法边界表示,半边数据结构在构成多面体的三要素(顶点、边、面)中,此法以边为核心。为了方便表达拓扑关系,将一条边表示成拓扑意义上方向相反的两条半边,其结构如图。,31,实体表示方法边界表示,多面
15、体的边界表示结构如图:,32,实体表示方法边界表示,半边数据结构类型solid,face,loop,edge,halfedge,vertex将在后面定义。对每种类型定义一个同类型的类名,分别分别是Solid,Face,Loop,Edge,Halfedge,Vertex,同时说明一个浮点数组vector4、一个短整型Id。后面对其分别进行介绍。,33,实体表示方法边界表示,多面体struct solid Id solidno;Face*sfaces;Edge*sedges;Vertex*sverts;Solid*nexts;Solid*prves;多面体是数据结构最上层的节点,任何时候都可以通过
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 维实体的表示 实体 表示 PPT 课件
链接地址:https://www.31ppt.com/p-5590175.html