2019年5月10日 星期五

yusyuan👀 -Week11

| Week 11 |
§
T-R-T 旋轉 (改變旋轉軸) §

----------------------------------------------------------------------------------------------------------------

●01 開啟 GLUT

🔺GLUT前置作業                                                              
。打開 codeblocks Files> New>project>GLUT                
到google搜尋 freegult windows
   下載  Download freeglut 3.0.0 for MinGW   
。解壓縮 freeglut打開 lib 找到 freeglut.a 並複製         
 freeglut.a 改為 libglut32.a                                   
複製 freeglut連接位置                                                   
。找到 程式碼 main.c 並打開  執行完成!   

●02 
先弄一個茶壺


◎程式碼  


#include <GL/glut.h>
void display()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    glutSolidTeapot( 0.3 );

    glutSwapBuffers();
}
int main(int argc, char**argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH );
    glutCreateWindow("week11 TRT");

    glutDisplayFunc(display);

    glutMainLoop();

}


●03
加上右邊手臂

◎程式碼  

#include <GL/glut.h>
float angle=0;///NOW
void display()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glColor3f(255,255,255);///白色的
    glutSolidTeapot( 0.3 );///身體
    glPushMatrix();///右邊手臂
        glTranslatef(0.3, 0, 0);///(3) 掛在身體的右肩
        glRotatef(angle, 0,0,1);///(2) 旋轉
        glTranslatef(0.15, 0,0);///(1) 把茶壼柄,移動到畫面的中心,當旋轉軸

        glColor3f(1,0,0);///紅色的
        glutSolidTeapot( 0.15 );///右手臂
    glPopMatrix();

    glutSwapBuffers();
    angle++;///NOW
}
int main(int argc, char**argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH );
    glutCreateWindow("week11 TRT");
    glutIdleFunc(display);///NOW
    glutDisplayFunc(display);

    glutMainLoop();
}

沒有留言:

張貼留言