1.glTranslatef( x , y , z ); //移動 (float)
2.glutSolidTorus( 內徑r , 外徑R , 橫切 , 縱切 ); //甜甜圈的形狀
3.glRotatef( 角度 , x , y , z ); //旋轉 (float)
Q.畫面會亂掉怎麼辦?
Ans:清畫面 glClear(GL_COLOR_BUFFER_BIT);
4.備份 Matrix:glPushMatrix();
//程式放這裡
5.還原 Matrix:glPopMatrix();
6.glutIdleFunc(); //空閒時要做的事
程式碼:
#include <GL/glut.h>
float angle=0;
void display()
{
glClear(GL_COLOR_BUFFER_BIT);///因為畫面會亂,所以要清畫面
glPushMatrix();///備份Matrix
glRotatef(angle,1,1,0);
glutWireTorus(0.3,0.7,30,30);
glPopMatrix();///還原Matrix
glFlush(); ///類似投影片的光,沒打燈會沒畫面
angle+=0.1;///轉動角度
}
int main(int argc,char**argv)
{
glutInit(&argc,argv);
glutCreateWindow("02160074");
glutDisplayFunc(display);///當電腦需要display的時候,呼叫diplay()
glutIdleFunc(display); ///空閒時,呼叫display()
glutMainLoop();
}
程式碼:
#include <GL/glut.h>
float angle=0;
void display()
{
glClear(GL_COLOR_BUFFER_BIT);///因為畫面會亂,所以要清畫面
glPushMatrix();///備份Matrix
glRotatef(angle,1,1,0);
glutWireTorus(0.3,0.7,30,30);
glPopMatrix();///還原Matrix
glFlush(); ///類似投影片的光,沒打燈會沒畫面
angle+=0.1;///轉動角度
}
int main(int argc,char**argv)
{
glutInit(&argc,argv);
glutCreateWindow("02160074");
glutDisplayFunc(display);///當電腦需要display的時候,呼叫diplay()
glutIdleFunc(display); ///空閒時,呼叫display()
glutMainLoop();
}
沒有留言:
張貼留言