report2郭小明 三维图形程序设计 电子科技大学.doc
《report2郭小明 三维图形程序设计 电子科技大学.doc》由会员分享,可在线阅读,更多相关《report2郭小明 三维图形程序设计 电子科技大学.doc(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、实验报告课程名称:三维图形程序设计学院:计算机科学与工程专业:计算机科学与技术指导教师:曹跃学生姓名:郭小明学号:2011060100010实验成绩:日期:2013年5月3日电 子 科 技 大 学实 验 报 告 实 验 二 OpenGL建模与变换编程实验一实验室名称:A2二. 实验目的:1. 理解OpenGL视图变换、投影变换、模型-视图变换的相关原理;2. 掌握与变换相关的OpenGL API函数及其用法。三. 实验原理:OpenGL编程原理四. 实验内容:(一)编程任务1绘制钟表提示:1. 利用图元和建模变换来建立钟表的基本构件a. 表盘void createDial();b. 刻度voi
2、d createScale1();void createScale2();c时针、分针、秒针void createHourhand(); void createMinutehand(); void createSecondhand();2. 利用建模变换将钟表的基本构件组装在一起void createWatch();3. 控制钟表时针、分针和秒针的运动void processWatch(GLuint hour, GLuint minute, GLuint second);4. 获取本地时间使用标准库time.h中的time()、localtime()函数获取本地时间:struct tm* lo
3、calTime; int hour, minute, second;time_t curTime;time(&curTime);localTime = localtime(&curTime);hour=localTime-tm_hour;minute=localTime-tm_mins;second=localTime-tm_sec;5. 依据当前时间绘制钟表void displayWatch(void);(二)编程任务2P96 作业2编写一个程序,实现交互式的移动摄像机。显示一个或多个对象(如茶壶等),并确保摄像机在移动时总是朝向场景中的同一点。五、 实验器材(设备、元器件):Microso
4、ft Windows XP Professional 版本2002 Service Pack 3 VC+ 6.0七、实验数据及结果分析:(一)编程任务1绘制钟表#include #include #include #include void init()glClearColor (1.0, 0.0, 0.0, 0.0);gluOrtho2D(-100,100,-100,100);/时针void createHourhand(float angle)glRotatef(angle,0,0,1.0);glPolygonMode(GL_FRONT_AND_BACK,GL_FILL);glColor3
5、f(1.0,1.0,1.0);glBegin(GL_POLYGON);glVertex3f(-10,0,0);glVertex3f(0,4,0);glVertex3f(25,0,0);glVertex3f(0,-4,0);glEnd();glRotatef(-angle,0,0,1.0);/分针void createMinutehand(float angle)glRotatef(angle,0,0,1.0);glPolygonMode(GL_FRONT_AND_BACK,GL_FILL);glColor3f(1.0,1.0,1.0);glBegin(GL_POLYGON);glVertex3
6、f(-10,0,0);glVertex3f(0,3,0);glVertex3f(30,0,0);glVertex3f(0,-3,0);glEnd();glRotatef(-angle,0,0,1.0);/秒针void createSecondhand(float angle)/printf(adfadf);glRotatef(angle,0,0,1.0);glColor3f(1.0,0.0,0.0);glLineWidth(2.0);glBegin(GL_LINES);glVertex3f(-6,0,0);glVertex3f(35,0,0);glEnd();glRotatef(-angle,
7、0,0,1.0);int kedu_x = 10,kedu_y=2;/表盘上个长方形刻度相关参数void createDial_kedu(float angle,float offset_x,float offset_y)/glClear(GL_COLOR_BUFFER_BIT);glRotatef(angle,0.0,0.0,1.0);glTranslatef(offset_x-kedu_x/2,offset_y,0);glBegin(GL_POLYGON);glVertex3f(kedu_x/2,kedu_y/2,0);glVertex3f(-kedu_x/2,kedu_y/2,0);gl
8、Vertex3f(-kedu_x/2,-kedu_y/2,0);glVertex3f(kedu_x/2,-kedu_y/2,0);glEnd();glTranslatef(-offset_x+kedu_x/2,-offset_y,0);glRotatef(-angle,0.0,0.0,1.0);/创建表盘int D = 50;float PI = 3.14159;void createDial()glClear(GL_COLOR_BUFFER_BIT);glColor3f(0.0,1.0,0.0);int i = 0;glBegin(GL_POLYGON);for(;i24;i+)glVert
9、ex3f(D*cos(i*PI/12.0),D*sin(i*PI/12.0),0);glEnd();glLineWidth(3.0);glColor3f(0.0,0.0,0.0);glBegin(GL_LINE_LOOP);for(i=0;i24;i+)glVertex3f(D*cos(i*PI/12.0),D*sin(i*PI/12.0),0);glEnd();glLineWidth(1.0);glColor3f(0.0,0.0,0.0);glPointSize(8.0);glBegin(GL_POINTS);glVertex3f(0,D-2.5,0);glVertex3f(0,-D+2.5
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- report2郭小明 三维图形程序设计 电子科技大学 report2 郭小明 三维 图形 程序设计
限制150内