走著每天上學必經的綠蔭大道,緩步走向左手邊樸素的建築物,這就是元智一館,我們
每天奮戰與學習新知的地方。作品中呈現的藍天白雲,期許著我們可以在這資訊人才的搖籃
裡激發創意,創造出簡單中的不平凡。
程式設計與寫作方法、執行結果呈現
是創作,因此首要目標就是將一個個的物件給創造出來。圖片中的主體是一館建築物,再來
是窗戶、燈座、道路、樹木等等。這些物件反覆的利用OpenGL Primitives 即可完成。
| (圖一) 元智大學一館(Yuan Ze University Building 1, Taiwan) |
基本的寫法是將要畫的圖形包在函式 glBegin(GLenum mode) 與 glEnd()之中,glBegin()的
參數 mode 是填入想要畫的Primitive,我們可以利用GL_LINES、GL_LINE_LOOP、
GL_LINE_STRIP 這類的Primitives畫線,GL_TRIANGLES實做三角形、 GL_QUADS實做長方
形,用GL_POLYGON實做多邊形。
由於畫布上的物件是一層一層疊上去的,所以一定要搞清楚物件的先後順序,於是可以
得到初步的成果。(圖二)
| (圖二)初步的成果 |
有了初步的底圖之後,接下來就要為圖形著色,使用的函數是
glColor3f(GLfloat red, GLfloat green, GLfloat blue
) 傳進去的參數是RGB三原色的比例(最高是1,最低是0),而不是直接傳256色的色階,這跟以往在寫其它畫圖程式所用的RGB傳值的方式有點不同,所以一開
始在參數的轉換上遇到了一點小困難,往往不知道如何調出自己想要的顏色。後來我使用了
Colorspire + EXCEL來計算我的顏色一切就簡單多了(圖三),只要將在 Colorspire 抓到的RGB值丟進
EXCEL 除以255運算過後,就可以得到RGB顏色的比例。於是我們可以得到最後的成果。
| (圖三) Colorspire + EXCEL |
| (圖四)加了顏色 |
心得與討論
作業一是利用基本的 OpenGL Primitives 來完成元智大學一館的繪製,這是一個非常好的
練習,讓我們可以熟悉基本的2D繪圖以及相關參數的設置,另外我在程式的撰寫中也加入了
一些額外的技巧,例如圓形的繪製,雖然圓形不屬於基本的 Primitives ,不過透過簡單的程式
邏輯,讓繪圖增添了不少可能性。