1.開啟一個Glut專案,找到display函式

2.觀察其程式碼,大致有以下:
glPushMatrix(); //儲存矩陣
glTranslated(-2.4,1.2,-6); //移動
glRotated(60,1,0,0); //轉動(角度,旋轉軸)
glRotated(a,0,0,1); //隨時間轉動,a = t*90.0
glutSolidSphere(1,slices,stacks); //畫出實心球
glPopMatrix(); //拿出矩陣
3.移動代表從圖的中心開始,移動到指定坐標。例如:2中的程式碼可以知道將要畫出一實心圓球,而編譯後的程式顯示此球在左上方,而當中的移動程式碼glTranslated(-2.4,1.2,-6);的x,y座標也是顯示在左上方,兩者相符。
4.轉動代表對其中一個轉軸,轉動一角度,如果此角度隨著時間變化,那此圖會一直轉動,其中 +x方向為向右,+y為向上,+z為出銀幕方向(右手坐標系)。若同時有多個座標值,則會依此向量方向轉動。
5.經過測試發現,x,y,z軸並非固定不動,而是跟著圖。
比如說,將中上的圓錐(cone)依x軸轉90度

接著讓它依z軸轉動,我們看到,它繞著現在的-y軸轉動

但對此圓錐來說,它的z軸已經依著x轉90度,成為了整個圖的-y方向,所以看到他依著-y方向轉動其實是對著z軸轉動。
6.縮放,程式碼:glScaled(1,1,2)代表各個座標軸依分別倍率縮放,此例中,z軸被放大了兩倍,為了方便觀察我們將圓錐對x軸轉動90度,可以看到此圓錐的z軸伸長了2倍,而其他座標不變。

Class:滑鼠控制
沒有留言:
張貼留言