《计算机图形学》练习题(答案)_第1页
《计算机图形学》练习题(答案)_第2页
《计算机图形学》练习题(答案)_第3页
《计算机图形学》练习题(答案)_第4页
《计算机图形学》练习题(答案)_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《计算机图形学》练习题1.直线扫描转换的Bresenham算法(1)请写出生成其斜率介于0和1之间的直线的Bresenham算法步骤。(2)设一直线段的起点和终点坐标分别为(1,1)和(8,5),请用Bresenham算法生成此直线段,确定所有要绘制象素坐标。(1)①输入线段的两个端点,并将左端点存储在(x0,y0)中②将(x0,y0)装入帧缓存,画出第一个点③计算常量∆x,∆y,2∆y,and2∆y-2∆x,并得到决策参数的第一个值:p0=2∆y-∆x④从k=0开始,在沿线路径的每个xk处,进行下列检测:如果pk<0,下一个要绘制的点就是(xk1,yk),并且pk1=pk2∆y否则下一个要绘制的点就是(xk1,yk1),并且pk1=pk2∆y-2∆x⑤重复步骤4,共∆x-1次(2)x=7

y=4P0=2y-x=12y=8

2y-2x=-6kpk(xk1,yk1)01(2,2)1-5(3,2)23(4,3)3-3(5,3)45(6,4)5-1(7,4)67(8,5)2.已知一多边形如图1所示,其顶点为V1、V2、V3、V4、V5、V6,边为E1、E2、E3、E4、E5、E6。用多边形的扫描填充算法对此多边形进行填充时(扫描线从下到上)要建立边分类表(sortededgetable)并不断更新活化边表(activeedgelist)。(1)在表1中填写边分类表中每条扫描线上包含的边(标明边号即可);(2)在表2中写出边分类表中每条边结构中各成员变量的初始值(3)指出位于扫描线y=6,7,8,9和10时活化边表中包含那些边,并写出这些边中的x值、ymax值、和斜率的倒数值1/m。

表1边分类表Y值(ScanLineNumber)边(EdgeNumber)1020304E15E6,E26E67E38E5,E39E410012345678910表2边的初始值

边xymax1/m41197460051976006196600711877901-1827991-193369991-13.二维变换

(1)记P(xf,yf)为固定点,sx、sy分别为沿x轴和y轴方向的缩放系数,请用齐次坐标(HomogeneousCoordinate)表示写出二维固定点缩放变换的变换矩阵。

(2)把以A(0,0)、B(1,1)和C(5,2)为顶点的三角形以顶点C为固定点放大2倍。求出放大后的三角形的顶点坐标。

(1)

(2)①平移这个对象,使得他的固定点与原点重合

②缩放这个在坐标原点的对象

③平移这个对象,使得他的固定点回到原始位置

所以A(-5,-2)

B(-3,0)

C(5,2)

4二维变换

(1)请用齐次坐标表示写出点Q(x,y)绕定点P(a,b)旋转的旋转变换矩阵。

(2)求出以A(0,0)、B(1,1)和C(5,2)为顶点的三角形绕固定点P(-1,-1)点旋转450后的三角形的顶点坐标。

(1)

x’=xr(x-xr)cosθ-(y-yr)sinθ

y’=yr(x-xr)sinθ(y-yr)cosθ

(2)①平移这个对象,使得他的固定点与原点重合

②旋转这个在坐标原点的对象③平移这个对象,使得他的固定点回到原始位置A(-1,-1)

B(-1,-12)

C(-13/2*,-19/2*)5.如图所示,L(-3,1)和R(2,6)为正方形裁剪窗口两个对角线角点,线段AB、CD、EF、GH和IJ为被裁剪线段。用Cohen-Sutherland线裁剪算法进行裁剪时要对线段的端点进行编码。(1)请写出编码规则,并在图中标出相应区域的编码(2)分别指出于点A、B、C、D、E、F、G、H对应的编码(3)根据线段端点的编码对图中所有线段分类,指出哪些线段是可见的?哪些是不可见的?哪些是候选的裁剪线段。D(3,8)B(-1,7)I(-4,7)R(2,6)C(-1,5)E(-2,3)H(3,3)A(-4,2)F(1,2)L(-3,1)1-113-1G(1,-2)(1)100110001010000100000010010101000110(2)A:0001B:1000C:0000D:1010E:0000F:0000G:0100H:0010I:1000J:1000(3)可见的:EF不可见的:GH,IJ候选的:AB,CD6.分别用Sutherland-Hodgman算法和Weiler-Atherton算法裁剪图1所示的多边形p1p2p3p4p5p6p7p8p9p1,裁剪窗口为如图所示的矩形窗口。要求:(1)用实线分别在图1(a)(b)(c)(d)中绘出用Sutherland-Hodgman算法沿裁剪窗口的左、右、上、下窗口边裁剪后的中间结果(2)用Weiler-Atherton算法对图1所示的多边形进行裁剪,以p1为起点,以图1箭头所示的方向为走向,在图1(e)中用箭头表示画出所有走过的边(包括多边形边和窗口边)及其走向;并在图1(f)中用实线绘出最后裁剪结果。7.简述多边形扫描填充算法基本原理和大致步骤,并以具体例子说明边分类表内容、扫描过程中活化边表的信息变化。(1)原理:在直角坐标系中,假设有一条从左至右的扫描线穿过多边形,从左至右开始计数,与多边形交点为奇数时,开始进入多边形,与多边形交点为偶数时,走出多边形。这样在这相邻配对的奇偶交点间的所有象素都在多边形内。如图,奇数交点a,c,都是入多边形,偶数交点b,d都是走出多边形,相邻的奇偶交点配对,a,b之间,c,d之间的象素都多边形内,可见一条扫描线上,与多边形交点个数需要为偶数。依据这样的思路,扫描线从上到下从左到右依次扫过多边形即可求得多边形所占据的象素。(注意退化情况的处理,也就是扫描线刚好经过顶点或者多边形的边本身就是水平的情况)(2)步骤:1)输入多边形的顶点的坐标2)建立边表(ET)3)初始化Y值4)初始化活性边表(AEL),设置为空5)每个扫描线从底部到顶部,做以下步骤直到ET和AEL是空的:①建立AEL②设置颜色③更新AEL:当Y=

YMAX时,删除边x=

x∆XY

=

y1④返回AEL(3)例子:8.由坐标A(0,0,0),B(1,0,0),C(0,1,0),D(0,01)确定的锥体绕直线L旋转450,其中L的方向为V=JK,且通过点C(0,1,0)。写出锥体旋转后的坐标。9.设3次参数多项式函数P(u)=au3bu2cud,求出满足下列边界条件的3次Hermite插值曲线(用矩阵表示):

P(0)=PkP(1)=Pk1P’(0)=DPkP’(1)=DPk110.Cohen-Sutherland直线段裁剪算法和Liang-Barsky直线段裁剪算法是直线段裁剪的两种基本算法,试述两种算法的基本原理,并分析它们的优点和不足。(1)通过一个矩形的裁剪区域将整个屏幕分成9个部分,并为每一个部分赋予相应的区域码,然后根据端点的位置确定这个端点的区域码。先判断能否完全接受或者完全排除一条线段,若以上2个判断无法直接得出,则逐步裁剪,选取一个位于裁剪区外的端点,把端点的区域码和裁剪边界的区域码进行逻辑与运算,若结果为真,则端点在该裁剪边界外部,这时将端点移向线段和该边界的交点处,如此循环,直到裁剪结束。(2)利用线段的参数表达形式直接判别落在窗口内的部分线段.大体上有以下几步,有些步骤依据中间的判断结果可以省略或跳转.第一步:计算出pk和qk(k=1,2,3,4)第二步:看pki的符号进行判断第三步:计算u1=max(0,qk/pk),u2=min(1,qk/pk)如果,u2>u1,则线段是可见的第四步:利用u1和u2计算端点坐标(3)比较:Cohen-Sutherland:直观方便,速度较快多次重复计算线段与裁剪窗口边界的交点,计算量大采用位逻辑乘,在有些高级语言中不便进行全部舍弃的判断仅适用于那些仅在窗口的线段,不适合跨越三个区域的线段,就不能一次做出判别Liang-Barsky:所需计算量小,更有效可以扩展成三维裁剪算法只能应用于矩阵窗口的情形10.简述Bezier曲线与B-Spline曲线的异同点,指出他们的特点和不足。11.DDA算法和Bresenham算法是两种直线生成的基本算法,试述两种算法的基本原理,并分析它们的优点和不足。(1)DDA算法:①选定x2-x1和y2-y1中较大者作为步进方向(假设x2-x1较大),取该方向上的增量为一个象素单位(△x=1),②利用式(2-1)计算另一个方向的增量(△y=△x·m=m)。通过递推公式(2-2)至(2-5),把每次计算出的(xi1,yi1)经取整后送到显示器输出,则得到扫描转换后的直线。③之所以取x2-x1和y2-y1中较大者作为步进方向,是考虑沿着线段分布的象素应均匀,这在下图中可看出。④另外,算法实现中还应注意直线的生成方向,以决定Δx及Δy是取正值还是负值。(2)Bresenham算法:假定直线斜率k在0~1之间。此时,只需考虑x方向每次递增1个单位,决定y方向每次递增0或1。设:直线当前点为(xi,y)直线当前光栅点为(xi,yi)则:下一个直线的点应为(xi1,yk)下一个直线的光栅点为右光栅点(xi1,yi)(y方向递增量0)或为右上光栅点(xi1,yi1)(y方向递增量1)(3)优缺点:DDA算法:算法简单,实现容易由于在循环中涉及实型数的运算,因此生成直线的速度较慢。浮点数运算不易硬件实现Bresenham算法:不必计算直线之斜率,因此不做除法;

不用浮点数,只用整数;

只做整数加减法和乘2运算,而乘2运算可以用硬件移位实现.

算法速度很快,并适于用硬件实现.

12.简述直线段裁剪与多边形裁剪的异同点。多边形的剪裁比直线剪裁复杂。如果按照直线剪裁算法对多边形的边作剪裁,剪裁后的多边形的边就会成为一组彼此不连贯的折线,从而给填色带来困难。多边形剪裁算法的关键在于,通过剪裁,不仅要保持窗口内多边形的边界部分,而且要将窗框的有关部分按一定次序插入多边形的保留边界之间,从而使剪裁后的多边形的边仍然保持封闭状态,以便填色算法得以正确实现13.在计算机辅助设计与图形学中,样条曲线通常采用3次多项式参数表示,请说明理由。14.图形学中消隐算法有两大类,z缓冲器(z-buffer)算法属于哪一类?请阐述它的基本原理和特点。(1)属于图像空间消隐(2)基本原理:Z缓冲器中每个单元的值是对应象素点所反映对象的z坐标值。Z缓冲器中每个单元的初值取成z的极小值,帧缓冲器每个单元的初值可放对应背景颜色的值。图形消隐的过程就是给帧缓冲器和Z缓冲器中相应单元填值的过程。在把显示对象的每个面上每一点的属性(颜色或灰度)值填入帧缓冲器相应单元前,要把这点的z坐标值和z缓冲器中相应单元的值进行比较。只有前者大于后者时才改变帧缓冲器的那一单元的值,同时z缓冲器中相应单元的值也要改成这点的z坐标值。如果这点的z坐标值小于z缓冲器中的值,则说明对应象素已经显示了对象上一个点的属性,该点要比考虑的点更接近观察点。对显示对象的每个面上的每个点都做了上述处理后,便可得到消除了隐藏面的图(3)特点:优点:(1)算法复杂度(O(nN)):对于给定的图像空间,N是固定的,所以算法复杂度只会随着场景的复杂度线性地增加(2)无须排序:场景中的物体是按任意顺序写入帧缓冲器和z缓冲器的,无须对物体进行排序,从而节省了排序的时间(3)适合于任何几何物体:能够计算与直线交点(4)适合于并行实现(硬件加速)不足:(1)z缓冲器需要占用大量的存储单元:一个大规模复杂场景中:深度范围可能为106,一个像素需要24bit来存储其深度信息。

如果显示分辨率为1280×1024,那么深度缓冲器需要4MB存储空间(2)深度的采样与量化带来走样现象(3)难以处理透明物体解决存储问题:逐区域进行z缓冲器消隐(A-Buffermethod:accumulationbuffer)16.OpenGL库函数由哪几部分组成,请简单说说各部分的分工。(1)OpenGL核心库核心库包含有115个函数,函数名的前缀为gl。这部分函数用于常规的、核心的图形处理。

(2)OpenGL实用库The

OpenGL

Utility

Library

(GLU)包含有43个函数,函数名的前缀为glu。OpenGL提供了强大的但是为数不多的绘图命令,所有较复杂的绘图都必须从点。线、面开始。Glu

为了减轻繁重的编程工作,封装了OpenGL函数,Glu函数通过调用核心库的函数,为开发者提供相对简单的用法,实现一些较为复杂的操作。(3)OpenGL辅助库包含有31个函数,函数名前缀为aux。这部分函数提供窗口管理、输入输出处理以及绘制一些简单三维物体。(4)OpenGL工具库OpenGL

Utility

Toolkit

包含大约30多个函数,函数名前缀为glut。glut是不依赖于窗口平台的OpenGL工具包,由Mark

KLilgrad在SGI编写,目的是隐藏不同窗口平台API的复杂度。函数以glut开头,它们作为aux库功能更强的替代品,提供更为复杂的绘制功能

以下内容由教师填写一、填空题(每空0.5分,共10分)1、计算机图形学中的图形是指由点、线、面、体等和明暗、灰度(亮度)、色彩等构成的,从现实世界中抽象出来的带有灰度、色彩及形状的图或形。2、一个计算机图形系统至少应具有、、输入、输出、等基本功能。3、常用的字符描述方法有:点阵式、和。4、字符串剪裁的策略包括、和笔划/像素精确度

。5、所谓齐次坐标就是用维向量表示一个n维向量。6、投影变换的要素有:投影对象、、、投影线和投影。7、输入设备在逻辑上分成定位设备、描画设备、定值设备、、拾取设备和。8、人机交互是指用户与计算机系统之间的通信,它是人与计算机之间各种符号和动作的。9、按照光的方向不同,光源分类为:,,。10、从视觉的角度看,颜色包含3个要素:即、和亮度。得分阅卷人二、单项选择题(每题2分,共30分。请将正确答案的序号填在题后的括号内)1、在CRT显示器系统中,()是控制电子束在屏幕上的运动轨迹。A.阴极

B.加速系统

C.聚焦系统

D.偏转系统2、分辨率为1024×1024的显示器需要多少字节位平面数为16的帧缓存?()A.512KB

B.1MB

C.2MB

D.3MB

3、计算机图形显示器一般使用什么颜色模型?()A.RGB

B.CMY

C.HSV

D.HLS

4、下面哪个不属于图形输入设备?()A.键盘

B.绘图仪

C.光笔

D.数据手套5、多边形填充算法中,错误的描述是()。A.扫描线算法对每个象素只访问一次,主要缺点是对各种表的维持和排序的耗费较大B.边填充算法基本思想是对于每一条扫描线与多边形的交点,将其右方象素取补C.边填充算法较适合于帧缓冲存储器的图形系统D.边标志算法也不能解决象素被重复访问的缺点6、在扫描线填色算法中,扫描线与顶点相交时,对于交点的取舍问题,下述说法正确的是()。A.当共享顶点的两条边分别落在扫描线的两边时,交点只算2个B.当共享交点的两条边在扫描线的同一边时,若该点是局部最高点取1个C.当共享交点的两条边在扫描线的同一边时,若该点是局部最低点取2个D.当共享顶点的两条边分别落在扫描线的两边时,交点只算0个7、在多边形的逐边裁剪法中,对于某条多边形的边(当前处理的顶点为P,先前已处理的多边形顶点为S)与某条裁剪线(窗口的某一边)的比较结果共有以下四种情况,分别需输出一些顶点。请问哪种情况下输出的顶点是错误的?

()A.S和P均在可见的一侧,则输出点P

B.S和P均在不可见的一侧,则输出0个顶点C.S在可见一侧,P在不可见一侧,则输出线段SP与裁剪线的交点和点S

D.S在不可见的一侧,P在可见的一侧,则输出线段SP与裁剪线的交点和P8、使用下列二维图形变换矩阵:,将产生变换的结果为()。A.图形放大2倍B.图形放大2倍,同时沿X、Y坐标轴方向各移动1个绘图单位C.沿X坐标轴方向各移动2个绘图单位D.沿X坐标轴方向放大2倍,同时沿X、Y坐标轴方向各平移1个绘图单位9、透视投影中主灭点最多可以有几个?()A.0

B.1

C.2

D.310、图形软件系统提供给用户三种基本的输入控制方式,不包含的选项是()A.请求方式

B.采样方式

C.事件方式

D.随机方式11、下面哪个不是拾取技术中拾取一个基本对象的方法?()A.指定名称法

B.拖曳法

C.特征点法

D.外接矩形法12、在明暗的光滑处理方法中,下列论述哪个是错误的?()A.Gouraud明暗模型计算中,多边形与扫描平面相交区段上每一采样点的光亮度值是由扫描平面与多边形边界交点的光亮度插值得到的B.Phong通过对多边形顶点的法矢量进行插值,获得其内部各点的法矢量C.Gouraud计算工作量比Phong方法计算工作量大D.Gouraud明暗模型处理的缺点是它使高光部位变得模糊13、光线跟踪算法中包含了哪些光照效果?()A.仅有光反射

B.仅有光透射

C.有光反射和光透射

D.都没有14、下述关于Bezier曲线Pl(t),P2(t),t∈[0,l]的论述,哪个是错误的?()A.P1(l)=P2(0)=P,在P处Pl(l)、P2(0)的切矢量方向相同,大小相等,则P1(t)、P2(t)在P处具有G1连续B.P1(l)=P2(0)=P,在P处Pl(l)、P2(0)的切矢量方向相同,大小相等,则P1(t)、P2(t)在P处具有Cl连续C.若保持原全部顶点的位置不变,只是把次序颠倒过来,则新的Bezier曲线形状不变,但方向相反D.曲线的位置和形状只与特征多边形的顶点的位置有关,它不依赖坐标系的选择15、以下关于图形变换的论述哪个是错误的?()

A.错切变换虽然可引起图形角度的改变,但不会发生图形畸变

B.平移变换不改变图形大小和形状,只改变图形位置

C.拓扑关系不变的几何变换不改变图形的连接关系和平行关系

D.旋转变换后各图形部分间的线性关系和角度关系不变,变换后直线的长度不变得分阅卷人三、判断题(每题1分,共10分。正确的在括号内划√,错误的划×)1、计算机图形学生成的基本单位是线段。()2、光栅扫描式图形显示器可看作是点阵单元发生器,可直接从单元阵列中的一个可编地址的象素画一条直线到另一个可编地址的象素。()3、DDA(微分方程法)是Bresenham算法的改进。()4、在进行圆的转换时,只要能生成8分圆,那么圆的其它部分可通过一系列的简单反射变换得到。()5、采用正方刷子生成具有一定宽度的圆弧,在斜率为±1是最粗。()6、光的三基色为:红绿蓝。()7、Gouraud光照模型使高光部位变的模糊。()8、齐次坐标提供了坐标系变换的有效方法,但仍然无法表示无穷远的点。()9、显式方程和参数曲线均可以表示封闭曲线或多值曲线。()10、Bezier曲线具有对称性质。()得分阅卷人四、问答题(1题、3题各5分,2题6分,4题7分,共23分)1、计算机图形学的应用领域主要有哪些方面?(5分)2、什么是窗口?什么是视区?简述二者的关系。(6分)3、光线跟踪的终止条件有哪些?(5分)4、利用线段裁剪的Cohen-Sutherland算法,对线段P1P2进行裁剪,写出裁剪的步骤。(7分)得分阅卷人五、综合题(1题8分,2题9分,3题10分,共27分)1、在下面的横线上将DDA算法程序补充完整,并用DDA算法扫描转换连接两点P0(0,0)和P1(8,3)的直线段,要求写出计算过程,并在图中标出扫描转换后的像素点。(1)补充DDA算法程序(2分)voidDDALine(intx0,inty0,intx1,inty1,intcolor)

{

intx;floatdx,dy,y,k;dx=x1-x0;

dy=y1-y0;k=dy/dx;

y=y0;for(x=x0;x≤x1;

x){

drawpixel(x,,color);;}}(2)扫描转换连接P0P1的直线段,并在图中标出扫描转换后的像素点(6分)2、建立用扫描线填充法将顶点为P0(2,1),P1(1,7),P2(8,5),P3(7,1),P4(6,4)的多边形填充时的有序边表及扫描线Y=4时的活性边表。(9分)3、已知图中所示三角形ABC各顶点的坐标A(2,4)、B(4,4)、C(4,1),相对A点逆时针旋转60°,各顶点分别到达A'、B'、C'。试计算A'、B'、C'的坐标值。(要求用齐次坐标进行变换,列出变换矩阵。)(10分)1、几何要素,非几何要素2、计算,存储,交互3、矢量式,编码式4、字符串的有或无剪裁(串精度),字符的有或无剪裁(字符精度)5、n1

6、投影中心,投影平面7、选择设备,字符串设备8、双向信息交换。9、点光源,分布式光源,漫射光源色调(色彩)、饱和度DCABDCCDDDBCCAA×××√√√√××√得分阅卷人四、[教师答题时间:15

分钟]问答题(1题、3题各5分,2题6分,4题7分,共23分)1、答:(共5分)(1)用户接口

(0.5分)(2)计算机辅助设计与制造(CAD/CAM)(1分)(3)地形地貌和自然资源图(1分)(4)计算机动画和艺术(1分)(5)科学计算可视化(1分)(6)游戏(0.5分)2、[三基类][教师答题时间:5分钟]答:(共6分)在计算机中,窗口是图形的可见部分,是在用户坐标系中定义的确定显示内容的一个矩形区域,只有在这个区域内的图形才能在设备坐标系下输出,而窗口外的部分则被截掉。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论