计算机图形学计算题目1415参考答案.doc

上传人:h**** 文档编号:1372436 上传时间:2019-02-23 格式:DOC 页数:11 大小:326KB
下载 相关 举报
计算机图形学计算题目1415参考答案.doc_第1页
第1页 / 共11页
计算机图形学计算题目1415参考答案.doc_第2页
第2页 / 共11页
计算机图形学计算题目1415参考答案.doc_第3页
第3页 / 共11页
计算机图形学计算题目1415参考答案.doc_第4页
第4页 / 共11页
计算机图形学计算题目1415参考答案.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

1、题目中所有的坐标系,均以OpenGL坐标系为准1. 使用OpenGL图形库渲染如下四棱截锥体图形,根据给定点的A、C、G的坐标推算出其余五个点B、D、E、F、H的坐标答: B( 1.0f , -1.0f , 0.0f)D(-1.0f , -1.0f , -2.0f)E(-0.5f , 1.0f , -0.5f)F(-0.5f , 1.0f , -1.5f)H(0.5f , 1.0f , -0.5f)每个坐标2分2. 已知在平面P上有两条向量v1和v2 他们的值分别(2.0f,0.0f,0.0f),(0.0f,3.0f,0.0f)求出垂直与平面P的法向量v3的值为多少,求出v1与v2之间的夹角的

2、度数或cos值为多少?要求写出计算过程。向量的模 向量的倍乘 22|zyxV ),(azyxaV向量之和 ),(21111 zyx向量的点积 22z向量的叉积 ),( 12111 yxyzV答: v3= v1与v2 叉积 或 v1v2v3 = (y1z2 y2z1 , z1x2 x2z1 , x1y2 x2y1)v3 = ( 0.0f , 0.0f , 6.0f) (3分其中公式2分值1分)转换单位向量 v3 = (0.0f , 0.0f , 1.0f) (1分)cos = |v1| 与 |v2|的点积 或 |v1|v2|v1| = (1.0f , 0.0f , 0.0f) (1分)|v2|

3、= (0.0f , 1.0f , 0.0f) (1分)cos = x1x2 +y1y2+z1z2;cos = 1.0f*0.0f + 0.0f*1.0f + 0.0f*0.0f;cos = 0 = 90(4分其中公式2分值2分)3. 已知空间中一条线段的两个顶点为d1(5.0f,3.0f,-2.0f) d2(6.0f,4.0f,-2.0f)计算出其绕(y=3,z=0)的轴旋转90后再缩小0.5倍后的新的线段的两个顶点坐标,要求写出每一个计算后得到的新矩阵。平移矩阵 = 缩放矩阵 = 10zyxtt 10zyxs旋转矩阵 绕x轴 = 绕y轴 = 100cosini110cossini绕z轴 =

4、100csii答:缩小0.5矩阵 A = 沿Y轴平移3矩阵B=10.5. 103绕X旋转90度矩阵C= 沿Y轴平移-3矩阵D=10 103上面每个矩阵1分A x B = A x B x C = 105. 105.M = A x B x C x D = (乘的顺序正确2分,结果正确2分)105.5.d1转换后 = M x d1 = (2.5f , 2.5f, 0.0f)d2转换后 = M x d2 = (3.0f , 2.5f, 0.5f) (公式正确1分,结果正确1分)4分别使用数值微分法(DDA算法)、中点画线法和Bresenham算法计算出P0(1,1)和 P1(3,6)之间扫描过的点。中

5、点画线法 adbbad*20)(*2Bresenham算法 xyx dee*2,0, 再 减 少如 果答:数值微分法(DDA算法)斜率 由于斜率大于1 增量5.236-01xyk 4.01kxy,(2分)y int(x+0.5) x+0.51 1 12 1 1.4+0.53 2 1.8+0.54 2 2.2+0.55 3 2.6+0.56 3 3.0+0.5(标题正确2分,下面每行1分)中点画线法斜率 由于斜率大于1 5.236-01xyk 010,ybxa(2分)y x d d1 1 1 2*a2 1 -3 2*(a+b)3 2 3 2*a4 2 -1 2*(a+b)5 3 5 2*a6 3

6、 1(标题没分,写公式占4分错1个扣1分,错1个值扣1分最多扣4分;没写公式错1个值扣1分扣满8分)Bresenham算法斜率 由于斜率大于15.236-01xyk 0101,xdyx(2分)y x e e1 1 -1 yd*22 1 3 x3 2 -3 y4 2 1 xd*25 3 -5 y6 3 -1(标题没分,写公式占4分错1个扣1分,错1个值扣1分最多扣4分;没写公式错1个值扣1分扣满8分)5使用中点画圆算法计算出以点(4,6)为圆心,半径为8的圆的1/8圆弧点坐标。中点画圆法 5)(2031yxdrd答:x y d dx+4 y+60 8 -7 2x+3 4 141 8 -4 2x+

7、3 5 142 8 1 2(x-y)+5 6 143 7 -6 2x+3 7 134 7 3 2(x-y)+5 8 135 6 2 9 12(标题没分,写公式占5分错1个扣1分,错1个值扣1分最多扣5分;没写公式错1个值扣1分扣满10分)6.使用Bresenham椭圆算法计算出以点(3,5)为圆心,半径a=7,b=4的椭圆的1/4圆弧点的坐标。 22abee=0时 )23(0)()12( yaedyxbxbed答:x y e d ex+3 y+50 4 -327 -311 )32(xb3 91 4 -279 -215 4 92 4 -199 -55 )(2x5 93 4 -87 169 3ya

8、b6 94 3 -188 -131 )(2x7 85 3 -12 221 y8 86 2 49 -110 )3()(22axb9 77 1 240 240 y10 67 0 289 338 10 5(标题没分,写公式占5分错1个扣1分,错1个值扣1分最多扣5分;没写公式错1个值扣1分扣满10分)7已知如下多边形,使用扫描线算法求出该多边形的活化边表。(结果保存小数点后1位)扫描线: Y=1 : -5.02316P2.046PY=2 : -Y=3 : -7.21 .54Y=4 : - - -7.03261P5.10263P5.102643P2.064PY=5 : - - - 8错一个节点扣1分,

9、顺序写错每个节点扣0.5分,扫描线顺序也可以从5-18.已知种子填充四连通递归算法函数如下:void floodfill4(int x,int y,CColor oldColor,CColor newColor)CClientDC dc(this);if (dc.GetPixel() = oldColor)dc.SetPixel(x, y, newColor);floodfill4(x-1, y, oldColor, newColor);floodfill4(x+1, y, oldColor, newColor);floodfill4(x, y+1, oldColor, newColor);f

10、loodfill4(x, y-1, oldColor, newColor);根据以上函数写出以下图形区域填充算法的过程: 为边界, 为起始点102 101 77 78 79 80 81 99 100 76 75 84 83 82 98 97 96 74 73 85 86 3 4 5 6 72 71 87 2 1 8 7 21 70 69 11 10 9 20 19 18 68 12 13 14 15 16 17 67 24 23 22 66 25 26 27 65 30 29 28 64 31 32 33 62 63 36 35 34 61 60 59 37 38 39 55 56 57 58

11、 42 41 40 54 53 52 51 43 44 45 46 47 48 49 50 95 94 93 92 91 90 89 88 每10个序号1分,中间一个点序号写错后面所有序号都不得分9已知直线段的两点(-200,-100)和(700,600)分别使用Cohen-Sutherland和梁友栋-BarSky算法计算对于区域(0,0,500,600)裁剪后的直线段,要求写出计算过程。Cohen-Sutherland算法给定公式:左交点: 112)(, yxWxyxll 右交点: 112)(,xrxr下交点: 112)(,yyybb 上交点: 112)(, xWxytyt答:裁剪顺序为上

12、下右左,区域编码如下:(2分)1001 10000001010100000100101000100110令x1=-200 y1=-100 x2=700 y2=600(x1,y1)点的code1= 0101 (x2,y2)点的code2= 0010 (1分) (code1 != 0 | code2 != 0) & code1&code2=0 进行裁剪上边 code1 & 1000 = 0 不裁剪 cdoe2 & 1000 = 0 不裁剪 (1分)下边 code1 & 0100 != 0 进行裁剪 112)(, xyWyxybb y1=0,x1= -71)0()1()(627(x1,y1)点的co

13、de1 = 0001code2 & 0100 = 0 不裁剪 (2分)右边 code1 & 0010 = 0 不裁剪code2 & 0010 != 0 进行裁剪 112)(, yxWxyxrr x2=500,y2= 444)0()(5)2(716(x2,y2)点的code2 = 0000 (2分)左边 code1 & 0001 != 0 进行裁剪 112)(, yxWxyxll x1=0,y2= 56)0()2()(716(x1,y1)点的code1 = 0000 (2分)裁剪后的线段为 (0,56) (500,444)梁友栋-BarSky算法给定公式:121 yYTyuYBxXRxLLqp,

14、 12,xXRqpB133 44yYT答:令x1=-200 y1=-100 x2=700 y2=600 u1=0,u2=1(1分)p1=-900 q1=-200 u=2/9 p1u1成立 u1=2/9 u2=1 (2分)p2=900 q2=700 u=7/9 p20 uu1不成立 u1=2/9 u2=7/9 (2分)p4=700 q4=700 u=1 p40 uu2不成立 u1=2/9 u2=7/9 (2分)裁剪后的点为(x1+u1(x2-x1), y1+u1(y2-y1) (0, 56)(x1+u2(x2-x1), y1+u2(y2-y1) (500, 444) (1分)10已知如下多边形进行区域裁剪,若安装p1-p6顺序遍历多边形的各条边,按顺序写出该多边形裁剪的处理线段及保留的顶点。答:处理线段P1 P2输出A B (1分)处理线段P2 P3输出 C P3 (1分)处理线段P3 P4输出 D (2分)处理线段P4 P5输出 E P5 (1分)处理线段P5 P6输出 F (2分)处理线段P6 P7输出 G P7 (1分)处理线段P7 P1

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 试题真题

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。