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();
}
沒有留言:
張貼留言