
一樣解壓縮之後全放至windows資料夾
執行transformation.exe

理解這些程式碼
2.製作可用滑鼠移動的茶壺
#include<GL/glut.h>
float mouseX=0,mouseY=0;
static void display(void)
{
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("GLUT Shapes");
glutDisplayFunc(display);
glutMotionFunc(motion);
glutMainLoop();
return EXIT_SUCCESS;
}
3.製作可用滑鼠縮放的茶壺
#include<GL/glut.h>
float mouseX=0,mouseY=0;
static 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("GLUT Shapes");
glutDisplayFunc(display);
glutMotionFunc(motion);
glutMainLoop();
return EXIT_SUCCESS;
}
4.製作可旋轉的茶壺
#include<GL/glut.h>float mouseX=0,mouseY=0,rotX=0;
static void display(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glPushMatrix();//備份起來
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("GLUT Shapes");
glutDisplayFunc(display);
glutMotionFunc(motion);
glutMainLoop();
return EXIT_SUCCESS;
}
沒有留言:
張貼留言