中南大学考试试卷
2014 -- 2015 学年 2 学期 时间100分钟 2015年 6月 29 日
计算机图形学 课程 32 学时 2 学分 考试形式: 开 卷
专业年级: 计算机12级 总分100分,占总评成绩 100 %
注:此页不作答题纸,请将答案写在答题纸上
一、填空题(15分, 每空3分)
1、当观察光照下的光滑物体表面时,在某个方向上看到高光或强光,这个现象为 ( B ) A. 漫反射 B.镜面反射 C. 环境光 D. 折射
2.下面哪些不是OpenGL标准几何元素的绘制模式? ( A ) A. GL_FOG(雾化处理,不是绘图模式) B. GL_LINE_STRIP(不闭合折线)
C. GL_POINTS(单个顶点集) D. GL_TRIANGLE_FAN(扇形连续填充三角形串)
3.要得到如下图示的图形效果,glBegin() 函数的类型参数可取为( C )。 A. GL_POLYGON B. GL_LINES C. GL_LINE_STRIP D. GL_LINE_LOOP
4.材质属性应与光照属性相匹配,如果需要指定一个面片在红光源照射下呈现黄色,应将面片材质的漫反射和环境反射属性指定为 ( B )
A. 红色 B. 绿色 C. 兰色 D.白色、 5.3次Bezier曲线由( D )个控制顶点确定。
A. 1 B.2 C.3 D.4
二、简答题(每题6分,共24分) 1.OPenGL可以使用的矩阵堆栈有哪些?
答:模型视点矩阵,投影矩阵, (颜色矩阵,纹理矩阵) (答出前面二个也给满分)每个2分或4分
2. OpenGL中能渲染的基本元素是什么?(曲面) 答:OPENGL基本元素:
GL_POINTS GL_LINES GL_POLYGON GL_LINE_STRIP
GL_LINE_LOOP GL_TRANGLES GL_TRANGLE_STRIP
GL_TRANGLE_FAN GL_QUADS GL_QUAD_STRIP (6分) GLU基本元素:NUBRS曲线曲面,二次曲面等 (2分)
3.已知下面控制多边形,可定义几段三次B样条曲线,并请画出它所定义的三次均匀B样条曲线。
评分标准:5段三次B样条曲线(3分),每画出一段1分。 4、什么是重绘回调函数?如何实现重回回调函数?
当用户鼠标改变窗口的尺寸时,为保证图形与窗口等比例变化所需要调用的一个函数。 实现重绘回调函数:定义一个重绘回调函数reshape,在main主函数中用glutReshapeFunc 函数注册,窗口首次创建时,重绘回调函数被调用,当窗口的长度和窗口的宽度发生变化时,会产生一个窗口事件,该事件的处理由重绘回调函数负责,使得窗口根据新的长度和宽度进行重绘。
评分标准:每问各4分
三、计算与分析(本题31分,共3小题).已知在平面P上有两条向量v1和v2 他们的值分别(2.0f,0.0f,0.0f),(0.0f,3.0f,0.0f)
求出垂直与平面P的法向量v3的值为多少,求出v1与v2之间的夹角θ的度数或cos 值为多少?要求写出计算过程。(8分 1)
评分标准:法向量v3的值(4分),出v1与v2之间的夹角θ的度数或cos 值(4分)
2.设显示器平面坐标为XY(水平为X轴),深度坐标Z指向读者,已知一个四面锥体的5个顶点坐标为A(0,0,0),B(2,0,0),C(0,0,2),D(2,0,2),O(1,2,1),请画出四面锥体的图形以及正视图,并写出其正视图变换矩阵。(8分)
评分标准:画出四面锥体的图形(2分),正视图(2分),正视图变换矩阵(4分) 3.已知平面5个控制顶点分别为P0(0,1),P1(1,3),P2(3,0),P3(4,2),P4(5,0),请问可定义几段2次Bezier曲线,写出每段参数表达式;可定义几段2次B样条曲线,并写出每段均匀2次B样条曲线表达式。(15分)
评分标准:2段2次Bezier曲线((3分)),写出每段参数表达式(每段2分),3段2次B样条曲线(2分),写出每段参数表达式(每段2分) 四.程序作答题(本题30分,共2小题)
1、在一个坐标系W中,设模型为一个以(5.0, 0.0, 0.0), (0.0, 5.0, 0.0), (0.0, 0.0, 5.0)为三个点的三角形,现在把照相机按照下列方式设置:
■照相机位置设为:(0.0, 0.0, 100.0),看向的目标点为 (0.0, 0.0, 0.0) ,照相
机的up方向为(0.0, 1.0, 0.0)
■投影为透视投影,竖直张角为60度
■取景范围为沿照相机的朝向距离从0.1 到 300
现需要把照相机看到的图片放在一个400x300像素分辨率的窗口的右上部分,该部分起始点为 (100, 100), 宽度为200,高度为200 (1) 请写出用OpenGL函数表示的照相机设置。 (2) 写出视区(viewport)的设置函数。 (3) 写出投影变换的设置函数。
(4) 求出从坐标系W到照相机坐标系(视点坐标系)的4x4的变换矩阵。 (20分) 答案:1. gluLookAt(0.0,0.0, 100.0,0.0,0.0,0.0,0.0,1.0,0.0);(2分) 2. glViewport (100, 100, 200, 200);(5分) 3. gluPerspective(60.0f,1.0f,0.1f,300.0f); (5分) 4. 变换矩阵为: [ 1 0 0 0 0 1 0 0 0 0 1 -100
0 0 0 1 ] (8分)
2.阅读下面程序,确认程序运行结果,说出其在屏幕上显示的结果是什么。(10分) #include
glClearColor(0.0,0.0,0.0,0.0); glClear(GL_COLOR_BUFFER_BIT);
glColor4f(1.0,0.0,0.0,1.0); // set the line color glLineWidth(5); glBegin(GL_LINES);
glVertex3f(-0.5,-0.5,0.0); glVertex3f(0.5,-0.5,0.0); glVertex3f(0.5,0.5,0.0); glVertex3f(-0.5,0.5,0.0); glEnd(); glFlush(); }
int main(int argc, char** argv) {
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE); glutInitWindowPosition(100, 100); glutInitWindowSize(400, 400);
glutCreateWindow(\第一个OpenGL程序\ glutDisplayFunc(display); glutMainLoop(); return 0; }
答,画两条平行的直线(5分),线段宽度为5单位粗。(5分)