云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 华北电力大学 计算机图形学实验报告

华北电力大学 计算机图形学实验报告

  • 62 次阅读
  • 3 次下载
  • 2025/12/10 2:56:54

科 技 学 院

课程设计(综合实验)报告

( 2013 -- 2014 年度第 2 学期) 实验名称 OpenGL基本图元绘制实验

课程名称 计算机图形学

专业班级:计算机11K1 学生姓名:曲强

学 号:111909010118 成 绩:

指导教师:姜丽梅 实验日期:2014.6.5

| |

实验一、OpenGL基本图元绘制实验

一、 实验目的及要求

1. 掌握计算机图形学及交互式计算机图形学的定义,了解OpenGL的功能及工作流

程,掌握基于OpenGL Glut库的程序框架。

2. 掌握基本的二维线画图元的绘制算法及属性,掌握OpenGL基本图元的绘制。 3. 理解二维、三维图形的绘制流程,掌握二维图形和三维图形的图形变换。 4. 了解形体的真实感表示的内容,包括消隐技术、简单光照明模型、多边形的明暗

绘制技术以及纹理映射技术。

5. 要求使用OpenGL及GLUT库在Visual C++环境下编写图形绘制程序实现基本图

元绘制。

6. 要求对绘制的简单场景综合利用几何变换或gluLookAt函数实现交互式三维观

察程序。

二、 实验内容

在两个具有不同属性的窗口中分别显示一个旋转的三角形来演示单缓存和双缓存,在旋转过程中不断改变图形的颜色,利用鼠标或菜单可终止/启动图形旋转。明确程序包括哪些函数,各个函数的功能以及整个流程,从而为进一步做综合性的图形绘制实验奠定基础。

三、 所用仪器、设备

Windows XP系统,Visual C++,OpenGL及GLUT库

四、 实验方法与步骤

先配置环境,把相关文件放到相应的文件夹

C:\\Program Files\\Microsoft Visual Studio\\VC98\\Include\\GL

C:\\WINDOWS\\system32

C:\\Program Files\\Microsoft Visual Studio\\VC98\\Lib

再通过VC++进行编译

五、 程序代码

#include #include #include < stdio.h >

#include

#define DEG_TO_RAD 0.017453 static GLfloat theta = 0.0;

GLfloat r = 1.0; //设置三角形的初始颜色 GLfloat g = 0.0; GLfloat b = 0.0; int singleb,doubleb; void display(void)

{ glClear(GL_COLOR_BUFFER_BIT); //三角形颜色渐变

glColor3f(r, g,b);

r = r - 0.002;

g = g + 0.002; b = b + 0.001; if(r < 0.001) { r = 1.0; g = 0.0; b = 0.0;

}

glBegin(GL_POLYGON);

glVertex2f(cos(DEG_TO_RAD*theta), sin(DEG_TO_RAD*theta)); glVertex2f(cos(DEG_TO_RAD*(theta+120)),

sin(DEG_TO_RAD*(theta+120)));

glVertex2f(cos(DEG_TO_RAD*(theta+240)),

sin(DEG_TO_RAD*(theta+240)));

glEnd();

glutSwapBuffers();

}

void spinDisplay (void) //三角形转动弧度设置 {

theta = theta +5; if (theta > 360.0)

theta = theta - 360.0;

glutSetWindow(singleb);

glutPostWindowRedisplay(singleb); glutSetWindow(doubleb);

glutPostWindowRedisplay(doubleb);

}

void spinDisplay1(void) {

glutPostRedisplay(); }

void myReshape(int w, int h) {

glViewport(0, 0, w, h); //指定平面上一个矩形裁剪区域, glMatrixMode(GL_PROJECTION); glLoadIdentity(); if (w <= h)

gluOrtho2D(-1.,1.,-1.*(GLfloat)h/(GLfloat)w,1.*(GLfloat)h/(GLfloat)w); else 1.);

}

void mouse(int button,int state,int x,int y) //鼠标定义 { switch(button) {case GLUT_LEFT_BUTTON:

if(state == GLUT_DOWN )

glutIdleFunc(spinDisplay1);

gluOrtho2D(-1.*(GLfloat)w/(GLfloat)h, 1.*(GLfloat)w/(GLfloat)h, -1.,

{ }

break; } }

void main(int argc, char** argv) //主函数 {

glutInit(&argc,argv);

glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB); case GLUT_RIGHT_BUTTON: if(state == GLUT_DOWN) glutIdleFunc(spinDisplay); break; default: break;

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

科 技 学 院 课程设计(综合实验)报告 ( 2013 -- 2014 年度第 2 学期) 实验名称 OpenGL基本图元绘制实验 课程名称 计算机图形学 专业班级:计算机11K1 学生姓名:曲强 学 号:111909010118 成 绩: 指导教师:姜丽梅 实验日期:2014.6.5 | | 实验一、OpenGL基本图元绘制实验

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com