下面这段 OpenGL 示例演示了如何用 GL_POINTS 在窗口中心画一个半径为 0.9 的圆。思路很直接:沿着 0 到 360 度的角度循环采样,按极坐标把角度换算成 (x, y) 坐标,再逐点绘制;每个点都给一个随机颜色,整体看起来就是一圈闪烁的彩色圆环。Render 函数还会统计一次绘制的耗时,顺便把近似的 FPS 输出到控制台。

void drawCricle(float r, int x, int y)
                {
                	for (float i = 0; i < 360; i += 0.01)
                	{
                		glColor3f(rand() % 200 + 40, rand() % 254, rand() % 200 + 40);//随机颜色
                		glVertex2f(r*cos(i*3.14159 / 180.0), r*sin(i*3.14159 / 180.0));//计算xy坐标
                	}
                }
                
                
                void Render(void)
                {
                	int a = clock();
                	glClear(GL_COLOR_BUFFER_BIT);
                	glPointSize(1);
                	glColor3f(0, 1.0, 0);
                
                	glBegin(GL_POINTS);
                
                	drawCricle(0.9, 0, 0);
                
                	glEnd();
                
                	glFlush();
                	cout << "FPS:" << 1000.0 / (clock() - a) << endl;
                
                }
                
                
                int main(int argc, char *argv[])
                {
                	glutInit(&argc, argv);
                	glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE | GLUT_DEPTH);
                	glutInitWindowSize(640, 640);
                	glutCreateWindow("OpenGL");
                	glutDisplayFunc(Render);
                
                	glutMainLoop();
                
                	return 0;
                }