1.主題:旋轉Rotate
旋轉角度、旋轉軸
軸心方向決定模型旋轉方向(國中理化的手)
step02-1 承接上週的程式碼,改用glRotatef(角度,x,y,z)來看茶壼轉動的狀況
#include <GL/glut.h>
void display()
{
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );///畫圖前, 先清畫面
glPushMatrix();
glRotatef(90,0,0,1);
glutSolidTeapot(0.3);
glPopMatrix();
glutSwapBuffers();///畫好後,交換出來
}
int main(int argc, char** argv) ///main()主函式 進階版
{
glutInit( &argc, argv); ///把參數,送給 glutInit 初始化
glutInitDisplayMode( GLUT_DOUBLE | GLUT_DEPTH );
glutCreateWindow("04!");
glutDisplayFunc(display);
glutMainLoop();
}
#include <GL/glut.h>
float angle=0;
void display()
{
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );///畫圖前, 先清畫面
glPushMatrix();
glRotatef(angle,0,0,1);
glutSolidTeapot(0.3);
glPopMatrix();
glutSwapBuffers();///畫好後,交換出來
}
void motion(int x, int y)
{
angle =x;
display();
}
int main(int argc, char** argv) ///main()主函式 進階版
{
glutInit( &argc, argv); ///把參數,送給 glutInit 初始化
glutInitDisplayMode( GLUT_DOUBLE | GLUT_DEPTH ); ///雙緩衡區 + 3D深度功能
glutCreateWindow("04!"); ///開 GLUT 視窗
glutDisplayFunc(display); ///用來顯示的函式
glutMotionFunc(motion);
glutMainLoop(); ///主要的程式迴圈
}
step03 原本只有angle的轉動很奇怪,加上一個old讓轉動變得連續
沒有留言:
張貼留言