1.Timer
- step1
程式碼:
#include <GL/glut.h>
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glutSolidSphere(0.3, 30, 30);///實心圓
///半徑 ///橫切
///glutWireSphere(0.3, 30, 30);///切線圓
glutSwapBuffers();
}
int main( int argc, char**argv)
{
glutInit( &argc, argv );
glutInitDisplayMode( GLUT_DOUBLE | GLUT_DEPTH );
glutCreateWindow(" Week14 timer ");
glutDisplayFunc(display);
glutMainLoop();
}
執行結果:
- step2
程式碼:
#include <GL/glut.h>
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
///glutSolidSphere(0.3, 30, 30);
glutWireSphere(0.3, 30, 30);
glutSwapBuffers();
}
void timer(int t){
glClearColor( 1, 0, 0, 0);
display();
}
int main( int argc, char**argv)
{
glutInit( &argc, argv );
glutInitDisplayMode( GLUT_DOUBLE | GLUT_DEPTH );
glutCreateWindow(" Week14 timer ");
glutDisplayFunc(display);
glutTimerFunc(3000, timer, 0);
glutMainLoop();
}
執行結果:
- step3
程式碼:
#include <GL/glut.h>
float angle=0;
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glPushMatrix();
glRotatef(angle, 0,0,1);
glutSolidCube(0.3);
glPopMatrix();
glutSwapBuffers();
}
(1)void timer(int t){
glutTimerFunc(30, timer, t+1);///起床,先設定新鬧鐘
////設太小沒用
glClearColor(1, 0, 0, 0);
angle++;
display();
}///再睡著
int main( int argc, char**argv)
{
glutInit( &argc, argv );
glutInitDisplayMode( GLUT_DOUBLE | GLUT_DEPTH );
glutCreateWindow(" Week14 timer ");
glutDisplayFunc(display);
glutTimerFunc(3000, timer, 0);
glutMainLoop();
}
執行結果:



沒有留言:
張貼留言