计算机图形学 构成立方体数据结构的简单表结构,计算机图形学-沈工大作业管理ppt课件...

《计算机图形学-沈工大作业管理ppt课件》由会员分享,可在线阅读,更多相关《计算机图形学-沈工大作业管理ppt课件(37页珍藏版)》请在人人文库网上搜索。

1、三维实体建模,计算机科学与技术系,三维图形的基本问题,三维图形的基本研究内容: 三维物体的表示 - 建模 消除隐藏面与隐藏线 消隐 绘制真实感图形方法 绘制 在二维屏幕上显示三维物体 投影,三维物体,三维物体,如加工部件,利用体素几何变换或集合运算 曲面形状的物体,如汽车、飞机,利用曲面造型 自然景物,如树、植物,利用分形技术 场景特殊效果,如烟雾、火焰、云,利用物理模型模拟,模型表示,现实世界中的物体都是三维的。三维绘图就是要表现三维物体,主要要表现物体的立体感。 纸张和屏幕都是二维的。用二维图形也能画出三维物体,但只是视觉上的假象,且只能静态地表现三维物体。 三维绘图先要建立三维物体的计算。

2、机模型(Model), 或称计算机表示(Representation)。依照计算机模型显示物体的三维景象。 建模技术(Modeling)是计算机视觉、计算机动画、计算机虚拟现实等领域中建立3D实体模型的关键技术,实体建模技术,机内表示与显示是两回事。 计算机内部可能只是记下了 三个面,它是人通过视觉将显 示画面理解为立方体。 由于计算机系统依据三维模型生成画面,因此计算机模型要准确地刻画三维物体,不能存在这种二义性,实体建模技术是指描述几何模型的形状和属性的信息并存于计算机内,由计算机生成具有真实感的可视的三维图形的技术,三维模型分类,线框模型 表面模型 实体模型,三维模型分类-线框模型,只是。

3、用几何体的边线来表示 物体的外形,模型中只记录 点、边。不能作消除隐藏线 (面)处理,表示的模型有 二义性,而且不能绘制明暗效果图,三维模型分类-表面模型,是利用物体的外表面来构造模型,模型中记录点、线和面的信息。表面模型的优点是可以进行面着色,隐藏面消隐,但物体内部是空的,缺点无法进行实体之间的并、交、差运算,三维模型的类别,实体模型 模型中记载点、线、面和体的信息,能作消隐处 理,也能作体积、重量等物性计算。实体模型与 表面模型的不同之处在于确定了表面的哪一侧存 在实体,在表面模型的基础上,可以采用有向棱边隐含地表示出表面的外法矢方向。 右手螺旋法则:4个手指沿闭合的棱边方向,大拇指方向为。

4、表面的外法向方向,面表 边表 点表,实体模型的基本数据结构,三表结构,实体建模是基于数据结构的,拓扑信息与几何信息,拓扑信息:描述几何元素间的连接关系。有人也称之为非度量几何,拓扑同类,将拓扑信息和几何信息分开放置,有利于表达形体的变形,关于三表结构的讨论,简单的三表结构还不是 实体模型,因为不能表达 形体的内部。为了表达形 体的内部,要引入“环”的 概念,来定义面的方向,环具有(从物体外部看)顺时针或逆时针的方向。 依据右手法则,确定外环和内环: 外环:面的外边界环采用逆时针方向,(也是物体)的外侧。一个面只有一个外环。 内环:有孔洞的面,空洞边界采用顺时针方向,一个面可以有多个内环,关于三。

5、表结构的讨论,加入环的信息 面表 面号 环 1 点号1 - 点号2 - 点号3 - 点号4 也可表示为,三表结构的实现,三表结构可以用指针、对象等多种方法实现。 例:在绘制立方体线框图时用数组表示立方体 面点关系(拓扑关系) facePoint fi = pointNum f : 1 6,面号;i : 1 4, 第m 个面的第i 个点; pointNum : 1 8,点号; 点坐标(几何信息) pointpj = zz p : 1 8,点号; zz:坐标值; j = 1 / 2 / 3 表示 x / y / z 坐标,static const GLfloat vertex_list3 = -0。

6、.5f, -0.5f, -0.5f, /0 0.5f, -0.5f, -0.5f, /1 -0.5f, 0.5f, -0.5f, /2 0.5f, 0.5f, -0.5f, /3 -0.5f, -0.5f, 0.5f, /4 0.5f, -0.5f, 0.5f, /5 -0.5f, 0.5f, 0.5f, /6 0.5f, 0.5f, 0.5f, /7,static const GLint index_list4 = 0, 2, 3, 1, 0, 4, 6, 2, 0, 1, 5, 4, 4, 5, 7, 6, 1, 3, 7, 5, 2, 6, 7, 3,for(int i=0; i6; +。

7、i) / glBegin(GL_LINE_LOOP); for(int j=0; j4; +j) / glVertex3fv(vertex_listindex_listij); glEnd();,正四面体,建立正四面体的伴随立方体可以很容易地确定正四面体的顶点表和面表,正四面体几何模型,正四面体的外接球和其伴随立方体的外接球是同一个球;正四面体外接球的直径就是立方体的对角线。假设立方体的半边长为a,令V0点为(a,a,a,体素的构造,体素,定义的简单形体 对体素构造三表结构 如圆锥,转变为多边形,即网格, 共有 101个顶点 vertex 290条边 edge 100个面 face 输入底面中。

8、心坐标(x,y,z)、半径R、 圆锥高h,由程序生成上述 面 环 边 点间的关系。 其他体素,如长方体、棱柱、棱锥、 棱台、圆柱、圆锥、圆台,体素的集合运算,构造复杂形体要对体素进行集合运算,集合 运算包括并、交、差运算,B,A,A - B,AB,AB,集合运算的有效性,集合运算可能引起降维: 产生了无厚度的二维面(悬面),这在实体造型中是不允许的。 三维空间中有效的形体叫正则实体,能产生正则形体的集合运算叫正则集合运算,A,B,AB,欧拉检验,一般集合运算要经过检验,去掉悬点、悬边和悬面。检验的方法是通过欧拉(Euler)公式。 简单多面体的欧拉公式: V E + F = 2 带孔洞多面体的。

9、欧拉公式: V E + F - H = 2(C G) 其中 V:顶点个数;E:边个数;F:面个数 H :多面体表面上孔的个数 G :贯穿多面体的孔的个数 C :独立的、不相连接的多面体数,常用的实体建模方法,常用方法:体素定义和描述+集合运算 扫描表示 构造表示- 结构实体几何 CSG 边界表示 R-rep,实体(建模)造型技术是指描述几何模型的形状和属性的信息并存于计算机内,由计算机生成具有真实感的可视的三维图形的技术,扫描(Sweep)法-体素的扩展,一些形体还是不能由简单体素 + 正则集合运算生成,扫描方法,扫描(Sweep)法-体素的扩展,扫描(Sweep)法-体素的扩展,记录信息(环。

10、、线、点) 物体面的构造(前、后、侧,构造实体几何 CSG,构造实体几何:先定义一些形状比较简单的常用体素,然后用集合运算并、交、差把体素修改成复杂形状的形体,体素 + 集合运算,立方体、圆柱、圆锥等,或半空间,并、交、差,构造实体几何 CSG-Constructive Solid Geometry,构造实体几何,用有序的二叉树表示,其叶结点或是体素,或是刚体运动的变换参数。中间结点或是正则的集合 运算或是刚体的几何变换,边界表示(BRep表示,按照体面环边点的层次,详细记录了构成实体的所有几何元素的几何信息及其相互连接的拓扑关系。 边界表示的一个重要特点是在该表示法中,描述形体的信息包括几何。

11、信息(Geometry)和拓扑信息(Topology)两个方面,拓扑信息描述形体上的顶点、边、面的连接关系,拓扑信息形成物体边界表示的“骨架”。 形体的几何信息犹如附着在“骨架”上的肌肉,边界表示(BRep表示,Brep表示的优点是: 表示形体的点、边、面等几何元素是显式表示的,使得绘制Brep表示的形体的速度较快,而且比较容易确定几何元素间的连接关系; 容易支持对物体的各种局部操作,比如进行倒角。 便于在数据结构上附加各种非几何信息,如精度、表面粗糙度等,边界表示(BRep表示,Brep表示的缺点是: 数据结构复杂,需要大量的存储空间,维护内部数据结构的程序比较复杂; Brep表示不一定对应。

12、一个有效形体,通常运用欧拉操作来保证Brep表示形体的有效性、正则性等。 Brep表示覆盖域大,原则上能表示所有的形体,而且易于支持形体的特征表示等,Brep表示已成为当前CAD/CAM系统的主要表示方法,实例,实例,曲面体建模,曲面体,如球体、圆柱体、圆锥体、圆环体等光滑物体 曲面体由若干个三角平面片或四边形平面片(网格)构成,随着网格数量增多,较好逼近光滑曲面,光滑物体,多面体是由平面多边形组成的物体,多面体没有方程表示形式,用顶点表和面表直接给出数据结构定义。 对于球、圆柱、圆锥、圆环等光滑物体,表面有确定的参数方程表示形式。 绘制光滑物体时,需要进行网格划分,即把光滑曲面离散为平面多边。

13、形表示,这些多边形一般为平面四边形或三角形网格。 光滑物体的网格顶点表和面表使用物体的参数方程离散计算后得到,球体,球面表示球体,球面是一个二次曲面 球心在原点,半径为r的球面三维坐标系,球面的参数方程表示为,为纬度角,从北向南递增,即,球体,球面可以使用经纬线划分成若干个小面,称为经纬区域 南北极区域采用三角网格逼近,其他区域采用四边形网格逼近 假定将球面划分为n14个纬度区域,n28个经度区域。则纬度方向的角度增量和经度方向的角度增量均为=45,共有(n1-1)n2+2 = 26个顶点,glutWireSphere(0.8, 8, 4,glutWireSphere(0.8, 20, 10,。

14、球体网格,球面网格化的方法分为递归划分法,P1,P2,P0,OpenGL绘制二次曲面,OpenGL的glu库提供了以下类型的二次曲面绘制: Cylinder, 圆柱体,使用gluCylinder函数 Cone, 圆锥,使用gluCyliner函数。同Cylinder Sphere, 球体,使用gluSphere函数 Disk, 碟盘,也就是同心圆,使用gluDisk函数 Partial Disk, 部分同心圆,使用gluPartialDisk函数,GLUquadricObj *qobj; qobj = gluNewQuadric();/ 创建二次曲面对象 gluQuadricDrawStyle(qobj, GLU_LINE); / 设置二次曲面绘制风格 gluCylinder(qobj, 0.25, 0.25, 0.5, 10, 10);/ 二次曲面绘制函数,例。

你可能感兴趣的:(计算机图形学,构成立方体数据结构的简单表结构)