2020年3月25日 星期三

week04

在下方網址照著之前的步驟下載下來
http://www.cmlab.csie.ntu.edu.tw/~jsyeh/3dcg10/
這次則是要開啟Transformation.exe這個檔案
把3D模型換成人偶 : 右上視窗>右鍵>All Capone

第1個是移動,第2個是旋轉,第3個是放大縮小
只有X、Y、Z這三個軸,為什麼有四個數值?
因為它就是用來挑整軸方向的數值,原本的Y軸是往上,使用它的時候就可以變成向下。

實作練習:

開完專案後,保留開始的程式碼,先理解程式碼

display函式是我們顯示圖樣的作業,所以先從他下手

我們會看到上面我們學的程式碼上都有用的 ""a"" 變數作旋轉。

這次用motion程式並設置function,還記得我們用函式都要在main()引用
 用一個變數套用在變數"a"
照茶壺做法>添加剛剛學的程式碼在下方
最後程式碼:
#include <GL/glut.h>


float angle=0,oldX=0;

void motion(int x,int y)
{
    angle+=(x-oldX);///angle=x;
    oldX=x;
    glutPostRedisplay();

}
void mouse(int button, int state, int x, int y)
{
    oldX=x;
}

static void display(void)
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    glPushMatrix();
        glRotatef (angle,0,0,1);
        glutSolidTeapot(0.3);
    glPopMatrix();

    glutSwapBuffers();
}



int main(int argc, char *argv[])
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("Week04");


    glutDisplayFunc(display);
    glutMotionFunc(motion);
    glutMouseFunc(mouse);
    glutMainLoop();

}


沒有留言:

張貼留言