2022年5月9日 星期一

week12

 1.https://jsyeh.org/3dcg10/

下載win、data

跑Transformation.exe 右鍵切換Swap(也可按S鍵切換)




右下ToDraw開始畫圖
myDrawObject(0);移到下面的glTranslatef(0,0,0);下面
點擊右上angle並按空白鍵,圖片進行旋轉

myDrawObject(0);移到上面的glTranslatef(0,0,0);下面


按住glTranslatef(0,0,0);可以拖曳圖案

3.茶壺逆時鐘一直旋轉

#include <GL/glut.h>
float angle=0;
 void display()
 {
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glPushMatrix();
        glRotatef(angle, 0, 0, 1);///旋轉
        glTranslatef(0.4, -0.07, 0);///往右下移動
        glutSolidTeapot(0.3);
    glPopMatrix();
    glutSwapBuffers();
    angle+=0.1;
 }
int main(int argc,char**argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("Week12");
    glutIdleFunc(display);
    glutDisplayFunc(display);

    glutMainLoop();
}

4.紅色茶壺掛在白茶壺上旋轉

#include <GL/glut.h>
float angle=0;
 void display()
 {
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glColor3f(1, 1, 1);///白色
    glutSolidTeapot(0.3);
    glPushMatrix();
        glTranslatef(0, 0, 0);///下面旋轉中的東西掛在某處
        glRotatef(angle, 0, 0, 1);///旋轉
        glTranslatef(0.2, 0, 0);///往右下移動
        glColor3f(1, 0, 0);///紅色
        glutSolidTeapot(0.3);
    glPopMatrix();
    glutSwapBuffers();
    angle+=0.1;
 }
int main(int argc,char**argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("Week12");
    glutIdleFunc(display);
    glutDisplayFunc(display);

    glutMainLoop();
}

5.揮舞"手臂"

#include <GL/glut.h>
float angle=0;
 void display()
 {
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glColor3f(1, 1, 1);///白色
    glutSolidTeapot(0.3);
    glPushMatrix();
        glTranslatef(0.3, 0, 0);///下面旋轉中的東西掛在某處
        glRotatef(angle, 0, 0, 1);///旋轉
        glTranslatef(0.2, 0, 0);///往右下移動
        glColor3f(1, 0, 0);///紅色
        glutSolidTeapot(0.2);
        glPushMatrix();
            glTranslatef(0.2, 0, 0);
            glRotatef(angle, 0, 0, 1);///旋轉
            glTranslatef(0.2, 0, 0);///往右下移動
            glColor3f(1, 0, 0);///紅色
            glutSolidTeapot(0.2);
        glPopMatrix();
    glPopMatrix();
    glutSwapBuffers();
    angle+=0.1;
 }
int main(int argc,char**argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("Week12");
    glutIdleFunc(display);
    glutDisplayFunc(display);

    glutMainLoop();
}





沒有留言:

張貼留言