1. 程式人生 > >使用OpenGL中的GLUT

使用OpenGL中的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(400300);                    // 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.02000.0150);                    //28 // Initialize 29 30 /*31 */32 void    DrawScene(void) { 
33     glClear(GL_COLOR_BUFFER_BIT);                    // Clear display window 34 35     glColor3f(1.00.00.0f);                        // set line segment geometry color to red 36     glBegin(GL_LINES); 
37         glVertex2i(00); 
38         glVertex2i(190140); 
39     glEnd(); 
40 41     glFlush();                                        // Process all OpenGL routines as quickly possible 42 // DrawScene
43