2017年6月23日 星期五

Week05_

茶壺


#include <GL/glut.h>
               station void display(void)
                   {               
                       glPushMatrix();
                           glTranslatef(0,1,0);
                           glutSolidTeapot(0.3);
                       glPopMatrix();
                       glutSwapBuffers();
                   }
                   int main(int argc, char **argv)
                   {
                       glutInit(&argc, argv);
                       glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
                       glutCreateWindow("GLUT Shapes");
                       glutDisplayFunc(display);
                                             
                      glutMainLoop();
                     }


程式碼讓茶壺跟著屬標移動
#include <GL/glut.h>
                   float mouseX=0,mouseY=0;
                   void display()
                   {               
                       glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
                       glPushMatrix();
                           glTranslatef(mouseX,mouseY,0);
                           glutSolidTeapot(0.3);
                       glPopMatrix();
                       glutSwapBuffers();
                   }
                   void motion(int x,int y)
                   {
                       mouseX = (x-150)/150.0;
                       mouseY = -(y-150)/150.0;
                       glutPostRedisplay();
                   }
                   int main(int argc, char **argv)
                   {
                       glutInit(&argc, argv);
                       glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
                       glutCreateWindow("04160072 translate rotate scale");
                       glutDisplayFunc(display);
                       //glutMouseFunc(mouse);
                       glutMotionFunc(motion);
                       glutMainLoop();

                     }

縮放
#include <GL/glut.h>
                   float mouseX=0,mouseY=0;
                   void display()
                   {               
                       glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); //清掉舊畫面
                       glPushMatrix();
                           glScalef(mouseX,mouseY,0);
                           glutSolidTeapot(0.3);
                       glPopMatrix();
                       glutSwapBuffers();
                   }
                   void motion(int x,int y)
                   {
                       mouseX = (x-150)/150.0;
                       mouseY = -(y-150)/150.0;
                       glutPostRedisplay();
                   }
                   int main(int argc, char **argv)
                   {
                       glutInit(&argc, argv);
                       glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
                       glutCreateWindow("04160072 translate rotate scale");
                       glutDisplayFunc(display);
                       //glutMouseFunc(mouse);
                       glutMotionFunc(motion);
                       glutMainLoop();
                   }

旋轉

 #include <GL/glut.h>
                   float mouseX=0,mouseY=0 , rotX=0;
                   void display()
                   {
                       glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
                       glPushMatrix();
                           //glScalef(mouseX,mouseY,0);
                           glRotatef(rotX,0,0,1);

                           glutSolidTeapot(0.3);
                       glPopMatrix();
                       glutSwapBuffers();
                   }
                   void motion(int x,int y)
                   {
                       mouseX = (x-150)/150.0;
                       mouseY = -(y-150)/150.0;
                       rotX = x;
                       glutPostRedisplay();
                   }
                   int main(int argc, char **argv)
                   {               
                       glutInit(&argc, argv);
                       glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
                       glutCreateWindow("04160072 translate rotate scale");
                       glutDisplayFunc(display);
                       //glutMouseFunc(mouse);
                       glutMotionFunc(motion);
                       glutMainLoop();

                    }

沒有留言:

張貼留言