2017年3月21日 星期二

Week 5_04160373 梁家豪_洞叁倆么_上課筆記

Week 5

HW1_登入Zuvio.com.tw回答Week4問題


HW2_下載glut32

Link:http://jsyeh.ong/3dcg10


步驟1Download (1)data.zip(2)win32.zip(3)glut32.dll


步驟2開啟Transformation.exe試著縮放,旋轉
HW3_PushMatrix,PopMatrix

#include<gl/glut.h>
void display()
{
    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("04160373_translate rotate scale");

    glutDisplayFunc(display);
    glutMainLoop();
}
HW4_茶壺移動Translate旋轉Rotate縮放Scale
移動Translate,滑鼠左鍵按住茶壺可以移動它

#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();//貼一張便利貼Post,更新電腦畫面
}
int main(int argc,char ** argv)
{
    glutInit(&argc,argv);
    glutInitDisplayMode(GLUT_RGB|GLUT_DOUBLE|GLUT_DEPTH);
    glutCreateWindow("04160373_translate rotate scale");

    glutDisplayFunc(display);
    glutMotionFunc(motion);//移動函式
    glutMainLoop();
}
縮放Scale,滑鼠左鍵按住茶壺可以縮放它


#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();//貼一張便利貼Post,更新電腦畫面
}
int main(int argc,char ** argv)
{
    glutInit(&argc,argv);
    glutInitDisplayMode(GLUT_RGB|GLUT_DOUBLE|GLUT_DEPTH);
    glutCreateWindow("04160373_translate rotate scale");

    glutDisplayFunc(display);
    glutMotionFunc(motion);//移動函式
    glutMainLoop();
}

旋轉Rotate,滑鼠左鍵按住茶壺可以旋轉它
#include<gl/glut.h>
float mouseX=0,mouseY=0,rotX=0;//滑鼠座標
void display()
{
    glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);//做清除顏色及深度動作
    glPushMatrix();//備份
        glRotatef(rotX,1,0,0);//旋轉函式(x,y,z)
        glutSolidTeapot(0.3);
    glPopMatrix();//還原
    glutSwapBuffers();
}
void motion(int x,int y)
{
    mouseX=(x-150)/150.0;
    mouseY= -(y-150)/150.0;
    rotX=x;   
    glutPostRedisplay();//貼一張便利貼Post,更新電腦畫面
}
int main(int argc,char ** argv)
{
    glutInit(&argc,argv);
    glutInitDisplayMode(GLUT_RGB|GLUT_DOUBLE|GLUT_DEPTH);
    glutCreateWindow("04160373_translate rotate scale");

    glutDisplayFunc(display);
    glutMotionFunc(motion);//移動函式
    glutMainLoop();

}


沒有留言:

張貼留言