使用OpenGL中的GLUT

简介: 为了使作图部分更简单,从而更好地理解曲线、曲面的理论,所以使用了OpenGL的GLUT工具来实现。 从OpenGL网站http://www.opengl.org下载GLUT,下载后有以下几个文件且需要手动安装: glut.

 

为了使作图部分更简单,从而更好地理解曲线、曲面的理论,所以使用了OpenGL的GLUT工具来实现。

从OpenGL网站http://www.opengl.org下载GLUT,下载后有以下几个文件且需要手动安装:

glut.h ——— glut头文件;

glut32.lib—— glut静态库;

glut32.dll—— glut动态库;

安装分为以下几步:

1. 将glut.h放到编译器默认的包含文件夹中,如 ...\include\GL, gl.h和glu.h应该就在那个文件夹内;

2. 将glut32.lib放到编译器默认的静态库中,如 ...\Lib\;

3. 最后将glut32.dll放在操作系统的System32文件夹中: 如C:\Windows\System32;

安装完GLUT库后,若要在Visual C++中使用,需要做以下设置:

在菜单Project->Settings中,或按快捷键Alt+F7出现Project Settings对话框,在Link选项中,在如图A1所示位置添加上要使用的OpenGL库:

opengl32.lib glu32.lib glut32.lib

clip_image002

图A1. 添加GLUT库

一个简单的GLUT示例程序的源程序如下所示:

 

 1  //  An Example OpenGL Program 
 2 
 3  #include  < gl\glut.h >  
 4 
 5  void     Initialize( void ); 
 6  void     DrawScene( void ); 
 7 
 8  void  main( int  argc,  char *  argv[]) { 
 9      glutInit( & argc, argv);                             //  Initialize GLUT 
10      glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);         //  Set display mode 
11      glutInitWindowPosition( 50 , 100 );                     //  Set top-left display window position 
12      glutInitWindowSize( 400 300 );                     //  set display window width and height 
13      glutCreateWindow( " An Example OpenGL Program " );     //  Create display window 
14 
15      Initialize();                                     //  Execute initialization procedure 
16      glutDisplayFunc(DrawScene);                         //  Send graphics to display window 
17 
18      glutMainLoop();                                     //  Display everything and wait 
19 
20 
21  /*  
22  */  
23  void     Initialize( void ) { 
24       // glClearColor(1.0, 1.0, 1.0, 0.0);                 //  Set Display-window color to white 
25      glMatrixMode(GL_PROJECTION);                     //  Set projection parameters 
26      glLoadIdentity(); 
27      gluOrtho2D( 0.0 200 0.0 150 );                     //  
28  //  Initialize 
29 
30  /*  
31  */  
32  void     DrawScene( void ) { 
33      glClear(GL_COLOR_BUFFER_BIT);                     //  Clear display window 
34 
35      glColor3f( 1.0 0.0 0.0f );                         //  set line segment geometry color to red 
36      glBegin(GL_LINES); 
37          glVertex2i( 0 0 ); 
38          glVertex2i( 190 140 ); 
39      glEnd(); 
40 
41      glFlush();                                         //  Process all OpenGL routines as quickly possible 
42  //  DrawScene
43 

 

目录
相关文章
|
5月前
|
Linux API 图形学
OpenGL生态中的GL, GLU, GLUT, GLX, GLEW, GLEE和GLEXT详解
该文介绍了OpenGL生态系统中的关键组件,包括GL(基础绘图API)、GLU(提供辅助函数)、GLUT(窗口管理和事件处理)、GLX(X Window系统上的OpenGL扩展)、GLEW和GLEE(动态查询和封装OpenGL扩展)以及GLEXT(OpenGL扩展集合)。这些库和工具协同工作,帮助开发者构建跨平台的图形应用程序,提升兼容性与功能。理解它们的作用对优化OpenGL编程至关重要。
|
6月前
|
XML 小程序 Java
【Android App】三维投影OpenGL ES的讲解及着色器实现(附源码和演示 超详细)
【Android App】三维投影OpenGL ES的讲解及着色器实现(附源码和演示 超详细)
123 0
|
缓存 C++
Opengl ES之FBO
Opengl ES连载系列
150 0
|
存储 编解码 算法
Opengl ES之LUT滤镜(上)
Opengl ES之连载系列
453 0
|
数据安全/隐私保护 开发者
OpenGL ES 多目标渲染(MRT)
Opengl ES连载系列
318 0
|
数据安全/隐私保护 索引
Opengl ES之纹理数组
Opengl ES连载系列
257 0
|
数据安全/隐私保护
Opengl ES之水印贴图
Opengl ES之连载系列
147 0
|
Java 数据安全/隐私保护 Android开发
Opengl ES之矩阵变换(下)
Opengl ES连载系列
129 0
|
Java API 数据安全/隐私保护
Opengl ES之矩阵变换(上)
Opengl ES连载系列
148 0
|
存储
Opengl ES之踩坑记
Opengl ES之连载系列
136 0