OpenGL绘图入门
2016-11-16 21:51
337 查看
像许多学科一样,通过练习可以很快地掌握计算机图形学,练习利用OpenGL编写和测试生成各种不同图形的程序。 选择OpenGL,是因为其跨平台特性。
首先介绍四种主要的OpenGL库
1、基本GL库:OpenGL库的基础。它提供了OpenGL的基本函数。每个OpenGL函数都是以字符GL开头。
2、GLUT库:GL实用工具包(the GL Utility Tookit),主要用来打开窗口,开发和管理菜单,以及管理事件。
3、GLU库:GL实用库(the GL Utility Library),提供高级例程,处理矩阵操作和绘制二次曲面如球和圆柱体。也提供将非凸和非简单多边形分解成简单形状(如三角形)的实用函数(基本的OpenGL处理不好这些操作)
4、GLUI库:用户接口库(the User Interface Library),只要使用GLUT,GLUI就将适当地运行。GLUI为OpenGL程序提供了良好的控制工具和菜单。
![](http://img.blog.csdn.net/20161116214851812?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
主要有五种基本事件类型,每种都可以使用GLUT函数注册。
1、glutDisplayFunc(myDisplay):无论系统何时决定重画 一个屏幕窗口,它都会发出一个重新绘制事件。出现下列情况之一就会发生该事件:第一次打开窗口,或覆盖它的窗口被移走而露出该窗口。函数myDisplay()在这里被注册为重新绘制事件的回调函数。
2、glutReshapeFunc(myReshape):用户可以对屏幕窗口的形状进行调整,通常是用鼠标将窗口的一个角拉伸到一个新位置(只移动窗口并不产生该事件)。函数myReshape()在这里被注册为改变窗口形状的事件。
3、glutMouseFunc(myMouse):当按下或释放某个按钮时,就发生了鼠标事件。函数myMouse()在这里被注册为鼠标事件发生时所调用的函数。
4、glutMotionFunc(myMotionFunc):当按下一个或几个鼠标按钮并且鼠标移动时,一个鼠标运动事件产生了。
5、gultKeyboardFunc(myKeyboard):这个函数用按下或释放键盘上按键的事件来注册函数myKeyBoard()。
上图中最后一个函数是glutMainLoop()。当执行这个函数时,程序绘制完初始图形,并进入循环,一直等待事件发生。
画图的第一个任务是打开一个用于画图的屏幕窗口。下图,显示了如何用GLUT打开一个窗口,并对函数进行介绍。
首先介绍四种主要的OpenGL库
1、基本GL库:OpenGL库的基础。它提供了OpenGL的基本函数。每个OpenGL函数都是以字符GL开头。
2、GLUT库:GL实用工具包(the GL Utility Tookit),主要用来打开窗口,开发和管理菜单,以及管理事件。
3、GLU库:GL实用库(the GL Utility Library),提供高级例程,处理矩阵操作和绘制二次曲面如球和圆柱体。也提供将非凸和非简单多边形分解成简单形状(如三角形)的实用函数(基本的OpenGL处理不好这些操作)
4、GLUI库:用户接口库(the User Interface Library),只要使用GLUT,GLUI就将适当地运行。GLUI为OpenGL程序提供了良好的控制工具和菜单。
主要有五种基本事件类型,每种都可以使用GLUT函数注册。
1、glutDisplayFunc(myDisplay):无论系统何时决定重画 一个屏幕窗口,它都会发出一个重新绘制事件。出现下列情况之一就会发生该事件:第一次打开窗口,或覆盖它的窗口被移走而露出该窗口。函数myDisplay()在这里被注册为重新绘制事件的回调函数。
2、glutReshapeFunc(myReshape):用户可以对屏幕窗口的形状进行调整,通常是用鼠标将窗口的一个角拉伸到一个新位置(只移动窗口并不产生该事件)。函数myReshape()在这里被注册为改变窗口形状的事件。
3、glutMouseFunc(myMouse):当按下或释放某个按钮时,就发生了鼠标事件。函数myMouse()在这里被注册为鼠标事件发生时所调用的函数。
4、glutMotionFunc(myMotionFunc):当按下一个或几个鼠标按钮并且鼠标移动时,一个鼠标运动事件产生了。
5、gultKeyboardFunc(myKeyboard):这个函数用按下或释放键盘上按键的事件来注册函数myKeyBoard()。
上图中最后一个函数是glutMainLoop()。当执行这个函数时,程序绘制完初始图形,并进入循环,一直等待事件发生。
画图的第一个任务是打开一个用于画图的屏幕窗口。下图,显示了如何用GLUT打开一个窗口,并对函数进行介绍。
相关文章推荐
- OpenGL基本概念入门2——使用OpenGL绘图
- OpenGL学习脚印: 使用索引绘图(index drawing)
- OpenGL入门笔记(十)
- OpenGL入门学习(七)
- Chromium硬件加速渲染的OpenGL上下文绘图表面创建过程分析
- 入门系列--OpenGL最简单的入门
- OpenGL入门 & VS2012 配置使用 OpenGL gult库
- OpenGL入门学习(一)
- OpenGL入门学习[十五]
- OpenGl 入门(windows)
- Html5 学习系列(五)Canvas绘图API快速入门(2)
- OpenGL入门记录--“太阳,地球和月亮”系统代码
- opengl 入门学习 随笔七
- 关于OpenGL入门中地球,月亮,太阳运动模拟无法显示的问题(只显示黑框)
- HTML5 绘图元素Canvas与SVG的对比(初学入门)
- OpenGL入门学习[二]
- OpenGL入门学习——第八课 使用显示列表
- opengl入门6。1
- Opengl入门之着色器
- OpenGL学习入门之VS2010环境配置