1.主題:移動、旋轉、縮放
2.實作:Translate,Rotate,Scale
3.觀念:Matrix,Push,Pop
4.作業:加入移動,旋轉等功能
二、課程內容
1.修改範例程式碼中的Display含式

2.移動、旋轉、縮放
要先glPushMatrix(),最後用glPopMatrix();
把要寫的圖形,寫在這兩行中間
Ex:
glPushMatrix(); ///備份矩陣
glTranslated(-2.4,1.2,-6);
glRotated(60,1,0,0);
glRotated(a,0,0,1);
glColor3f(128/255.0,255/255.0,0/255.0);
glutSolidSphere(1,slices,stacks);
glPopMatrix(); ///還原矩陣
移動:
glTranslated(double x, double y, double z) ///d:Double
旋轉:
const double t = glutGet(GLUT_ELAPSED_TIME) / 1000.0; ///時間變數
const double a = t*90.0; ///每秒轉90度
glRotated(double angle, double x, double y, double z)///角度,x旋轉軸,y旋轉軸,z旋轉軸((右手定理
註:旋轉軸=點(x,y,z)和點(0,0,0)相連的軸
註:旋轉軸=點(x,y,z)和點(0,0,0)相連的軸
Ex:glRotated(60,1,0,0); 表示對x軸,固定旋轉60度
glRotated(a,0,0,1); 表示對z軸,隨時間旋轉
縮放:
glScalef(x, y, z); ///x,y,z分量,代表放大或縮小,可以賦予不同值
縮放:
glScalef(x, y, z); ///x,y,z分量,代表放大或縮小,可以賦予不同值
沒有留言:
張貼留言