2022年5月16日 星期一

電腦圖學week12課堂筆記

 先看範例
glTranslatef( 0.9 , 0.0 , 0.0 );  =>  代表移動
glRotatef( 角度, 0, 1, 0);  =>  代表旋轉

開始做
第一個程式:
#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.2 );
    glPopMatrix();
    glutSwapBuffers();
    angle++;
}
int main( int argc, char** argv )
{
    glutInit( &argc, argv );
    glutInitDisplayMode( GLUT_DOUBLE|GLUT_DEPTH );
    glutCreateWindow("week12 TRT");

    glutIdleFunc(display);
    glutDisplayFunc(display);
    glutMainLoop();
}
(茶壺會一直旋轉)

#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.2, 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++;
}
int main( int argc, char** argv )
{
    glutInit( &argc, argv );
    glutInitDisplayMode( GLUT_DOUBLE|GLUT_DEPTH );
    glutCreateWindow("week12 T-R-T");

    glutIdleFunc(display);
    glutDisplayFunc(display);
    glutMainLoop();
}
(白色的茶壺增加了兩個紅色的茶壺當手臂,且紅色的茶壺會轉動)

#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.2, 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();


    glPushMatrix();
        glTranslatef(0.2, 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();

    glPushMatrix();
        glTranslatef(-0.2, 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++;
}
int main( int argc, char** argv )
{
    glutInit( &argc, argv );
    glutInitDisplayMode( GLUT_DOUBLE|GLUT_DEPTH );
    glutCreateWindow("week12 T-R-T");

    glutIdleFunc(display);
    glutDisplayFunc(display);
    glutMainLoop();
}
(另一邊也增加手臂)










沒有留言:

張貼留言

VERY BEAUTIFUL, VERY POWERFUL

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