2017年10月5日 星期四

我只是一只可愛的麻雀(._.)Week04 筆記

*移動旋轉*

const double t = glutGet(GLUT_ELAPSED_TIME) / 1000.0;
const double a = t*90.0; //隨著時間t變化的速度


glPushMatrix();   //備份矩陣 //把現在的位置記住 開始作圖
        glTranslated(-2.4,1.2,-6);  
                             // d代表double 改成f就是float 後面的數字分別代表(x,y,z)的移動距離
        glRotated(60,1,0,0); // 以x軸為軸心旋轉60度
                                  //(度數, x軸, y軸, z軸)
        glRotated(a,0,0,1);  //以z軸為軸心隨著時間變化旋轉(a)
        glutSolidSphere(1,slices,stacks);
glPopMatrix(); //還原矩陣 //回到剛才作圖(移動...etc)前的原點




*新增會旋轉的茶壺*






五彩繽紛 還有重疊



*放大變形*

glPushMatrix();
        glTranslated(0,0,-6); //移動座標
        glRotated(60,1,0,0);
        glRotated(a,0,0,1);
        glScalef(1,2,2); //對(x,y,z)軸放大幾倍
        glColor3d(0,1,0);
        glutSolidTeapot(1);
    glPopMatrix();

  看起來很大 有一邊扁扁的

*滑鼠移動茶壺*

變數宣告



main函式



glutMouseFunc(mouse); 使用的函數



補充
http://blog.csdn.net/lisy14/article/details/70713007
檢測鼠標單擊
void glutMouseFunc(void (*func)(int button,int state,int x,int y));
func:處理鼠標點擊事件的函數名button:取值
GLUT_LEFT_BUTTON GLUT_MIDDLE_BUTTON 
GLUT_RIGHT_BUTTONstate:取值GLUT_DOWN 
GLUT_UPx,y:提供鼠標當前窗口坐標(以左上角為原點)



motion移動

關於滑鼠移動的座標概念
第一次滑鼠移動↓↓
第二次滑鼠移動↓↓
以此類推並且了解到dx, dy, dz的算法

display



沒有留言:

張貼留言