2022年5月14日 星期六

END之書 week12

 1.Transformation.exe T移動 R轉動 右鍵交換TR



TR=自轉

RT=公轉


2. 120.125.80.50/GL  OPENGL TRT函式練習

ctrl+r => 重載   空白鍵執行?




T => 上下左右移

R => 旋轉

T => 旋轉軸心放中心


next week


glPushMatrix();

   glTranslatef( -0.5 , -0.9 , 0 );

   glRotatef( -45 , 0 , 0 , 1 );

   glTranslatef( -0.8 , -0.9 , 0 );

   drawhand();

glPopMatrix();


3-1旋轉茶壺

#include <GL/glut.h>

float angle=0;

void display()

{

    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    glPushMatrix();

        glRotatef(angle,0,0,1);

        glutSolidTeapot(0.6);

    glPopMatrix();

    glutSwapBuffers();

    angle+=0.1;

}


int main(int argc ,char** argv)

{

    glutInit( &argc, argv);

    glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);

    glutCreateWindow("week12 TRT");


    glutIdleFunc(display);

    glutDisplayFunc(display);

    glutMainLoop();

}


3-2 手臂茶壺

#include <GL/glut.h>
float angle=0;
void display()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glColor3f(0.8,0.2,0.6);
    glutSolidTeapot(0.6);
    glPushMatrix();
        glTranslatef(0.3,0,0);///移到右邊
        glRotatef(angle,0,0,1);///旋轉
        glTranslatef(0.3,0,0);///旋轉軸放中心
        glColor3f(0.9,0.6,0.4);
        glutSolidTeapot(0.3);///第二茶壺(手臂)
    glPopMatrix();
    glutSwapBuffers();
    angle+=0.1;
}

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

    glutIdleFunc(display);
    glutDisplayFunc(display);
    glutMainLoop();
}




3-3 手臂+手肘

#include <GL/glut.h>
float angle=0;
void display()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glColor3f(0.8,0.2,0.6);
    glutSolidTeapot(0.6);
    glPushMatrix();
        glTranslatef(0.3,0,0);///移到右邊
        glRotatef(angle,0,0,1);///旋轉
        glTranslatef(0.3,0,0);///旋轉軸放中心
        glColor3f(0.9,0.6,0.4);
        glutSolidTeapot(0.3);///第二茶壺(手臂)
        glPushMatrix();
            glTranslatef(0.3,0,0);///移到右邊
            glRotatef(angle,0,0,1);///旋轉
            glTranslatef(0.3,0,0);///旋轉軸放中心
            glColor3f(0.9,0.6,0.4);
            glutSolidTeapot(0.3);///第二茶壺(手臂)
        glPopMatrix();
    glPopMatrix();
    glutSwapBuffers();
    angle+=0.1;
}

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

    glutIdleFunc(display);
    glutDisplayFunc(display);
    glutMainLoop();
}




3-4 兩邊手臂

#include <GL/glut.h>
float angle=0;
void display()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glColor3f(0.8,0.2,0.6);
    glutSolidTeapot(0.6);

    glPushMatrix();
        glTranslatef(0.3,0,0);///移到右邊
        glRotatef(angle,0,0,1);///旋轉
        glTranslatef(0.3,0,0);///旋轉軸放中心
        glColor3f(0.9,0.6,0.4);
        glutSolidTeapot(0.3);///第二茶壺(手臂)
        glPushMatrix();
            glTranslatef(0.3,0,0);///移到右邊
            glRotatef(angle,0,0,1);///旋轉
            glTranslatef(0.3,0,0);///旋轉軸放中心
            glColor3f(0.9,0.6,0.4);
            glutSolidTeapot(0.3);///第二茶壺(手臂)
        glPopMatrix();
    glPopMatrix();

    glPushMatrix();
        glTranslatef(-0.3,0,0);///移到左邊
        glRotatef(-angle,0,0,1);///旋轉
        glTranslatef(-0.3,0,0);///旋轉軸放中心
        glColor3f(0.9,0.6,0.4);
        glutSolidTeapot(0.3);///第二茶壺(手臂)
        glPushMatrix();
            glTranslatef(-0.3,0,0);///移到左邊
            glRotatef(-angle,0,0,1);///旋轉
            glTranslatef(-0.3,0,0);///旋轉軸放中心
            glColor3f(0.9,0.6,0.4);
            glutSolidTeapot(0.3);///第二茶壺(手臂)
        glPopMatrix();
    glPopMatrix();

    glutSwapBuffers();
    angle+=0.1;
}

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

    glutIdleFunc(display);
    glutDisplayFunc(display);
    glutMainLoop();
}



沒有留言:

張貼留言

VERY BEAUTIFUL, VERY POWERFUL

一.     一樣先安裝且設定好freeglut,OpecCV, 開啟CodeBlocks建立新專案 week11_gundam,                 把 MyGundam.zip下載解壓縮後的data資料夾放到freeglut/bin裡面 把week09_openc...