在opengl中使用线段绘制一个圆

使用opengl绘制一个圆

#include<GL/glut.h>

#include <math.h>

const int n = 20;
const GLfloat R = 0.5f;
const GLfloat Pi = 3.1415926536f;
void Display(void)
{
	int i;
	glClear(GL_COLOR_BUFFER_BIT);
	glBegin(GL_POLYGON);
	for (i = 0; i < n; ++i)
		glVertex2f(R * cos(2 * Pi / n * i), R * sin(2 * Pi / n * i));
	glEnd();
	glFlush();
}

int main(int argc,char *argv[])
{
	glutInit(&argc,argv);
	glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
	glutInitWindowPosition(100, 100);
	glutInitWindowSize(400, 400);
	glutCreateWindow("OpenGLTest");
	glutDisplayFunc(&Display);
	glutMainLoop();
	return 0;
}

绘制完成后

 圆其实可以理解为一个一个凸的多边形,只不过这个圆的边有无穷多个

所以使用glBegin(GL_POLYGON)去画一个多边形,这个函数和glEnd配合使用可以画一个多边形

当边的数量越来越多的时候,图形就越来越趋向于一个圆了

猜你喜欢

转载自blog.csdn.net/qq_36653924/article/details/127268540