2017年3月13日 星期一

Week03 陳18

(一)茶壺



1.開啟main.cpp程式
2.將程式碼做點改變

#include <GL/glut.h>
void display()
{

        glutSolidTeapot(0.3);
        glutSwapBuffers();

}
int main(int argc, char *argv[])
{
    glutInit( &argc, argv);
    glutInitDisplayMode(GLUT_RGB|GLUT_DOUBLE|GLUT_DEPTH);
    glutCreateWindow("04160134 Number 1");
    glutDisplayFunc(display);
    glutMainLoop();
}

(二)座標位置.





<藍色字是多加的程式碼>

#include<math.h>
#include<stdio.h>
#include <GL/glut.h>
void mouse(int button, int state, int x, int y)
{
    printf("%d %d %d %d\n", button,state, x, y);
}
void display()

{

        glutSolidTeapot(0.3);
        glutSwapBuffers();

}
int main(int argc, char *argv[])
{
    glutInit( &argc, argv);
    glutInitDisplayMode(GLUT_RGB|GLUT_DOUBLE|GLUT_DEPTH);
    glutCreateWindow("04160134 Number 1");
    glutDisplayFunc(display);
    glutMouseFunc(mouse);
    glutMainLoop();
}



(三)顏色



<藍色字是多加的程式碼>



#include<math.h>
#include<stdio.h>
#include <GL/glut.h>
void mouse(int button, int state, int x, int y)
{
    printf("%d %d %d %d\n", button,state, x, y);
    glColor3f( 1, x/300.0, y/300.0 );
    glutPostRedisplay();
}
void display()

{

        glutSolidTeapot(0.3);
        glutSwapBuffers();

}
int main(int argc, char *argv[])
{
    glutInit( &argc, argv);
    glutInitDisplayMode(GLUT_RGB|GLUT_DOUBLE|GLUT_DEPTH);
    glutCreateWindow("04160134 Number 1");
    glutDisplayFunc(display);
    glutMouseFunc(mouse);
    glutMainLoop();
}


(四)滑鼠拖曳變色


<藍色字是多加的程式碼>

#include<math.h>
#include<stdio.h>
#include <GL/glut.h>
void mouse(int button, int state, int x, int y)
{
    printf("%d %d %d %d\n", button,state, x, y);

}
void motion(int x, int y)
{
    printf("%d %d\n", x, y);
    glColor3f( 1,x/500.0 , y/500.0 );
    glutPostRedisplay();
}
void display()

{

        glutSolidTeapot(0.3);
        glutSwapBuffers();

}
int main(int argc, char *argv[])
{
    glutInit( &argc, argv);
    glutInitDisplayMode(GLUT_RGB|GLUT_DOUBLE|GLUT_DEPTH);
    glutCreateWindow("04160134 Number 1");
    glutDisplayFunc(display);
    glutMouseFunc(mouse);
    glutMotionFunc(motion);
    glutMainLoop();

}

(五)開口笑


#include<math.h>
#include<stdio.h>
#include <GL/glut.h>
void mouse(int button, int state, int x, int y)
{
    if(state==GLUT_DOWN) printf("glVertex2f( %.2f, %.2f);\n", (x-250)/250.0, -(y-250)/250.0 );
}
float mouth=0;
void motion(int x, int y)
{

    glColor3f( 1, x/500.0 , y/500.0 );
    glutPostRedisplay();
    mouth = x/300.0;
}
void display()

{
    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
    glBegin(GL_TRIANGLE_FAN);
        glVertex2f(0,0);
        for(float angle=0+mouth; angle< 3.1415926 *2 -mouth ; angle+= 3.1415926/100){
            glVertex2f(  cos(angle),  sin(angle) );
        }
       glEnd();
       glutSwapBuffers();

}
int main(int argc, char *argv[])
{
    glutInit( &argc, argv);
    glutInitDisplayMode(GLUT_RGB|GLUT_DOUBLE|GLUT_DEPTH);
    glutInitWindowSize(500,500);
    glutCreateWindow("04160134 Number 1");

    glutDisplayFunc(display);
    glutMouseFunc(mouse);
    glutMotionFunc(motion);

    glutMainLoop();


}

沒有留言:

張貼留言