资源描述:
《opengl学习指导实验计算机图形学上机》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、计算机图形学实验指导书计算机科学与信息工程学院目录实验一OpenGL程序设计3实验二二维基本图元的生成7实验三二维图元的填充13实验四二维图形的几何变换1823实验五裁剪实验六自由曲线26实验七造型技术27实验八交互式技术32实验九真实感图形的绘制37计算机图形学实验指导一、实验目的1、培养学生动于•编程解决实际问题的能力。2、训练学生分析问题和调试程序的能力。3、锻炼学生撰写科技实验论文的能力。二、实验耍求1、问题分析充分地分析和理解问题本身,弄清要求做什么,用什么算法。2、程序设计(1)根据所采用的算法,设计数据结构,画出流程图并编程。(2)最后准备调试程序的数据及测试方
2、案。3、上机调试(1)对程序进行编译,纠止程序中可能出现的语法错误。(2)调试前,先运行一遍程序看看究竟将会发生什么。(3)如果悄况很糟,根据事先设计的测试方案并结合现场情况进行错误跟踪,包括单步调试、设置观察窗输出屮间变量值等手段。4、整理实习报告三、实验报告1、实验内容:采用的算法名称2、问题描述:包括目标、任务、条件约束描述等。3、设计:数据结构设计和核心算法设计。主要功能模块的输入,处理(算法框架)和输出。4、测试范例:测试结果的分析讨论,测试过程屮遇到的主要问题及所采用的解决措施。5、心得:包插程序的改进设想,经验和体会。6、程序清单:源程序,其中包括变量说明及详细
3、的注释。实验一OpenGL程序设计一、实验学时2学时二、实验类型学习型实验三、实验目的和要求初步了解0penGL程序设计结构;了解OpenGL的基本数据类型、核心函数及辅助函数的使用。四、实验内容1、综述这次试验的目的主耍是使大家初步熟悉OpenGL这一图形系统的川法,编程平台是VisualC++,它对OpenGL提供了完备的支持。OpenGL提供了一系列的辅助函数,用于简化Windows操作系统的窗口操作,使我们能把注意力集中到图形编程上,这次试验的程序就采用这些辅助函数。2、在VC屮新建项忖•新建一个项目。选择菜单File中的New选项,弹出一个分页的对话框,选中页Pro
4、jects中的Win32ConsoleApplication项,然后填入你自己的Projectname,如Test,回车即可。VC为你创建―个工作区(Workspace),你的项目Test就放在这个工作区里。•为项忖添加文件为了使用0penGL,我们需要在项目中加入三个相关的Lib文件:glu32.lib、glaux.lib.opcngl32.lib,这三个文件位T*c:programfilesMicrosoftVisualStudiovc98lib目录中。选中菜单Project->AddToProject-”、订es项(或用鼠标右键),把这三个文件加入项目,在Fil
5、eView中会有显示。这三个文件请务必加入,否则编译时会出错。或者将这三个文件名添加到Project->Setting->Link->Object/libraryModules即可。点击工具条中NewTextFile按钮,新建一个文木文件,存盘为Test,c作为你的源程序文件,再把它加入到项目中,然后就可以开始编程了。#inelude〈windows.h>itincludeitincludeitinclude//初始化OpenGL场景voidmyinit(void){glClearColor(0.0,0.0,0.0
6、,0.0);//将背景置成黑色glShadeModel(GL_FLAT);//设置明暗处理//用户的绘图过程voidCALLBACKdisplay(void){glClcar(GL_COLOR_BUFFER_BIT
7、GL_DEPTII_BUFFER_BIT);〃清除缓存glBcgin(GL_LINES);//开始画一根口线glColor3f(1.Of,1.Of,1.Of);//设置颜色为口色〃设置第一根线的两个端点,请注意:OpenGL坐标系的原点是在屏幕左卜角glVertex2f(10.Of,50.Of);glVertex2f(110.Of,50.Of);glColor3f
8、(l.Of,0.Of,0.Of);//设置颜色为红色//设置第二根线的两个端点glVertex2f(110.Of,50.Of);glVertex2f(110.Of,150.Of);glEndO;//
9、删线结束glFlush0;//绘图结束}//〃主过程://初始化Windows的窗口界而//并初始化OpenGL场景,绘图intmain(intargc,char**argv){auxInitDisplayMode(AUX_RGB);//初始化显示模式,采用RGB彩色系统。auxInitPosition(0