2019年4月25日 星期四

林芷祺的筆記Week10

WEEK10     2019/4/25


期中考: 11行OpenGL程式


複習:移動、旋轉、縮放

主題: T-R-T旋轉(改變旋轉軸)

開啟範例:Transformation

2.下載data,win32,glut32.dll (3個檔案)

 3.把window解壓縮

4.data的資料夾移至window

 5.glut32.dll也移至window

6.把Transformation.exe打開 (右上滑鼠右鍵切換圖形/ 鍵盤R回預設值/鍵盤S切換順序)
註:  glRotatef(角度,X軸,Y軸,Z軸)(軸為正負方向:右手~)

註:   glTranslatef()                                             glRotatef()  
   
       glRotatef()                 V.S.                     glTranslatef()  

                   在某個位置旋轉 (自轉)                        先旋轉方向在移動(畫大圈圈/公轉)



GLUT專案 : T-R-T

7.開啟glut專案(檔案位置記得存!!!!!!!!)

 8.搜尋freeglut window下載Download freeglut 3.0.0 for MinGW 

9.複製檔案位置 

 10.複製libfreeglut.a--->改成libglut32.a

11.把GLUT的main.cpp裡的程式全部刪掉,改成

#include <GL/glut.h>
float angle=0;
void display()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);///沒有clear()清除畫面會留殘影
    glPushMatrix();///備份矩陣
        glTranslatef(0 ,0.5 ,0);///往上移動的茶壺
        glutSolidTeapot(0.3);
    glPopMatrix();///還原矩陣

    glPushMatrix();
        //glutSolidSphere(0.3,30,30);
    glPopMatrix();

    glPushMatrix();
        glTranslatef(0.50, 0.625, 0);///(4)掛在茶壺上
        glRotatef(angle, 0, 0, 1);///(2)先轉動
        glTranslatef(0.6, 0, 0);///(3)移動旋轉中心
        glRotatef(-90,0,1,0);///(1)轉動90度的CONE
        glutSolidCone(0.2, 0.6, 30, 30);///直直的cone
    glPopMatrix();

    glutSwapBuffers();
}
void motion(int x,int y)///滑鼠控制
{
    angle=x;
    display();
}

int main(int argc, char**argv)
{
    glutInit(&argc,argv);
    glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
    glutCreateWindow("06160531_Week10!!_TRT");

    glutDisplayFunc(display);
    glutMotionFunc(motion);///滑鼠控制
    glutMainLoop();
}

12.執行




沒有留言:

張貼留言