2022年计算机图形学总结复习 .pdf
《2022年计算机图形学总结复习 .pdf》由会员分享,可在线阅读,更多相关《2022年计算机图形学总结复习 .pdf(19页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第一章复习重点:计算机图形学的概念:计算机图形学: 是研究怎样用计算机表示、生成、 处理和显示图形的一门学科。几个图形学中的基本概念:计算机图形 :用计算机生成、 处理和显示的对象;由几何数据和几何模型,利用计算机进行显示并存储,并可以进行修改、完善后形成的;图象处理: 将客观世界中原来存在的物体影象处理成新的数字化图象的相关技术;如CT扫描、 X射线探伤等;模式识别 :对所输入的图象进行分析和识别,找出其中蕴涵的内在联系或抽象模型;如邮政分检设备、地形地貌识别等;计算几何: 研究几何模型和数据处理的学科,讨论几何形体的计算机表示、分析和综合, 研究如何方便灵活、 有效地建立几何形体的数学模型
2、以及在计算机中更好地存贮和管理这些模型数据;图像(数字图像) :点阵表示,枚举出图形中所有的点(强调图形由点构成)简称为参数表示图形: 由图形的形状参数(方程或分析表达式的系数,线段的端点坐标等)+属性参数 (颜色、线型等 )来表示图形图形: 计算机图形学的研究对象,主要分为两类:基于线条信息表示。明暗图(Shading)能在人的视觉系统中产生视觉印象的客观对象。包括自然景物、拍摄到的图片、用数学方法描述的图形等等构成图形的 要素几何要素:刻画对象的轮廓、形状等非几何要素:刻画对象的颜色、材质等常用的图形输入设备分为两种:矢量型图形输入设备与光栅型的区别:矢量型输入设备采用跟踪轨迹、 记录坐标
3、点的方法输入图形。主要输入数据形式为直线活折线组成的图形数据。光栅扫描型图形输入设备采用逐行扫描、 按一定密度采样的方式输入图形,主要输入的数据为一幅由亮度值构成的像素矩阵图像。常用的图形输出设备分为两类:向量型向量型设备的作画机构随着图形的输出形状而移动并成像光栅扫描型光栅扫描型设备的作画机构按光栅矩阵方式扫描整张图面,并按输出内容对图形成像。显示器原理:1.随即扫描显示器:应用程序发出绘图命令,解析成显示处理器可接受2.命令格式,存放在刷新存储器中。刷新存储器中所有的3.绘图命令组成一个显示文件,由显示控制器负责解释执4.行(刷新 ), 驱动电子枪在屏幕上绘图。5.特点:电子束可随意移动,
4、只扫描荧屏上要显示的部分。修改图形,实际是修改显示文件中的某些绘图命令。 (电子束的定位和偏转具有随即性)6.彩色阴极射线管7.通过把发出不同颜色的荧光物质进行组合而实现的。通常用 射线穿透法 和影孔板法 实现精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 19 页彩色显示。应用:主要用于画线显示器优点:成本低缺点:只能产生有限几种颜色。8.存储管式图形显示器9.发展了利用管子本身来储存信息的技术。10. 光栅扫描式图形显示器(随机扫描显示器工作原理:从显示文件存储器中去处画线指令或显示字符指令、方式指令 (如高度、 线性等),送到显示
5、控制器,由显示控制器控制电子束的偏转,轰击荧光屏上的荧光材料,从而产生一条发亮的图形轨迹。特点:随机扫描显示器中电子束的定位和偏转具有随机性,在某一时刻,显示屏上只有一个光点发光,因而可以画出很细的图形。光栅扫描显示器工作原理:在这种显示器中,电子束的运动轨迹是固定的。即从左到右、 自上而下扫描荧光屏,来产生一幅光栅。特点: 由于图形是以点阵的形式存储在帧缓冲器中。所以光栅扫描显示器的电子束按从上到下、从左到右的顺序依次扫描屏幕,来建立图形。缺点:动态不如随机扫描器好。优点:可读性强,可控制亮度与颜色)第二章复习重点假设直线的起点坐标为P1 (x1,y1),终点坐标为P2 (x2,y2),x
6、方向的增量为xx2x1 ;y 方向上增量为yy2y1 直线的斜率为k y x 当 x y 时,让x 从 x1 到 x2 变化, 每步递增1,那么, x 的变化可以表示为x ( i+1)xi+1 y 的变化可以表示为y(i+1) yik综合考虑, 按照从 (x1, y1)到(x2, y2)方向不同, 分 8 个象限 (图 2.1)。对于方向在第1a象限内的直线而言,取增量值Dx=1,Dy=m。对于方向在第1b 象限内的直线而言,取增量值 Dy=1,Dx=1/m。算法描述如下:dda_line(xa, ya, xb, yb, c)int xa, ya, xb, yb, c; / 使用DDA 算法,
7、每生成一条直线做两次除法,画线中每一点做两次加法。float delta_x, delta_y, x, y;int dx, dy, steps, k;dx=xbxa;dy=ybya;if(abs(dx)abs(dy)steps=abs(dx);else steps=abs(dy);delta_x=(float)dx/(float)steps;delta_y=(float)dy/(float)steps;x=xa;y=ya;set_pixel(x, y, c);for(k=1;k=steps;k+)x+=delta_x;y+=delta_y;set_pixel(int)(x+0.5), (int
8、)(y+0.5), c); 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 2 页,共 19 页直线 Bresenham 算法根据上面的推导,圆周生成算法思想如下: 求误差初值, p1=32r,i=1,画点 (0, r); 求下一个光栅位置,其中xi+1=xi+1,如果 pi0 则 yi+1=yi,否则 yi+1=yi1; 画点 (xi+1, yi+1); 计算下一个误差,如果piSetPixel(x,y,c);while(xxend)x+;if(pSetPixel(x,y,c);根据上面的推导,圆周生成算法思想如下: 求误差初值, p1=32r,
9、i=1,画点 (0, r); 求下一个光栅位置,其中xi+1=xi+1,如果 pi0 则 yi+1=yi,否则 yi+1=yi1; 画点 (xi+1, yi+1); 计算下一个误差,如果pi0 则 pi+1=pi+4xi+6,否则 pi+1=pi+4(xiyi)+10; i=i+1,如果 x=y 则结束,否则返回步骤2。circle(xc, yc, radius, c)int xc, yc, radius, c;int x, y, p;x=0;y=radius;p=32*radius ;while(xy)plot_circle_points(xc,yc,x,y,c);if(pCi其中,常数d=
10、0.035 557 3。当i时,可判定P0 在多边形内。当i时,可判定P0 在多边形外。 交点计数检验法当多边形是凹多边形,甚至还带孔时,可采用交点计数法判断点是否在多边形内。具体做法是,从判断点作一射线至无穷远,求射线与多边形边的交点个数。若交点个数为奇数,则点在多边形内;否则,点在多边形外。当射线穿过多边形顶点时,必须特殊对待。若共享顶点的两边在射线的同一侧,则交点计数加2,否则加 1。按这种方法, 交点计数为偶数时点在多边形外;交点计数为奇数时点在多边形内。凸包算法求多边形或多面体的包围盒是相当简便的。只要遍历其所有顶点,就求出包围盒。对于一般的几何形体,则要根据其具体性质来求。对含有曲
11、线、曲面的几何体进行求交时,常常先求它们的一个凸多边形或凸多面体的凸包。由于凸多边形和凸多面体间的求交相对简单,因此可以节省一定的计算量。例如, Bezier 曲线、 B 样条和 NURBS曲线、曲面具有凸包性质,其控制多边形或控制网格是其本身的凸包一般的凸包的求法因具体情况而异,下面举一个求圆弧凸包的例子。设圆弧段的圆方程为 (xx0)2+(yy0)2=r2,圆弧起始角为1,终止角为2。对圆弧计算凸包如图2.19所示。先根据起始角1 与终止角2 求出相应的弧端点P1、P2坐标,进而求出弧的弦中点 Pm=(P1+P2)/2。设圆弧段的圆方程为(xx0)2+(yy0)2=r2,圆弧起始角为1,终
12、止角为2。对圆弧计算凸包如图2.19 所示。先根据起始角1 与终止角2 求出相应的弧端点 P1、P2 坐标,进而求出弧的弦中点Pm=(P1+P2)/2。再用下式计算弧中点Pc:则该弧的包围盒顶点为P1、P1+(PcPm)、P2+(PcPm)、P2。直线剪裁算法有两个主要步骤。 首先将不需剪裁的直线挑出,即删去在窗外的直线。 然后,对其余直线,逐条与窗框求交点,并将窗口外的部分删去。Cohen-Sutherland 直线剪裁算法以区域编码为基础,将窗口及其周围的8 个方向以4 bit 的二进制数进行编码。各编码分别代表窗外上下右左空间的编码分为5 个区域: 内域:区域 (0000)。 上域:区域
13、 (1001, 1000, 1010)。 下域:区域 (0101, 0100, 0110)。 左域:区域 (1001, 0001, 0101)。右域:区域 (1010, 0010, 0110)。当线段的两个端点的编码的逻辑“与”非零时,线段为显然不可见的对某线段的两个端点的区号进行位与运算,可知这两个端点是否同在视区的上、下、左、右;算法的主要思想是,对每条直线P1P2: 对直线两端点P1、P2编码分别记为C1(P1)=a1, b1, c1, d1,C2(P2)=a2, b2, c2, d2其中, ai、bi、 ci、di 取值范围为 1, 0,i1, 2。 如果 ai=bi=ci=di=0,
14、则显示整条直线,取出下一条直线,返步骤(1)。否则,进入步骤(3)。如果 |a1a2|=1 ,则求直线与窗上边(y=yw-max)的交点,并删去交点以上部分。如果|b1b2|=1 ,|c1c2= |精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 6 页,共 19 页1,|d1d2|=1 ,作类似处理。 返步骤 (1)。Cohen-Sutherland 算法 C语言程序#define LEFT 1 #define RIGHT 2 #define BOTTOM 4 #define TOP 8 int encode(float x,float y) in
15、t c=0; if(xXR) c|=RIGHT; if(xYT) c|=TOP; retrun c; void CS_LineClip(x1,y1,x2,y2,XL,XR,YB,YT) float x1,y1,x2,y2,XL,XR,YB,YT;/(x1,y1)(x2,y2) 为线段的端点坐标,其他四个参数定义窗口的边界 int code1,code2,code; code1=encode(x1,y1); code2=encode(x2,y2); while(code1!=0 |code2!=0) if(code1&code2 !=0) return; /位于窗口外code = code1;
16、if(code1=0) code = code2; if(LEFT&code !=0) / 求线段与窗口边界的交点 x=XL; / 左y=y1+(y2-y1)*(XL-x1)/(x2-x1); else if(RIGHT&code !=0) x=XR; /右y=y1+(y2-y1)*(XR-x1)/(x2-x1); else if(BOTTOM&code !=0) y=YB; /下x=x1+(x2-x1)*(YB-y1)/(y2-y1); else if(TOP & code !=0) y=YT; /上x=x1+(x2-x1)*(YT-y1)/(y2-y1); if(code =code1)
17、x1=x;y1=y; code1 =encode(x,y); else 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 7 页,共 19 页x2=x;y2=y; code2 =encode(x,y); displayline(x1,y1,x2,y2); / 线段位于窗口内 中点分割裁剪算法基本思想:与前一种Cohen-Sutherland 算法一样首先对线段端点进行编码,并把线段与窗口的关系分为三种情况: 全在、完全不在和线段和窗口有交。对前两种情况,进行一样的处理。对于第三种情况,用中点分割的方法求出线段与窗口的交点。从p1 出发找最近可见点的方
18、法:先求出 p1p2 的中点pm 若 p1pm 不是显然不可见的,并且p1pm 在窗口中有可见部分, 则距 p1 最近的可见点一定落在p1pm 上, 所以用 p1pm 代替 p1p2.。否则取 pmp2 代替 p1p2。再对新的p1p2 求中点 pm。重复上述过程,直到 p1pm 长度小于给定的控制常数为止,此时pm 收敛于交点。多边形的剪裁多边形剪裁算法的关键在于,通过剪裁,要保持窗口内多边形的边界部分,而且要将窗框的有关部分按一定次序插入多边形的保留边界之间,从而使剪裁后的多边形的边仍然保持封闭状态,以便填色算法得以正确实现。基本思想:通过简单地一次用窗口的一条边裁剪多边形算法:(1) 将
19、多边形表示为顶点表,即P1,P2,Pn-1,Pn , 并生成边表P1P2,P2P3, Pn-1Pn, PnP1,(2) 用窗口边裁剪原多边形,生成中间多边形(3) 对中间多边形重复步骤(2), 直至被窗口所有边裁剪完为止关键:根据多边形的边表,逐次对每一段边与裁剪线(窗口边 )比较,判别输入顶点的个数和坐标,并联结成封闭多边形具体操作:Pi 若位于边界线的可见一侧,则Pi 送输出顶点表Pi 若位于边界线的不可见一侧,则将其舍弃。除第一个顶点外,还要检查每一个Pi 和前一顶点Pi-1 是否位于窗口边界的同一侧,若不在同一侧,则需计算出交点送输出顶点表。最后一个顶点Pn 则还要与P1 一起进行同样
20、的检查。字符串的剪裁字符串剪裁有3 种可选择的方法。 字符串的有或无剪裁。 字符的有或无剪裁字符的精密剪裁。反走样走样: 用离散量表示连续量引起的失真现象称之为走样(aliasing)反走样: 用于减少或消除走样这种效果的技术称为反走样(antialiasing)常用的反走样方法主要有:提高分辨率、非加权区域取样和加权区域取样提高分辨率方法简单,但代价非常大。显示器的水平、竖直分辩率各提高一倍,则显示器的点距减少一倍,帧缓存容量则增加到原来的4 倍, 而扫描转换同样大小的图元却要花4 倍时间。另一种方法(软件方法):用较高的分辨率的显示模式下计算,(对各自像属下计算,再求(非)加权平均的颜色值
21、) ,在较低的分辨率模式下显示。只能减轻而不能消除锯齿问题。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 8 页,共 19 页简单区域取样基本思想:每个象素是一个具有一定面积的小区域,将直线段看作具有一定宽度的狭长矩形。当直线段与象素有交时,求出两者相交区域的面积,然后根据相交区域面积的大小确定该象素的亮度值。缺点:象素的亮度与相交区域的面积成正比,而与相交区域落在象素内的位置无关,这仍然会导致锯齿效应。直线条上沿理想直线方向的相邻两个象素有时会有较大的灰度差。加权区域取样采用圆锥形滤波器,圆锥的底圆中心在当前像素,底圆半径为一个像素,锥高为1。
22、当直线条经过该像素时,该像素的灰度值是在二者相交区域上对滤波器进行积分的积分值。特点:接近理想直线的像素将被分配更多的灰度值。相邻的两个像素的滤波器相交,使相交区域对象素亮度的贡献依赖于该区域与象素中心的距离有利于缩小直线条上相邻像素的灰度差。光栅图形的走样现象1.阶梯状边界; 2.图形细节失真;3.狭小图形遗失:动画序列中时隐时现,产生闪烁。第三章复习重点图形变换:通过图形的几何变换可以产生新的图形。齐次坐标所谓齐次坐标法,就是用 n+1 维向量来表示一个n 维向量。 对 n 维向量用其n 个坐标分量(P1,P2,Pn)表示,是唯一的,若用齐次坐标表示, 则有 n+1 个分量,即(hP1,h
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年计算机图形学总结复习 2022 计算机 图形学 总结 复习
限制150内