


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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版教育贷款咨询与学生资助协议
- 医药企业研发外包(CRO)与临床试验报告撰写规范与执行报告
- 2025版金融机构代理个人借款合同模板
- 二零二五年度二手房预约买卖合同及社区活动参与协议
- 房产买卖代理与广告推广合作协议
- 2024咸阳市专职消防员招聘考试题目及答案
- 2025年浙教新版高一数学上册阶段测试试卷含答案
- 圆弧形板材行业深度研究报告
- 高等教育心理学复习试题附答案(一)
- 骨科降低卧床患者便秘发生率医院护理质量QCC改善案例
- 设备设施供货实施方案
- 手术室特殊感染手术
- 鬼脸历史课(多篇)
- 物联网工程专业介绍
- 金锭市场分析及投资价值研究报告
- 市场调研表格模板
评论
0/150
提交评论