2023年3月23日 星期四

幫我寫報告week06

 week06

step01-1
開啟新專案複製上周最後一個程式
#include <GL/glut.h>
float angle=0;
void myCube()
{
    glPushMatrix();
        glScaled(0.5,0.2,0.2);
        glutSolidCube(1);
    glPopMatrix();
}
void display()
{
    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);

    glColor3f(1,1,1);
    glutSolidCube(1);


    glPushMatrix();
        glTranslatef(0.5,0.5,0);
        glRotated(angle,0,0,1);
        glTranslatef(0.25,0,0);
        glColor3f(0,1,0);
        myCube();
    glPopMatrix();

    glPushMatrix();
        glTranslatef(-0.5,0.5,0);
        glRotated(angle,0,0,1);
        glTranslatef(0.25,0,0);
        glColor3f(0,1,0);
        myCube();
    glPopMatrix();



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

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

step01-2
刪除部分以及改寫部分
#include <GL/glut.h>
float angle=0;
void display()
{
    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);


    glutSolidSphere(0.01,30,30);

    glPushMatrix();
        glRotated(angle,0,0,1);
        glTranslatef(0.45,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("week06");

    glutDisplayFunc(display);
    glutIdleFunc(display);
 glutMainLoop();
}
step01-3
複製上面程式多加一行使位置改變
#include <GL/glut.h>
float angle=0;
void display()
{
    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);


    glutSolidSphere(0.01,30,30);

    glPushMatrix();
        glTranslatef(0.5,0.5,0);
        glRotated(angle,0,0,1);
        glTranslatef(0.45,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("week06");

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

step02-1
先做一個小方塊
#include <GL/glut.h>
float angle=0;
void myCube()
{
    glPushMatrix();
        glScalef(1,0.3,0.3);
        glutSolidCube(0.5);
    glPopMatrix();
}
void display()
{
    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);


    glutSolidSphere(0.01,30,30);

    glPushMatrix();
      ///  glTranslatef(0.5,0.5,0);
      ///  glRotated(angle,0,0,1);
      /// glTranslatef(0.45,0,0);
      ///  glutSolidTeapot(0.3);
        myCube();
    glPopMatrix();


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

    glutDisplayFunc(display);
    glutIdleFunc(display);
 glutMainLoop();
}
step02-2
增加兩行改變位置
#include <GL/glut.h>
float angle=0;
void myCube()
{
    glPushMatrix();
        glScalef(1,0.3,0.3);
        glutSolidCube(0.5);
    glPopMatrix();
}
void display()
{
    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);


    glutSolidSphere(0.01,30,30);

    glPushMatrix();
      ///  glTranslatef(0.5,0.5,0);
          glRotated(angle,0,0,1);
          glTranslatef(0.25,0,0);
        myCube();
    glPopMatrix();


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

    glutDisplayFunc(display);
    glutIdleFunc(display);
 glutMainLoop();
}
step02-3
修改02-2
#include <GL/glut.h>
float angle=0;
void myCube()
{
    glPushMatrix();
        glScalef(1,0.3,0.3);
        glutSolidCube(0.5);
    glPopMatrix();
}
void display()
{
    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);


    glutSolidSphere(0.01,30,30);

    glPushMatrix();
          glTranslatef(0.25,0,0);
          glRotated(angle,0,0,1);
          glTranslatef(0.25,0,0);
        myCube();
    glPopMatrix();


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

    glutDisplayFunc(display);
    glutIdleFunc(display);
 glutMainLoop();
}
step02-4
修改02-3
#include <GL/glut.h>
float angle=0;
void myCube()
{
    glPushMatrix();
        glScalef(1,0.3,0.3);
        glutSolidCube(0.5);
    glPopMatrix();
}
void display()
{
    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);


    glutSolidSphere(0.01,30,30);

    glPushMatrix();
      glTranslatef(0.25,0,0);
      glRotated(angle,0,0,1);
      glTranslatef(0.25,0,0);
        myCube();

    glPushMatrix();
        glTranslatef(0.25,0,0);
        glRotated(angle,0,0,1);
        glTranslatef(0.25,0,0);
        myCube();
    glPopMatrix();

    glPopMatrix();


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

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

step02-4
開啟新的專案,複製上個程式再加相同的程式,把x軸改為負的
#include <GL/glut.h>
float angle=0;
void myCube()
{
    glPushMatrix();
        glScalef(1,0.3,0.3);
        glutSolidCube(0.5);
    glPopMatrix();
}
void display()
{
    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);


    glutSolidSphere(0.01,30,30);

glPushMatrix();
      glTranslatef(0.25,0,0);
      glRotated(angle,0,0,1);
      glTranslatef(0.25,0,0);
        myCube();

    glPushMatrix();
        glTranslatef(0.25,0,0);
        glRotated(angle,0,0,1);
        glTranslatef(0.25,0,0);
        myCube();
    glPopMatrix();
glPopMatrix();


glPushMatrix();
      glTranslatef(-0.25,0,0);
      glRotated(angle,0,0,1);
      glTranslatef(-0.25,0,0);
        myCube();

    glPushMatrix();
        glTranslatef(-0.25,0,0);
        glRotated(angle,0,0,1);
        glTranslatef(-0.25,0,0);
        myCube();
    glPopMatrix();
glPopMatrix();


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

    glutDisplayFunc(display);
    glutIdleFunc(display);
 glutMainLoop();
}
step02-5
開啟新的專案,複製上一個程式再增加一小部分(紅色)刪除(藍色)
#include <GL/glut.h>
float angle=0;
void myCube()
{
    glPushMatrix();
        glScalef(1,0.3,0.3);
        glutSolidCube(0.5);
    glPopMatrix();
}
void display()
{
    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);


    glutSolidSphere(0.01,30,30);

glPushMatrix();
      glTranslatef(0.25,0,0);
      glRotated(angle,0,0,1);
      glTranslatef(0.25,0,0);
        myCube();

    glPushMatrix();
        glTranslatef(0.25,0,0);
        glRotated(angle,0,0,1);
        glTranslatef(0.25,0,0);
        myCube();
    glPopMatrix();
glPopMatrix();


glPushMatrix();
      glTranslatef(-0.25,0,0);
      glRotated(-angle,0,0,1);
      glTranslatef(-0.25,0,0);
        myCube();

    glPushMatrix();
        glTranslatef(-0.25,0,0);
        glRotated(-angle,0,0,1);
        glTranslatef(-0.25,0,0);
        myCube();
    glPopMatrix();
glPopMatrix();


    glutSwapBuffers();
    ///angle++;
}
void motion(int x,int y)
{
    angle = x;
}
int main(int argc, char *argv[])
{
    glutInit(&argc,argv);
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("week06");

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

step03-1
練習期中考10個程式


上傳github



沒有留言:

張貼留言