opengl画圆

通过这个例子可以更加深刻的了解割圆术的原理,明白如何的化曲为直,且看代码;

#include <windows.h>
//#include <GLUT/glut.h>
#include <GL/glut.h>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
const int n=10;
const GLfloat R=0.5f;
const GLfloat Pi=3.1415926536f;
void MyDisplay()
{
    int i;
    glClear(GL_COLOR_BUFFER_BIT);
    glBegin(GL_POLYGON);
    for(int 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("opengl程序");
    glutDisplayFunc(&MyDisplay);
    glutMainLoop();
    return 0;
}

 当n为10时,可以明显的看到圆的不平滑,见图:

 

 当n为20时,可以明显的看到圆变得相对平滑,见图:

 

态度决定高度,细节决定成败,
原文地址:https://www.cnblogs.com/lxk2010012997/p/3583413.html