2020年4月22日 星期三

Week 9 _

- glutSolid & glutWire -



#include <GL/glut.h>

void display()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    
    glPushMatrix();    ///備份矩陣 
        glColor3f(0,0,1);   ///顏色 
        glSCalef(0.8,0.3,0.3);   ///放大縮小 
        glutSolidCube(1);   ///立方體(但是還沒打光) 
    glPopMatrix();   ///還原矩陣 

    glutSwapBuffers();
}


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

    glutDisplayFunc(display);
    glutMainLoop();
}


#include <GL/glut.h>

void myCube()  ///自訂函式 
{
    glPushMatrix();    ///備份矩陣 
        glSCalef(0.8,0.3,0.3);   ///放大縮小 
        glutSolidCube(1);   ///立方體(但是還沒打光) 
    glPopMatrix();   ///還原矩陣 
}


void display()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    
    glPushMatrix();    ///備份矩陣 

        glColor3f(0,0,1);   ///藍色 
                   myCube();

        glColor3f(1,1,0);   ///黃色 
        glTranslatef(0.5,0.2,0);   ///移動
                   myCube();

    glPopMatrix();   ///還原矩陣 

    glutSwapBuffers();
}


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

    glutDisplayFunc(display);
    glutMainLoop();
}




#include <GL/glut.h>

void myCube()  ///自訂函式 
{
    glPushMatrix();    ///備份矩陣 
        glSCalef(0.8,0.3,0.3);   ///放大縮小 
        glutSolidCube(1);   ///立方體(但是還沒打光) 
    glPopMatrix();   ///還原矩陣 
}

float angle=0;   ///轉動的變數(角度) 

void display()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    
    glPushMatrix();    ///備份矩陣 

        glColor3f(159/255.0,197/255.0,232/255.0);   ///淺藍色 
        glRotatef(angle,0,0,1);    ///轉動 
        myCube();

        glColor3f(1,1,0);   ///黃色 
        glTranslatef(0.5,0.2,0);   ///移動 
        myCube();

    glPopMatrix();   ///還原矩陣 
    angle++;   ///角度增加 
    glutSwapBuffers();
}


int main(int argc,char**argv)
{
    glutInit(&argc,argv);
    glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
    glutCreateWindow("Week 9");
    glutIdleFunc(display);   ///有空idle會重畫畫面 
    glutDisplayFunc(display);
    glutMainLoop();
}




#include <GL/glut.h>

void myCube()  ///自訂函式 
{
    glPushMatrix();    ///備份矩陣 
        glScalef(0.8,0.3,0.3);   ///放大縮小 
        glutSolidCube(1);   ///立方體(但是還沒打光) 
    glPopMatrix();   ///還原矩陣 
}

float angle=0;   ///轉動的變數(角度) 

void display()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    
    glPushMatrix();    ///備份矩陣 

        glColor3f(159/255.0,197/255.0,232/255.0);   ///淺藍色 
        glRotatef(angle,0,0,1);    ///轉動(用畫面中心當轉動軸) 
        glTranslatef(0.23,0,0);   ///移動(把想當轉軸的圖案移到畫面中間) 
        myCube();

    glPopMatrix();   ///還原矩陣 
    angle++;   ///角度增加 
    glutSwapBuffers();
}


int main(int argc,char**argv)
{
    glutInit(&argc,argv);
    glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
    glutCreateWindow("Week 9");
    glutIdleFunc(display);   ///有空idle會重畫畫面 
    glutDisplayFunc(display);
    glutMainLoop();
}




#include <GL/glut.h>

void myCube()  ///自訂函式 
{
    glPushMatrix();    ///備份矩陣 
        glSCalef(0.8,0.3,0.3);   ///放大縮小 
        glutSolidCube(1);   ///立方體(但是還沒打光) 
    glPopMatrix();   ///還原矩陣 
}

float angle=0;   ///轉動的變數(角度) 

void display()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    
    glPushMatrix();    ///備份矩陣 

        glColor3f(159/255.0,197/255.0,232/255.0);   ///淺藍色 
        glTranslatef(0.5,0.3,0);  ///移動2(再把會旋轉的圖移到右上角) 
        glRotatef(angle,0,0,1);    ///轉動(用畫面中心當轉動軸) 
        glTranslatef(0.23,0,0);   ///移動1(先把想當轉軸的圖案移到畫面中間) 
        myCube();

    glPopMatrix();   ///還原矩陣 
    angle++;   ///角度增加 
    glutSwapBuffers();
}


int main(int argc,char**argv)
{
    glutInit(&argc,argv);
    glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
    glutCreateWindow("Week 9");
    glutIdleFunc(display);   ///有空idle會重畫畫面 
    glutDisplayFunc(display);
    glutMainLoop();
}



沒有留言:

張貼留言