计算机图形学实验指导2014_第1页
计算机图形学实验指导2014_第2页
计算机图形学实验指导2014_第3页
计算机图形学实验指导2014_第4页
计算机图形学实验指导2014_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、计算机图形学实验指导实验一初识OpenGL程序设计实验二二维基本图元的生成实验三二维图元的填充实验四二维图形的几何变换实验五裁剪实验六自由曲线实验七造型技术实验八交互式技术实验九真实感图形的绘制计算机图形学实验指导一、实验目的1、培养学生动手编程解决实际问题的能力。2、训练学生分析问题和调试程序的能力。3、锻炼学生撰写科技实验论文的能力。二、实验要求1、问题分析充分地分析和理解问题本身,弄清要求做什么,用什么算法。2、程序设计(1)根据所采用的算法,设计数据结构,画出流程图并编程。(2)最后准备调试程序的数据及测试方案。 3、上机调试(1)对程序进行编译,纠正程序中可能出现的语法错误。(2)调

2、试前,先运行一遍程序看看究竟将会发生什么。(3)如果情况很糟,根据事先设计的测试方案并结合现场情况进行错误跟踪,包括单步调试、设置观察窗输出中间变量值等手段。4、整理实习报告三、实验报告1、实验内容:采用的算法名称2、问题描述:包括目标、任务、条件约束描述等。3、设计:数据结构设计和核心算法设计。主要功能模块的输入,处理(算法框架)和输出。4、测试范例:测试结果的分析讨论,测试过程中遇到的主要问题及所采用的解决措施。5、心得:包括程序的改进设想,经验和体会。6、程序清单:源程序,其中包括变量说明及详细的注释。实验一初识OpenGL程序设计一、 实验学时1学时二、 实验类型学习型实验三、 实验目

3、的和要求初步了解OpenGL程序设计结构;了解OpenGL的基本数据类型、核心函数及辅助函数的使用。四、 实验内容1、综述这次试验的目的主要是使大家初步熟悉OpenGL这一图形系统的用法,编程平台是Visual C+,它对OpenGL提供了完备的支持。OpenGL提供了一系列的辅助函数,用于简化Windows操作系统的窗口操作,使我们能把注意力集中到图形编程上,这次试验的程序就采用这些辅助函数。2、准备工作,环境配置(下面以win7和visual studio 2010为例)glut下载地址:/resources/libraries/glut/glutd

4、lls37beta.zipglut.h - C:Program Files (x86)Microsoft SDKsWindowsv7.0AIncludeglglut.dll,glut32.dll - C:WindowsSysWOW64 (windows7 64位操作系统) - C:WindowsSystem32 (windows7 32位操作系统)glut.lib,glut32.lib - C:Program Files (x86)Microsoft Visual Studio 10.0VClib3、在VC中新建项目 (下面以实验室VS2008为例) 新建一个项目。 打开test1.cpp,添

5、加代码如下:#include /* glut.h includes gl.h and glu.h*/void display(void)/* clear window */ glClear(GL_COLOR_BUFFER_BIT); /* draw unit square polygon */glBegin(GL_POLYGON); glVertex2f(-0.5, -0.5); glVertex2f(-0.5, 0.5); glVertex2f(0.5, 0.5); glVertex2f(0.5, -0.5);glEnd();/* flush GLbuffers */glFlush(); v

6、oid init()/* set clear color to black */glClearColor (0.0, 0.0, 0.0, 0.0);/* set fill color to white */glColor3f(1.0, 0.0, 0.0);/* set up standard orthogonal view with clipping */* box as cube of side 2 centered at origin */ /*This is default view and these statement could be removed */glMatrixMode

7、(GL_PROJECTION);glLoadIdentity ();glOrtho(-1.0, 1.0, -1.0, 1.0, -1.0, 1.0); void main(int argc, char* argv)/* Initialize mode and open a window in upper left corner of screen */* Window title is name of program (arg0) */glutInit(&argc,argv); glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB); glutInitWind

8、owSize(500,500);glutInitWindowPosition(0,0); glutCreateWindow(simple); glutDisplayFunc(display);init();glutMainLoop();运行效果如下:4、程序说明 每个函数的具体含义在程序注释中已作了叙述,不再多说。OpenGL的函数在格式上很有特点,它以gl为前缀,并且函数名的最后一个字母指出所用的数据类型,如:glColor3f(),字母f指明要使用浮点数。字母前的数字指明参数个数或指明二维还是三维,如:glVertex2f()是要设置二维的点。OpenGL采用的是状态机的方式,用户设定一种

9、状态,程序照此运行。如:glBegin(GL_LINES)设定画线状态(GL_LINES是OpenGL已定义好的常量),glColor3f()设定绘图所用颜色。main()函数中的几个aux前缀函数是OpenGL提供的辅助库,用以初始化窗口,大家不必深究,我们关注的是display()函数,它是我们真正绘图的地方。函数glColor3f()以RGB方式设置颜色,格式为:glColor3f(red, green, blue),每种颜色值在(0.0, 1.0)之间。为了能显示更多的颜色,最好把系统设置成16位真彩色模式。函数glVertex2f(x, y)设置二维顶点。函数glBegin(UINT

10、 State)、glEnd()是最基本的作图函数,下面对它作一介绍。如上所述,OpenGL是一个状态机,glBegin(UINT State)可以设定如下状态:GL_POINTS画点GL_LINES画线,每两个顶点(Vertex)为一组GL_LINE_STRIP画线,把若干个顶点顺次连成折线GL_LINE_LOOP画线,把若干个顶点顺次连成封闭折线GL_TRIANGLES画三角形,每三个顶点为一组GL_QUADS画四边形,每四个顶点为一组GL_POLYGON画多边形还有GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_QUADS_STRIP 等等。大家可以把每一种状态都试一试。程序可以有多组glBegin()、glEnd()并列的形式,如:. .glBeing(GL_LINES);.glEnd();glBeing(GL_QUADS);. .glEnd();. .除了上述的基本图元外,函数glRectf(x1, y1, x2, y2)可以画一个矩形,但这个函数不能放在glBegin()和glEnd()之间,下面的两句程序是画一个蓝色的矩形。glColor3f (0.0f, 0.0f, 1.0f);glRec

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论