


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、计算机图形学实验指导(一)- opengl基础1. 综述这次试验的目的主要是使大家初步熟悉opengl这一图形系统的用法,编程平台是 visual c卄,它对opengl提供了完备的支持。尽管opengl包括渲染命令,但却独立于任何窗口系统和操作系统。因此,opengl并 不包括用来打开窗口以及从键盘或鼠标读取事件的命令。在这里,我们应用glut库简化 windows窗口操作。2. 准备glut库下载glut压缩包后,解压,把glut32.dll放在windows的system32目录下,将glut32.1ib 放在 c:program filesmicrosoft visual studio
2、vc98lib 目录中,将 glut.h 放在 c:program filesmicrosoft visual studiovc98includegl 目录中2在vc中新建项目新建一个项目。选择菜单file屮的new选项,弹出一个分页的对话框,选中页projects屮的win32 console application项,然后填入你自己的project name,回车即可。vc为你创建一个工作区 (workspace),你的项目就放在这个工作区里。为项目添加文件为了使用0pengl,我们需要在项目中加入相关的lib文件:glut32.1ib选中菜单project->settings项,在
3、link选项卡中的object/library modules栏中加入 glut32.iibo选择菜单file中的new选项,弹出一个分页的对话框,选中页files中的c卄sourcefile, 填入文件名,钩选添加到刚才建的那个工程里,然后就可以开始编程了。3. 一个opengl的例子#include <gl/glut.h>初始化openglvoid init(void)glclearcolor(0.0f, o.of, o.of, o.of);/设置背景颜色glshademodel(gl_flat);/ 设置明暗处理主要的绘制过程void display(void)glclear
4、(gl_color_buffer_bit); 清除颜色缓存 glbegin(gl_lines);/ 始画直线glcolor3f(1.0f, l.of, l.of);/设置颜色为白色glvertex2f(30.0f, 30.0f);/第一根线的两个端点glvertex2f(200.0f, 400.0f);glcolor3f(1.0f, o.of, o.oo;/设置第二根线的颜色为红色 glvertex2f(25.0f, 350.0f);/第二根线的两个端点 glvertex2f(250.0f, 50.00;glend();/画线结束glbegin(gl_triangles);/开始画三角形,注意
5、,没有设颜色,所以还是红色 glvertex2f(400.0f, 100.0f);/h 角形的三个顶点 glvertex2f(600.0f, loo.of);glvcrtcx2f(500.0f, 300.0f);glend();/结束画三角形 glflush();/开始绘制在窗口改变大小时调用void reshape(int width, int height)glviewport(0, 0, width, height);/设置视口 glmatrixmode(gl_projection);/设置当前为投影变换模式 glloadidentity();/ffl单位矩阵替换当前变换矩阵 gluor
6、tho2d(0.0, width, 0.0, height);/设置正交投影视图体处理键盘void keyboard(unsigned char key, int x, int y)switch (key)case 27:/esc 键退出exit(o);break;default:break;int main(int argc, char* argv)glutlnit(&argc, argv);/初始化 glut glutinitdisplaymode(glut_single i glut_rgb);/设置为单缓存,rgb 模式 glutinitwindowsize(640, 480)
7、; /设置窗 口大小 glutinitwindowposition(0, 0);/设置窗口起始位置 glutcreate wi ndo w( hb asi c");/ 设置窗 口标题init();/初始化 openglglutdisplayfunc(display);/ 设置显示冋调函数glulrcshapcfunc(reshape);/设置 reshape 回调函数 glutkeyboardfunc(keyboard);/ 设置键盘回调函数 glutmainloopo;/ 进入主循环return 0;程序说明:每个函数的具体含义在稈序注释中已作了叙述,不再多说。opengl的函数在
8、格式上很有特点,它以gl为前缀,并且函数名的最后一个字母指出所 用的数据类型,如:glcolor3f(),字母f指明要使用浮点数。字母前的数字指明参数个数或 指明二维还是三维,如:glvertex2f()是要设置二维的点。opengl釆用的是状态机的方式,用户设定一种状态,程序照此运行。如: glbegin(gl_lines)设定画线状态(gljjnes是opengl已定义好的常量),glcolor3f()设 定绘图所用颜色。main()函数中的几个glut前缀函数是glut库函数,用以初始化窗口,大家不必深究,我 们关注的是display。函数,它是我们真正绘图的地方。函数glcolor3f
9、()以rgb方式设置颜色,格式为:glcolor3f(red, green, blue),每种颜 色值在(0.0, 1.0)之间。函数glvertex2f(x, y)设置二维顶点。函数glbegin(uint state) glend()是最基本的作图函数,下面对它作一介绍。如上所述,opengl是一个状态机,glbegin(uint state)可以设定如下状态:gl_po1nts 画点gl_lines画线,每两个顶点(vertex)为-组gl_line_strip画线,把若干个顶点顺次连成折线gl_line_loop画线,把若干个顶点顺次连成封闭折线gl_triangles画三角形,每三个顶点为一组gl.quads画四边形,每四个顶点为一组gl_polygon画多边形还有 gl_tr1angle_strip, gl_tr1 angle_fan, gl_quads_strip 等等。大家可 以把每一种状态都试一试。程序可以有多siglbcgino、glend()并列的形式,如: glbeing(gl_lines);glend();glbeing(gl_quads); glend(); 除了
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 父母支持对儿童韧性影响-洞察及研究
- 2025年节日礼品项目申请报告模范
- 2025至2030年中国合金球墨铸铁轧辊市场现状分析及前景预测报告
- 信息技术2.0个人技术赋能计划
- 教务处学生事务管理职责
- 小学生消防安全知识学习心得体会
- 工业基地绿化景观物资计划
- 2025年护士执业资格考试题库(外科护理学专项)外科护理法规试题
- 2025年护士执业资格考试(外科护理学)题库考前冲刺试题
- 2025年养老护理员专业知识测试卷-老年护理员护理伦理试题
- 尿道病损切除术术后护理
- 声环境质量自动监测系统质量保证及质量控制技术规范
- 2024年02月珠海市横琴粤澳深度合作区公安局2024年面向社会公开招考66名辅警笔试历年高频考点题库荟萃带答案解析
- 泡泡玛特营销案例分析
- 武汉市2024届高中毕业生二月调研考试(二调)英语试卷(含答案)
- 华为胜任能力素质模型
- 《工件的定位与装夹》课件
- 加工机械安全培训内容记录
- 保险客户服务-课件
- 一例肺栓塞的护理个案
- 美世国际职位评估体系IPE3.0使用手册
评论
0/150
提交评论