2012年4月29日 星期日

作業二 3D元智二館

(一)主題介紹


畫出3D的元智一館
這次跟之前比起來多了一個維度
要畫的東西整個就多了很多

(二)成果與過程展示




基本上做法跟上一個作業一樣
不過這次的面比之前畫的多了5倍
每個長方體都要畫六面
3D元智一館是先由各個中間會留下空洞長方體組成
然後線是玻璃等顏色是由裡面的長方體透出來的
圓柱體則是這樣造出來的:

GLUquadricObj *quadratic;
gluCylinder(quadratic,0.6,0.6,3.1,32,32);
quadratic=gluNewQuadric();
然後在移動到想要的位置,不過這裡要注意的是,要用glPushMatrix()和glPopMatrix()包起來
像這樣:

glPushMatrix();
glColor3f( 0.7, 0.7, 0.7 );
glTranslatef( 11, 3.1, -0.5 );
glRotatef( 90, 1, 0, 0 );
gluCylinder(quadratic,0.6,0.6,3.1,32,32);
glPopMatrix();
這樣才能單純只移動到圓柱體,否則的話整個一館都會一起移動和旋轉!

在整個一館的旋轉方面,我試用簡單的glRotatf()去旋轉,其中角度用變數去更改
在按下'A'和'D'鍵時角度會增加及減少,用這樣的方法去控制一館的旋轉。

(三)心得與感想

這次的作業要由於是立體的,側面和背面都要畫出來。
由於側面和正面會有相關的地方,所以在畫正面的長方體時也要考慮到策面的樣子,
也就是說當正面的長方體會覆蓋到側面時,就要將該長方體拆成兩塊。
這是我覺得這次作業最辛苦的地方!
這次作業寫完滿足感遠遠大於作業一,感覺更貼近現實了!