看了opengles已經有一段時間了,大致對這個3d庫有了一些了解,之後就開始對這套api進行一下深入的研究學習。
首先要先了解一下gl和glut的概念,自己詳細google下,總之你得先了解你所要用的庫以及庫的功能,在這裡簡單提一下,gl是3d庫的主要api框架,而glut則是一些工具,我們在x86_64或i386架構下使用xcode所對應的標頭檔案是:
#include
#include
#include
glut在這裡會提供一些建立桌面視窗之類的工具,用於顯示opengl畫出圖的效果;話不多說,直接上例子。
#include
#include
int main(int argc, char * argv)
先不著急,一點一點解釋:
glutinit
glut初始化,在這裡提一下第二個引數,因為之前用xcode建立例子的時候,函式主入口是這樣的:
int main(int argc, const
char * argv)
然而進行傳參時,glutinit(&argc,argv)
提示沒有匹配的函式,經查證後得知是引數傳錯了,理由是:指向const的指標不能被賦給指向非const的指標;解決辦法倒不是沒有,應該用strcpy,也就是另開一塊記憶體,把字元乙個個複製過去,但是這樣太麻煩了,索性直接改掉main()的引數好了;
glutinitwindowposition
設定視窗的初始位置,以桌面左上角為零點;
glutinitwindowsize
設定視窗的大小;
glutcreatewindow
建立視窗,給定乙個視窗標題;
gluortho2d
接下來的這個函式是在
畫一條線:
void drawline(void);
int point2 = ;
int point3 = ;
glbegin(gl_lines);
glvertex2iv(point1);
glvertex2iv(point2);
glvertex2iv(point3);
glend();
/*** 如果列出的端點數為奇數,則最後乙個端點被忽略;
*/glflush();
}
glclearcolor
使用該函式設定圖形背景顏色,四個引數分別是我們熟悉的rgba;然而該函式只是將顏色值儲存在了顏色快取中,必須要通過呼叫glclear
才能將顏色值取出來;
glcolor3f
使用該函式設定的顏色對要進行畫的畫素著色;如果是一條線,它將是線的顏色;
glbegin(gl_lines);
glend();
畫圖需要被包含在以上兩個函式之間,glbegin
的引數將決定畫的是什麼圖形,各圖形畫圖時有各自的規則,之後慢慢講解;畫點函式glvertex*
,在vertex後的2,3,4數字表示維數(在幾維的空間座標系中);之後接的是型別,表示浮點還是整形等;最後如果加v的話,表示傳入的將是乙個用陣列表示的點,本例中就是這樣表示的;
glflush
最後這個函式非常重要,沒有它,之前所做的一切都白費了;原文解釋,該函式強制由計算機系統存放在不同位置的快取中的opengl函式執行,其位置依賴於opengl的實現,暫時還不是能太搞懂,之後可能會詳細介紹,本章只是做了乙個引入。
另外如果要畫乙個點則可以這樣做:
glbegin(gl_points);
glvertex2i(x, y);
glend();
這樣可以通過迴圈,畫一些不規則的圖形,如果你自己設計演算法,也許圓也可以畫的出來;另外如果要從乙個畫素點上取得顏色,則需要使用getpixel
。
畫一條折線:
void drawpolyline(void),,,,};
glbegin(gl_line_strip);//strip條狀,剝去
for (int i=0; i<5; i++)
glend();
/*** 使用圖元常量gl_line_strip可獲得折線;
* 如果不列出至少兩個點,則什麼也不顯示;**/
glcolor3f(1, 0, 0);
int pointloop[5][2] = ,,,,};
glbegin(gl_line_loop);
for (int i=0; i<5; i++)
glend();
/*** 使用圖元常量gl_line_loop可獲得閉合折線;
* 如果不列出至少兩個點,則什麼也不顯示;
* 最後乙個端點與第乙個端點相連線;**/
glflush();
}
上面的例子會教你如何畫一條折線或者閉合折線,注意看裡面的注釋。
本篇就講到這裡,持續學習並更新中…
讓我們來FirePHP
firephp是什麼?firephp是乙個利用firebug console欄輸出除錯資訊方便程式除錯。這一切只需要呼叫幾個簡單的函式。他看起來是怎麼個樣子?為什麼要用它?在開發環境下正常執行的程式放在生產環境出問題了!我期望可以在生產環境中進行修改。但不期望客戶看到這一切的發生。請選擇fireph...
讓我們沒有煩惱
道理我們都知道,可是很多時候我們遺忘了,那麼就用這個故事來提醒自己 天底下只有三件事 一件是 自己的事 諸如 上不上班 吃什麼東西 開不開心 結不結婚 要不要幫助人.自己能安排的皆屬之。一件是 別人的事 諸如 小張好吃懶做 小陳婚姻不幸福 老陳對我很不滿意 我幫助別人,別人卻不感激.別人在主導的事情...
生活讓我們懂得
今天看一文章很好,摘抄下來 不能強迫別人來愛自己,只能努力讓自己成為值得愛的人,其餘的事情則靠緣分。信任也許需要好紀念才能建立,卻可以在短短幾秒內毀滅。生活中最寶貴的東西不是你擁有的物質,而是陪伴在你身邊的人。一時的錯誤可能導致一輩子的傷痛。實現自己的理想需要從現在開始行動。我可以做得比自己想象中的...