2023年3月15日 星期三

chiche_week05

 
Week05_T-R-T 特定軸轉

Step01

開啟網站連結 https://jsyeh.org/3dcg10/
下載 data / win32
把兩個檔案解壓縮後 把data資料夾丟到win32裡

Step02

開啟win32的檔案 Transformation

試著轉動多一些

step03

下載資料夾 freeglut
解壓縮後放到桌面
更改檔名libfreeglut.a >> libglut32.a

Step04

開啟codeblocks
file >> new >> project

Step05 紅綠旋轉茶杯



程式碼

#include <GL/glut.h>
float angle = 0; ///宣告global全域變數angle
void display()
{
    glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ); ///清背景

    glColor3f(0,1,0); ///綠色的
    glPushMatrix(); 
        glTranslatef(0.8,0,0); ///最後是綠色的移動
        glRotatef(angle,0,0,1); ///改對Z軸轉
        glutSolidTeapot(0.3);
    glPopMatrix(); 

    glColor3f(1,0,0);///紅色的
    glPushMatrix();
        glRotatef(angle,0,0,1);  ///改對Z軸轉
        glTranslatef(0.8,0,0);
        glutSolidTeapot(0.3);
    glPopMatrix(); 
glutSwapBuffers();
angle++; ///把角度++
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("week04");

glutDisplayFunc(display);
    glutIdleFunc(display); ///有空idle時,就重畫畫面
glutMainLoop();
}

Step06

開啟資料夾程式

執行程式
畫完身體跟手 切到英文輸入法 按空白鍵即可轉動

Step07 茶杯旋轉


程式碼

#include <GL/glut.h>

float angle = 0; ///宣告global全域變數angle
void display()
{
    glEnable(GL_DEPTH_TEST);
    glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ); ///清背景
    glPushMatrix(); ///備份矩陣

        glTranslatef(0.6,0,0);
        glRotatef(angle,0,1,0); ///旋轉angle角度
        glColor3f(1,1,0);
        glutSolidTeapot(0.3);

    glPopMatrix(); ///還原矩陣

    glPushMatrix(); ///備份矩陣

        glRotatef(angle,0,1,0); ///旋轉angle角度
        glTranslatef(0.6,0,0);
        glColor3f(1,0,0);
        glutSolidTeapot(0.3);

    glPopMatrix(); ///還原矩陣


glutSwapBuffers();
angle++; ///把角度++
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("week04");

glutDisplayFunc(display);
    glutIdleFunc(display); ///有空idle時,就重畫畫面

glutMainLoop();
}

Step08



程式碼

#include <GL/glut.h>
float angle = 0; ///宣告global全域變數angle
void display()
{
    glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ); ///清背景

    glColor3f(0,1,0);
    glPushMatrix();
        glutSolidCube(0.5);

        glPushMatrix();
            glTranslatef(0.25,0.25,0);
            glRotatef(angle,0,0,1);
            glTranslatef(0.25,0.25,0);

            glColor3f(1,0,0);
            glutSolidCube(0.5);
        glPopMatrix();
    glPopMatrix();

glutSwapBuffers();
angle++;
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("week04");

glutDisplayFunc(display);
    glutIdleFunc(display); ///有空idle時,就重畫畫面

glutMainLoop();
}



step09

上傳檔案git指令

1. git指令
2. cd desktop
3. git clone https://github.com/你的帳號/2023graphicsa
4. cd 2023graphicsa
5. start .
6. git add . 
7. git status

8. git config --global user.email "電子郵件"

9. git config --global user.name "帳號名chiche0306"

10. git commit -m "week"

11. git push










沒有留言:

張貼留言