资源描述:
《电子科大实验2-三维图形程序设计.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验报告课程名称:三维图形设计学 院:计算机科学与工程专 业:计算机科学与技术指导教师:周川学生姓名:学 号:实验成绩:日 期: 2014 年 5月 19日电子科技大学计算机学院实验中心电子科技大学实验报告一、实验二:OpenGL建模与变换编程实验二、实验室名称:主楼A2-412实验时间:2014年5月19日三、实验目的:1.理解OpenGL视图变换、投影变换、模型-视图变换的相关原理;2.掌握与变换相关的OpenGLAPI函数及其用法。四、实验原理:1.openGL图形编程技术原理2.各种坐标转换,摄像机的使
2、用,层次化设计的思想,基本图元和高级图元绘制。五、实验内容:(一)编程任务1——绘制钟表1.利用图元和建模变换来建立钟表的基本构件a.表盘——voidcreateDial();b.刻度——voidcreateScale1();voidcreateScale2();c.时针、分针、秒针——voidcreateHourhand();voidcreateMinutehand();voidcreateSecondhand();2.利用建模变换将钟表的基本构件组装在一起——voidcreateWatch();3.控制钟表时针、分针和秒针
3、的运动——voidprocessHourhand(GLuinthour);voidprocessMinutehand(GLuintminute);voidprocessSecondhand(GLuintsecond);4.获取本地时间使用标准库time.h中的time()、localtime()函数获取本地时间:structtm*localTime;inthour,minute,second;time_tcurTime;time(&curTime);localTime=localtime(&curTime);hour=loca
4、lTime->tm_hour;minute=localTime->tm_min;second=localTime->tm_sec;5.绘制钟表显示当前时间(二)编程任务2——P96作业2编写一个程序,实现交互式的移动摄像机。显示一个或多个对象,并确保摄像机在移动时总是朝向场景中的同一点。六、实验器材(设备、元器件):电脑型号戴尔SystemInspironN4110笔记本电脑操作系统Windows8专业版64位(DirectX11)软件环境MicrosoftVisualStudioExpress2012forWindowsDe
5、sktopOpenGLGlut3.7七、实验步骤:1.设计基本构件并组合起来2.设计函数gettime得到系统时间3.利用空闲回调函数和基本转换得到钟表4.设计摄像机参数,以键盘交互形式操纵摄像机八、实验数据及结果分析:(一)钟表1.代码:#include#include#includeGLUquadric*p;structtm*localTime;inthour,minute,second;voidcreateDial(){glColor3f(0.5,0.5,0.5);
6、gluDisk(p,0.0,10.0,80,20);glColor3f(0.0,0.0,0.0);gluDisk(p,9.5,10.0,80,20);}voidcreateScale1(){glRectf(-0.5,-0.5,0.5,0.5);}voidcreateScale2(){glRectf(-0.25,-1.5,0.25,0.0);}voidcreateHourhand(){glColor3f(0.8,0.8,0.8);glBegin(GL_POLYGON);glVertex2f(0.0,-2.0);glVertex2
7、f(-0.75,0.0);glVertex2f(0.0,3.0);glVertex2f(0.75,0.0);glEnd();glColor3f(0.0,0.0,0.0);glBegin(GL_LINE_LOOP);glVertex2f(0.0,-2.0);glVertex2f(-0.75,0.0);glVertex2f(0.0,3.0);glVertex2f(0.75,0.0);glEnd();}voidcreateMinutehand(){glColor3f(0.8,0.8,0.8);glBegin(GL_POLYGON);
8、glVertex2f(0.0,-2.0);glVertex2f(-0.5,0.0);glVertex2f(0.0,6.0);glVertex2f(0.5,0.0);glEnd();glColor3f(0.0,0.0,0.0);glBegin(GL_LINE_LOOP);glV