网站大量收购独家精品文档,联系QQ:2885784924

【2017年整理】openGL介绍.doc

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
【2017年整理】openGL介绍

openGL简单介绍 openGL(Open Graphics Library)从本质上说,它是一个3D图形和模型库,具有高度的移植性。我们可以将openGL看做是一个C运行时的函数库,这个函数库可以帮助我们绘制二维或三维的图像。 静态链接库和动态链接库 静态库:编译时代码编译进exe中,会使得程序体积非常庞大。不利于模块的共享优点:不会有dll hell的问题。好像“企业间的吞并”动态库:dll。代码在dll中,其他程序调用dll中的代码,多个程序可以共享。缺点:dll hell(dll地狱),版本问题。#include windows.h #include gl/glut.h void RenderScene(void) { glClear(GL_COLOR_BUFFER_BIT); //用当前的清除颜色清除窗口 glFlush(); //刷新绘图命令 } void SetupRC(void) //设置渲染状态 { glClearColor(0.0f,0.0f,1.0f,1.0f); } //void main(void) int main(int argc,char* argv[]) { glutInit(argc,argv); //对GLUT函数库进行初始化 glutInitDisplayMode(GLUT_SINGLE|GLUT_RGBA); //创建窗口时使用哪种类型的显示模式 glutCreateWindow(simple); //创建glut窗口 glutDisplayFunc(RenderScene); //当窗口被绘制时,调用RenderScene函数 SetupRC(); //执行渲染之前应完成的所有OpenGL初始化工作 glutMainLoop(); //启动GLUT框架的运行 return 0; } 使窗口绘制的图形不变形 首先,在窗口上绘制一个红色的矩形 glColor3f(1.0f,0.0f,0.0f); //设置绘图颜色 glRectf(-25.0f,25.0f,25.0f,-25.0f); //绘制填充矩形 其次,在主函数中添加 glutReshapeFunc(ChangeSize); //当窗口大小改变时,重新设置坐标系统 ChangeSize函数的实现: void ChangeSize(GLsizei w,GLsizei h) { GLfloat aspectRatio; if(h==0) h=1; //防止被0所除 glViewport(0,0,w,h); //重置投影矩阵堆栈 glMatrixMode(GL_PROJECTION); glLoadIdentity(); //在进行变换前把当前矩阵设置为单位矩阵 aspectRatio=(GLfloat)w/(GLfloat)h; if(w=h) glOrtho(-100.0,100.0,-100/aspectRatio,100.0/aspectRatio,1.0,-1.0); else glOrtho(-100.0*aspectRatio,100.0*aspectRatio,-100,100.0,1.0,-1.0); //重置模型视图堆栈 glMatrixMode(GL_MODELVIEW); glLoadIdentity(); } 在窗口中绘制图形 基本框架: glBegin(图元) ; glVertex3f(x,y,z); …… glEnd(); 其中,图元可以是点、线、三角形、四边形等。 glVertex3f(x,y,z);表示一个顶点。 如:绘制一个点 glBegin(GL_POINTS); glVertex3f(0.0f,0.0f,0.0f); glEnd(); 常用的图元有: GL_POINTS:绘制点 GL_LINES:绘制直线 GL_LINE_STRIP:绘制线带 GL_LINE_LOOP:绘制线环 GL_TRIANGLES:绘制三角形 GL_TRIANGLE_STRIP:绘制三角形带 GL_TRIANGLE_FUN:绘制三角形扇 GL_QUADS:绘制四边形 如:绘制一个点组成的螺旋线 首先,添加头文件和定义符号 常量 #include math.h #define GL_PI 3.1415f 其次,绘制螺旋线 void RenderScene(void) { GLfloat x,y,z,angle; glClear(G

文档评论(0)

liangyuehong + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档