收藏 分销(赏)

计算机图形学复习材料.doc

上传人:二*** 文档编号:4829163 上传时间:2024-10-14 格式:DOC 页数:17 大小:187KB 下载积分:5 金币
下载 相关 举报
计算机图形学复习材料.doc_第1页
第1页 / 共17页
本文档共17页,全文阅读请下载到手机保存,查看更方便
资源描述
. . 题型 • 简答题〔20%左右〕 • 填空题〔30%左右〕 • 计算题〔30%左右〕 • 算法描述题〔20%左右〕 第一章 计算机图形学概述 1. 图形学、图形定义 计算机图形学(puter Graphics,CG)是一门研究如何利用计算机表示、生成、显示和处理图形的学科。 图形通常由点、线、面、体等几何属性和颜色、纹理、线型、线宽等非几何属性组成。 2. 图形分类 从生成技术上来看,图形主要分为两类:一类是基于线条信息表示的,如工程图、等高线地图、曲面的线框图等;另一类是真实感图形。 3. 图形与图像之间的关系 图形与图象是密切相关但又不同的两个概念。图象纯指计算机内以位图(Bitmap)形式存在的亮度和颜色信息;图形那么由场景的几何模型和物理属性共同描述。 4. 计算机图形学的应用领域〔6个〕 影视;游戏;工业设计;科学研究;艺术;医学;广告;教育;培训;军事等 5. OPENGL简介 OpenGL是SGI公司开发的一个跨平台的开放式图形编程工具。OpenGL集成了所有造型、变换、材质、纹理、光照、绘制等复杂的计算机图形学算法,将用户从具体的硬件和操作系统中解放了出来。 了解:OpenGL本身是一个底层库,在编程实践中还需要一些能简化编程任务、易于在窗口系统上执行的高层库。 • OpenGL核心函数:OpenGL核心函数以gl开头,可以运行于任何的OpenGL工作平台。 • OpenGL实用库函数:实用库函数带有前缀glu,是基于OpenGL核心函数而比其更高一层的函数。它们也可以运行于任何OpenGL平台。 • 辅助库函数:它支持的平台较少,并不适合正式产品的开发。 • Windows专用函数:以wgl开头,用于连接OpenGL和Windows窗口系统。 • Win32 API函数,用于处理像素格式及缓冲:共6个Win32 API函数,用于处理像素格式及缓冲。 要在Windows下使用实用工具库GLUT中的函数进展编程,需要另外下载glut32.dll、glut32.lib以及glut.h三个文件分别放入系统的相应目录。 6. 光栅扫描的显示系统和随机扫描的显示系统的特点 光栅扫描的显示系统:按照从上到下然后再跳回顶部的顺序逐行扫描。 随机扫描的显示系统特点:电子束可随意移动,只扫描屏幕上要显示的局部。 7. 帧缓冲存储器 用来存储像素颜色〔灰度〕值的存储器就称为帧缓冲存储器。简称帧缓冲器〔显存〕。 帧缓存中单元数目与显示器上像素的数目一样,单元与像素一一对应,各单元的数值决定了其对应像素的颜色。显示颜色的种类与帧缓存中每个单元的位数有关 第二章 计算机图形系统概述 1.表达计算机图形系统的根本功能。 他的根本功能是帮助人们设计、分析、采集、存贮图形、视频甚至音乐等信息。 2.输入设备可有哪几种逻辑功能?请举出各自对应的物理设备。 可以分成以下6类逻辑输入设备: .定位(locator): 指定一个坐标点。对应的物理设备有鼠标器、键盘、数字化仪、触摸屏等。 .笔划(stroke): 指示一个坐标点系列, 如指定一条曲线的控制点等。主要物理设备有数字化仪。 .送值(valuator): 输入一个数值。最常用的物理设备是键盘的数字键。.字符串〔string〕:输入一个字符串。键盘字母键 .拾取(pick):各种定位设备 .选择(choise): 鼠标器,数字化仪,键盘功能键等 3.画出图形软件的层次构造及主要组成。 ------------------------------------ | 应用程序 | | ---------------------------- | | 图形支撑软件 | | | ------------------- | | | 高级语言 | | | | ------------ | | | | 操作系统 | ------------------------------------ 主要局部: 图形核心系统GKS 计算机图形元文件CGM 计算机图形设备接口CGI 程序员层次构造图形系统PHIGS 4. 颜色查找表的概念及实现原理。 它是为了让我们能够在每个祯缓存单元的位数不增加,却能具有在很大X围内挑颜色的能力。此时由祯缓存读出来的值并不是相应像素的值,而是彩色表中的一个编号。按照这个编号在彩色表中取出的数才是该像素的彩色值。 5.光栅扫描显示器构造与工作原理。 其一, 由计算机执行相应的图形应用程序, 图像生成系统承受指令将图形的矢量表示转换成像素表示, 再将像素值存入显示存储器; 其二, 图像生成系统直接把图形输入设备(摄像机、扫描仪等)输入的图形图像直接或经过主存储器间接地存放到显示存储器中。 显示控制器生成水平和垂直同步扫描信号送到监视器,使CRT电子束进展水平扫描和垂直扫描形成光栅; 另一方面又根据电子束在屏幕上的行、列位置, 不断地读出显示存储器中对应位 置的像素值。 利用彩色表将读出的像素值转换成R、G、B三原色的亮度值, 来控制CRT的R、G、B电子束, 在屏幕对应点生成需要的像素颜色。 为了使屏幕上显示的画面不闪烁, (2)~(3)应反复进展, 一般要求50~60帧/秒。 6.为什么要制订图形软件标准?举例说明它的分类。 制定图形软件标准的目的在于使图形软件能够在不同的计算机和图形设备之间进展移植,以便提高图形软件的利用率, 降低开发本钱,缩短研制周期, 使图形软件向着通用、高级与设备无关的方向开展。 可以分为两类: .数据接口标准(CGM,PHIGS) .子程序接口标准〔GKS,CGI〕 第三章 根本图形生成算法 1. Bresenham 直线生成算法原理。它与DDA 算法相比,有何改良? 算法思想: 根据直线的斜率确定选择X或者Y方向作为计长方向, 在此方向上每次递增一个单位步长(或者一个像素单位), 另一个方向上是否同时产生一个单位增量由一个计算量很小的判别式来判断。 void Bresenhamline (int x0,int y0,int x1, int y1,int color) { int x, y, dx, dy; float k, e; dx = x1-x0, dy = y1- y0, k=dy/dx; e=-0.5, x=x0, y=y0; for (i=0; i£dx; i++) { drawpixel (x, y, color); x=x+1,e=e+k; if (e³0) { y++, e=e-1;} } } DDA为增量算法。它根据每一次增长时在另一轴上的增长计算下一个点应该画在哪里。Bresenham算法与它相比,由于全部采用了整数计算,使算法效率比起DD有大大提高,程序中只含有 + - 和*2的计算,便于使用计算机内硬件实现。 2.比拟几种常用画圆弧算法的原理和效率。 1〕Bresenham算法思想 其根本方法是从一个起点出发, 利用判别式选择下一个显示点。判别式的值通过简单计算获得, 其符号用作判断。只计算出1/8圆的点的位置,就可以画出整个圆来,效率高。 2〕正负法:首先区分不同象限的圆弧,然后,选定圆弧起点后,在输出圆弧过程中,根据当前点位置与理想圆弧的关系和所在象限,决定下一次的走向每次只在X或Y方向走步取点,这样一点一点逼近圆弧形状。在整个计算过程中,只使用了+ - 和*2运算,提高了硬件使用率。比起Bre算法 ,它更为简单。但生成的点数要比Bre多。 3.简述两种字符生成方法。 有两种根本的字符生成技术:一种是在计算机中用笔划(矢量)方式来表示,然后通过扫描转换生成, 这是目前常用的方法,生成的字符效果好, 但计算量大;另一种是在计算机内用位图(点阵)来表示, 存储在字符高速缓冲区(字符发生器)里, 显示时可以直接通过像素拷贝将其装入显示缓冲区中。这是传统的方法, 简单、速度快, 但不灵活。 4、一直线段起点(0,0), 终点(5,2),利用中点算法生成此直线段,写出生成过程中坐标点及判别式d的变换情况,并在下面的方格中,标出直线上各点。 3 2 1 参考答案: 0 1 2 3 4 5 ……..15 x y d 0 0 1 …1 1 0 …2 -3 …3 2 1 …4 3 …5 3 1 …6 -1 …7 4 2 …8 5 …9 5 2 …10 5、一直线段起点(0,0), 终点(5,2),利用Bresenham算法生成此直线段,写出生成过程中坐标点及判别式p的变换情况,并在下面的方格中,标出直线上各点。 3 2 1 参考答案: 0 1 2 3 4 5 ………………….15 x y p 0 0 -1 …1 1 0 …2 3 …3 2 1 …4 -3 …5 3 1 …6 1 …7 4 2 …8 -5 …9 5 2 …10 第四章 区域填充 1. 图形学中多边形的两种表示方式,各自优缺点 • 顶点表示:用多边形的有序顶点序列表示多边形 • 点阵表示:用位于多边形内部的像素集合来表示多边形 . .word.. . . 顶点表示: l 优点 l 直观 l 几何意义明显 l 存贮量小 l 缺乏 l 难以判断哪些像素位于多边形内部 l 不能直接用于多边形着色 点阵表示: l 优点 l 便于用帧缓冲器(frame buffer)表示图形 l 面着色所需的图形表示 l 缺点 l 丧失了几何信息 l 占用存储空间多 2. 区域表示的方式,内部表示和边界表示 3. 四连通区域和八连通区域的定义、它们之间关系 l 四连通区域:区域内任意两个像素,从一个像素出发,可以通过上、下、左、右四种运动,到达另一个像素 l 八连通区域:区域内任意两个像素,从一个像素出发,可以通过水平、垂直、正对角线、反对角线八种运动,到达另一个像素 关系: • 四连通区域 Í 八连通区域 (反之不成立) • 四连通区域的边界是八连通区域 • 八连通区域的边界是四连通区域 4. 内部表示区域种子填充算法 l 假设内部表示区域为G,其中的像素原有颜色为G0,需要填充的颜色为G1。 l 算法需要提供一个种子点(x,y),它的颜色为G0。 l 具体算法如下(四连通区域) Flood_Fill_4(x, y, G0, G1) { if(GetPixel(x,y) ==G0 ) // GetPixel(x,y) 返回(x,y)的颜色 { SetPixel(x, y, G1); //将(x,y)的添上颜色G1 Flood_Fill_4(x-1, y, G0, G1); Flood_Fill_4(x, y+1, G0, G1); Flood_Fill_4(x+1, y, G0, G1); Flood_Fill_4(x, y-1, G0, G1); } } 5. 边界表示区域种子填充算法 Fill_Boundary_4_Connnected(x, y, BoundaryColor, InteriorColor) // (x,y) 种子像素的坐标; // BoundaryColor 边界像素颜色; InteriorColor 需要填充的内部像素颜色 { if(GetPixel(x,y) != BoundaryColor && GetPixel(x,y)!= InteriorColor ) // GetPixel(x,y): 返回像素(x,y)颜色 { SetPixel(x, y, InteriorColor); // 将像素(x, y)置成填充颜色 Fill_Boundary_4Connnected(x, y+1, BoundaryColor, InteriorColor); Fill_Boundary_4Connnected(x, y-1, BoundaryColor, InteriorColor); Fill_Boundary_4Connnected(x-1, y, BoundaryColor, InteriorColor); Fill_Boundary_4Connnected(x+1, y, BoundaryColor, InteriorColor); } } 6. 判断一点是否位于多边形内部的射线法 l 从当前像素发射一条射线,计算射线与多边形的交点个数 • 内部:奇数个交点 • 外部:偶数个交点 7. 逐点判断算法 逐个像素判别其是否位于多边形内部 l 算法描述 for(y=0; y<=y_resolution; y++) for(x=0; x<=x_resolution; x++) { if(inside(polygon, x, y)) setpixel(framebuffer,x,y,polygon_color) else setpixel(framebuffer,x,y,background_color) } 8. 逐点判断算法的缺乏 l 速度慢:几十万甚是几百万像素的多边形内外判断,大量的求交、乘除运算 l 没有考虑像素之间的联系 l 结论:逐点判断算法不可取 9. 多边形扫描转换算法〔具体计算〕 10. 多边形扫描转换的优点与缺乏 优点: l 充分利用多边形的区域、扫描线和边的连贯性,防止了反复求交的大量运算 缺乏: l 算法的数据构造和程序构造复杂 l 对各种表的维持和排序开销太大,适合软件实现而不适合硬件实现 11. 多边形扫描转换与区域填充比拟 l 根本思想不同 n 多边形扫描转换将多边形顶点表示转换为点阵表示,扫描过程利用了多边形的各种连贯性 n 区域填充只改变区域的颜色,不改变区域的表示方法。填充过程利用了区域的连贯性 l 对边界的要求不同 n 多边形扫描转换只要求每一条扫描线与多边形有偶数个交点 n 区域填充中 u 四连通区域必须是封闭的八连通边界 u 八连通区域必须是封闭的四连通边界 l 出发点不同 n 区域填充:知道需要区域内一个种子点(复杂计算) n 多边形扫描转换:没有要求 12、何谓四连通和八连通?写出一种边界表示的八连通区域填充算法。 区域的像素连通方式可以分为两类:4连通区域:取区域中的任何两个像素,从一象素出发,通过上、下、左、右4种运动,只经过该区域的点可以到达另一像素。8连通区域:取区域中的任何两个像素,从一象素出发通过上、下、左、右、两条对角线方向共8种运动,只经过该区域的点可以到达另一像素。 4连通区域是8连通区域的一种特殊情况。4连通区域的边界必定是8连通式的;8连通区域的边界必定是4连通式的。 8连通区域(边界表示)填充漫水算法 Procedure flood-fill-8(x,y,boundary-color,new-color:integer) begin if getpixel(framebuffer,x,y)<>boundary-color and getpixel(framebuffer,x,y)<>new-color then begin setpixel(framebuffer,x,y,newcolor); flood-fill-8(x,y+1, boundary-color,new-color); flood-fill-8(x,y-1, boundary-color,new-color); flood-fill-8(x+1,y, boundary-color,new-color); flood-fill-8(x-1,y, boundary-color,new-color); flood-fill-8(x+1,y+1, boundary-color,new-color); flood-fill-8(x+1,y-1, boundary-color,new-color); flood-fill-8(x-1,y+1, boundary-color,new-color); flood-fill-8(x-1,y-1, boundary-color,new-color); end end 13、解释活化边表的思想,以多边形区域填充为例介绍它的应用。 边的活化链表AEL:记录当前扫描线与棱边的交点序列。初值为空,在处理过程中利用ET表和求交点的递推关系不断刷新。.链表AEL的边元素由以下4个域组成: ymax:该棱边的上端点的y坐标; x:该棱边与当前扫描线交点的x坐标; Dx:该棱边的斜率m的倒数; next:指向下一条棱边的指针。 〔应用略〕 14、多边形各个顶点的坐标为(2,2), (2,4), (8,6), (12,2), (8,1), (6,2)及(2,2), 在用扫描线填充算法实现扫描转换时, 写出其边表(ET)和全部的活化边表(AET)的内容。〔应用略〕 第章五 图形变换与裁剪 1、 三维变换的具体计算〔平移、缩放、旋转〕〔计算题〕 2、 三维变换流程图 局部坐标系 世界坐标系 视点坐标系 图像坐标系 规格化设备坐标系 屏幕坐标系 造型变换 取景变换 投影变换 设备变换 视窗变换 3、裁剪算法分类〔裁剪窗口的维数、裁剪窗口、对象维数、实现方式〕 l 裁剪窗口的维数:二维、三维 l 裁剪窗口:规那么(矩形、六面体)和不规那么的(任意多边形和多面体) l 对象维数:点、线、多边形、多面体 实现方式:软件和硬件实现 4、什么是灭点? 在我们从一定的视角看3D图形时,会看到彼此平行的直线在远处有交点,这个交点就叫做灭点。 5、试用几种不同顺序的简单几何变换,求出将平面上的任一线段P1(x1,y1), P2(x2, y2)变换成与X 轴重合的变换阵,并说明其等效性。 几种常见的几何变换阵: 平移变换阵: / 1 0 0 \ T = | 0 1 0 | \ Tx Ty 1 / (其中Tx,Ty分别是在X和Y轴上的平移量) 比例变换阵: / Sx 0 0 \ T = | 0 Sy 0 | \ 0 0 1 / (其中Sx,Sy分别是在X和Y轴上的比例系数) 旋转变换阵: / cosθ sinθ 0 \ T = | -sinθ cosθ 0 | \ 0 0 1 / (其中θ是绕原点逆时针旋转的角度) 对称变换阵: 对Y轴对称 / -1 0 0 \ T = | 0 1 0 | \ 0 0 1 / 对X轴对称 / 1 0 0 \ T = | 0 -1 0 | \ 0 0 1 / 对原点对称 / -1 0 0 \ T = | 0 -1 0 | \ 0 0 1 / 对称于直线y=x / 0 1 0 \ T = | 1 0 0 | \ 0 0 1 / 对称于直线y=-x / 0 -1 0 \ T = | -1 0 0 | \ 0 0 1 / 题目中给出的线段,斜率为 k = 〔y2-y1〕/ x2-x1 ,可以使用以下几种方法进展变换: a. 先把它平移到原点处,再旋转成水平线。其变换矩阵为 /1 0 0 \ / cosθ sinθ 0 \ T = | 0 1 0 | | -sinθ cosθ 0 | \-x1 –y1 1 / \ 0 0 1 / (其中 θ= arctag(k) ) b. 先旋转,使它水平,再平移到X轴上 / cosθ sinθ 0 \ /1 0 0 \ T = | -sinθ cosθ 0 || 0 1 0 | \ 0 0 1 / \Tx 0 1 / (其中Tx 可由几何计算得出) c. 先平移,使原点在其所在的直线上,再旋转 /1 0 0 \ / cosθ sinθ 0 \ T = | 0 1 0 | | -sinθ cosθ 0 | \0 My 1 / \ 0 0 1 / 其中My = x1*(y2-y1)/(x2-x1) – y1 由计算结果可知,三者是等价的。 6、OXYZ 坐标系下平面方程是x+y+z+d=0,试求变换距阵T,使 该平面在O’X’Y’Z’坐标系下变成z’=0。 三维坐标变换: 比例变换: / a 0 0 0 \ T = | 0 e 0 0 | | 0 0 i 0 | \ 0 0 0 1 / 其中a,e,i分别为在X,Y,Z坐标上的比例改变 平移变换: / 1 0 0 0 \ T = | 0 1 0 0 | | 0 0 1 0 | \ l m n 1 / 其中a,e,i分别为在X,Y,Z坐标上的平移量 旋转变换:〔手写〕 7、试简述二维图形裁剪的根本原理及可选用的裁剪策略. 裁剪的原理: . 在显示图形之前, 组成图形的每一个根本元素都要经过裁剪, 因此裁剪算法直接影响整个图形系统的效率。. 裁剪的根本目的是判断图形元素是否在所考虑的区域内。如在区域内, 那么进一步求出在区域内的那一局部。因此裁剪处理包含两局部内容:1)点在区域内外的判断;2)计算图形元素与区域边界的交点。 1. 编码裁剪法(Sutherland-Cohen算法) 2. 中点分割裁剪法 多边形的裁剪 1. 逐边裁剪法2. 双边裁剪法 8、写出梁友栋-Barsky二维直线段裁剪算法的伪代码 void LB_LineClip(x1,y1,x2,y2,XL,XR,YB,YT) { float x1,y1,x2,y2,XL,XR,YB,YT; float dx,dy,u1,u2; tl=0;tu=1; dx =x2-x1;dy =y2-y1; if(ClipT(-dx,x1-Xl,&u1,&u2) if(ClipT(dx,XR-x1, &u1,&u2) if(ClipT(-dy,y1-YB, &u1,&u2) if(ClipT(dy,YT-y1, &u1,&u2) { displayline(x1+u1*dx,y1+u1*dy, x1+u2*dx,y1+u2*dy) return; } } bool ClipT(p,q,u1,u2) { float p,q,*u1,*u2; float r; if(p<0) { r=q/p; if(r>*u2) return FALSE; else if(r>*u1) { *u1=r; return TRUE; } } else if(p>0) { r=p/q; if(r<*u1)return FALSE; else if(r<*u2) { *u2=r;return TRUE;} } else if(q<0) return FALSE; //p=0 return TRUE; } 9、如果裁剪窗口为圆形,试提出一种二维直线段的裁剪算法。 算法思想: 把直线段和圆的关系分为3种: 〔1〕直线段完全在圆内:直线段的2个端点都在圆内 〔2〕直线段和圆相离/相切:圆心到直线段的距离大于/等于半径 〔3〕直线段和圆相交 算法步骤: 〔1〕判断直线段的2个端点是否都在圆内,假设是,那么此线段就是裁剪结果,算法完毕,否那么转〔2〕 〔2〕判断圆心到直线的距离,如果大于或等于半径,弃此直线段,算法完毕;否那么,直线和圆相交,转到〔3〕。 〔3〕计算直线段和圆的交点。假设2个端点都在圆外,那么2个交点之间的线段就是裁减结果,否那么在直线段上的交点和圆内的端点决定的线段为裁剪结果 10、描述Cohen-SutherLand二维直线段裁剪算法的根本原理,并以图形示意。 算法的的根本原理: 对于每条线段P1P2分为三种情况处理。 〔1〕假设P1P2完全在窗口内,那么显示该线段P1P2简称“取〞之。 〔2〕假设P1P2在裁剪边界的一侧,那么丢弃该线段,简称“弃〞之。 〔3〕假设线段既不满足“取〞的条件,也不满足“弃〞的条件,那么在交点处把线段分为两段。其中一段完全在窗口外,可弃之。然后对另一段重复上述处理。 为使计算机能够快速判断一条直线段与窗口属何种关系,采用如下编码方法。窗口的四条边把整个平面分成九个区域,每一个区域采用四位编码表示: (1)在x=xL左侧的区域,编码的第四位是1; (2)在x=xR右侧的区域,编码的第三位是1; (3)在y=yB下侧的区域,编码的第二位是1; (4)在y=yT上侧的区域,编码的第一位是1。 11、写出从裁剪窗口映射到规X化视口的变换矩阵。其中裁剪窗口和视口的左下角坐标分别为(xwmin,ywmin) 和(xvmin,yvmin),右上角坐标分别为(xwmax,ywmax) 和 (xvmax,yvmax)。 〔1〕把裁剪窗口的中心移到原点 〔2〕把裁剪窗口以原点为固定点进展缩放,缩放到和视口大小一致 〔3〕把裁剪窗口的中心〔原点〕移到视口的左下角 总的变换矩阵为 12、根据以下参数,写出从世界坐标系到观察坐标系的变换矩阵。 (1) 观察原点 P0 (2,1,2) (2) 参考点 Pref(1,0,2), 观察平面法向量 N的方向为Pref 指向P0 (3) 观察向上向量V(0,1,0) 13、设投影中心为点O〔0,0,0〕,投影平面为平行于平面XOZ,且y=6。请写出此透视投影变换矩阵,并求端点A〔4,12,6〕和C〔6,9,15〕的直线段AC在该投影平面的投影。 投影变换矩阵: 端点A的投影A’:,即(2,6,3) 端点C的投影C’:,即〔4,6,10〕 直线段AC在该投影平面的投影为由端点A’和端点C’决定的直线段 14、写出裁剪窗口映射到规X化正方形的变换矩阵,其中裁剪窗口的左下角和右上角坐标分别为(xwmin,ywmin) 和 (xwmax,ywmax),规X化正方形x,yX围为[-1,1]。 〔1〕把裁剪窗口的中心平移到原点 〔2〕以原点为固定点进展缩放,缩放到和正方形大小一致 总的变换矩阵为 15、写出绕指定轴逆时针旋转q的变换矩阵。其中,由P1(1,2,3) 和P2(4,6,8)确定旋转轴,且沿着从P2到P1的轴进展观察。 16、将点P1(3,6) 绕基准点Pr(5,7)顺时针旋转60度。写出变换矩阵,并计算点P1旋转后的坐标。 第六章 自由曲线 1. 世界坐标系与局部坐标系的适用X围,以及相关的坐标变换的OPENGL函数 世界坐标系适用几何场景,由许多物体组成 ;局部坐标系使几何物体的表示最简单,便于进展几何操作 glPushMatrix(); 当前状态矩阵入栈 glPopMatrix(); 状态矩阵出栈 glTranslatef(0.0f, 0.5f, 0.0f); 平移 glRotatef(90, 0.0f, 1.0f, 0.0f); 旋转 glScalef(0.5,0.5,0.5); 缩放 2. 多边形表示:大量的平面片:三角形、四边形或n-边形 3. 多边形表示物体的主要来源三维测量与扫描:断层扫描重建;解析数学公式的逼近 4. 多边形表示的优势与缺乏〔简答〕 优势: l 表示简单 l 可以表示具有任意拓扑的物体 l 可以表示具有丰富细节的物体 l 大局部图形硬件支持多边形物体的加速绘制 缺乏: l 逼近表示,难以满足交互时放大要求 l 难以用传统方法修改(编辑)物体外形 l 缺乏解析表达式,几何属性计算困难 l 在表示复杂拓扑和具有丰富细节的物体时,数据量庞大,建模、编辑、绘制、存储的负担重 5. 直线段的参数表示及几何意义 直线段 P0(x0, y0, z0)→P1(x1, y1, z1) l 参数表示 l 分量表示 l 参数空间: 直线段参数表示的直观几何意义 l 参数空间中每一个参数(点)都对应于直线段上一个点 l 参数空间的两个端点对应于直线段的两个端点 6. Bézier曲线定义及性质, Bézier曲线的缺乏 定义:一条n次Bézier曲线: 多项式{Bi,n(t)}称为Bernstein基函数: 性质: l 端点插值: l R(0)=R0 R(1)=Rn l 端点切向: l R¢(0)=n(R1−R0) l R¢(1)=n(Rn−Rn-1) l 对称性: l ∑iRn-iBi,n(t) = ∑iRiBi,n(t) l 曲线的控制顶点的几何地位是对称的 l 凸包性:Bézier曲线位于控制多边形的凸包内 l 几何不变性:Bézier曲线的形状仅与控制多边形有关,与坐标系无关 Bézier曲线的缺乏: l 整体性质:当移动曲线的一个控制顶点时,整条曲线的形状都会发生改变 l 表示复杂形状时,需要将多条Bézier 曲线光滑拼接起来,即Bézier样条曲线。 l 位置连续:C0(或G0) l n次导数(或几何)连续:(或Gn) 7. B-样条曲线的定义及性质 定义:B-样条曲线是分段连续的多项式曲线,其定义与节点向量密切相关 定义在节点向量u={u0, u1, …, ui, …, un+k+1 }上的k次(k+1阶)、具有(n+1)个控制顶点的B-样条曲线为: Ri为控制顶点,{Ri}i=0,1,…,n顺次连接称为曲线的控制多边形 Ni,k(u)为单位化的B-样条基函数: 性质: l B-样条曲线具有凸包性和几何不变性。 l 当曲线的两个端节点的重复度是k+1时 l B-样条曲线具有类似于Bézier曲线的性质 l 端点插值性质 l 端点导数与控制的起始边与终止边相切 l 当n=k+1时,B-样条曲线就是一条Bézier曲线 l 局部性:当移动一个控制顶点时,只会影响曲线的一局部,而不是整条曲线 . .word..
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服