欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    计算机图形学复习资料Word格式.docx

    • 资源ID:4599056       资源大小:299.57KB        全文页数:31页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    计算机图形学复习资料Word格式.docx

    1、图形信息表达精确、精炼。图形信息能“实时”的反映事物的分布和变化规律6 计算机图形学的应用计算机辅助设计及计算机辅助制造科学计算可视化地图制图与地理信息系统计算机动画、游戏用户接口计算机艺术7 计算机图形系统作为一个图形系统,至少应具有计算、存储、输入、输出、对话等五个方面的基本功能。计算机图形系统主要有三部分构成:人、图形软件包、图形硬件设备。图像硬件设备通常由图形处理器、图形输入设备和输出设备构成。第二章1图形的扫描转换确定一个像素集合及其颜色,用于显示一个图形的过程,称为图形的扫描转换。从本质上讲,图形的扫描转换是由参数表示形式到点阵表示形式的转换过程。PS1:在输出设备上输出一个点,首

    2、先需要计算出最逼近该点的像素位置,其次需要把应用程序中的坐标信息转换成所用输出设备的相应指令PS2:在显示器有限个像素中,确定最佳逼近该直线的一组像素,并且按扫描线顺序,对这些像素进行写操作,这个过程称为直线的扫描转换。2 DDA算法最基本思想:从x的左端点x0开始,向x右端点步进,步长=1(个像素)。X步进后,用y=kx+b计算相应的y坐标。最后取像素点(x, 取整round(y)作为当前点的坐标。即当x每递增1,y递增k。PS:实际代码时用Y+0.5替代取整。当 |k|1时,必须把x,y地位互换。按照从(x1, y1)到(x2, y2)方向不同,分8个象限。例如对于方向在第1a象限内的直线

    3、而言,取增量值Dx=1,Dy=k。对于方向在第1b象限内的直线而言,取增量值Dy=1,Dx=1/k。其余同理。优点:最简单,最直接的画线算法。采用增量的思想,每计算一个像素,只需计算一个加法。缺点:由于斜率很可能是小数(浮点数),因此每个加法都意味着是浮点运算,浮点运算不利于硬件实现;每次加法后还必须进行一次四舍五入后的取整运算。3 中点画线法假设当前像素点为P(xp, yp) ,则下一个像素点为P1(右) 或P2(右上) 。设M=(xp+1, yp+0.5),为p1与p2之中点,Q为理想直线与x=xp+1垂线的交点。将Q与M的y坐标进行比较。当M在Q的下方,则P2应为下一个像素点;M在Q的上

    4、方,应取P1为下一点。具体算式:d=F(M)=F(xp+1,yp+0.5) =a(xp+1)+b(yp+0.5)+c(a=y0-y1, b=x1-x0,c=x0y1-x1y0)当d0,M在Q点上方,取右方P1为下一个像素;当d=0,选P1或P2均可,约定取P1为下一个像素;改进1:根据前一点的判别式值d和整数增量即可得到后一点的判别式值d。 因此可采用增量计算,只有加法,提高运算效率。若当前像素处于d0情况,则取正右方像素P1 (xp+1, yp ), 要判下一个像素位置,应计算d=d+a;若d 1,即令d = d1, 保证 d 介于0与 1之间。当d = 0.5 时, 直线接近右上方像素,d

    5、 = 0, 取右上方像素,当 e 0;圆内点: F(x,y) 0设M是待选像素P1,P2的中点, M坐标(xp+1,yp-0.5),判断d=F(M)若 d=0, 则应取右下P2(Xp+1,Yp-1)为下一像素,而且下一像素的判别式为d=d+2(xp-yp)+5。例:第一个像素是(0,R),第一个M的坐标为(1,R-0.5),则判别式d的初始值为1.25-R。为了进一步提高算法的效率,可以将上面的算法中的浮点数改写成整数,将乘法运算改成加法运算,即仅用整数实现中点画圆法。即使用e=d-0.25代替d,即e0=1-R。则判别式 d 0 对应于e -0.25 ,由于 e0=1-R 的初值为整数, 且

    6、在运算中增量为整数,故 e -0.25 等价于 e 0 !7 Bresenham画圆法基本思路:通过比较临近像素点到圆弧的距离,设法求出该距离的递推关系,并通过符号判别像素取舍。设从点Pi(xi,yi)出发,顺时针画第一个四分圆。待选点与圆弧只可能有5种关系。下一像素有3种可能的选择:H=(xi+1)2+yi2-R2D=(xi+1)2+(yi-1)2-R2V=xi2 +(yi-1)2-R2 选择像素的原则:使其与实际圆弧的距离平方达到最小具体算法:考察右下角像素D 与实际圆弧的近似程度:当D0时,D在圆外,情形结论:0时,若2 (D+yi) -1 0,选H若2 (D+yi) -1 0,选D若2

    7、 (D -xi)-1 0,选D 若2 (D -xi)-1 0,选V当D=0时,选D完整流程:(1) 初值:从(0, R)开始画圆, D=(0+1)2+(0-1)2-R2 =2(1R);(2) 根据D的符号判断,计算dHD或 dDV,确定选中D、H、V中某点;(3) 若下一像素为H(x,y) (x1,y),则 D D2x1;(4) 若下一像素为D(x,y) (x1,y1),则 D D2x2y2;(5) 若下一像素为V(x,y) (x,y1),则 D D2y1;(6) 重复(2)(5), 直至完成圆弧。第三章1多边形的表示方法A顶点表示:用多边形的顶点序列来刻画多边形。表示方法直观,几何意义强,占

    8、内存空间少。但没指明哪些像素在多边形内,不能直接用于着色B点阵表示:用位于多边形内部或边界上的像素集合来刻画多边形。会失去很多重要的几何信息,但它是光栅显示系统显示面着色时所需的图形表示形式。2 扫描转换与区域填充的联系与区别(1)定义多边形的扫描转换:从多边形顶点表示到点阵表示的转换,这种转换称为多边形的扫描转换。这种转换就是给多边形包围的区域着色的过程。即从多边形的给定边界出发,求出位于其内部的各个像素,并将其灰度和颜色值写入帧缓存中相应单元。主要用来填充多边形区域以及由多边形拟合的其他简单曲线区域。区域填充:从给定的位置开始涂描直到指定的边界为止。区域是指一组相邻而又相连的像素,且具有相

    9、同的属性。区域填充可用在具有复杂形状边界的多边形以及交互式绘图系统中。(2)联系都是光栅图形面着色,二者可相互转换。当已知顶点表示的多边形内一点作为种子点,并用扫描转换直线段的算法将多边形的边界表示成八连通区域后,多边形扫描转换问题就可转化为区域填充问题;若已知给定区域是多边形区域,并且通过一定的方法求出它的顶点坐标,则区域填充问题便可以转化为多边形扫描转换问题。(3)区别A基本思想不同,各自应用的场合不同。多边形扫描转换是指将多边形的顶点表示转换成点阵表示的方法,而区域填充只改编了区域的填充颜色,没有改变区域的表示方法。B对边界的要求不同。多边形扫描转换不要求多边形的边界封闭。而区域填充为了

    10、防止递归填充时跨越区域的边界,需设定边界。C基于的条件不同。多边形扫描转换是从多边形的边界信息出发,利用多种形式的连贯性进行填充;区域填充算法给定区域内一点作为种子点,从这点根据连通性将新的颜色扩散到整个区域。3 矩形填充填充从ymin到ymax每条扫描线位于xmin和xmax之间的区段就可以了。共享边的处理方式:如果像素的中心落在矩形边界的左方或下方时,该像素属于矩形,否则不属于该矩形区域,也就是说,如果象素的中心落在矩形边界的右方或上方时,该象素不属于矩形区域。4 扫描转换三种方法逐点判断算法(射线法、弧长法);扫描线填充算法;边缘填充算法(1)射线法由被测点向某方向做射线,计算此射线与多

    11、边形所有边的交点个数。若交点个数为奇数,则被测点在多边形内部;若交点个数为偶数(包括0),则该点在多边形的外部。规定射线过顶点时,计数为1;在射线左边的边与该射线相交时交点有效,应计数;而在射线右边的边与射线相交时交点无效,不计数 (左闭右开原则)。(2)弧长法前提:多边形由有向边组成, 即规定沿多边形各边的走向其左侧(或右侧)为多边形的内部。方法:以被测点为圆心作单位圆,将全部有向边向单位圆作径向投影,并计算其在单位圆上弧长的代数和。若代数和为0,则被测点在多边形之外;若代数和为2Pi,则被测点在多边形之内。(效率低)(3)扫描线填充算法算法思想:按扫描线顺序,先计算出扫描线与多边形区域边界

    12、的交点,然后判断扫描线上的哪些部分在区域边界之内,最后用要求的颜色对边界内的像素填色。实现方法:依次考察各条扫描线,一条扫描线从左至右与多边形的交点是成对出现的。即A、B点,C、D点之间的像素都位于多边形之内,则A、B为一个区段, C、D为一个区段。对这些区段内的像素用指定的颜色进行填充后,就完成了该扫描线的填充工作,再继续下一条扫描线。实现步骤(四步):A求交点:计算扫描线与多边形各边的交点B交点排序:把所有交点按递增顺序进行排序C交点配对:第一个交点与第二个交点,第三个交点与第四个交点等,每对交点代表扫描线与多边形的一个相交区间(A、B) (C、D)D区间填色:把这些相交区间内的象素置成多

    13、边形颜色,把相交区间外的象素置成背景色。注1:如何保证交点正确配对?答:检查两相邻边在扫描线的哪一侧。若共享顶点的两条边:分别落在扫描线两边,取交点1次;均高于扫描线,取交点2次;均低于扫描线,取交点0次。(具体实现:检查顶点的两条边的另外两个端点的y值,按这两个y值中大于交点y值的个数是0、1、2来决定交点是取零个、一个、两个。)注2:边界上像素的取舍问题?落在右/上边界的象素不予填充,而落在左/下边界的象素予以填充。对扫描线与多边形的相交区间,取“左闭右开”;而正确配对则保证了多边形的“下闭上开”。数据结构:为了求出扫描线与多边形边的交点,最简单的方法是将多边形的所有边放在一个表中,称之为

    14、边表,在处理每条扫描线时,从表中顺序取出所有的边,分别求这些边与扫描线的交点。实际上在进行扫描线与多边形边求交点时,应只求那些与扫描线相交的边的交点。把与当前扫描线相交的边称为活性边。并把它们按与扫描线交点 x 坐标递增的顺序存放在一个链表中,称此链表为活性边表。边表(ET)构造:先按端点的纵坐标值对所有边作总分组,再将同一组中的边按端点X坐标递增的顺序进行排序。活性边表(AET) :假设当前扫描线与多边形的某一条边的交点坐标为x,那么下一条扫描线与该边的交点不必从头计算,只要加上一个增量即可。(设边AB的斜率为k,若其与扫描线yi的交点横坐标为xi,则与扫描线yi1的交点的横坐标为: xi1

    15、xi1/k )活性边表(AET)的结点中至少应为对应边保存如下内容:X: 边与当前扫描线的交点的X坐标; X: 当前扫描线到下一扫描线之间x的增量Ymax: 边所交的最高扫描线号;算法步骤:A数据结构和算法本身要比逐点判断算法复杂。B速度比逐点判断算法快得多。C利用边的连贯性来加速交点的计算D利用AET以排除盲目求交E利用扫描线的连贯性以避免逐点判别对各种表的维持和排序开销大。(4)边缘填充算法对于每一条扫描线和每条多边形边的交点(x1,y1),将该扫描线上交点右方的所有像素取补。(对该区域内象素颜色作偶数次取补运算后,该区域内象素的颜色保持不变,而做奇数次取补运算后,该区域内象素的颜色变为M

    16、。优点是算法简单,缺点是对于复杂图形,每一象素可能被访问多次,增加了运算量。(5)(栅栏)边缘填充算法栅栏:指的是一条与扫描线垂直的直线。栅栏位置通常取多边形的顶点,且把多边形分为左右两半。对于每个扫描线与多边形的交点,将交点与栅栏之间的象素用多边形的属性值取补。算法特点:A用求补运算代替排序B数据结构和程序结构简单C需要对帧缓存的大量象素反复赋值D运行速度比扫描线算法慢5 区域填充区域:指已经表示成点阵形式的填充图形,它是象素的集合。分类:4连通内部表示区域:可以从任一象素出发,通过上、下、左、右等4个方向的移动,到达另一个象素;8连通内部表示区域:从任一个象素出发,需要通过水平、垂直、对角

    17、线等8种方向的移动,到达另一个象素。区域的特点:A一条扫描线上的像素存在着相关性;B在多边形边处,像素性质才发生变化;C将相邻像素放在一起测试,从而减少测试点的数目。指先将区域的一点赋予指定的颜色,然后将该颜色扩展到整个区域的过程。区域填充算法要求区域是连通的。区域建立和定义的方式:A1内定义区域:区域内部所有象素具有同一种颜色或亮度值,而区域外的所有象素具有另一种颜色或亮度值。A2漫水法:将该区域内的全部象素都设置为新值的算法,即填充内定义的区域B1边界定义区域:边界上所有象素均具有特定的颜色或亮度值,而在区域内的象素则具有不是新值的某种颜色或亮度值。B2边界填充算法:将边界定义区域中的全部

    18、象素值都设置为新值的算法。6 漫水法(种子填充法)设(x,y)为四连通区域内部的一点,old_Color为区域内部所有象素的原色。现取(x,y)为种子点,要将整个区域填充为新的颜色new_Color。填充算法:先判别象素(x,y)的颜色:若它的值等于old_Color,说明该象素位于该区域内部,则设置该象素的颜色为new_Color,并对与该象素相邻的上、下、左、右4个相邻象素作递归填充;否则说明该象素的颜色在区域外或已被填充过,不再进行处理。7 边界填充算法与漫水法的基本思想一样,只是在测试(x,y)点的象素是否处在区域之内同时又未被访问过时,包括两部分的内容:与边界值相比较,以检测此象素是

    19、否为该区域的一部分;与新值相比较,以决定该象素是否已被访问过。前提条件:在初始状态,区域内没有一个象素已设置为新值。但是允许新值等于边界值。在区域内测试(x,y)点的象素是否在区域之内同时又未被访问过,一般采用堆栈的方法。对边界定义的区域进行填充,基本流程如下 :A种子象素入栈,当栈非空时,执行如下三步操作:B栈顶象素出栈;C将出栈象素置成多边形色;D按上、下、左、右的顺序检查与出栈象素相邻的四个象素,若其中某个象素不在边界上且未置成多边形色,则把该象素入栈。A算法程序简单,表达清楚B需要反复递归,其执行效率并不高C未考虑象素间的相关性,而是孤立地对一个个象素进行测试。8 扫描线区域填充算法利

    20、用了象素之间的连贯性,将扫描线上位于区域内部的相邻象素作为一个区域来考虑,只选一个象素作为代表进栈,从而极大地减少了对栈空间的需求,并且显著地提高了执行效率。算法过程:首先填充当前扫描线上位于区域内部的一个区段,它的颜色为old_Color,现在将fill_Color作为区域填充的新颜色;然后确定与这一区段相邻的上、下两条扫描线上位于区域内部的区段,分别将它们右端象素作为种子点保存起来。反复进行这一过程,直到保存的区段都填充完毕为止。基本步骤:A种子象素压入堆栈;B从包含种子象素的堆栈中推出区段的种子象素;C沿着扫描线对种子象素的左右象素进行填充,直至遇到边界象素为止,标记区段的左、右端点坐标

    21、为xl和xr;D在区间xl,xr中检查与当前扫描线y上、下相邻的两条扫描线上的象素。若存在非边界、未填充的象素,则把每一区间的最右象素作为种子点压入堆栈,返回第步。E堆栈为空时结束。第四章1输出图元属性在图元输出之前,可为其指定不同的属性,属性定义了图元在输出设备上的外部特征。如线宽、线型、色彩等。(1)线宽控制顺着扫描所产生的线条轨迹,移动一把具有一定宽度的 “刷子”,刷子的形状可以是一条线段或一个正方形。也可以采用区域填充的办法间接产生有宽度的线。(2)线型控制使用具有不同线型的线条来表示不同的含义,线型属性主要包括实线、虚线、点划线。2线宽控制(1)线刷子法:在扫描转换图元时,同时显示n

    22、个像素。这样就将原来绘制单个像素的语句改写成以该像素为中心绘制水平或垂直排列的多个像素。(斜率绝对值小于1,垂直方向上像素复制;斜率绝对值大于1,水平方向上像素复制)算法简单、执行效率高,适合于比较小的线宽。A线段的两端只有水平或垂直两种情况;B曲线要根据当前绘制像素的斜率来决定是在水平方向还是垂直方向复制像素C在折线连接处由水平复制转为垂直复制时,会产生缺口 D当线宽为偶数个像素时,线条要么粗一个像素,要么细一个像素。(2)方形刷子法:将原来绘制单个像素的语句改写成以该像素为中心绘制画笔位图的语句。也就是将设定宽度为k的画笔的中心沿线段移动,即可产生具有线宽k的线条。(3)区域填充法:根据线

    23、条的宽度,计算出线条的外轮廓,然后调用填充图元的生成函数将其填充,产生具有一定线宽的线条。3线型控制显示虚线时:把画线算法修改为沿一直线输出带有间隙的短实线;点划线:是每画一短实线加入一点;其他线型:可通过短划线的长短不同及间隙不同来重新组合得到。*4 字符ASCII码字符、汉字字符表示方法:(1)位图表示对输出字符要求较高时使用。需占用大量存储空间,可以使用固定大小的字体来产生大小和字形等方面的各种变化,但效果往往不能令人满意。(2)轮廓线表示:采用直线或二、三次Bezier曲线的集合来描述一个字符的轮廓线。可对字符的轮廓线作变换产生一种字体的各种变化,只需存储一套轮廓线表示,可节省大量的存

    24、储空间,但扫描转换需要更长的处理时间。字符属性:在输出字符之前,往往需要指定一系列字符属性。包括字体、字形、字符大小、字符间距、字符颜色、字符串对齐方式等5 图形裁剪在放大显示一幅图形的一部分区域时,必须确定图形中哪些部分落在显示区之内,哪些落在显示区之外,以便显示落在显示区内的那部分图形。这个选择过程称为裁剪。实质:决定图形中哪些点、线段、文字、以及多边形在窗口之内。裁剪的基础:图元关于窗口内外关系的判别、图元与窗口的求交。A点裁剪:点(x, y)在窗口内的充分必要条件是,X属于XMIN,XMAX,Y同理B直线裁剪:待裁剪线段和窗口的关系若为线段完全可见、显然不可见,可直接处理;若线段至少有

    25、一端点在窗口之外,但非显然不可见,需求交。6直线裁剪算法(1)Cohen-Sutherland法对于每条线段P1P2,若P1P2完全在窗口内则显示该线段P1P2,取之;若P1P2明显在窗口外则丢弃该线段P1P2,弃之;若线段既不满足“取”的条件也不满足“弃”的条件,则把线段分成两段。其中一段完全在窗口外,可弃之。然后对另一段重复上述处理。A建立区域码:区域码:表示直线端点相对位置的4位二进制代码。区域码按照点与窗口边界的相对位置编码,即区域码的4位分别代表端点位于窗口的上、下、左、右在窗口上边线之上,第4位为1,否则第4位为0;在窗口下边线之下,第3位为1,否则第3位为0;在窗口右边线之右,第2位为1,否则第2位为0;在窗口左边线之左,第2位为1,否则第1位为0;B依区域码裁剪:若code1=0且code2=0,P1P2明显在窗口内,则取若code1&code20,P1P2明显在窗口外,则弃;在交点处把线段分为两段。注:如何判定应该与窗口的那条边求交?


    注意事项

    本文(计算机图形学复习资料Word格式.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开