Windows平台下Qt QOpenGL中glutSolidSphere()方法未定義的解決方法


Windows平台下Qt中glut庫的使用

    用Qt中的QGLWidget窗體類中是不包括glut工具庫的,難怪在myGLWidget(在我的程序中是QGLWidget的派生類)中繪制實心球體是說“glutSolidSphere”: 找不到標識符,就是說沒有這個函數的聲明。接下來就來安裝glut庫:

    1.先下載glut庫http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip

    2.將下載下來的文件解壓,將glut32.lib和glut.lib兩個lib文件移到qt目錄下的./lib文件夾中。

    3.將glut.dll和glut32.dll兩個動態鏈接庫移到C:\windows\system32中。

    4.將glut.h文件移到qt目錄下的\include\QtOpenGL中,並建立glut文件(不要后綴),這樣就將glut安裝好了,切換到在自己的程序中,在myGLWidget.cpp(QGLWidget派生類的cpp)加入“#include<glut>”,這樣就可以使用glut中的函數了。

方法步驟4中,建立glut文件的過程,是這樣的:在qt目錄下的\include\QtOpenGL目錄下,新建一個txt文件,里面輸入代碼:#include “glut.h”,然后把該txt文件的名字重命名為glut,注意這個地方不需要加后綴。另外需要特別注意的是,雖然我們把glut.h文件放入在qt目錄下的\include\QtOpenGL下,且我們也在GLWidget.cpp中也加入了頭文件#include<QtOpenGL>,但是因為QtSDK庫編譯的原因,我們在GLWidget.cpp中仍然需要添加#include<glut>語句才行。

既然上面提到了gluPerspective()對結果的影響很大,那么就很有必要了解該函數。在NeHe等人的教程中,該函數使用其各個參數設置為如下:

gluPerspective( 45.0, (GLfloat)width/(GLfloat)height, 0.1, 100.0 );

該函數是設置場景的透視效果的,所謂透視,可以簡單的理解為越遠處的物體看起來越小。所以這里的參數1,2,3表示的是透視是按照基於窗口寬度和高度的45度視角來計算的,參數0.1和參數100是我們場景中所能繪制深度的起點和終點值。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM