OpenGL-繪製旋轉立方體
阿新 • • 發佈:2019-02-17
OpenGL繪製旋轉立方體。
編譯環境 vs2015+glut
效果圖:
//By:ZHangFY
#include <GL/glut.h>
GLfloat rotate_angle1 = 0.0;
GLfloat dSize = 0.3; //立方體大小
void myDisplay(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
glRotatef(rotate_angle1, -0.3, 0.3, -0.3);//旋轉點
glBegin(GL_QUADS);
//上
glColor3f(0.0, 1.0, 0.0); //綠
glNormal3d(0.0, 0.0, 1.0); //上
glVertex3d(dSize, dSize, dSize);
glVertex3d(-dSize, dSize, dSize);
glVertex3d(-dSize, -dSize, dSize);
glVertex3d(dSize, -dSize, dSize);
//下
glColor3f(0.0, 0.0, 1.0); //藍
glNormal3d(0.0, 0.0, -1.0);//下
glVertex3d(dSize, dSize, -dSize );
glVertex3d(-dSize, dSize, -dSize);
glVertex3d(-dSize, -dSize, -dSize);
glVertex3d(dSize, -dSize, -dSize);
//前
glColor3f(1.0, 0.0, 0.0); //紅
glNormal3d(1.0, 0.0, 0.0);//前
glVertex3d(dSize, dSize, dSize);
glVertex3d(dSize, -dSize, dSize);
glVertex3d(dSize, -dSize, -dSize);
glVertex3d(dSize, dSize, -dSize );
//後
glColor3f(0.0, 1.0, 1.0); //青
glNormal3d(-1.0, 0.0, 0.0);//後
glVertex3d(-dSize, dSize, dSize);
glVertex3d(-dSize, dSize, -dSize);
glVertex3d(-dSize, -dSize, -dSize);
glVertex3d(-dSize, -dSize, dSize);
//左
glColor3f(1.0, 0.0, 1.0); //品紅
glNormal3d(0.0, -1.0, 0.0);//左
glVertex3d(dSize, -dSize, dSize);
glVertex3d(dSize, -dSize, -dSize);
glVertex3d(-dSize, -dSize, -dSize);
glVertex3d(-dSize, -dSize, dSize);
//右
glColor3f(1.0, 1.0, 0.0); //黃
glNormal3d(0.0, 1.0, 0.0);//右
glVertex3d(dSize, dSize, dSize);
glVertex3d(dSize, dSize, -dSize);
glVertex3d(-dSize, dSize, -dSize);
glVertex3d(-dSize, dSize, dSize);
rotate_angle1 += 3;
glEnd();
glFlush();
glutSwapBuffers();
}
void myIdle(void)
{
myDisplay();
//Sleep(20); //減慢旋轉速度
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
glutInitWindowPosition(100, 100);
glutInitWindowSize(400, 400);
glutCreateWindow("立方體旋轉MODEL");
glutDisplayFunc(&myDisplay);
glutIdleFunc(&myIdle);
glutMainLoop();
return 0;
}
glColor3f函式用法
0.0 -- > 不使用顏色
1.0 -- > 使用顏色的最大值
glColor3f(0.0, 0.0, 0.0); --> 黑色
glColor3f(1.0, 0.0, 0.0); --> 紅色
glColor3f(0.0, 1.0, 0.0); --> 綠色
glColor3f(0.0, 0.0, 1.0); --> 藍色
glColor3f(1.0, 1.0, 0.0); --> 黃色
glColor3f(1.0, 0.0, 1.0); --> 品紅色
glColor3f(0.0, 1.0, 1.0); --> 青色
glColor3f(1.0, 1.0, 1.0); --> 白色