![熟悉OpenGL的显示列表 <wbr>计算机图形学 熟悉OpenGL的显示列表 <wbr>计算机图形学](https://i-blog.csdnimg.cn/blog_migrate/a4c26d1e5885305701be709a3d33442f.gif)
代码如下:
#include<windows.h>
#include<math.h>
#ifdef __APPLE__
#include <GLUT/glut.h>
#else
#include <GL/glut.h>
#endif
#include <stdlib.h>
void init (void)
{
glClearColor (1.0, 1.0, 1.0, 0.0); // Set display-window color to white.
glMatrixMode (GL_PROJECTION); // Set projection parameters.
gluOrtho2D (0.0, 200.0, 0.0, 150.0);
}
void lineSegment (void)//绘制列表的方法
{
glClear (GL_COLOR_BUFFER_BIT); // Clear display window.
// glColor 3f (0.0, 0.0, 0.0); // Set line segment color to red.
glColor3f(0.0,0.0,0.0);
const double TWO_PI = 6.2831853;
GLuint regHex;
GLdouble theta;
GLint x,y,k;
regHex = glGenLists(1);
glNewList(regHex,GL_COMPILE);
glBegin(GL_POLYGON);
for(k=0;k<6;k++){
theta= TWO_PI*k/6.0;
x=50+35*cos(theta);
y=50+35*sin(theta);
glVertex2i(x,y);
}
glEnd();
glEndList();
glCallList(regHex);
glFlush();
}
int main (int argc, char** argv)
{
glutInit (&argc, argv); // Initialize GLUT.
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB); // Set display mode.
glutInitWindowPosition (50, 100); // Set top-left display-window position.
glutInitWindowSize (1000, 600); // Set display-window width and height.
glutCreateWindow ("An Example OpenGL Program"); // Create display window.
init ( ); // Execute initialization procedure.
glutDisplayFunc (lineSegment); // Send graphics to display window.
glutMainLoop ( );
return 0; // Display everything and wait.
}