openGL函式說明

2021-07-01 22:36:22 字數 4354 閱讀 5328

函式原型:

void glbegin(glenum mode)

void glend(void)

引數說明:

mode:建立圖元的型別。可以是以下數值

函式說明:

glbegin和glend函式限定了一組或多**元的定點定義。

函式原型:

glvertex4i,glvertex4s,glvertex2dv,glvertex2fv,glvertex2iv,glvertex2sv,glvertex3dv,glvertex3fv,

glvertex3iv,glvertex3sv,glvertex4dv,glvertex4fv,glvertex4iv,glvertex4sv

例子:

glvertex3f(glfloat x, glfloat y, glfloat z)

函式說明:

glvertex函式用在glbegin和glend之間,除此以外沒有意義。用來指定點、線和多邊形的頂點。當呼叫glvertex時,可以為該頂

點指定顏色、法線量和紋理座標。當只指定x,y時,z預設為0.0,w預設為1.0;當只指定x、y和z時,w預設為1.0。

函式原型:

voidglflush(void void)

void glutswapbuffers(void)

函式說明:

glflush 是強制馬上輸出命令執行的結果,而不是儲存在緩衝區中,繼續等待其他opengl命令。

當執行雙緩衝交換的時候,

使用glutswapbuffers。

但是在有 glutswapbuffers 的情況下, 不需要 glflush 就可以達到同樣的效果,因為我們執行雙緩衝交換的時候,就**的執行了一次重新整理操作。

函式原型:

glcolor3b,glcolor3d,glcolor3f,glcolor3i,glcolor3s,glcolor3ub,glcolor3ui,glcolor3us,glcolor4b,glcolor4d,

glcolor4f,glcolor4i,glcolor4s,glcolor4ub,glcolor4ui,glcolor4us,glcolor3bv,glcolor3dv,glcolor3fv,glcolor3iv,

glcolor3sv,glcolor3ubv,glcolor3uiv,glcolor3usv,glcolor4bv,glcolor4dv,glcolor4fv,glcolor4iv,glcolor4sv,

glcolor4ubv,glcolor4uiv,glcolor4usv

例子:voidglcolor3f(glfloatred, glfloatgreen,glfloat blue)

函式說明:

設定當前顏色。如下例子

例1:繪製乙個平滑過度填充色的三角形和乙個平面著色的四邊形

glclear(gl_color_buffer_bit or gl_depth_buffer_bit);  // 根據glclearcolor和glcleardepth指定的值清除

顏色和深度快取

glloadidentity();                                     // 重置當前指定的矩陣為單位矩陣

..........................................三角形...........................................

//當您呼叫glloadidentity()之後,您實際上將當前點移到了螢幕中心,

//x座標軸從左至右,y座標軸從下至上,z座標軸從裡至外。

//opengl螢幕中心的座標值是x和y軸上的0.0f點。

//中心左面的座標值是負值,右面是正值。移向螢幕頂端是正值,移向螢幕底端是負值。移入螢幕深處是負值,移出螢幕則是正值。

gltranslatef(-1.5,0.0,-6.0); // 左移 1.5 單位,並移入螢幕 6.0

//glend()出現後,三角形將被填充。因為每個頂點有不同的顏色,因此看起來顏色從每個角噴出,並剛好在三角形的中心匯合,

//三種顏色相互混合,這就是平滑著色

glbegin(gl_********s); // 繪製三角形(逆時針畫出來的三角形才是正面朝著我們的)

glcolor3f(1.0,0.0,0.0);     // 設定當前色為紅色

glvertex3f(-1.0,-1.0, 0.0); // 左下頂點(//glvertex 的第乙個引數是x座標,然後依次是y座標和z座標)

glcolor3f(0.0,1.0,0.0);     // 設定當前色為綠色

glvertex3f( 1.0,-1.0, 0.0); // 右下頂點

glcolor3f(0.0,0.0,1.0);     // 設定當前色為藍色

glvertex3f( 0.0, 1.0, 0.0); // 上頂點

glend(); // 三角形繪製結束

..........................................正方形...........................................

//在螢幕的左半部分畫完三角形後,我們要移到右半部分來畫正方形。

//這次右移,所以x座標值為正值。因為前面左移了1.5個單位,

//這次要先向右移回螢幕中心(1.5個單位),再向右移動1.5個單位。總共要向右移3.0個單位。

gltranslatef(3.0,0.0,0.0); // 右移3單位

glcolor3f(0.5,0.5,1.0); // 一次性將當前色設定為藍色

glbegin(gl_quads);      // 繪製正方形(逆時針畫出來的正方形才是正面朝著我們的)

glvertex3f(-1.0,-1.0, 0.0); // 左下

glvertex3f( 1.0,-1.0, 0.0); // 右下

glvertex3f( 1.0, 1.0, 0.0); // 右上

glvertex3f(-1.0, 1.0, 0.0); // 左上

glend(); // 正方形繪製結束

函式原型:

void glrotated(gldouble angle,gldouble x,gldouble y,gldouble z)

void glrotatef(glfloat angle,glfloat x,glfloat y,gldouble z)

函式說明:

這兩個函式用來計算旋轉矩陣,該矩陣圍繞原點到點(x,y,z)的向量逆時針旋轉angle度。

OpenGL的引入及基本函式說明

opengl的引入 需加入的標頭檔案 include 並在.pro檔案中加入 qt opengl 使用基本方法 qglwidget派生自qwidget,故絕大多數情況下qglwidget可以像qwidget一樣使用,只是使用opengl的函式替代qpainter實現繪製。通常通過子類化qglwidg...

函式說明python函式巢狀筆記 函式說明

ps 今天上午,非常鬱悶,有很多簡單基礎的問題搞得我有些迷茫,哎,幾天不寫就忘。目前又不當coo,還是得用心記 哦!關於函式內嵌函式作用域的條記 def test i 0defa print locals a printi test 這段,locals 的值為空,說明內嵌的a函式沒有認默引入i de...

CFile Open函式說明

1 nopenflags cfile modecreate 建立乙個新的檔案,如果檔案存在將檔案擷取成長度為0。cfile modenotruncate 此標誌總是與modecreate 配合使用,如果檔案存在,不將檔案擷取成長度為0 如果檔案不存在即建立新檔案。這個功能往往很好用,比如說,當你需要...