《2022年计算机图形学总结复习.docx》由会员分享,可在线阅读,更多相关《2022年计算机图形学总结复习.docx(33页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选学习资料 - - - - - - - - - 第一章复习重点:运算机图形学的概念:运算机图形学: 是争论怎样用运算机表示、生成、 处理和显示图形的一门学科;几个图形学中的基本概念:运算机图形 :用运算机生成、 处理和显示的对象;由几何数据和几何模型,利用运算机进行显示并储备,并可以进行修改、完善后形成的;图象处理: 将客观世界中原先存在的物体影象处理成新的数字化图象的相关技术;如 CT扫 描、 X射线探伤等;模式识别 :对所输入的图象进行分析和识别,找出其中蕴涵的内在联系或抽象模型;如邮政分检设备、地势地貌识别等;运算几何: 争论几何模型和数据处理的学科,争论几何形体的运算机表示、分析和综
2、合, 研 究如何便利敏捷、 有效地建立几何形体的数学模型以及在运算机中更好地存贮和治理这些模 型数据;图像(数字图像) :点阵表示,枚举出图形中全部的点强调图形由点构成简称为 参数表示图形: 由图形的外形参数方程或分析表达式的系数,线段的端点坐标等+属性参数 颜色、线型等 来表示图形 图形: 运算机图形学的争论对象,主要分为两类:基于线条信息表示;明暗图 Shading能在 人的视觉系统中产生视觉印象的客观对象;包括自然景物、拍照到的图片、用数学方法描述的图形 等等 构成图形的 要素 几何要素:刻画对象的轮廓、外形等 非几何要素:刻画对象的颜色、材质等 常用的图形输入设备分为两种:矢量型图形输
3、入设备与光栅型的区分:矢量型输入设备采纳跟踪轨迹、 记录坐标点的方法输入图形;主要输入数据形式为直线活折线组成的图形数据;光栅扫描型图形输入设备采纳逐行扫描、 按肯定密度采样的方式输入图形,主要输入的数据为一幅由亮度值构成的像素矩阵图像;常用的图形输出设备分为两类:向量型向量型设备的作画机构随着图形的输出外形而移动并成像 光栅扫描型光栅扫描型设备的作画机构按光栅矩阵方式扫描整张图面,显示器原理:并按输出内容对图形成像;1. 立即扫描显示器:应用程序发出绘图命令,解析成显示处理器可接受2. 命令格式,存放在刷新储备器中;刷新储备器中全部的3. 绘图命令组成一个显示文件,由显示掌握器负责说明执4.
4、 行刷新 , 驱动电子枪在屏幕上绘图;5. 特点:电子束可随便移动,只扫描荧屏上要显示的部分;修改图形,实际是修改显示文件中的某些绘图命令; (电子束的定位和偏转具有立即性)名师归纳总结 6.彩色阴极射线管通常用 射线穿透法 和影孔板法 实现第 1 页,共 19 页7.通过把发出不同颜色的荧光物质进行组合而实现的;- - - - - - -精选学习资料 - - - - - - - - - 彩色显示;应用:主要用于画线显示器优点:成本低缺点:只能产生有限几种颜色;8. 储备管式图形显示器 9. 进展了利用管子本身来储存信息的技术;10. 光栅扫描式图形显示器(随机扫描显示器 工作原理:从显示文件
5、储备器中去处画线指令或显示字符指令、方 由显示掌握器掌握电子束的偏转,轰击荧 式指令 (如高度、 线性等),送到显示掌握器,光屏上的荧光材料,从而产生一条发亮的图形轨迹;特点:随机扫描显示器中电子束 的定位和偏转具有随机性,在某一时刻,显示屏上只有一个光点发光,因而可以画出很 细的图形;光栅扫描显示器 工作原理:在这种显示器中,电子束的运动轨迹是固定 的;即从左到右、 自上而下扫描荧光屏,来产生一幅光栅;特点: 由于图形是以点阵的 形式储备在帧缓冲器中;所以光栅扫描显示器的电子束按从上到下、从左到右的次序依 次扫描屏幕,来建立图形;缺点:动态不如随机扫描器好;优点:可读性强,可掌握亮 度与颜色
6、)其次章复习重点 假设直线的起点坐标为 P1 x1,y1,终点坐标为 P2 x2,y2,x 方向的增量为 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_lin
7、exa, ya, xb, yb, c int xa, ya, xb, yb, c; / 使用 DDA 算法,每生成一条直线做两次除法,画线中每一点做两次加法;float delta_x, delta_y, x, y; int dx, dy, steps, k; dx=xb xa; dy=yb ya; ifabsdxabsdy steps=absdx; else steps=absdy; delta_x=floatdx/floatsteps; delta_y=floatdy/floatsteps; x=xa; y=ya; set_pixelx, y, c; fork=1;k=steps;k+ x
8、+=delta_x; y+=delta_y; set_pixelintx+0.5, (inty+0.5, c; 名师归纳总结 - - - - - - -第 2 页,共 19 页精选学习资料 - - - - - - - - - 直线 Bresenham 算法 依据上面的推导,圆周生成算法思想如下: 求误差初值, p1=3 2r,i=1,画点 0, r; 求下一个光栅位置,其中 xi+1=xi+1,假如 pi0 就 yi+1=yi,否就 yi+1=yi 1; 画点 xi+1, yi+1; 运算下一个误差,假如 piSetPixelx,y,c; whilexxend x+; ifpSetPixelx
9、,y,c; 依据上面的推导,圆周生成算法思想如下: 求误差初值, p1=3 2r,i=1,画点 0, r; 求下一个光栅位置,其中 xi+1=xi+1,假如 pi0 就 yi+1=yi,否就 yi+1=yi 1; 画点 xi+1, yi+1; 运算下一个误差,假如 pi0 就 pi+1=pi+4xi+6 ,否就 pi+1=pi+4xi yi+10;2; i=i+1,假如 x=y 就终止,否就返回步骤circlexc, yc, radius, c int xc, yc, radius, c;int x, y, p;x=0;2*radius ;y=radius;p=3whilexy plot_ci
10、rcle_pointsxc,yc,x,y,c; ifpCi其中,常数 d=0.035 557 3;当 i 时,可判定 P0 在多边形内;当 i 时,可判定 P0 在多边形外; 交点计数检验法当多边形是凹多边形,甚至仍带孔时,可采纳交点计数法判定点是否在多边形内;详细做法是,从判定点作一射线至无穷远,求射线与多边形边的交点个数;如交点个数为奇数,就点在多边形内;否就,点在多边形外;当射线穿过多边形顶点时,必需特别对待;如共享顶点的两边在射线的同一侧,就交点计数加2,否就加 1;按这种方法, 交点计数为偶数时点在多边形外;交点计数为奇数时点在多边形内;凸包算法求多边形或多面体的包围盒是相当简便的;
11、只要遍历其全部顶点,就求出包围盒;对于一般的几何形体,就要依据其详细性质来求;对含有曲线、曲面的几何体进行求交时,经常先求它们的一个凸多边形或凸多面体的凸包;由于凸多边形和凸多面体间的求交相对简洁,因此可以节约肯定的运算量;例如, Bezier 曲线、 B 样条和 NURBS曲线、曲面具有凸包性质,其掌握多边形或掌握网格是其本身的凸包一般的凸包的求法因详细情形而异,下面 举一个求圆弧凸包的例子;设圆弧段的圆方程为 x x02+y y02=r2,圆弧起始角为 1,终止角为 2;对圆弧运算凸包如图 2.19所示;先依据起始角 1 与终止角 2 求出相应的弧端点 P1、P2 坐标,进而求出弧的弦中点
12、 Pm=P1+P2/2;设圆弧段的圆方程为 x x02+y y02=r2,圆弧起始角为 1,终止角为 2;对圆弧运算凸包如图 2.19 所示;先依据起始角 1 与终止角 2 求出相应的弧端点 P1、P2 坐标,进而求出弧的弦中点 Pm=P1+P2/2;再用下式运算弧中点 Pc:就该弧的包围盒顶点为 P1、P1+Pc Pm、P2+Pc Pm、P2;直线剪裁算法 有两个主要步骤; 第一将不需剪裁的直线挑出,即删去 在窗外的直线; 然后,对其余直线,逐条与窗框求交点,并将窗口外的 部分删去;Cohen-Sutherland 直线剪裁算法以区域编码为基础,将窗口及其四周的8 个方向以 4 bit 的二
13、进制数进行编码;各编码分别代表窗外上下右左空间的编码分为5 个区域: 内域:区域 0000; 上域:区域 1001, 1000, 1010; 下域:区域 0101, 0100, 0110; 左域:区域 1001, 0001, 0101;右域:区域 1010, 0010, 0110 ;,线段为明显不行见的对某线段的两当线段的两个端点的编码的规律“ 与” 非零时个端点的区号进行位与运算,可知这两个端点是否同在视区的上、下、左、右;算法的主要思想是,对每条直线 P1P2: 对直线两端点 P1、P2 编码分别记为 C1P1=a1, b1, c1, d1,C2P2=a2, b2, c2, d2其中, a
14、i、bi、 ci、di 取值范畴为 1, 0,i1, 2; 假如 ai=bi=ci=di=0,就显名师归纳总结 示整条直线,取出下一条直线,返步骤1;否就,进入步骤3;假如 |a1a2|=1 ,就第 6 页,共 19 页求直线与窗上边y=yw-max的交点,并删去交点以上部分;假如|b1b2|=1 ,|c1c2= |- - - - - - -精选学习资料 - - - - - - - - - 1,|d1d2|=1 ,作类似处理; 返步骤 1;Cohen-Sutherland 算法 C语言程序 #define LEFT 1 #define RIGHT 2 #define BOTTOM 4 #def
15、ine TOP 8 int encodefloat x,float y int c=0; ifxXR c|=RIGHT; ifxYT c|=TOP; retrun c; void CS_LineClipx1,y1,x2,y2,XL,XR,YB,YT float x1,y1,x2,y2,XL,XR,YB,YT;/x1,y1x2,y2为线段的端点坐标,其他四个参数定义窗口的 边界 int code1,code2,code; code1=encodex1,y1; code2=encodex2,y2; whilecode1.=0 |code2.=0 ifcode1&code2 .=0 return;
16、/ 位于窗口外 code = code1; ifcode1=0 code = code2; ifLEFT&code .=0 / 求线段与窗口边界的交点 x=XL; / 左 y=y1+y2-y1*XL-x1/x2-x1; else ifRIGHT&code .=0 x=XR; /右 y=y1+y2-y1*XR-x1/x2-x1; else ifBOTTOM&code .=0 y=YB; /下 x=x1+x2-x1*YB-y1/y2-y1; else ifTOP & code .=0 y=YT; /上 x=x1+x2-x1*YT-y1/y2-y1; ifcode =code1 x1=x;y1=y;
17、 code1 =encodex,y; else 名师归纳总结 - - - - - - -第 7 页,共 19 页精选学习资料 - - - - - - - - - x2=x;y2=y; code2 =encodex,y; displayline (x1,y1,x2,y2; / 线段位于窗口内 中点分割裁剪算法基本思想:与前一种 Cohen-Sutherland 算法一样第一对线段端点进行编码,并把线段与窗口的关系分为三种情形: 全在、完全不在和线段和窗口有交;对前两种情形,进行一样的处理;对于第三种情形,用中点分割的方法求出线段与窗口的交点;从 p1 动身找最近可见点的方法 :先求出 p1p2
18、的中点 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,
23、hP2, ,hPn,h,且不唯独;二维坐标与齐次坐标是一对多的关系;通常都采纳规格化的齐次坐标,即取 H=1;x,y 的规格化齐次坐标为 x,y,1 齐次坐标的几何意义:可懂得为在三维空间上第三维为常数的一平面上的二维向量;1、h 可以取不同的值, 所以同一点的齐次坐标不是唯独的;变换为齐次坐标可以是 1,1.5,0.54,6,26,9,3 等等;如一般坐标系下的点 (2,3)2、一般坐标与齐次坐标的关系为“ 一对多” 由一般坐标 h齐次坐标由齐次坐标h一般坐标3、当 h=1 时产生的齐次坐标称为“ 规格化坐标”n 维坐标;,由于前 n 个坐标就是一般坐标系下的作用 1. 将各种变换用阶数统一
24、的矩阵来表示;供应了用矩阵运算把二维、三维甚至高维空间上的一个点从一个坐标系变换到另一坐标系的有效方法;2. 便于表示无穷远点;例如:(x h, y h, h,令 h 等于 0 3. 齐次坐标变换矩阵形式把直线变换成直线段,平面变换成平面, 多边形变换成多边形, 多面体变换成多面体; 图形拓扑关系保持不变)4. 变换具有统一表示形式的优点便于变换合成便于硬件实现 矢量的含义 :矢量是由 n 个实数组成的集合;二维矩阵变换变换矩阵是对图形进行缩放、旋转、对称、错切等变换名师归纳总结 - - - - - - -第 9 页,共 19 页精选学习资料 - - - - - - - - - 是对图形进行平
25、移变换;是对图形进行投影变换, g 的作用是在x 轴的 1/g 处产生一个灭点,h 的作用是在y 轴的 1/h 处产生一处灭点; i是对整体图形作伸缩变换平移变换 旋转(顺时针)逆时针比例变换 对称变换:当 b=d=0,a=-1,e=1 时,有 x*=-x,y*=y ,产生与 y 轴对称的反射变换名师归纳总结 - - - - - - -第 10 页,共 19 页精选学习资料 - - - - - - - - - 级联变换三维变换矩阵以任意点 xf,yf,zf 为参考点的比例变换:和二维比例变换类似,对任意点参考点 把坐标系原点平移到参考点 F 在新坐标系下相对原点作比例变换 将坐标系再平移回到原
26、先的坐标原点F 的比例变换可分为以下三个步骤:名师归纳总结 绕 x 轴的旋转立体上各点的X 坐标不变,只是Y、Z 坐标发生相应的变化第 11 页,共 19 页- - - - - - -精选学习资料 - - - - - - - - - 绕 y绕 Z窗口:常规图形系统中,世界坐标系中指定的用于显示的坐标区域;视口:显示设备上用于窗口映射的坐标区域,也叫视区;规格化变换从窗口到视区的变换,称为规格化变换VX= SxWX+tx VY= SyWY+ty 缩放系数Sx = VXR-VXL / WXR-WXL Sy = VYT-VYB / WYT-WYB 平移参数Normalization Transfor
27、mation ;tx = WXR*VXL-WXL*VXR / WXR-WXL ty = WYT*VYB-WYB*VYT / WYT-WyB名师归纳总结 - - - - - - -第 12 页,共 19 页精选学习资料 - - - - - - - - - 投影变换 投影变换就是把三维物体投射到投影面上得到二维平面图形;投影的要素除投影对象、投影面外,仍有投影线;依据投影线角度的不同,有两种基本投影方法: 平行投影 parallel projection ;它使用一组平行投影将三维对象投影到投影平面上去; 透视投影 perspective projection ;它使用一组由投影中心产生的放射投影
28、线,将三维对 象投影到投影平面上去;它们的本质区分在于透视投影的投影中心到投影面之间的距离是有限的;而平行投影的投 影中心到投影面之间的距离是无限的;平行投影依据投影线与投影面之间的夹角不同,可进一步分为正投影(投影线与投影面垂 直)和斜投影:正轴测有等轴测、正二测和正三测三种;当投影面与三个坐标轴之间的夹角都相等时为等轴测;当投影面与两个坐标轴之间的夹角相等时为正二测;当投影面与三个坐标轴之间的夹角都不相等时为正三测 正轴测图的投影变换矩阵灭点:不平行于投影平面的平行线,经过透视投影之后收敛于一点,称为灭点 . 主灭点 :平行于坐标轴的平行线的灭点;第四章复习重点 消隐算法可以分为两大类:对
29、象空间方法(Object Space Methods )图象空间方法(image Space Methods)线消隐(分类、原理)凸多面体的隐匿线消隐 凹多面体的隐匿线消隐1如线段的两端点及视点在给定平面的同侧,线段不被给定平面遮挡,转 7 2 如线段的投影与平面投影的包围盒无交,线段不被给定平面遮挡,转 73求直线与相应无穷平面的交;如无交点,转4;否就,交点在线段内部或外部;如交点在线段内部,交点将线段分成两段,与视点同侧的一段不被遮挡,另一段在视点异侧,转4 再判;如交点在线段外部,转 4;4求所剩线段的投影与平面边界投影的全部交点,并依据交点在原直线参数方程中的参数值求出 Z 值即深度
30、 ;如无交点,转 5;5 以上所求得的各交点将线段的投影分成如干段,求出第一段中点;6 如第一段中点在平面的投影内,就相应的段被遮挡,否就不被遮挡;其他段的遮挡关名师归纳总结 - - - - - - -第 13 页,共 19 页精选学习资料 - - - - - - - - - 系可依次交替取值进行判定;7 终止;为削减运算量变采纳包围盒检验和深度检验的手段 .1.包围; 2.深度检验 1粗略检验 2精确检验 (此处省略)面消隐: 1.区域排序算法、2、深度缓存( z-buffer )算法、 3、射线跟踪算法、4、扫描线算法深度缓存 Z-buffer 算法帧缓冲器储存各像素颜色值 CB初始化为背
31、景值;z 缓冲器-储存各像素处物体深度值 ZB初始化最大 z 值先将 z 缓冲器中个单元的初始值置为最大值,当要转变某个像素的颜色值时,第一检查当前多边形的深度值是否小于该像素原先的深度值(储存在该像素所对应的 Z 缓冲器的单元中),假如小于,说明当前多边形更靠近观看点,用它的颜色替换像素原先的颜色;否就说明在当前像素处,当前多边形被前面所绘制的多边形遮挡了,是不行见的,像素的颜色值不转变; 初始化 ZB和 CB,使得 ZBi, j=Zmax,CBi, j=背景色;其中,i=1, 2, , m,j=1, 2, , n 对多边形,运算它在点 i, j处的深度值zi, j; 如 zijZBi, j
32、,就 ZBi, j=zij,CBi, j=多边形的颜色; 对每个多边形重复、两步;最终,在CB中存放的就是消隐后的图形;这个算法的关键在第步,要尽快判定出哪些点落在一个多边形内 解决方法:采纳包含测试;并尽快求出一个点的深度值;缺点:1:ZB和 CB两个缓存数组占用的储备单元太多,需要有一个较大容量的ZBuffer ;2:在每个多边形占据的每个像素处都要运算深度值,运算量大 光源特性和物体表面特性(必考)物体表面的颜色和明暗变化主要与两个因素有关,即光源特性和物体表面特性;光源特性包括1:光的颜色(R、 G、B )2:光的强度 由 R,G,B 三种色光的强弱打算,总的光强为:Total_Val
33、ue=0.30*Value_R+0.59*Value_G+0.11*Value_B 3:光的方向点光源分布式光源漫射光源光源:点光源、聚光源、平行光源 物体表面特性包括 :反射系数、透射系数、表面方向 1 反射系数由物体表面的材料和外形打算,分为漫反射 Specular Reflection系数; 透射系数Diffuse Reflection 系数和镜面反射记为 Tp,描述物体透射光线的才能,且有 0Tp1; 表面方向物体表面的方向用表面的法线n 来表示;多面体物体表面上每个多边形之法线为n=A,B,C;其中 A,B,C是多边形所在平面方程中 x、y、z 之系数;不考 光照模型 Illumination Model 描述物体表面的颜色明暗同光源特性、物体表面特性之间的关系;名师归纳总结 - - - - - - -第 14