中南大学计算机图形学2015年计科_第1页
中南大学计算机图形学2015年计科_第2页
中南大学计算机图形学2015年计科_第3页
中南大学计算机图形学2015年计科_第4页
中南大学计算机图形学2015年计科_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

1、。中南大学考试试卷2014-2015学年2 学期时间 100 分钟2015 年 6 月 29 日计算机图形学课程 32学时 2 学分 考试形式: 开 卷专业年级: 计算机 12级总分 100分,占总评成绩70 %注:此页不作答题纸,请将答案写在答题纸上一、计算题(本题20 分,共 2小题)1 、有一条三次 Bezier 曲线,其控制点依次为P0(1,1),P1(3,2),P3(0,2),P4(2,1) ,试写出其以t:t 0,1 为参数的多项式表达式,并图示其形状。该曲线是否能用以y(x) 形式的单一函数表达?为什么?(本题10 分)答:x(t) = 1+6t-15t2 +10t 3y(t)

2、= 1+3t-3t2(6 分 )作图( 2 分)不能,因为非一一映射。(2 分)2 、有一三角形ABC ,其三个顶点矢量按逆时针顺序为A,B,C ,相应地,三个顶点的纹理坐标为 t0 ,t1 ,t2 ,有三角形内一点P,其位置矢量为P,求点 P 的线性纹理坐标插值。 (本题 10分)答:设点 P 的重心坐标为:P = A +u * (CA) + v * (B - A)(2 分)整理方程得:P A = u(C - A) + v(B - A)( 1 分)令 v0 = CA, v1 = BA, v2 = PA ,则 v2 = u * v0 + v * v1( 1 分)将等式两边分别点乘v0 和 v1

3、 得(v2) ? v0 = (u * v0 + v * v1)? v0(v2) ? v1 = (u * v0 + v * v1)? v1( 2 分)解方程组得:-可编辑修改 -。u = (v1?v1)(v2 ?v0)-(v1 ?v0)(v2 ?v1) / (v0?v0)(v1 ?v1) - (v0 ?v1)(v1 ?v0)v = (v0?v0)(v2 ?v1)-(v0 ?v1)(v2 ?v0) / (v0?v0)(v1 ?v1) - (v0 ?v1)(v1 ?v0)( 2 分)点 P 的纹理坐标为:t0 + u*(t1-t0) + v*(t2-t0); u, v 由上式可得;( 2 分)二、程

4、序作答题(本题50 分,共 4 小题)1 、如图 1 所示,有一用半边结构表示的网格,给出指向网格中一条半边e 的指针 pe , e 指向顶点 v,试写出遍历顶点v 一环邻域顶点的C 语言代码。(本题 15 分)图 1可调用函数:void visitVertex(Vertex* pv);/访问 pv 指向的顶点答:HalfEdge* p = pe;dovisitVertex(p-end);p=p-next-opp;while(p!=pe);程序正确12 分;代码规范3 分;-可编辑修改 -。2 、现需要在OpenGL中绘制一个底面半径为r,高为 h 的圆锥,底面在x-z 平面上,底面中心在原点

5、处,圆锥尖顶在坐标(0,h,0 )处,请在下面空白处填写绘制代码(提示:用三角形逼近)。(本题 15 分)glBegin(GL_TRIANGLES);/TODO:draw the coneglEnd();可调用函数和常量:float cos(float theta);/计算角度 theta的余弦值,角度用辐度表示;float sin(float theta);/计算角度theta的正弦值,角度用辐度表示;#define PIE 3.14159;答:int num = 100;int steps =2*PIE/float(num);for(int i=0; inum; i+)/the botto

6、mglVertex3f(r*cos(i*steps), 0.0f, r*sin(i*steps);glVertex3f(r*cos(i+1)*steps), 0.0f, r*sin(i+1)*steps);glVertex3f(0.0f, 0.0f, 0.0f);/the wallglVertex3f(r*cos(i+1)*steps), 0.0f, r*sin(i+1)*steps);glVertex3f(r*cos(i*steps), 0.0f, r*sin(i*steps);glVertex3f(0.0f, 0.0f, 0.0f);循环3 分;三角形顶点数值5 分;三角形顶点顺序5 分;

7、代码规范2 分;-可编辑修改 -。3 、 给定一个有n个顶点的二维多边形,其顶点矢量 (三维)按逆时针顺序排列为v0,v1,v2,.,vn-1,试填写下面判断多边形是否为凸多边形的C 语言函数。(本题 10 分)bool isConvex(vec3 v, int n)/TODO: check if v is convex;/ 如果是凸多边形,返回true/ 如果不是,返回false可调用函数:vec3 crossProduct(vec3 v1, vec3 v2);/ 返回矢量 v1 与 v2 的叉积float dotProduct(vec3 v1, vec3 v2);/ 返回矢量v1 与 v2

8、 的点积答:bool isConvex(vec3 v, int n)for(int i=0; in; i+)int current = i;int next1 = i+1 n? i+1 : i+1-n;int next2 = i+2 n? i+2 : i+2-n;int next3 = i+3 n? i+3 : i+3-n;vec3 v1 = vnext1 - vcurrent;vec3 v2 = vnext2 - vnext1;vec3 v3 = vnext3 - vnext2;vec3 n1 = crossProduct(v1, v2);vec3 n2 = crossProduct(v2,

9、 v3);if(dotProduct(n1,n2)0)return false;-可编辑修改 -。return true;算法思路正确5 分,代码正确4 分,代码规范1 分;4 、一个棱长为1 的立方体,中心位于坐标原点,各边与坐标轴平行。将其绕z 轴正方向逆时针旋转 30 度,然后往x 轴正方向平移10 ,然后再绕 z 轴正方向逆时针旋转45 度。请画图表示变换后这个正方体在右手系坐标中的位置和朝向,并写出如上变换对应的OpenGL代码。(本题 10 分)glMatrixMode(GL_MODELVIEW);glLoadIdentity();/TODO: transform the mode

10、lDrawCube();/绘制正方体,不用填写;答:glRotatef(45.0, 0.0, 0.0, 1.0);glTranslatef(10.0, 0.0, 0.0);glRotatef(30.0, 0.0, 0.0, 1.0);图形为在x-y 平面第一象限45 度位置,距离原点10 ,立方体绕自身旋转30 度;代码顺序正确6 分,作图正确4 分三、简答题(本题30 分,共 3 小题)1 、试简述 OpenGL顶点变换的步骤。 (本题 10 分)答:按顺序依次是,模型变换,视图变换,投影变换,透视除法,视口变换在变换过程中,坐标变化为:物体坐标,视觉坐标,裁剪坐标,规范化设备坐标,窗口坐标

11、( 5 分)简述各变换机制; ( 5 分)2 、简述光线跟踪的机制和主要技术,以及光线跟踪算法与OpenGL绘制机制的主要区别。(本题 10 分)答:机制:( 3 分)1. 从视点发出射线,与场景求交;2. 在交点发出阴影测试线、折射、反射、投射线;3. 迭代地进行上述步骤并计算光亮度;-可编辑修改 -。主要技术:(3 分)1. 光线管理;2. 光照明模型;3. 求交加速算法;主要区别:(4 分)1. 光线跟踪是全局光照明, OpenGL 是局部光照明;3. 分别写出三次 Bezier 和三次均匀 B-Spline 曲线的矩阵表达式 , 并说明比较它们各自的特点 .(主要要说清楚B-Splin

12、e在造型上比Bezier方法的优点以及各自的几何造型特性)(本题10 分)答: (1) 表达式分别为: ( 2 分)(2) 特点比较B 样条方法是在保留Bezier方法的优点 ,同时克服其由于整体表示带来不具有局部性质的缺点 ,及解决在描述复杂形状时带来的连接问题下提出来的.( 2 分)常用的 cad 设计中之所以选用 3次 B 样条而不用更高次是因为次数越高,控制点影响的曲线段数就越多 ,不利于局部控制;而三次Bezier 曲线意味着必须有 4 个控制顶点 .( 2分)他们的区别主要有以下4 点:( 4分)1、 Bezier曲线的基函数次数等于控制顶点数减1.B 样条曲线基函数次数与控制顶点数无关;2、Bezier曲线的基函数是 Beinstein 基函数 ,它是个多项式函数 .B 样条曲线的基函数是多项式样条 .3、Bezier曲线

温馨提示

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

评论

0/150

提交评论