版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
可视化仿真与虚拟现实第3章OpenGL各库的头文件、库文件和DLL文件OpenGL核心库(GL)头文件“GL.H”库文件“OPENGL32.LIB”动态链接库“OPENGL32.DLL”OpenGL实用库(GLU)头文件“GLU.H”库文件“GLU32.LIB”动态链接库“GLU32.DLL”OpenGL辅助库(GLAUX)头文件“GLAUX.H”库文件“GLAUX.LIB”动态链接库“GLAUX.DLL”OpenGL工具库(GLUT)头文件“GLUT.H”库文件“GLUT32.LIB”动态链接库“GLUT32.DLL”WGL库:OpenGL对窗口系统的扩展头文件、库文件和动态链接库都和WindowsGDI一样,由Windows底层提供,头文件是“WINGDI.H”只能在Windows平台上运行OpenGL编程环境的设置围绕着OpenGL库的.h文件、.lib文件和.dll进行注:vs2010的.h和.lib文件应分别放到C:\ProgramFiles\MicrosoftSDKs\Windows\v7.0A\目录下的include\gl和lib两个目录中。OpenGL示例程序#include<gl/glut.h>voiddisplay(){ glClear(GL_COLOR_BUFFER_BIT);//清除场景
…… glFlush();//更新场景}voidmain(intargc,char**argv){ glutInit(&argc,argv); glutCreateWindow("simple"); glutDisplayFunc(display); glutMainLoop();}程序框架,由四句glut函数构成二维场景的绘制主要内容直线与曲线的绘制第二个程序框架窗口的设置二维对象空间向图像空间的映射状态机颜色设置线型设置编程技巧函数的封装文件的封装VC工程的组织练习1.二维直线的绘制voiddisplay(){glClear(GL_COLOR_BUFFER_BIT);//清除场景 glBegin(GL_LINES);
glVertex2f(-0.5,0.5);glVertex2f(0.5,0.5);
glEnd();glFlush();//更新场景}例程a1直线绘制函数不闭合折线闭合折线glBegin(GL_xxxxxx);
glVertex2f(x1,y1);glVertex2f(x2,y2);glVertex2f(x3,y3);glVertex2f(x4,y4);glVertex2f(x5,y5);glVertex2f(x6,y6);glVertex2f(x7,y7);glEnd();多组线段坐标系例程a1曲线的绘制圆(例程a2)抛物线(例程a3)2.第二个程序框架#include<gl/glut.h>voiddisplay(){ glClear(GL_COLOR_BUFFER_BIT);//清除场景 ……
glFlush();//更新场景}voidmain(intargc,char**argv){ glutInit(&argc,argv);//1 glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);//2 glutInitWindowSize(400,300);//3 glutInitWindowPosition(200,100); glutCreateWindow("sample");glClearColor(0,0,0,0); gluOrtho2D(0.0,400.0,0.0,300.0);//4
glutDisplayFunc(display);//5 glutMainLoop();//6}决定了显存中对应的显示区域决定显示窗口的位置、大小和标题用黑色清空显示区域二维映射模式窗口设置显示器屏幕glutInitWindowSize(500,500);glutInitWindowPosition(20,50);20500pixels500pixels由GLUT生成的窗口sampleglutCreateWindow("sample");50pixels视区设置这里的W_L,W_R,W_B,W_TW_LW_RW_BW_TgluOrtho2D(0.0,400.0,0.0,300.0);二维对象空间向图像空间的映射4:3的视区放到1:1的窗口中,会发生什么?正常的圆与发生畸变的圆例程b1和b2心形线例程b3分形图案例程b43.OpenGL状态机OpenGL是一个状态机指的是:如果设置了某种状态(例如线宽、颜色等),在改变这种状态的函数调用之前,这种状态一直有效。3.1颜色的设置设置当前颜色属性glColor*(colorComponents)如:glColor3f(1.0,1.0,1.0);如:glColor3f(1.0,1.0,1.0,1.0);如:glcolor3i(0,255,255);任何格式指定的颜色值都要按比例转换成特定系统有效位所确定的范围中的整数为坐标系设置颜色例程c1用彩色表现的分形图案例程c23.2线型的设置设置线型:glLineStipple(GLint
factor,GLshort
pattern)设置线宽:glLineWidth(GLfloatwidth)glEnalbe(GL_LINE_STIPPLE);glLineStipple(1,0x00FF);glBegin(GL_LINES);\
glVertex2f((x1),(y1));glVertex2f((x2),(y2));glEnd()OpenGL部分状态机 GL_CURRENT_COLOR GL_EDGE_FLAG_ARRAY_POINTER GL_MODELVIEW_MATRIX GL_PROJECTION_MATRIX GL_TEXTURE_MATRIX GL_VIEWPORT GL_DEPTH_RANGE GL_MODELVIEW_STACK_DEPTH GL_PROJECTION_STACK_DEPTH GL_TEXTURE_STACK_DEPTH GL_MATRIX_MODE GL_NORMALIZE GL_CLIP_PLANE GL_FOG_COLOR GL_FOG_INDEX GL_FOG_DENSITY GL_FOG_START GL_FOG_END GL_FOG_MODE GL_FOG GL_SHADE_MODEL GL_LIGHTING GL_COLOR_MATERIAL GL_COLOR_MATERIAL_PARAMETER GL_COLOR_MATERIAL_FACE GL_AMBIENT GL_DIFFUSE GL_SPECULAR GL_EMISSION GL_SHININESS GL_LIGHT_MODEL_AMBIENT GL_LIGHT_MODEL_LOCAL_VIEWER GL_LIGHT_MODEL_TWO_SIDE GL_CURRENT_INDEX GL_CURRENT_TEXTURE_COORDS GL_CURRENT_NORMAL GL_CURRENT_RASTER_POSITION GL_CURRENT_RASTER_DISTANCE GL_CURRENT_RASTER_COLOR GL_CURRENT_RASTER_INDEX GL_CURRENT_RASTER_TEXTURE_COORDS GL_CURRENT_RASTER_POSITION_VALID GL_EDGE_FLAG GL_VERTEX_ARRAY GL_VERTEX_ARRAY_SIZE GL_VERTEX_ARRAY_TYPE GL_VERTEX_ARRAY_STRIDE GL_VERTEX_ARRAY_POINTER GL_NORMAL_ARRAY GL_NORMAL_ARRAY_TYPE GL_NORMAL_ARRAY_STRIDE GL_NORMAL_ARRAY_POINTER GL_COLOR_ARRAY GL_COLOR_ARRAY_SIZE GL_COLOR_ARRAY_TYPE GL_COLOR_ARRAY_STRIDE GL_COLOR_ARRAY_POINTER GL_INDEX_ARRAY GL_INDEX_ARRAY_TYPE GL_INDEX_ARRAY_STRIDEGL_INDEX_ARRAY_POINTER GL_TEXTURE_COORD_ARRAY GL_TEXTURE_COORD_ARRAY_SIZE GL_TEXTURE_COORD_ARRAY_TYPE GL_TEXTURE_COORD_ARRAY_STRIDE GL_TEXTURE_COORD_ARRAY_POINTER GL_EDGE_FLAG_ARRAY GL_EDGE_FLAG_ARRAY_STRIDE
4.1函数的封装例程c34.2文件的封装例程c44.3VC工程的组织格式类型格式名称存储方式作用描述.dsw文件工作区文件文本描述工程间的关联信息,本课程不涉及多工程.dsp文件项目文件文本描述工程中的文件组织情况,文本文件.c文件程序c语言实现文件文本函数代码的实现部分,面向程序员.cpp文件程序C/C++实现文件文本函数和类的实现部分,面向程序员.h文件头文件文本变量、函数和类的定义部分,面向程序员.lib文件静态链接库二进制函数和类的实现部分,面向机器。程序运行时就被放到内存中.dll文件动态链接库二进制函数和类的实现部分,面向机器。函数被调用时才放到内存中工程目录下debug目录下其它格式工程目录下:ncb文件,无编译浏览文件。通常较大,文件共享时可删除。plg文件,编译的出错和警告信息,文件共享时可删除。readme.txt工程中文件信息,程序员自行修改添加,可删除Debug目录下:exe文件,执行文件。交作业时可删除除exe、lib、dll之外
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 股东对赌协议
- 婚内财产只归女方协议书范本
- 财务会计实习报告范文
- 部门kpi报告范文
- 2024年度高速公路交通事故应急预案合同2篇
- 《防静电知识讲座》课件
- 基于二零二四年度的版权运营合同
- 土地承包经营权转让合同
- 2024版租赁合同(办公场所)2篇
- 《工程构造》课件
- 小学五年级科学实验操作考试试题
- 中枢神经系统胶质瘤诊断和治疗指南
- 高等数学(下)知到章节答案智慧树2023年西北农林科技大学
- 二人合伙人合同协议书电子版
- 人音版小学音乐四年级上册期末测试题(音乐理论)及答案
- 服装怎么验货服装验货的标准及步骤详解
- 生命科学导论(上海交通大学)智慧树知到答案章节测试2023年
- 护理不良事件分析修改
- 社会学第十三章社会问题
- 送达地址及收款账户确认书
- JJG 556-2011轴向加力疲劳试验机
评论
0/150
提交评论