2010年10月30日 星期六

HW2

















定義:
ply主要結構為

element vertex 8 //定義"頂點"元素其數量為8個
property float32 x //
頂點的x屬性,其類型為float32
property float32 y
//頂點的y屬性,其類型為float32
property float32 z
//頂點的z屬性,其類型為float32
element face
6 //定義"面"元素,其數量為6個
property list uint8 int32 vertex_index

//面的頂點屬性,類型為uint8的列表

0 0 0 //頂點元素列表
0 0 1

4 0 1 2 3 //面元素列表
4 7 6 5 4

由以上ply定義
利用讀檔 讀取vertex和face的個數
再將vertex和face取出
以此完成Model

操作:
wsad:上下左右旋轉
按住滑鼠移動可旋轉

在此只實作到將模組讀出並利用鍵盤和滑鼠將圖案作旋轉功能
未完成打光,改變大小及更換模組實為可惜
然而第二次作業比第一次作業難上許多
且並未完美呈現作業功能
雖然如此但完成了作業仍然學到許多東西
此實為可貴之處

2010年10月9日 星期六

HW1




















完成了第一個圖學作業

在完成此作業的同時也學到了以下新函式的應用

以下七個新接觸的函式感覺相當重要,相信以後的作業也一定會再度使用,將之條列說明,以彙整完成此作業所學知識。


1.SolidCircle (float x,float y,float a,float b,int number)

畫出實心圓,float x,float yx軸、y軸之座標,float a,float b為橫半徑a 直半徑b, number是構成此圓的點數。


2.ColorRGB(GLfloat R,GLfloat G,GLfloat B)

GLfloat R為紅色色碼

GLfloat G為綠色色碼

GLfloat B為藍色色碼

範圍介於0-255 以三原色調和出其他顏色。


3.glFlush()

OpenGL中的函數,用强制刷新緩衝保證繪圖命令將被執行,而不是儲存緩衝區中等待其他的OpenGL命令


4.glutInitWindowSize(500,500)

設定視窗大小長寬為500x500


5.glutCreateWindow("Basic OpenGL Program Skeleton")

創造一個名為Basic OpenGL Program Skeleton的視窗。


6.glutDisplayFunc(display)

設置的顯示回調函數等介於WM_PAINT消息的響應函數,在該函數中繪製圖形。


7.glutMainLoop ()

就是所謂的訊息迴圈,反覆的接收視窗送來的訊息並且檢查是否是當初設定好的幾個預定的行為,如按鍵、畫面刷新、滑鼠訊息等...如果是的話就會呼叫當初指定的函數來處理。


完成此圖,其中較為繁雜及耗費時間之處為物件座標的調整及三色色碼的計算,座標必須做出精準的計算,以致整體圖形不會看似不協調;而色碼也是一再改變計算,以找出搭配適宜的顏色。


寓意月圓人團圓
始終分隔兩地的一對
在一年一次的中秋佳節團聚下 感情顯的更加深厚