【OpenGL】OpenGL系列——01颜色使用

    xiaoxiao2021-04-12  38

    void myinit(void){ glClearColor(0.5, 0.5, 0.5, 0.0); } void display(void){ //glClear(GL_COLOR_BUFFER_BIT); //glBegin(GL_TRIANGLES); // glShadeModel(GL_SMOOTH); //明暗模式 // glColor3f(1.0, 0.0, 0.0); // glVertex2f(0.0, 0.0); // glColor3f(0.0, 1.0, 0.0); // glVertex2f(1.0, 0.0); // glColor3f(0.0, 0.0, 1.0); // glVertex2f(0.5, 1.0); //glEnd(); //glBegin(GL_TRIANGLES); // glShadeModel(GL_FLAT); // glColor3f(1.0, 0.0, 0.0); // glVertex2f(0.5, 0.0); // glColor3f(0.0, 1.0, 0.0); // glVertex2f(1.5, 0.0); // glColor3f(0.0, 0.0, 1.0); // glVertex2f(1.0, 1.0); //glEnd(); //glFlush(); glClear(GL_COLOR_BUFFER_BIT); glColor3f(1.0, 0.0, 0.0); //画分割线,分成四个视见区 glViewport(0, 0, 400, 400); glBegin(GL_LINES); glVertex2f(-1.0, 0); glVertex2f(1.0, 0); glVertex2f(0.0, -1.0); glVertex2f(0.0, 1.0); glEnd(); //定义在左下角的区域 glColor3f(0.0, 1.0, 0.0); glViewport(0, 0, 200, 200); glBegin(GL_POLYGON); glVertex2f(-0.5, -0.5); glVertex2f(-0.5, 0.5); glVertex2f(0.5, 0.5); glVertex2f(0.5, -0.5); glEnd(); //定义在右上角的区域 glColor3f(0.0, 0.0, 1.0); glViewport(200, 200, 200, 200);//注意,后面这两个参数是高度和宽度,而不是坐标 glBegin(GL_POLYGON); glVertex2f(-0.5, -0.5); glVertex2f(-0.5, 0.5); glVertex2f(0.5, 0.5); glVertex2f(0.5, -0.5); glEnd(); //定义在左上角的区域 glColor3f(1.0, 0.0, 0.0); glViewport(0, 200, 200, 200);//注意,后面这两个参数是高度和宽度,而不是坐标 glBegin(GL_POLYGON); glVertex2f(-0.5, -0.5); glVertex2f(-0.5, 0.5); glVertex2f(0.5, 0.5); glVertex2f(0.5, -0.5); glEnd(); //定义在右下角 glColor3f(1.0, 1.0, 1.0); glViewport(200, 0, 200, 200);//注意,后面这两个参数是高度和宽度,而不是坐标 glBegin(GL_POLYGON); glVertex2f(-0.5, -0.5); glVertex2f(-0.5, 0.5); glVertex2f(0.5, 0.5); glVertex2f(0.5, -0.5); glEnd(); glFlush(); } void myReshape(GLsizei w, GLsizei h){ glViewport(0, 0, w, h); glMatrixMode(GL_PROJECTION); glLoadIdentity(); if (w <= h){ gluOrtho2D(-1.5, 1.5, -1.5, 1.5*(GLfloat)w / (GLfloat)h ); } else{ gluOrtho2D(-1.5, 1.5*(GLfloat)w / (GLfloat)h, -1.5, 1.5); } glMatrixMode(GL_MODELVIEW); } int main(int argc, char *argv[]) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); glutInitWindowSize(400, 400); glutInitWindowPosition(700, 500); glutCreateWindow("color"); myinit(); glutReshapeFunc(myReshape); glutDisplayFunc(display); glutMainLoop(); return 0; }

    ========================================================

    void myinit(void){ glClearColor(0.0, 1.0, 1.0, 1.0); glClear(GL_COLOR_BUFFER_BIT); glShadeModel(GL_SMOOTH); } void display(void){ GLint i, j; GLfloat rgb[8][3] = { { 1.0, 0.0, 0.0 }, { 0.0, 1.0, 0.5 }, { 0.5, 0.5, 0.5 }, { 0.5, 0.5, 0.0 }, { 1.0, 1.0, 0.0 }, { 0.0, 0.0, 1.0 }, { 0.5, 0.0, 0.5 }, { 1.0, 0.5, 0.0 } }; GLfloat fan[8][2] = { { 7.0, -7.0 }, { 0.0, -10.0 }, { -7.0, -7.0 }, {-10.0,0.0}, { -7.0, 7.0 }, {0.0,10.0}, {7.0,7.0}, {10.0,0.0} }; glTranslatef(-15.0, -15.0, 0.0); for (j = 0; j < 8; j++){ glColor4f(rgb[j][0], rgb[j][1], rgb[j][2], 0.5); glIndexd(j + 1); glTranslatef(j, j - 1, 0); glutSolidSphere(1.0, 20.0, 20.0); } glFlush(); } void myReshape(GLsizei w, GLsizei h){ glViewport(0, 0, w, h); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(100.0, 1.0, 1.0, 20.0); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glTranslatef(0.0, 0.0, -15.0); } int main(int argc, char *argv[]) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); glutInitWindowSize(400, 400); glutInitWindowPosition(700, 500); glutCreateWindow("color"); myinit(); glutReshapeFunc(myReshape); glutDisplayFunc(display); glutMainLoop(); return 0; }

    转载请注明原文地址: https://ju.6miu.com/read-667137.html

    最新回复(0)