1/9计算机图形学课程模拟试卷(参考答案含评分标准)2010—2011学年第二学期年级专业学号姓名得分一、简要回答题(每题7分,共7题,共49分)1.被誉为“图形学之父”的伊万•萨瑟兰(IvanSutherland)对计算机图形学理论和应用的主要贡献有哪些?答:(1)(3分)萨瑟兰在MIT攻读博士学位时,在著名的林肯实验室完成基于光笔的交互式图形系统:Sketchpad。这一系统中许多交互式图形设计的创意是革命性的,它的影响一直延续到今天。(2)(4分)用于显示立体和彩色图像的“Lorgnette”技术和一系列图形图像算法,如分区编码的直线段裁剪算法、多边形裁剪算法、曲面的表示和消除隐藏线算法等等。2.有人认为图形学算法主要依赖于点和向量的数学运算,你是否认同这一观点?给出同意或反对的理由,并举例说明。答:这一观点是正确的(2分),主要理由和举例如下(5分):(1)图形学的很多算法属于几何算法,点(从三维、二维到一维)是最基本的几何要素,也是统一基本几何的计算机表示形式。例如,在观察流水线上的主要图形学算法,无论是表示和生成(显示)、建模(造型)、变换(包括投影、观察、消隐)都可以统一到建立基于点的几何模型;(可以以典型的光栅图形学的算法如基本图形的生成和变换、三维观察、Z-Buffer算法为例说明)(2)向量几何是图形学的重要数学基础、建立了以“方向性”概念的基本理论、思想方法、几何结构、几何算法与复杂性分析的几何计算理论体系。例如,借助向量几何可以将二维布尔运算降为一维向量计算、将三维布尔运算下降为二维布尔运算、将三维消隐算法最终归结为一维交集算法等等,从而使几何计算的复杂性大为简化。(可以以比较典型的Liang-Barsky裁剪算法、三维实体造型CSG树生成,隐藏线消除算法等为例说明)。『评分说明』若认为这一观点是错误的或持有含糊的态度,且给出的例子是片面的、主观的,则本题不得分。其他错误情况者,如未举例说明,酌情扣2分左右。3.针对多面体模型,直接用简单光照模型绘制会有什么问题?简述两种增量式光照明模型(多边形绘制)的基本思想,并指出两个算法的主要区别。答:(1)(3分)针对多面体模型,使用简单光照模型绘制会在多边形与多边形之交界处产生明暗的不连续变化,影响了曲面的显示效果,即马赫带效应。如果增加多边形个数,减小每个多边形的2/9面积,当然也能改善显示效果。但这样会数据结构将迅速膨胀,导致操作的空间与时间上升。(2)(4分)增量式光照模型的基本思想是在每一个多边形的顶点处计算合适的光照明强度或法向量,然后在各个多边形内部进行均匀插值,得到多边形光滑的颜色分布。它包含两种主要的算法:双线性光强插值和双线性法向插值,又被分别称为Gouraud明暗处理和Phong明暗处理。两种算法的主要区别为:前者采用光强插值,效果一般,而后者采用法向插值,效果较好,但计算代价较高。4.什么是区域连贯性?哪种消隐算法利用了这种连贯性提供算法效率?说明其算法思想。答:(1)(2分)区域连贯性:区域指屏幕上一组相邻的像素,它们通常为同一个可见面所占据,可见性相同。区域连贯性表现在一条扫描线上时,即为扫描线上的每个区间内只有一个面可见。(2)(5分)扫描线算法利用了这种连贯性,其算法思想如下:多边形P1、P2的边界在投影平面上的投影将一条扫描线划分成若干个区间,如图所示[0,u1][u1,u2][u2,u3][u3,u4],[u4,umax]覆盖每个区间的有0个、1个或多个多边形,但仅有一个可见。在区间上任取一个像素,计算该像素处各多边形(投影包含了该像素的多边形)的深度值,深度值最大者即为可见多边形,用它的颜色显示整个区间5.中点画圆算法中,如何消除乘法运算的?答:(1)(3分)中点画圆算法的判别式如下(引用教学课件)假设(2)(4分)若构造上述两个变量的增量关系,并代入判别式,则可消除原判别式中的乘法运算。0020)(8128*4510iiiiiiiiHHyxHxHHRH20)(8128iiiiiyxSExE0160820)(88812812)1(81111iiiiiiiiiiiHSEHSEyxSEExxE3/9消除了乘法运算后变量关系:(下表可以不给出)xyHESEx=x+1H=0不变H+EE+8SE+8H0y-1H+SEE+8SE+166.加权区域反走样方法中,定义加权函数或加权表的意义何在?答:(7分)权函数w(x,y)以像素A的中心为原点建立二维坐标系,w(x,y)反映了微面积元dA对整个像素亮度的贡献大小,与dA到像素中心距离d成反比。例如,加权函数一般取高斯函数或用离散的加权表(经验值矩阵),如『评分说明』未给出以上两个表达式的情况,不扣分。7.需要哪两个步骤判断给定的点P1(x1,y1,z1)是否遮挡了另一个点P2(x2,y2,z2)?答:需要判断(1)两个点是否在同一投影线上,(2)如果是,再比较两个点在观察坐标系下的深度Z值,从而确定两点之间存在的遮挡关系。(『评分说明』这两个步骤分别为3分和4分)二、算法分析和计算题(前三题每题9分,后二题每题12分,共计51分)1.根据抛物线的正负性和对称性,当y∈[-24,24]时,推导中点算法中的判别式。答:本题抛物线关于x轴对称,y∈[-24,24]时,x∈[-5,19]若P(x,y)在曲线上,则P’(x,-y)也在曲线上因此,只需要考虑设计y=0部分的曲线生成算法(y∈[0,24],x∈[-5,19])。0524),(2yxyxfRyxSExEiii82020)(81212800222222exp212exp21),(yxdyxw124212565246864256522142188125242322212019181716151413121110987654321设计中点画线算法时:构造判别式如下:(2分))曲线下方,点(0在曲线上),点(0在曲线上方),(点012024),(2yxyxyxxyyxF考虑到曲线上点的斜率是变化的:(1分)12112112112yyyydxdy因此,以点P(1,12)为分界,将y=0部分的抛物线分为两部分:(1)(3分)点P左边部分抛物线,点的斜率=1,因此当y=y+1时,中点M(x+0.5,y+1)的判别式为:D1(M)=F(x+0.5,y+1)=(y+1)2-24(x+0.5)-120=y2+2y-24x-131若D1(M)0取点(x+1,y+1),且D1(M’)=F(x+1.5,y+2)=D1(M)+2y-21若D1(M)0取点(x,y+1),且D1(M’)=F(x+0.5,y+2)=D1(M)+2y+3若D1(M)=0一致地取点(x+1,y+1)或者(x,y+1)D1(M)的初值为-12,(2)(3分)点P右边部分抛物线,点的斜率1,因此当x=x+1时,中点M(x+1,y+0.5)的判别式为:D2(M)=F(x+1,y+0.5)=(y+0.5)2-24(x+1)-120=y2+y-24x-143.75若D2(M)0取点(x+1,y),且D2(M’)=F(x+2,y+0.5)=D2(M)+y-47.25若D2(M)0取点(x+1,y+1),且D2(M’)=F(x+2,y+1.5)=D2(M)+3y-44.25若D2(M)=0一致地取点(x+1,y)或者(x+1,y+1)D2(M)的初值为-11.75为消除浮点运算,右边部分抛物线的判别式可以用4×D2(M)代替D2(M)的计算。『评分说明』(1)本题答案不唯一。另一种计算方法为,取用判别式为524),(2yxyxF,虽然与上述计算步骤类似,计算公式不一样,但比较复杂。若计算步骤完整,同样视为有效。(2)若过程步骤正确,但计算存在非原则错误者,每步可酌情扣分1分。(3)没有按斜率=1或1将y=0部分抛物线分成两部分进行分别处理的,至少扣4分。(4)判别式递推式未给出或有计算错误的情况,不扣分。5/91000000000000),,(zyxzyxssssssSP0P1P2P3P4P5ABCDI1I2I3I4I5I6I7(5)回答用参数曲线的方法生成抛物线,虽然可行,但不符合题目要求,不能得分。2.在坐标系Oxyz中,计算将矢量P(1,1,1)Q(2,2,2)变换到矢量P’(0,0,0)Q’(0,0,1)的变换矩阵。答:先平移,将P平移到P’,经绕y旋转-45度和x轴旋转θ角,即使矢量PQ与z轴正方向重合。沿z坐标轴比例变换,比例系数1/31/2因此,包括以下四个步骤:(1)(2分)平移变换T(-1,-1,-1)1000110010101001)1,1,1(T(2)(2分)绕y轴顺时针旋转45度得到Ry(-45)使得PQ落在YOZ平面。10000)45cos(0)45sin(00100)45sin(0)45cos()45(yR(3)(2分)绕x轴旋转θ(sin=1/31/2,cosθ=(2/3)1/2)使得PQ与Z轴重合,方向相同。(4)(2分)比例变换S(1,1,1/31/2)(1分)最后得到复合变换矩阵为S(1,1,1/31/2)•Rx(θ)•Ry(-45)•T(-1,-1,-1)『评分说明』(1)本题答案不唯一,还存在另一种答案,即第1步和最后步骤相同,第2步为绕x轴旋转45度,第3步绕y轴转θ,可判为有效。(2)若只回答出4个步骤的名称,但未给出变换矩阵或变换参数错误较多者,本题可酌情扣=4分。最后的复合变换矩阵的值未计算或计算结果有差错,不扣分。3.如图所示,一多边形P0P1P2P3P4P5和裁剪窗口ABCD,试写出用逐次多边形裁剪(Sutherland-Hodgman)算法裁剪的过程。10000cossin00sincos00001)(xR6/9P0P1P2P3P4答(2分)对于左边AD输入P0P1P2P3P4P5输出P0P1P2P3P4P5(2分)对于上边AB输入P0P1P2P3P4P5输出P0I7I6P2I5I4P4P5(2分)对于右边BC输入P0I7I6P2I5I4P4P5输出P0I7I6P2I5BI3P5(2分)对于右边CD输入P0I7I6P2I5BI3P5输出P0I7I6P2I5BI3I2I1(1分)最后输出为P0I7I6P2I5BI3I2I1『评分说明』若未给出每步输入输出,则至少扣4分,若输入输出的顶点序列局部错误,每步错误酌情扣1分;若未写出多边形裁剪规则的应用过程,若裁剪边的顺序改为相反(即逆时针)的情况,均不扣分。4.现有P0、P1、P2、P3和P4五个控制点,如下图所示。回答下列问题:①构造一条包含此5个点的Bezier曲线是几次?并写出此Bezier曲线函数及其矩阵形式。②试根据Bezier曲线的可分割性,在图上画出t=0.5时,对应曲线上的点P(t)。③若前面三点P0P1P2和后面三点P2P3P4分别拟合一段Bezier曲线,前后两段之间满足GC1连续的条件,这些控制点应该满足什么几何关系?答:(1)4次Bezier曲线,曲线函数为]1,0[,)(BEZ)(404,ttPtPiii)!(!!其中)1()(BEZ444,ininCttCtiniiii7/9P0P1P2P3P4P(1/2))1()0(12ppi=0,4『评分说明』本小题3分,曲线表示未能正确写出矩阵形式,但正确写出代数形式,可酌情扣1分。若P(t)写成列向量的形式,则上式改为矩阵的转置形式,结果有效。(2)曲线上的点P(1/2),如图所示。本小题1分。(3)