- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
OpenGL实验一
计算机 学院 计算机科学与技术 专业 3班 学号3112005883
姓名:曲绍霖 教师评定:
实验一 基本三维图形的建模及基本交互
一、实验目的
1 掌握OpenGL的三维图形绘制方法
2 掌握Visual C++环境下的OpenGL图形开发
二、实验要求
在Windows平台上用VC++结合GLUT做实验,要求掌握结合VC++和OpenGL的基本图形(四面体、六面体、圆柱、圆锥等)建模及编程技能,以及图形学的基本原理,实验完成后要求根据自己的成果撰写一份实验报告。
1 基本三维几何图形(四面体、六面体、圆柱、球等)的建模及基本的交互
2 人机交互(图形的基本变换,如旋转、平移、尺度缩放及橡皮筋技术等)
三、实验环境
操作系统:Windows xp
开发环境:VC++6.0以及GLUT
图形交互设备:鼠标和键盘
四、实验内容
1 GLUT在VC++6.0环境下的正确配置
下载GLUT包,解压后,文件夹中有dll,lib,h文件,将glut32.dll,glut.dll复制到C:\WINDOWS\system32下,将glut32.lib, glut.lib放到C:\Program Files\Microsoft Visual Studio\VC98\Lib(即安装VC++6.0的目录),将glut.h复制到C:\ProgramFiles\Microsoft Visual Studio\VC98\Include\GL
2对基本图形(四面体,六面体,圆柱,球等)的建模及基本交互。
a 在上述四种图形的中选择两种及两种以上进行建模或者组合他们产生新的对象。
b 基本的交互包括:利用鼠标、键盘实现图像的交互(主要实现物体的浏览)
五、存在的问题和感想
虽然开始对OpenGL的编程不是很了解,但是因为对VC++的编程还是有比较深的了解,所以对OpenGL的函数的运用会查阅MSDN来学习如何使用,然后再参考了一下网上的代码和实验给出的例子,基本了解是如何进行OpenGL的编程,一开始觉得OpenGL的编程跟一般的VC++编程有很大的区别,可能很难入门,但是后来,认真研究了一下实验给出的例子,还是很顺利地读懂了。也对OpenGl的建模,光照等有了一定的理解,后来,再运用一下网上相关的代码,加上自己理解的修改,就顺利完成了实验,开始觉得OpenGL的编程很难,就对实验抱着一个厌恶的感觉,但是后来自己做出实验的时候,就开始觉得OpenGL是十分有趣的。
实现代码:
#includewindows.h
#include stdlib.h
#includestdio.h
#include GL/glew.h
#include GL/glut.h
static GLfloat xRot = 0.0f; //x方向旋转参数
static GLfloat yRot = 0.0f; //y方向旋转参数
//初始化OpenGL绘制环境
void init(void){
glClearColor(1.0,1.0,1.0,0.0);//背景颜色为白色
glEnable(GL_DEPTH_TEST);//这句是启用深度测试,这样,在后面的物体会被挡着
glShadeModel(GL_SMOOTH);
}
void myDisplay(void){
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // 清除屏幕和深度缓存
glLoadIdentity();// 重置当前的模型观察矩阵
glTranslatef(0.0f, 0.0f, -6.0f);
glRotatef(xRot, 1.0f, 0.0f, 0.0f);
// 设置旋转的角度,这里glRotatef 第1个参数是角度,2~4 参数是指定旋转轴
// 这里我们设置于x,y轴作旋转轴
// 绘制正方形
glRotatef(yRot, 0.0f, 1.0f, 0.0f);
glTranslatef(-1.5f, 0.0f, 0.0f);
glBegin(GL_QUADS);
glColor3f(0.0f,1.0f,0.0f); // 颜色改为绿色
glVertex3f( 1.0f, 1.0f,-1.
文档评论(0)