




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、 填空(将正确答案填入对应小题中,每小题3分,共30分)1.计算机图形学是研究利用计算机来 显示、生成和处理图形 的原理、方法和技术的一门学科。2.光栅图形子系统的两个重要部件是: 帧缓冲存储器和显示控制器 。3.平行投影与透视投影区别是 平行投影不具有透视缩小性 ;正投影与斜投影的区别是 投影方向和投影面是否垂直 。4.三次样条曲线常用的约束条件有 自由端、夹持端、抛物端 。5a.使用下面的二维图形变换矩阵:T产生变换的结果是 沿Y方向放大2倍,沿X方向平移3 。5b.使用下面的二维图形变换矩阵:T产生变换的结果是 沿X方向缩小8倍,沿Y方向放大2倍 。6a.构造一个3次Bezier曲面需要 16 个控制点;若修改3次B样条曲线控制点,最多影响三次B样条曲线段数是 4 。6b. 65的控制点网格可以构造 6 片3次B样条曲面;若修改3次B样条曲线控制点,最多影响三次B样条曲线段数是 4 。7a.OpenGL三维平行投影函数是 glOrtho(left, bottom, right, top, near, far) 。7b.OpenGL中产生三维透视矩阵的函数是 glFrustum(left, bottom, right, top, near, far) 或者 glPerspective(fovy, aspect, zNear, zFar) 。8a.请写出正等测投影的投影矩阵 。8b. 请写出灭点分别在Z轴-5和X轴+10处的两点透视矩阵 。9.在图形学中通常用哪几个参数定义观察坐标系 观察参考点、观察平面法向量、观察正向 。10.消隐算法按实现方式分为: 图像空间和景物空间消隐算法 两类。11.交互式计算机图形系统应具有: 计算、存储、交互、输入和输出 5种功能。12.OpenGL中设置视点的函数为: gluLookAt(eyeX, eyeY, eyeZ, targetX, targetY, targetZ, upX, upY, upZ) 。13.简单光照模型中的反射光包括 漫反射光、环境光、镜面反射光。二、选择填空(选择正确的答案填入对应题号,每小题2分,共20分)1a.使用下列二维图形变换矩阵:T,产生变换的结果为 D 。A 沿X坐标轴平移1个单位,同时沿Y坐标轴平移1个单位B 绕原点逆时针旋转90度C 沿X坐标轴平移1个单位,同时沿Y坐标轴平移1个单位D 绕原点顺时针旋转90度1b.使用下列二维图形变换矩阵:T,产生变换的结果为 B 。2a.下面哪个OpenGL函数的调用会改变材质的漫反射光系数 B 。2b.下面哪个OpenGL函数的调用会改变材质的环境光系数 A 。A glMaterialfv(GL_FRONT, GL_AMBIENT, amb)B glMaterialfv(GL_FRONT, GL_DIFFUSE, dif)C glLightfv(GL_FRONT, GL_AMBIENT, amb)D glLightfv(GL_FRONT, GL_DIFFUSE, dif)3a.下面那种特性是B样条曲线不具有的 C 。A 对称性 B 凸包性 C 通过特征多边形的起点和终点 D 局部性 E 局部支柱性3b.下面那种特性是Bezier曲线不具有的 E 。4.下面几种连续变换,试问哪一种变换矩阵不能互换 D 。A 两个连续的旋转变换 B 两个连续的平移变换C 两个连续的比例变换 D平移变换与旋转变换5a.下列有关投影的叙述语句中,不正确的论述为 A 。A 透视投影与平行投影相比,能真实的反映物体的精确的尺寸和形状B 平行投影的投影中心到投影面距离是无限的C 透视投影的灭点可以有多个D 与斜等测投影面垂直的任何直线段,其投影长度不变5b.下列有关投影的叙述语句中,正确的论述为 C 。A 透视投影与平行投影相比,能真实的反映物体的精确的尺寸和形状B 平行投影的投影中心到投影面距离是有限的C 透视投影的灭点可以有多个D 斜平行投影的投影线与投影面是垂直的6.下面对于Bezier曲线端点的描述是最准确的 C 。A 曲线过多边形的端点P1和PnB 曲线与多边形的端点直线P1P2和PnPn-1相切C 曲线过多边形的端点P1和Pn并与端点直线P1P2和PnPn-1相切D 曲线无约束,仅与控制点有关。7.下面那种方法不会减少图形走样现象 A 。A 增加画线宽度 B 提高屏幕分辨率C 使用区域采样算法D 使用加权区域采样8.图形学引入齐次变换矩阵的意义是 B 。A 便于矩阵运算 B提高图形变换速度 C 便于进行投影变换 D 有利于将二维图形变换为三维图形8b.图形学使用齐次矩阵的原因是 B 。A 便于矩阵运算 B 便于表示平移变换 C 便于表示错切变换 D 有利于将二维图形变换为三维图形9.连续的三次参数样条曲线是由一系列的Hermite曲线段连接起来的,指出是依据下面哪个条件建立构成的 C 。A C(0) B C(1) C C(2) D 两Hermite曲线段端点值相等10.下面关于Bresenham圆弧生成算法描述正确的是 A 。A Bresenham不必做四舍五入运算 B Bresenham算法速度快但效果没有DDA方法好C Bresenham算法需要做除法 D Bresenham算法只能绘制八分之一圆弧三、问答题(共30分)1a.试写出实现下面图形的组合变换矩阵。其中A(Xa,Ya),矩形的宽度为W,矩形的高度为H,旋转角度为。(10分)BCAADDCByxO(1)用平移矩阵T1将坐标原点平移到(Xa,Ya)处;(2)用旋转矩阵T2旋转角度;(3)用平移矩阵T3将坐标原点移回到(0,0);(4)组合变换矩阵T = T1*T2*T3,1b.试写出实现下图中关于任意直线Ax+By+C=0对称的组合变换矩阵。yxABCABCOCBCAAx + By + C = 0a(1)沿X方向平移C/A;(2)绕坐标原点旋转-a角,使对称轴与X轴重合;(3)关于X轴进行对称变换;(4)绕坐标原点旋转a角(5)沿X方向平移-C/A2a.已知空间轴AB,A点坐标为(0,0,0), B点的坐标(2,1,1),请写出关于AB旋转角度的组合旋转矩阵,及简要过程。(1)用关于X轴旋转的变换矩阵T1将AB旋转到ZOX平面;(2)用关于Y轴旋转的变换矩阵T2将AB旋转到X轴;(3)用关于X轴旋转的变换矩阵T3旋转角度;(4)用关于Y轴反旋转的变换矩阵T4进行反旋转;(5)用关于X轴反旋转的变换矩阵T5将AB反旋转到初始位置;(6)组合变换矩阵T = T1*T2*T3*T4*T5 2b.绘制出下图多边形进行逐边裁剪的各个步骤。(10分) 3a.已知多边形顶点坐标:P0(2, 5)、P1(1, 3)、P2(2, 1)、P3(6, 3)、P4(4, 6)要求写出利用扫描线算法填充时的:(1)多边形边表桶结构 (2)扫描线Y=2时的有效边表P0321456123456P1P2P3P4 23-0.5654321232150.566-2/32621.53-0.5432Y=23b.已知多边形顶点坐标:P0(1, 5)、P1(1, 1)、P2(4, 1)、P3(4, 3)、P4(6, 3)、P5(4, 6)要求写出利用扫描线算法填充时的:(1)多边形边表桶结构(2)扫描线Y=2时的有效边表P0321456123456P1P2P3P4P515065432143066-2/31621.2550.25430Y=2四、编程题 1.试编写函数lineClip(int &x0, int &y0, int &x1, int &y1, int xl, int yb, int xr, int yt);实现直线的编码裁剪。其中x0, y0, x1, y1为直线端点处坐标,xl, yb, xr, yt定义了裁剪窗口。/ 计算端点编码char clipCode(int x, int y, int xl, int yb, int xr, int yt) char code = 0; if(y yt) code |= 0x01; else if(y xr) code |= 0x04; else if(x xl) code |= 0x08; return code;/ 交换函数template classvoid swap(T &a, T &b)T t = a;a = b;b = t;/ 编码裁剪bool lineClip (int &x0, int &y0, int &x1, int &y1, int xl, int yb, int xr, int yt) char c0, c1; int x, y; while(true) c0 = clipCode(x0, y0, xl, yb, xr, yt); c1 = clipCode(x1, y1, xl, yb, xr, yt); if(c0 & c1) != 0) return false; if(c0 = 0 & c1 = 0) return true; if(c0 = 0) swap(x0, x1); swap(y0, y1); swap(c0, c1); if(c0 & 0x01) / 在Yt之上 x = x0+(yt-y0)*(x1-x0)/(y1-y0); y = yt; else if(c0 & 0x02) / 在Yb之下 x = x0+(yb-y0)*(x1-x0)/(y1-y0); y = yb; else if(c0 & 0x04) / 在Xr之右 y = y0+(xr-x0)*(y1-y0)/(x1-x0); x = xr; else if(c0 & 0x08) / 在Xl之左 y = y0+(xl-x0)*(y1-y0)/(x1-x0); x = xl; x0 = x; y0 = y; 2.试编写程序函数drawBSpline(Point *pts, int n);实现三次B样条曲线绘制,其中pts为控制点数组,n为控制点个数,顶点结构体定义如下: typedef struct _Point int x, y; Point; 另设直线绘制函数为drawLine(int x0, int y0, int x1, int y1);/ 三次B样条计算函数Point bSpline(int i0, Point *pts, double t)Point pt;double b0 = ( -t * t * t + 3 * t * t - 3 * t + 1) / 6; double b1 = (3 * t * t * t - 6 * t * t + 4) / 6; double b2 = ( -3 * t * t * t + 3 * t * t + 3 * t + 1) / 6; double b3 = (t * t * t) / 6; pt.x = b0*ptsi0.x + b1*ptsi0+1.x + b2*ptsi0+2.x + b3*ptsi0+3.x;pt.y = b0*ptsi0.y + b1*ptsi0+1.y + b2*ptsi0+2.y + b3*ptsi0+3.y;return pt;/ 绘制三次B样条曲线void drawBSpline(Point *pts, int n) int x0, y0; double t, dt; GPoint2d pt; dt = 0.05; for(int i=0; in-3; i+) pt = bSpline(i, pts, 0); x0 = pt.x(); y0 = pt.y(); for(t=dt; t=1; t+=dt) pt = bSpline(i, pts, t); drawLine(x0, y0, pt.x, pt.y); x0 = pt.x; y0 = pt.y; pt = bSpline(i, pts, 1); drawLine(x0, y0, pt.x, pt.y); 3.试编写函数,drawRotateRect(int x0, int y0, int x1, int y1, int n, float delt); 绘制如图所示的n个向内旋转矩形,其中x0, y0为矩形左上角坐标,x1, y1为矩形右下角坐标,delt为旋转角度,n为绘制矩形的数目。可以调用函数drawLine(startX, startY, endX, endY)绘制直线。(10分)deltvoid drawRotateRect(int x0, int y0, int x1, int y1, int n, double delt) int i, j, xm, ym, tx, ty; int r42; double sinAF, cosAF, s; xm = (x0+x1)/2; ym = (y0+y1)/2; sinAF = sin(delt); cosAF = cos(delt); s = 1.0 / (sinAF + cosAF); r00 = x0; r01 = y0; r10 = x0; r11 = y1; r20 = x1; r21 = y1; r30 = x1; r31 = y0; for(i=0; i4; i+) drawLine(ri0, ri1, r(i+1)%40, r(i+1)%41); for(j=0; jn; j+) for(i=0; i4; i+) /(1)平移到矩形中心 ri0 -= xm; ri1 -= ym; /(2)旋转角度delt tx = (int)(cosAF*ri0 - sinAF*ri1); ty = (int)(sinAF*ri0 + cosAF*ri1); ri0 = tx; ri1 = ty; /(3)缩放 ri0 = (int)(ri0*s); ri1 = (int)(ri1*s); /(4)反平移 ri0 += xm; ri1 += ym; for(i=0; i4; i+) drawLine(ri0, ri1, r(i+1)%
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 幼儿园中班教学记录及评价方法
- 公司人事制度调整方案汇报
- 幼儿语言教育课程考试复习资料
- 职业培训机构教师培训计划与效果评估
- 屋面工程技术交底范本说明
- 中小学教师备课经验交流总结
- 城镇建筑物安全隐患排查与整改方案
- 钒铁浸滤工节假日前安全考核试卷含答案
- 瓦楞纸板制作工节假日前安全考核试卷含答案
- 瓦斯抽放工节假日前安全考核试卷含答案
- 危险方法危害公共安全罪认定标准研究
- 我国养老状况课件
- 心脏支架术后康复课件
- 2025年体育产业成本控制与赛事运营研究报告
- 能源问题面试题库及答案
- 国庆期间保安安全培训课件
- 2025年征兵心理测试题库及答案
- 监控设备迁移合同协议书
- 《老年服务礼仪与沟通技巧》全套教学课件
- 工程试验检测知识培训课件
- 2025年低碳节能减排知识竞赛题库(含答案)
评论
0/150
提交评论