1、一 判断题(10 分) 1 计算机图形生成的基本单位是线段。 ( ) 2 在种子填充算法中所提到的八向连通区域算法同时可填充四向连通区 ; ( ) 3 齐次坐标提供了坐标系变换的有效方法,但仍然无法表示无穷远的点; ( ) 4 若要对某点进行比例、旋转变换,首先需要将坐标原点平移至该点,在新的坐标系下做比例或旋转变换,然后在将原点平移回去; ( ) 5 显式方程和参数曲线均可以表示封闭曲线或多值曲线; ( ) FTFTF14如果投影空间为平面,投影线为直线,则称该投影为平面几何投影。(T) 15.平面几何投影分为两大类:透视投影和平行投影。(T)11.齐次坐标的表示不是唯一的( T )13.B
2、 样条曲线不具有变差缩减性( F )14.比例变换和旋转变换可以交换先后次序,变换结果不变( F )15.计算机图形学的标准通常指数据文件格式标准和子程序界面标准( T )二、判断题(请给正确的达上“” ,错误的打上“” ,每小题 2 分,共 20 分)1、所有图形都可以看成是由直线段组成的。( )2、图形变换有两种形式:坐标模式变换和图形模式变换。( )3、自由曲线可以用一条标准代数方程来描述。( )4、B 曲线具有对称性质。( )5、齐次坐标可表示图形中无穷远点。 ( )6、组合变换就是由若干个基本的几何变换组合而成( )7、四向种子填充算法可以用于填充八连通区域。 ( )8、多边形裁剪实
3、际就是直线段裁剪的简单组合。 ( )9、三维图形的投影变换分为正平行投影和斜平行投影。 ( )10、三视图指的是主视图、仰视图、俯视图。 ( )一、选择题(每小题 2 分,共 20 分)题号 1 2 3 4 5 6 7 8 9 10答案 D B D B C C D B A C二、判断题(请给正确的达上“” ,错误的打上“” ,每小题 2 分,共 20 分)题号 1 2 3 4 5 6 7 8 9 10答案 二单项选择题(20 分) B 2、计算机图形学与计算机图象学的关系是( )。A)计算机图形学是基础,计算机图象学是其发展B)不同的学科,研究对象和数学基础都不同,但它们之间也有可转换部分C)
4、同一学科在不同场合的不同称呼而已D)完全不同的学科,两者毫不相干C 3、触摸屏是( )设备。A)输入 B)输出 C)输入输出 D)既不是输入也不是输出1计算机图形显示器一般使用什么颜色模型?( A ) A. RGB; B. CMY; C. HSV ; D. HLS 3下述用数值微分法(DDA)画斜率的绝对值小于 1 的直线的 C 语言子程序中哪一行有错? ( A ) Void drawLineWithDDA (int x1, int y1, int x2, int y2, int color) A. int x, y; B. float k = (float)(y2-y1)/(x2-x1);
5、C . for(x=x1,y=y1;x 0,那么 xx 1、yy 1和 xendx 2。(6) 测试整条线是否已经画完,如果 x xend就停止。(7) 在当前的(x,y)坐标画一个点。(8) 增加 x:xx1。(9) 根据方程 ymxb 计算下一个 y 值。转到步骤(6) 。6使用 Bresenham 算法画斜率介于 0和 45之间的直线所需的步骤。解答:用 Bresenham 算法画直线的过程如下:(1)计算初始值dx x2x 1 Inc2 2(dydx)dy y2y 1 d Inc1 dxInc1 2dy(2)设置左下方的端点坐标为(x,y) ,同时将 xend 设为 x 的最大值。如果
6、 dx 0, 那么 xx 1、yy 1 和 xendx 2。(3) 在当前的(x,y)坐标画一个点。(4) 判断整条线段是否已经画完,如果 xx end 就停止。(5) 计算下一像素的位置。如果 d0 时,重复步骤 7 和 8。否则结束。3、已知三角形 ABC 各顶点的坐标 A(1,2)、B(5,2)、C(3,5),相对直线 Y=4 做对称变换后到达 A、B 、C。试计算 A、B 、C的坐标值。 (要求用齐次坐标进行变换,列出变换矩阵)解:(1)将坐标系平移至 P1 (0,4)点140AT(2) 以 X 轴对称10BT(3)将坐标系平移回原处140CT(4) 变换矩阵:T=T A*TB*TC=
7、 180(5) 求变换后的三角形 ABC 各顶点的坐标 A、B、C A: 1618012121 TYXAXA=1, Y A=6 B: 1651801251251 TBXB=5, Y B=6 2)1()5.(ayxbC: 131801531531 TYXCXA=3, Y A=3 4、已知一直线段起点(0,0) ,终点(-8,-3 ) ,利用 Bresenham 算法生成此直线段,写出生成过程中坐标点及误差 的变化情况。并在下面的方格中,标出直线上各点 0)(2)()()(11 iii iii yyxxxy 误 差 初 值误 差 计 算 公 式 :解: 以 X 方向计长1830XY走步数 C=8是
8、第三象限 0)(11,1 iri iii xyxC=8 x0= 0,y 0=0,取点(0, 0)C=7 (x 1)= 2Y-X=6-8=-2=0)y = y + 1; e = e 2 * dy;4、试编写按逆时针方向生成第二个 8 分圆的中点算法算法设计:(1) 输入圆的半径(2) 定义圆当前点坐标 x 和 y、中点偏差判别式 d、像素点颜色 rgb(3) 计算 d=1.25-R,x=0,y=R, rgb=RGB=(0,0,255).(4) 绘制点(x, y),及其在八分圆中的另外 7 个对称点(5) 判断 d 的符号,若 d0,则(x, y)更新为(x+1,y),d 更新为 d+2x+3,否
9、则(x, y)更新为(x+1,y-1),d 更新为 d+2(x-y)+5.(6) 当 x 小于等于 y,重复步骤(4) 和(5 ),否则结束。MidpointCircle(r,color)int r, color;float x,y;float d;x=0;y=r;d=1.25 r/1.414;drawpixel(x, y, color);while (xy)if (d0)d+=2*x+3;x+;elsed+=5+2*(x-y);x+;y-; drawpixel(x,y,color);三、论述题1、论述圆的 Bresenham 算法的原理,方法和步骤。Bresenham画圆算法是在每一步考察两
10、个可能的像素点中哪一个更靠近理论圆周,从而推出沿圆周的整数位置。基本思想:通过比较像素与圆的距离平方来避免开方运算。基本方法:每一步都选择一个离开实际圆周最近的点P i(xi,yi)使其误差项最小。设圆之半径为r。先考虑圆心在(0,0),并从x=0,y=r开始的顺时针方向的1/8圆周的生成过程。在这种情况下,x每步增加1,从x=0开始,到x=y结束。即有:xi+1=xi+1相应的y i+1则在两种可能中选择:yi+1=yi,或者 yi+1=yi-1选择的原则是考察精确值y靠近y i还是靠近y i-1,计算式为:y2=r2-(xi+1)2d1=yi2-y2=yi2-r2+(xi +1)2d2=y
11、2-(yi-1)2=r2-(xi +1)2-(yi -1)2令p i=d1-d2,并代入d1, d2,则有pi=2(xi +1)2+ yi 2+( yi -1)2-2r2 (1)pi称为误差。如果p i0则y i+1=yi,否则y i+1= yi -1。p i的递归式为:pi+1= pi+4xi+6+2(y2i+1- yi2)-2(yi+1- yi) (2)pi的初值由式(1)代入x i=0, yi =r而得pi=3-2r (3)根据上面的推导,圆周生成算法步骤为:1、求误差初值,p i=3-2r;i=1;画点(0, r);2、求下一个光栅位置:xi+1= xi +1;if pi0 则y i+
12、1=yi;否则y i+1=yi-1;3、画点(x i+1, yi+1)4、计算下一个误差:if pi0 则p i+1=pi+4xi+6;否则 pi+1=pi+4(xi-yi)+10;5、i=i+1; if x=y 则end ;否则返 2。虽然式(2)式表示 pi+1 的算法似乎很复杂,但因为 yi+1 只能取值 yi 或 yi-1,因此在算法中,第 4 步的算式变得很简单,只须作加法和 4 的乘法。因此圆的 Bresenham 算法运行速度也是很快的,并适宜于硬件实现。5、已知图示三角形 ABC 各顶点的坐标 A(1,2)、(5, 2) 、(3,5) ,相对直线 X=4作对称变换后,分别到达 A、 B、C。试计算 A、B、C的坐标值。 (要求用齐次坐标进行变换,列出变换矩阵。 )答: 5151083121231085127 127108101:104101044 2121,变 换 矩 阵坐 标 平 移 回 原 位轴 作 对 称 变 换 ;相 对 新 坐 标 系 的多 边 形 ),坐 标 系 平 移 到 ( 重 合 ;轴 与 直 线方 向 平 移 , 使坐 标 系 沿CBBAAAAAAYXYXTTYBCTXYX