成都理工大学2012-2013学年-第一学期《计算机图形学》考试试卷B- 答案_第1页
成都理工大学2012-2013学年-第一学期《计算机图形学》考试试卷B- 答案_第2页
成都理工大学2012-2013学年-第一学期《计算机图形学》考试试卷B- 答案_第3页
成都理工大学2012-2013学年-第一学期《计算机图形学》考试试卷B- 答案_第4页
成都理工大学2012-2013学年-第一学期《计算机图形学》考试试卷B- 答案_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

word格式-可编辑-感谢下载支持︵︶成都理工大学2012—2013学年︵︶第一学期《计算机图形学》考试试卷B大题一二三四总分得分填空(将正确答案填入对应小题中,每小题3分,共30分)计算机图形学是研究利用计算机来显示、生成和处理图形的原理、方法和技术的一门学科。交互式计算机图形系统应具有:计算、存储、交互、输入和输出5种功能。平行投影与透视投影区别是平行投影不具有透视缩小性;正投影与斜投影的区别是投影方向和投影面是否垂直。三次样条曲线常用的约束条件有自由端、夹持端、抛物端。使用下面的二维图形变换矩阵:T=产生变换的结果是沿X方向缩小8倍,沿Y方向放大2倍。6×5的控制点网格可以构造6片3次B样条曲面;若修改3次B样条曲线控制点,最多影响三次B样条曲线段数是4。OpenGL中产生三维透视矩阵的函数是glFrustum(left,bottom,right,top,near,far)或者glPerspective(fovy,aspect,zNear,zFar)。请写出灭点分别在Z轴-5和X轴+10处的两点透视矩阵。OpenGL中设置视点的函数为:gluLookAt(eyeX,eyeY,eyeZ,targetX,targetY,targetZ,upX,upY,upZ)。简单光照模型中的反射光包括漫反射光、环境光、镜面反射光。选择填空(选择正确的答案填入对应题号,每小题2分,共20分)1、使用下列二维图形变换矩阵:T=,产生变换的结果为B。 A沿X坐标轴平移1个单位,同时沿Y坐标轴平移-1个单位 B绕原点逆时针旋转90度 C沿X坐标轴平移-1个单位,同时沿Y坐标轴平移1个单位 D绕原点顺时针旋转90度2、下面那种特性是Bezier曲线不具有的D。A对称性 B凸包性 C通过特征多边形的起点和终点 D局部支柱性3、下面哪个OpenGL函数的调用会改变材质的环境光系数A。AglMaterialfv(GL_FRONT,GL_AMBIENT,amb)BglMaterialfv(GL_FRONT,GL_DIFFUSE,dif)CglLightfv(GL_FRONT,GL_AMBIENT,amb)DglLightfv(GL_FRONT,GL_DIFFUSE,dif)4、下面几种连续变换,试问哪一种变换矩阵不能互换D。 A两个连续的旋转变换B两个连续的平移变换 C两个连续的比例变换D平移变换与旋转变换5、下列有关投影的叙述语句中,正确的论述为C。 A透视投影与平行投影相比,能真实的反映物体的精确的尺寸和形状 B平行投影的投影中心到投影面距离是有限的 C透视投影的灭点可以有多个D斜平行投影的投影线与投影面是垂直的6、下面那种方法不会减少图形走样现象A。A增加画线宽度 B提高屏幕分辨率C使用区域采样算法 D使用加权区域采样7、下面对于Bezier曲线端点的描述是最准确的C。A曲线过多边形的端点P1和PnB曲线与多边形的端点直线P1P2和PnPn-1相切C曲线过多边形的端点P1和Pn并与端点直线P1P2和PnPn-1相切D曲线无约束,仅与控制点有关。8、图形学使用齐次矩阵的原因是B。 A便于矩阵运算B便于表示平移变换C便于表示错切变换D有利于将二维图形变换为三维图形9、连续的三次参数样条曲线是由一系列的Hermite曲线段连接起来的, 指出是依据下面哪个条件建立构成的A。 AC(2)BC(1)CC(0)D两Hermite曲线段端点值相等10、下面关于Bresenham直线生成算法描述正确的是A。ABresenham不必做四舍五入运算BBresenham算法速度快但效果没有DDA方法好CBresenham算法需要做除法 DBresenham算法只能绘制45度以内的直线三、问答题(共30分)试写出实现下图中关于任意直线Ax+By+C=0对称的组合变换矩阵。(10分)评分标准:每写出一步得2分yyxA'B'C'ABCOCBCAAx+By+C=0沿X方向平移C/A;绕坐标原点旋转-角,使对称轴与X轴重合;关于X轴进行对称变换;绕坐标原点旋转角沿X方向平移-C/A绘制出下图多边形进行逐边裁剪的各个步骤。(10分)评分标准:每绘制正确一步得2.5分已知多边形顶点坐标:P0(1,5)、P1(1,1)、P2(4,1)、P3(4,3)、P4(6,3)、P5(4,6)要求写出利用扫描线算法填充时的:多边形边表桶结构扫描线Y=2时的有效边表 (10分)P0P0321456123456P1P2P3P4P5评分标准:(1)题6分,其中总体结构1分,每个表项1分(2)题4分,其中总体结构2分,每个表项1分115065432143066-2/31621.2550.25430Y=2四、编程题(共20分)1、试编写函数,drawRotateRect(intx0,inty0,intx1,inty1,intn,floatdelt);绘制如图所示的n个向内旋转矩形,其中x0,y0为矩形左上角坐标,x1,y1为矩形右下角坐标,delt为旋转角度,n为绘制矩形的数目。可以调用函数drawLine(startX,startY,endX,endY)绘制直线。(10分)评分标准:程序整体思路正确,或能够正确分析变换过程,给出变换举证得5分;变换程序部分共5分。此题可以有不同解决方法,由于代码较多对编程中出现的语法错误可以酌情扣分。deltdeltvoiddrawRotateRect(intx0,inty0,intx1,inty1,intn,doubledelt){inti,j,xm,ym,tx,ty;intr[4][2];doublesinAF,cosAF,s;xm=(x0+x1)/2;ym=(y0+y1)/2;sinAF=sin(delt);cosAF=cos(delt);s=1.0/(sinAF+cosAF);r[0][0]=x0;r[0][1]=y0;r[1][0]=x0;r[1][1]=y1;r[2][0]=x1;r[2][1]=y1;r[3][0]=x1;r[3][1]=y0;for(i=0;i<4;i++){drawLine(r[i][0],r[i][1],r[(i+1)%4][0],r[(i+1)%4][1]);}for(j=0;j<n;j++){for(i=0;i<4;i++){//(1)平移到矩形中心r[i][0]-=xm;r[i][1]-=ym;//(2)旋转角度delttx=(int)(cosAF*r[i][0]-sinAF*r[i][1]);ty=(int)(sinAF*r[i][0]+cosAF*r[i][1]);r[i][0]=tx;r[i][1]=ty;//(3)缩放r[i][0]=(int)(r[i][0]*s);r[i][1]=(int)(r[i][1]*s);//(4)反平移r[i][0]+=xm;r[i][1]+=ym;}for(i=0;i<4;i++){drawLine(r[i][0],r[i][1],r[(i+1)%4][0],r[(i+1)%4][1]);}}}2、已知三次Bezier曲线基函数如下:B0,3(t)=(1-t)3B1,3(t)=3t(1-t)2B2,3(t)=3t2(1-t)B3,3(t)=t3 试编写函数drawBezier(intx0,inty0,intx1,inty1,intx2,inty2,intx3,inty3);绘制Bezier曲线。可以调用函数drawLine(startX,startY,endX,endY)绘制直线。(10分)评分标准:程序整体结构正确2分;能够正确写出调和函数程序段6分;能够保证最后闭合画线2分。此题可以有不同解决方法,由于代码较多对编程中出现的语法错误可以酌情扣分。voiddrawBezier(intx0,inty0,intx1,inty1,intx2,inty2,intx3,inty3){ doublet,dt=0.05; doubledx0=x0; doubledy0=y0; for(t=dt;t<=1;t+=dt){ doubleb0=(1-t)*(1-t)*(1-t); doubleb1=3*t

温馨提示

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

评论

0/150

提交评论