2017年10月5日 星期四

7Hao-計算機圖學-Week04

一、課程目標
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)相連的軸
Ex:glRotated(60,1,0,0); 表示對x軸,固定旋轉60度
glRotated(a,0,0,1); 表示對z軸,隨時間旋轉
縮放:
glScalef(x, y, z); ///x,y,z分量,代表放大或縮小,可以賦予不同值

沒有留言:

張貼留言