本周主要是教 移動(Translate) 旋轉(Rotate) 放大縮小(Scale)
#include <GL/glut.h>
void display()
{
glTranslatef(0.5, 0.5, 0); ///移動位置
glutSolidTeapot(0.3);
glFlush();
}
int main(int argc, char* argv[])
{
glutInit(&argc, argv);
glutCreateWindow("02160111");
glutDisplayFunc(display);
glutMainLoop();
}
二. 畫出空心或實心的環狀物體
void display()
{
///glutSolidTeapot(0.3); 實心的
glutWireTorus(0.3, 0.7, 30, 30); ///空心的 (內半徑,外半徑,橫切,縱切)
glFlush();
}
三. 可以手動選轉物體
float angle=0;
void display()
{
///glutSolidTeapot(0.3); 實心的
glClear(GL_COLOR_BUFFER_BIT); ///清畫面
glRotatef(angle, 1, 1, 0); ///旋轉
glutWireTorus(0.3, 0.7, 30, 90); ///空心的 (內半徑,外半徑,橫切,縱切)
glFlush();
angle+=1; ///角度
}
四. 自動旋轉
glPushMatrix(); 備份
glPopMatrix(); 還原
float angle=0;
void display()
{
///glutSolidTeapot(0.3); 實心的
glClear(GL_COLOR_BUFFER_BIT); ///清畫面
glPushMatrix(); ///因為畫面會亂 所以備份 Matrix
glRotatef(angle, 1, 1, 0); ///旋轉
glutWireTorus(0.3, 0.7, 30, 90); ///空心的 (內半徑,外半徑,橫切,縱切)
glPopMatrix(); ///因為畫面會亂 所以還原 Matrix
glFlush(); /// 要讓畫面出來 把他們沖出來
angle+=0.1; ///角度
}
沒有留言:
張貼留言