2024年4月25日 星期四

李先生week10

1 .從上課軟體下載freeglut




 2.將壓縮檔解壓到桌面

3.點開freeglut後復製其連結


4.點開lib後將freeglut.a復製


5.改名為libglut32.a (124KB)

6.新增專案 week10-1
7.貼上上週程式
8.修改程式
#include <GL/glut.h>
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    glPushMatrix();
        glColor3f(1, 0, 0);
        glutWireCube(0.6);//my body
    glPopMatrix();
    glPushMatrix();
        glColor3f(0, 1, 0);
        glScalef(1, 0.4, 0.4);
        glutWireCube(0.3);
    glPopMatrix();
glutSwapBuffers();
}
int main(int argc, char*argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("week09 Microsoft Visual Studio");
glutDisplayFunc(display);
glutMainLoop();
}


9.修改
#include <GL/glut.h>
void myBody()
{
    glPushMatrix();
        glColor3f(1, 0, 0);
        glutWireCube(0.6);//my body
    glPopMatrix();
}
void myArm()
{
    glPushMatrix();
        glColor3f(0, 1, 0);
        glScalef(1, 0.4, 0.4);
        glutWireCube(0.3);
    glPopMatrix();
}
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    
    myBody();
    myArm();
    
glutSwapBuffers();
}
int main(int argc, char*argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("week09 Microsoft Visual Studio");
glutDisplayFunc(display);
glutMainLoop();
}
10.新增專案week10-2_rotate_myArm
#include <GL/glut.h>
void myBody()
{
    glPushMatrix();
        glColor3f(1, 0, 0);
        glutWireCube(0.6);//my body
    glPopMatrix();
}
void myArm()
{
    glPushMatrix();
        glColor3f(0, 1, 0);
        glScalef(1, 0.4, 0.4);
        glutWireCube(0.3);
    glPopMatrix();
}
float angle =0;
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    myBody();
    glPushMatrix();
        glRotatef(angle++, 0, 0, 1);
        myArm();
    glPopMatrix();

glutSwapBuffers();
}
int main(int argc, char*argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("week10");
glutDisplayFunc(display);
glutIdleFunc(display);
glutMainLoop();
}

11.新增專案week10-3_rotate_translate_myArm
#include <GL/glut.h>
void myBody()
{
    glPushMatrix();
        glColor3f(1, 0, 0);
        glutWireCube(0.6);//my body
    glPopMatrix();
}
void myArm()
{
    glPushMatrix();
        glColor3f(0, 1, 0);
        glScalef(1, 0.4, 0.4);
        glutWireCube(0.3);
    glPopMatrix();
}
float angle =0;
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    myBody();
    glPushMatrix();
        glRotatef(angle++, 0, 0, 1);
        glTranslatef(0.15, 0, 0);
        myArm();
    glPopMatrix();

glutSwapBuffers();
}
int main(int argc, char*argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("week10");
glutDisplayFunc(display);
glutIdleFunc(display);
glutMainLoop();
}
12.
新稱專案week10-4_translate_rotate_translate_myArm
#include <GL/glut.h>
void myBody()
{
    glPushMatrix();
        glColor3f(1, 0, 0);
        glutWireCube(0.6);//my body
    glPopMatrix();
}
void myArm()
{
    glPushMatrix();
        glColor3f(0, 1, 0);
        glScalef(1, 0.4, 0.4);
        glutWireCube(0.3);
    glPopMatrix();
}
float angle =0;
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    myBody();
    glPushMatrix();
        glTranslatef(0.3, 0.3, 0);
        glRotatef(angle++, 0, 0, 1);
        glTranslatef(0.15, 0, 0);
        myArm();
    glPopMatrix();

glutSwapBuffers();
}
int main(int argc, char*argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("week10");
glutDisplayFunc(display);
glutIdleFunc(display);
glutMainLoop();
}

13.新增專案
#include <GL/glut.h>
void myBody()
{
    glPushMatrix();
        glColor3f(1, 0, 0);
        glutWireCube(0.6);//my body
    glPopMatrix();
}
void myArm()
{
    glPushMatrix();
        glColor3f(0, 1, 0);
        glScalef(1, 0.4, 0.4);
        glutWireCube(0.3);
    glPopMatrix();
}
float angle =0;
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    myBody();
    glPushMatrix();
        glTranslatef(0.3, 0.3, 0);
        glRotatef(angle++, 0, 0, 1);
        glTranslatef(0.15, 0, 0);
        myArm();
        glPushMatrix();
            glTranslatef(0.15, 0, 0);
            glRotatef(angle++, 0, 0, 1);
            glTranslatef(0.15, 0, 0);
            myArm();
        glPopMatrix();

    glPopMatrix();

glutSwapBuffers();
}
int main(int argc, char*argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("week10");
glutDisplayFunc(display);
glutIdleFunc(display);
glutMainLoop();
}
14.新增專案
#include <GL/glut.h>
void myBody()
{
    glPushMatrix();
        glColor3f(1, 0, 0);
        glutWireCube(0.6);//my body
    glPopMatrix();
}
void myArm()
{
    glPushMatrix();
        glColor3f(0, 1, 0);
        glScalef(1, 0.4, 0.4);
        glutWireCube(0.3);
    glPopMatrix();
}
float angle =0;
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    myBody();
    glPushMatrix();
        glTranslatef(0.3, 0.3, 0);
        glRotatef(angle++, 0, 0, 1);
        glTranslatef(0.15, 0, 0);
        myArm();
        glPushMatrix();
            glTranslatef(0.15, 0, 0);
            glRotatef(angle++, 0, 0, 1);
            glTranslatef(0.15, 0, 0);
            myArm();
        glPopMatrix();

    glPopMatrix();

    glPushMatrix();
        glTranslatef(-0.3, 0.3, 0);
        glRotatef(angle++, 0, 0, 1);
        glTranslatef(-0.15, 0, 0);
        myArm();
        glPushMatrix();
            glTranslatef(-0.15, 0, 0);
            glRotatef(angle++, 0, 0, 1);
            glTranslatef(-0.15, 0, 0);
            myArm();
        glPopMatrix();

    glPopMatrix();

glutSwapBuffers();
}
int main(int argc, char*argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("week10");
glutDisplayFunc(display);
glutIdleFunc(display);
glutMainLoop();
}


15.新增專案
#include <GL/glut.h>
void myBody()
{
    glPushMatrix();
        glColor3f(1, 0, 0);
        glutWireCube(0.6);//my body
    glPopMatrix();
}
void myArm()
{
    glPushMatrix();
        glColor3f(0, 1, 0);
        glScalef(1, 0.4, 0.4);
        glutWireCube(0.3);
    glPopMatrix();
}
float angle =0;
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    myBody();
    glPushMatrix();
        glTranslatef(0.3, 0.3, 0);
        glRotatef(angle, 0, 0, 1);
        glTranslatef(0.15, 0, 0);
        myArm();
        glPushMatrix();
            glTranslatef(0.15, 0, 0);
            glRotatef(angle, 0, 0, 1);
            glTranslatef(0.15, 0, 0);
            myArm();
        glPopMatrix();

    glPopMatrix();

    glPushMatrix();
        glTranslatef(-0.3, 0.3, 0);
        glRotatef(angle, 0, 0, 1);
        glTranslatef(-0.15, 0, 0);
        myArm();
        glPushMatrix();
            glTranslatef(-0.15, 0, 0);
            glRotatef(angle, 0, 0, 1);
            glTranslatef(-0.15, 0, 0);
            myArm();
        glPopMatrix();

    glPopMatrix();

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

glutDisplayFunc(display);
glutMotionFunc(motion);
glutIdleFunc(display);
glutMainLoop();
}
16.新增專案
把左邊的angle改成負angle

17.新增專案 sound
#include <GL/glut.h>
#include <mmsystem.h>
void myBody()
{
    glPushMatrix();
        glColor3f(1, 0, 0);
        glutWireCube(0.6);//my body
    glPopMatrix();
}
void myArm()
{
    glPushMatrix();
        glColor3f(0, 1, 0);
        glScalef(1, 0.4, 0.4);
        glutWireCube(0.3);
    glPopMatrix();
}
float angle =0;
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    myBody();
    glPushMatrix();
        glTranslatef(0.3, 0.3, 0);
        glRotatef(angle, 0, 0, 1);
        glTranslatef(0.15, 0, 0);
        myArm();
        glPushMatrix();
            glTranslatef(0.15, 0, 0);
            glRotatef(angle, 0, 0, 1);
            glTranslatef(0.15, 0, 0);
            myArm();
        glPopMatrix();

    glPopMatrix();

    glPushMatrix();
        glTranslatef(-0.3, 0.3, 0);
        glRotatef(-angle, 0, 0, 1);
        glTranslatef(-0.15, 0, 0);
        myArm();
        glPushMatrix();
            glTranslatef(-0.15, 0, 0);
            glRotatef(-angle, 0, 0, 1);
            glTranslatef(-0.15, 0, 0);
            myArm();
        glPopMatrix();

    glPopMatrix();

glutSwapBuffers();
}
void motion(int x, int y){
    angle= x;
    glutPostRedisplay();
}
int main(int argc, char*argv[])
{
PlaySound("C:/horse.wav", NULL, SND_ASYNC);
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("week10");

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


沒有留言:

張貼留言