旋轉Rotatef()
1.修改之前的茶壺程式碼
```
#include <GL/glut.h>
void display()
{
glClear(GL_COLOR_BUFFER_BIT |GL_DEPTH_BUFFER_BIT);
glPushMatrix();///備份矩陣
glRotatef(90, 0, 0, 1);
glColor3f(1, 1, 0);
glutSolidTeapot(0.3);
glPopMatrix();///還原矩陣
/*備份與還原間要縮排*/
glutSwapBuffers();
}
int main(int argc, char** argv)
{
glutInit( &argc, argv);
glutInitDisplayMode( GLUT_DOUBLE | GLUT_DEPTH );
glutCreateWindow("week_02");
glutDisplayFunc(display);
glutMainLoop();
}
```
利用滑鼠事件glutMotionFunc()旋轉
```
#include <GL/glut.h>
float angle=0;
void display()
{
glClear(GL_COLOR_BUFFER_BIT |GL_DEPTH_BUFFER_BIT);
glPushMatrix();///備份矩陣
glRotatef(angle, 0, 0, 1);
glColor3f(1, 1, 0);
glutSolidTeapot(0.3);
glPopMatrix();///還原矩陣
/*備份與還原間要縮排*/
glutSwapBuffers();
}
void Motion(int x, int y)
{
angle=x;
display();
}
int main(int argc, char** argv)
{
glutInit( &argc, argv);
glutInitDisplayMode( GLUT_DOUBLE | GLUT_DEPTH );
glutCreateWindow("week_04");
glutDisplayFunc(display);ouse
glutMotionFunc(Motion);
glutMainLoop();
}
```
沒有留言:
張貼留言