2019年4月26日 星期五

week10

今日主題:T-R-T 旋轉


1.先下載老師給的data,win32,glut32.dll
   http://www.cmlab.csie.ntu.edu.tw/~jsyeh/3dcg10/


2.window.zip解壓縮到window資料夾,複製glut32.dll到window資料夾裡
   















(打開Transformation.exe 試試看各種角度跟移動)
然後解壓縮然後打開lib資料夾,複製貼上libfreeglut.a,把複製的改名為libglut32.a



4.打開codeblack先建一個glut然後開啟執行,並把本來的程式刪光光



5.製作水壺人(有手的)


 #include <GL/glut.h>
float angle=0;
void display()

{
    glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ); ///清畫面
    glPushMatrix();
        glTranslatef(0,0.5,0);    ///移動
        glutWireTeapot(0.3);
    glPopMatrix();
    glPushMatrix();
        glTranslatef(0.51,0.63,0);    ///(3)希望把 會動的手 從肚臍 移到茶壺上
        glRotatef(angle,0,0,1);   ///(1)這是手的旋轉
        glTranslatef(0.6,0,0);    ///(2)這是把旋轉中心(肩)先移到畫面的中心(肚臍)

        glRotatef(-90,0,1,0);
        glutWireCone(0.1,0.6,10,10);
    glPopMatrix();
    glutSwapBuffers();                ///交換buffer顯示
}

void motion(int x, int y)
{

    angle =x;
    display();
}
int main(int argc, char**argv)
{
    glutInit(&argc, argv);           ///初始化GLUT功能Init是初始化
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
                                                 ///開機有深度不會閃爍GLUT_DEPTH ->可以用出3D
    glutCreateWindow("我是蘇珺心的第一個程式");  ///顯示一個視窗
    glutDisplayFunc(display);  ///呼叫上面的display
    glutMotionFunc(motion);
    glutMainLoop();
}












沒有留言:

張貼留言