本周第二次線上上課,更加得心應手了!!!!!!!!!!
程式碼:
#include <GL/glut.h>
void display()
{
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glutSolidSphere(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();
}
程式碼:
#include <GL/glut.h>
void display()
{
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glutSolidSphere(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(4000,timer,0);
glutMainLoop();
}
以上程式時間設定4秒鐘,等待4秒鐘後,背景將會變成紅色
#include <GL/glut.h>
void display()
{
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
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(4000,timer,0);
glutMainLoop();
}
以上程式碼可將圓形轉變為類似柳丁形狀
#include <GL/glut.h>
int angle=0;
void display()
{
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glPushMatrix();
glRotatef(angle,0,0,1);
glutSolidCube(0.3);
glPopMatrix();
glutSwapBuffers();
}
void timer(int t){
glutTimerFunc(30,timer,t+1);
angle++;
display();
}
int main(int argc,char** argv)
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
glutCreateWindow("week14 timer");
glutDisplayFunc(display);
glutTimerFunc(4000,timer,0);
glutMainLoop();
}
以上程式可以利用glut timer參數,製作動畫
程式碼:
#include <GL/glut.h>
int angle=0;
void display()
{
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glPushMatrix();
glRotatef(angle,0,0,1);
glutSolidCube(0.3);
glPopMatrix();
glutSwapBuffers();
}
int diff=2;
void timer(int t){
glutTimerFunc(20,timer,t+1);
angle+=diff;
if(angle>180)diff=-diff;
if(angle<0)diff=-diff;
display();
}
int main(int argc,char** argv)
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_DOUBLE|GLUT_DEPTH);
glutCreateWindow("week14 timer");
glutDisplayFunc(display);
glutTimerFunc(4000,timer,0);
glutMainLoop();
}





沒有留言:
張貼留言