1.點的大小預設為 1 個畫素,但也可以改變之。
改變的命令為
glpointsize,其函式原型如下: void glpointsize(glfloat size);
size 必須大於 0.0f,預設值為 1.0f,單位為「畫素」。 注意:對於具體的 opengl 實現,點的大小都有個限度的,如果設定的 size 超過最大值,則設定可能會有 問題。
例子:void mydisplay(void)
2.畫多邊形:
從三維的角度上說乙個多邊形具有兩個面,有填充,只畫邊緣輪廓線和只繪定點方式(填充是opengl預設方式)
glpolygonmode(gl_front,gl_fill);//設定正面,填充
glpolygonmode(gl_back,gl_line);//反面,邊緣
glpolygonmode(gl_front_and_back,gl_point);//兩面,頂點繪製
鏤空多邊形:
一開始要使用glenable(gl_polygon_stipple);啟用樓控模式(用gldisabe(gl_polygon_stipple)關閉
顏色填充方式
glshademodel(gl_smooth);//平滑方式(預設)
glshademodel(gl_flat);//單色模式
3.模型變換
通過矩陣變換來實現的,變換之前,應當先設定當前操作矩陣為「模型檢視矩陣」,即:
glmatrixmode(gl_modelview);
先把當前矩陣設為單位矩陣:glloadidentitiy();
再用下面三個函式:
gltranslate(x,y,z)//x,y,z為該方向的位移值
glrotate(x,y,z,angle)//物體將繞著(0,0,0)到(x,y,z)的直線以逆時針旋轉angle角度
glscale(x,y,z)//xyz是該方向上的縮放比例
注意:實際變換的順序和**中寫的順序是相反的
我們看到的「先旋轉後移動」在opengl**中是「先移動後旋轉」
改變觀察點位置glulookat(x1,y1,z1,x2,y2,z2)//前三個引數是觀察點的位置,中間三個引數是觀察目標的位置,最後三個引數表示從(0,0,0)到(x3,y3,z3)的直線是觀察者認為的「上」方向。
投影變換:(opengl支援兩種型別投影變換:透視投影和正投影)(也是通過矩陣變換實現的)
定義:定義乙個可視空間,可視空間外的物體都不會被繪製到螢幕上。(從現在起座標不再是-1.0到1.0了)
glmatrixmode(gl_projection)
glloadidentity();
透視投影實現的兩個函式:
glfrustum
glupersepective
正投影:
glortho
(備註:如果圖形空間本身就是二維的,可以直接就使用gluortho2d,它的使用類似於glorgtho)
視口變換:
glviewport來定義視口
讀書筆記 OpenGL超級寶典
對於某些函式的理解 glclear和glclearcolor glclearcolor指定glclear清除特定緩衝區時使用的值。glflush 讓所有已傳送的命令盡快的由實際的繪製引擎執行。glviewport 前兩個引數指的是左下角。glpushmatrix glrotatef glbegin和...
我的散裝讀書筆記
基於已知資料,對未知資料的不確定性推斷。三個關鍵字 1 已知資料 2 未知資料 3 不確定性推斷。資料分析報告的寫作要基於乙個重要的前提,就是讀者不會超級認真的讀,簡稱 沒空看前提。由此可以獲得以下推論 既然領導時間緊張沒空看,那麼分析報告應該越精簡越好 既然領導時間緊張沒空看,重點應該突出越好 摘...
我的讀書筆記 《非暴力溝通》
前半部分介紹了 非暴力溝通 的要素 框架 運用技巧,是務實的。後半部分則是一些例子及類似 雞湯 的話,是務虛的。個人感覺對於書上所教的,不能照搬照用,其並不是十分符合我們中國人的性格與方式,也並不是十分符合這個快節奏的時代,或許對於親人密友,這樣的溝通方式是極好的。如果說實用性,可能不如各種職場的溝...