2017年3月20日 星期一

Week 04 陶軒宇課堂筆記

                                                                 課堂作業一:
                                  http://www.cmlab.csie.ntu.edu.tw/~jsyeh/3dcg10/
                                           下載:[data],[windows],[glut30]
                                                        下載後放到同一資料夾:

執行Transformation

課堂作業二:

做出上周茶壺
程式碼:
#include <GL/glut.h>
void display()
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glPushMatrix();
        glutSolidTeapot(0.3);
    glPopMatrix();
    glutSwapBuffers();
}
int main(int argc, char**argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
    glutCreateWindow("04162664 Translate Rotate Scale");

    glutDisplayFunc(display);
    glutMainLoop();

}

主程式下加上:
glTranslatef(0.3,0.3,0);
可改位置

課堂作業三:
修改程式碼讓茶壺放大伸縮:
 #include <GL/glut.h>
   float mouseX=0, mouseY=0;


   void display(void)
   {
       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("04160506_HW1");
       glutDisplayFunc(display);
       glutMotionFunc(motion);
       glutMainLoop();
   }






沒有留言:

張貼留言