计算机图形学复习材料.pdf
《计算机图形学复习材料.pdf》由会员分享,可在线阅读,更多相关《计算机图形学复习材料.pdf(17页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1题型简答题(20%左右)填空题(30%左右)计算题(30%左右)算法描述题(20%左右)第一章 计算机图形学概述1.图形学、图形定义计算机图形学(Computer Graphics,CG)是一门研究如何利用计算机表示、生成、显示和处理图形的学科。图形通常由点、线、面、体等几何属性和颜色、纹理、线型、线宽等非几何属性组成。2.图形分类从生成技术上来看,图形主要分为两类:一类是基于线条信息表示的,如工程图、等高线地图、曲面的线框图等;另一类是真实感图形。3.图形与图像之间的关系图形与图象是密切相关但又不同的两个概念。图象纯指计算机内以位图(Bitmap)形式存在的亮度和颜色信息;图形则由场景的几
2、何模型和物理属性共同描述。4.计算机图形学的应用领域(6 个)影视;游戏;工业设计;科学研究;艺术;医学;广告;教育;培训;军事等5.OPENGL 简介OpenGL 是 SGI 公司开发的一个跨平台的开放式图形编程工具。OpenGL 集成了所有造型、变换、材质、纹理、光照、绘制等复杂的计算机图形学算法,将用户从具体的硬件和操作系统中解放了出来。了解:OpenGL 本身是一个底层库,在编程实践中还需要一些能简化编程任务、易于在窗口系统上执行的高层库。OpenGL 核心函数:OpenGL 核心函数以 gl 开头,可以运行于任何的 OpenGL 工作平台。OpenGL 实用库函数:实用库函数带有前缀
3、 glu,是基于 OpenGL 核心函数而比其更高一层的函数。它们也可以运行于任何 OpenGL 平台。辅助库函数:它支持的平台较少,并不适合正式产品的开发。Windows 专用函数:以 wgl 开头,用于连接 OpenGL 和 Windows 窗口系统。Win32 API 函数,用于处理像素格式及缓冲:共 6 个 Win32 API 函数,用于处理像素格式及缓冲。要在 Windows 下使用实用工具库 GLUT 中的函数进行编程,需要另外下载 glut32.dll、glut32.lib 以及 glut.h 三个文件分别放入系统的相应目录。6.光栅扫描的显示系统和随机扫描的显示系统的特点光栅扫
4、描的显示系统:按照从上到下然后再跳回顶部的顺序逐行扫描。随机扫描的显示系统特点:电子束可随意移动,只扫描屏幕上要显示的部分。7.帧缓冲存储器用来存储像素颜色(灰度)值的存储器就称为帧缓冲存储器。简称帧缓冲器(显存)。帧缓存中单元数目与显示器上像素的数目相同,单元与像素一一对应,各单元的数值决定了其对应像素的颜色。显示颜色的种类与帧缓存中每个单元的位数有关第二章 计算机图形系统概述1 叙述计算机图形系统的基本功能。他的基本功能是帮助人们设计、分析、采集、存贮图形、视频甚至音乐等信息。2 输入设备可有哪几种逻辑功能?请举出各自对应的物理设备。可以分成以下6类逻辑输入设备:.定位(locator):
5、指定一个坐标点。对应的物理设备有鼠标器、键盘、数字化仪、触摸屏等。.笔划(stroke):指示一个坐标点系列,如指定一条曲线的控制点等。主要物理设备有数字化仪。.送值(valuator):输入一个数值。最常用的物理设备是键盘的数字键。2.字符串(string):输入一个字符串。键盘字母键.拾取(pick):各种定位设备.选择(choise):鼠标器,数字化仪,键盘功能键等3 画出图形软件的层次结构及主要组成。-|应用程序|-|图形支撑软件|-|高级语言|-|操作系统|-主要部分:图形核心系统GKS计算机图形元文件CGM计算机图形设备接口CGI程序员层次结构图形系统PHIGS4 颜色查找表的概念
6、及实现原理。它是为了让我们能够在每个祯缓存单元的位数不增加,却能具有在很大范围内挑颜色的能力。此时由祯缓存读出来的值并不是相应像素的值,而是彩色表中的一个编号。按照这个编号在彩色表中取出的数才是该像素的彩色值。5 光栅扫描显示器结构与工作原理。其一,由计算机执行相应的图形应用程序,图像生成系统接受指令将图形的矢量表示转换成像素表示,再将像素值存入显示存储器;其二,图像生成系统直接把图形输入设备(摄像机、扫描仪等)输入的图形图像直接或经过主存储器间接地存放到显示存储器中。显示控制器生成水平和垂直同步扫描信号送到监视器,使CRT电子束进行水平扫描和垂直扫描形成光栅;另一方面又根据电子束在屏幕上的行
7、、列位置,不断地读出显示存储器中对应位置的像素值。利用彩色表将读出的像素值转换成R、G、B三原色的亮度值,来控制CRT的R、G、B电子束,在屏幕对应点生成需要的像素颜色。为了使屏幕上显示的画面不闪烁,(2)(3)应反复进行,一般要求5060帧/秒。6 为什么要制订图形软件标准?举例说明它的分类。制定图形软件标准的目的在于使图形软件能够在不同的计算机和图形设备之间进行移植,以便提高图形软件的利用率,降低开发成本,缩短研制周期,使图形软件向着通用、高级与设备无关的方向发展。可以分为两类:.数据接口标准(CGM,PHIGS).子程序接口标准(GKS,CGI)第三章 基本图形生成算法1 Bresenh
8、am 直线生成算法原理。它与DDA 算法相比,有何改进?3算法思想:根据直线的斜率确定选择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;idx;i+)drawpixel(x,y,color);x=x+1,e=e+k;if(e0)y+,e
9、=e-1;DDA为增量算法。它根据每一次增长时在另一轴上的增长计算下一个点应该画在哪里。Bresenham算法与它相比,由于全部采用了整数计算,使算法效率比起DD有大大提高,程序中只含有+-和*2的计算,便于使用计算机内硬件实现。2 比较几种常用画圆弧算法的原理和效率。1)Bresenham算法思想 其基本方法是从一个起点出发,利用判别式选择下一个显示点。判别式的值通过简单计算获得,其符号用作判断。只计算出1/8圆的点的位置,就可以画出整个圆来,效率高。2)正负法:首先区分不同象限的圆弧,然后,选定圆弧起点后,在输出圆弧过程中,根据当前点位置与理想圆弧的关系和所在象限,决定下一次的走向每次只在
10、X或Y方向走步取点,这样一点一点逼近圆弧形状。在整个计算过程中,只使用了+-和*2运算,提高了硬件使用率。比起Bre算法,它更为简单。但生成的点数要比Bre多。3 简述两种字符生成方法。有两种基本的字符生成技术:一种是在计算机中用笔划(矢量)方式来表示,然后通过扫描转换生成,这是目前常用的方法,生成的字符效果好,但计算量大;另一种是在计算机内用位图(点阵)来表示,存储在字符高速缓冲区(字符发生器)里,显示时可以直接通过像素拷贝将其装入显示缓冲区中。这是传统的方法,简单、速度快,但不灵活。4、已知一直线段起点(0,0),终点(5,2),利用中点算法生成此直线段,写出生成过程中坐标点及判别式 d
11、的变换情况,并在下面的方格中,标出直线上各点。00100,220,22xxbyyadbaddaddbadendendiiiii=+=+=+参考答案:3214012345.15xyd0011102-3321435316-174285952105、已知一直线段起点(0,0),终点(5,2),利用 Bresenham 算法生成此直线段,写出生成过程中坐标点及判别式 p 的变换情况,并在下面的方格中,标出直线上各点。()010022,02,0iiiiiendendpyxpyxpppypyyyxxx+=+=+=参考答案:012345.15xyp00-1110233214-3531617428-59521
12、0第四章 区域填充1.图形学中多边形的两种表示方式,各自优缺点顶点表示:用多边形的有序顶点序列表示多边形点阵表示:用位于多边形内部的像素集合来表示多边形顶点表示:优点直观几何意义明显存贮量小不足3215难以判断哪些像素位于多边形内部不能直接用于多边形着色点阵表示:优点便于用帧缓冲器(frame buffer)表示图形面着色所需的图形表示缺点丢失了几何信息占用存储空间多2.区域表示的方式,内部表示和边界表示3.四连通区域和八连通区域的定义、它们之间关系四连通区域:区域内任意两个像素,从一个像素出发,可以通过上、下、左、右四种运动,到达另一个像素八连通区域:区域内任意两个像素,从一个像素出发,可以
13、通过水平、垂直、正对角线、反对角线八种运动,到达另一个像素关系:四连通区域 八连通区域(反之不成立)四连通区域的边界是八连通区域八连通区域的边界是四连通区域4.内部表示区域种子填充算法假设内部表示区域为 G,其中的像素原有颜色为 G0,需要填充的颜色为 G1。算法需要提供一个种子点(x,y),它的颜色为 G0。具体算法如下(四连通区域)Flood_Fill_4(x,y,G0,G1)if(GetPixel(x,y)=G0)/GetPixel(x,y)返回(x,y)的颜色SetPixel(x,y,G1);/将(x,y)的添上颜色 G1Flood_Fill_4(x-1,y,G0,G1);Flood_
14、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)颜色SetPixe
15、l(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);6Fill_Boundary_4Connnected(x+1,y,BoundaryColor,InteriorColor);6.判断一点是否位于多边形内部的射线法
16、从当前像素发射一条射线,计算射线与多边形的交点个数内部:奇数个交点外部:偶数个交点7.逐点判断算法逐个像素判别其是否位于多边形内部算法描述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)elsesetpixel(framebuffer,x,y,background_color)8.逐点判断算法的不足速度慢:几十万甚是几百万像素的多边形内外判断,大量的求交、乘除运算没有考虑像素之间的联系结论:逐点判断算法不可取9.多边形
17、扫描转换算法(具体计算)10.多边形扫描转换的优点与不足优点:充分利用多边形的区域、扫描线和边的连贯性,避免了反复求交的大量运算不足:算法的数据结构和程序结构复杂对各种表的维持和排序开销太大,适合软件实现而不适合硬件实现11.多边形扫描转换与区域填充比较基本思想不同多边形扫描转换将多边形顶点表示转换为点阵表示,扫描过程利用了多边形的各种连贯性区域填充只改变区域的颜色,不改变区域的表示方法。填充过程利用了区域的连贯性对边界的要求不同多边形扫描转换只要求每一条扫描线与多边形有偶数个交点区域填充中四连通区域必须是封闭的八连通边界八连通区域必须是封闭的四连通边界出发点不同区域填充:知道需要区域内一个种
18、子点(复杂计算)多边形扫描转换:没有要求12、何谓四连通和八连通?写出一种边界表示的八连通区域填充算法。区域的像素连通方式可以分为两类:4连通区域:取区域中的任何两个像素,从一象素出发,通过上、下、左、右4种运动,只经过该区域的点可以达到另一像素。8连通区域:取区域中的任何两个像素,从一象素出发通过上、下、左、右、两条对角线方向共8种运动,只经过该区域的点可以达到另一像素。4连通区域是8连通区域的一种特殊情况。4连通区域的边界必定是8连通式的;8连通区域的边界必定是4连7通式的。8连通区域(边界表示)填充漫水算法Procedure flood-fill-8(x,y,boundary-color
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 图形学 复习 材料
限制150内