先上代码:
- #include<GL/glut.h>
- #include<GL/gl.h>
- void display()
- {
- glClearColor(0.0, 0.0, 0.0, 0.0);
- glClear(GL_COLOR_BUFFER_BIT);
- glColor4f(1.0, 0.0, 0.0, 1.0);
- glBegin(GL_QUADS);
- glVertex3f(-0.5, -0.5, 0.0);
- glVertex3f(0.5, -0.5, 0.0);
- glVertex3f(0.5, 0.5, 0.0);
- glVertex3f(-0.5, 0.5, 0.0);
- glEnd();
- glFlush();
- }
- int main(int argc, char** argv)
- {
- glutInit(&argc, argv); ////初始化OpenGL环境
- glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
- glutInitWindowPosition(100, 100);
- glutInitWindowSize(400, 400);
- glutCreateWindow("正方形OpenGL程序");
- glutDisplayFunc(display); //用于注册一个绘图函数,就是设置一个函数当需要画图时就调用函数
- glutMainLoop();
- return 0;
- }
[说明]
1. glClear()
说明:可以使用 | 运算符组合不同的缓冲标志位,表明需要清除的缓冲,例如
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
表示要清除颜色缓冲以及深度缓冲,可以使用以下标志位
参数:
GL_COLOR_BUFFER_BIT: 当前可写的颜色缓冲
GL_DEPTH_BUFFER_BIT : 深度缓冲
GL_ACCUM_BUFFER_BIT : 累积缓冲
GL_STENCIL_BUFFER_BIT : 模板缓冲
GL_COLOR_BUFFER_BIT: 当前可写的颜色缓冲
GL_DEPTH_BUFFER_BIT : 深度缓冲
GL_ACCUM_BUFFER_BIT : 累积缓冲
GL_STENCIL_BUFFER_BIT : 模板缓冲
2.glBegin()
说明:glBegin和glEnd函数限定了一组或多组图元的定点定义
参数: GL_POINTS:把每一个顶点作为一个点进行处理,顶点n即定义了点n,共绘制N个点
GL_LINES:把每一个顶点作为一个独立的线段,顶点2n-1和2n之间共定义了n条线段,总共绘制N / 2条 线段
GL_LINE_STRIP:绘制从第一个顶点到最后一个顶点依次相连的一组线段,第n和n + 1个顶点定义了线段 n,总共绘制n-1条线段
GL_LINE_LOOP:绘制从第一个顶点到最后一个顶点依次相连的一组线段,然后最后一个顶点和第一个顶点 相连,第n和n + 1个顶点定义了线段n,总共绘制n条线段
GL_TRIANGLES:把每个顶点作为一个独立的三角形,顶点3n-2、3n-1和3n定义了第n个三角形,总共绘 制N / 3个三角形
GL_TRIANGLE_STRIP:绘制一组相连的三角形,对于奇数n,顶点n、n + 1和n + 2定义了第n个三角形;对 于偶数n,顶点n + 1、n和n + 2定义了第n个三角形,总共绘制N - 2个三角形
GL_TRIANGLE_FAN:绘制一组相连的三角形,三角形是由第一个顶点及其后给定的顶点确定,
GL_LINES:把每一个顶点作为一个独立的线段,顶点2n-1和2n之间共定义了n条线段,总共绘制N / 2条 线段
GL_LINE_STRIP:绘制从第一个顶点到最后一个顶点依次相连的一组线段,第n和n + 1个顶点定义了线段 n,总共绘制n-1条线段
GL_LINE_LOOP:绘制从第一个顶点到最后一个顶点依次相连的一组线段,然后最后一个顶点和第一个顶点 相连,第n和n + 1个顶点定义了线段n,总共绘制n条线段
GL_TRIANGLES:把每个顶点作为一个独立的三角形,顶点3n-2、3n-1和3n定义了第n个三角形,总共绘 制N / 3个三角形
GL_TRIANGLE_STRIP:绘制一组相连的三角形,对于奇数n,顶点n、n + 1和n + 2定义了第n个三角形;对 于偶数n,顶点n + 1、n和n + 2定义了第n个三角形,总共绘制N - 2个三角形
GL_TRIANGLE_FAN:绘制一组相连的三角形,三角形是由第一个顶点及其后给定的顶点确定,
顶点1、n+1和n+2定义了第n个三角形,总共绘制N-2个三角形
GL_QUADS:绘制由四个顶点组成的一组单独的四边形。顶点4n-3、4n-2、4n-1和4n定义了第n个四边 形。总共绘制N / 4个四边形
GL_QUAD_STRIP:绘制一组相连的四边形。每个四边形是由一对顶点及其后给定的一对顶点共同确定的。顶 点2n-1、2n、2n + 2和2n + 1定义了第n个四边形,总共绘制N / 2 - 1个四边形
GL_POLYGON:绘制一个凸多边形。顶点1到n定义了这个多边形。
GL_QUADS:绘制由四个顶点组成的一组单独的四边形。顶点4n-3、4n-2、4n-1和4n定义了第n个四边 形。总共绘制N / 4个四边形
GL_QUAD_STRIP:绘制一组相连的四边形。每个四边形是由一对顶点及其后给定的一对顶点共同确定的。顶 点2n-1、2n、2n + 2和2n + 1定义了第n个四边形,总共绘制N / 2 - 1个四边形
GL_POLYGON:绘制一个凸多边形。顶点1到n定义了这个多边形。
【三角形】
- #include<GL/glut.h>
- void display()
- {
- glClearColor(0.0, 0.0, 0.0, 0.0);
- glClear(GL_COLOR_BUFFER_BIT);
- glColor4f(1.0, 0.0, 0.0, 1.0);
- glBegin(GL_TRIANGLES);
- glVertex3d(-1.0, 0.0, 0.0);
- glVertex3d(0.0, 1.0, 0.0);
- glVertex3d(1.0, 0.0, 0.0);
- glEnd();
- glFlush();
- }
- void main()
- {
- glutCreateWindow("三角形");
- glutDisplayFunc(display);
- glutMainLoop();
- }