openGL画五角星
#include<windows.h>
#include<GL/glut.h>
#include<cmath>
const GLfloat R=0.5f;
const GLfloat Pi=3.1415926536f;
static void myDisplay(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_LINE_LOOP);
for(int i=0;i<360;i++)
{
glVertex2f(R*cos(i/360.0*2.0*Pi)-0.5,R*sin(i/360.0*2.0*Pi)+0.5);
}
float aa=cos(54.0/360.0*2*Pi);
float bb=aa*tan(36.0/360.0*2*Pi);
float cc=sin(54.0/360.0*2*Pi)-bb;
for(int j=0;j<360;j+=72)
{
glVertex2f(R*cos(j/360.0*2.0*Pi)-0.5,R*sin(j/360.0*2.0*Pi)+0.5);
glVertex2f(cc*R*cos((j+36)/360.0*2.0*Pi)-0.5,cc*R*sin((j+36)/360.0*2.0*Pi)+0.5);
}
glEnd();
glBegin(GL_LINES);
float pta[5],ptb[5];
for(int k=0;k<5;k+=1)
{
pta[k]=R*cos(k/5.0*2.0*Pi);
ptb[k]=R*sin(k/5.0*2.0*Pi);
}
glVertex2f(pta[0]+0.5,ptb[0]-0.5);
glVertex2f(pta[2]+0.5,ptb[2]-0.5);
glVertex2f(pta[0]+0.5,ptb[0]-0.5);
glVertex2f(pta[3]+0.5,ptb[3]-0.5);
glVertex2f(pta[1]+0.5,ptb[1]-0.5);
glVertex2f(pta[3]+0.5,ptb[3]-0.5);
glVertex2f(pta[1]+0.5,ptb[1]-0.5);
glVertex2f(pta[4]+0.5,ptb[4]-0.5);
glVertex2f(pta[2]+0.5,ptb[2]-0.5);
glVertex2f(pta[4]+0.5,ptb[4]-0.5);
glEnd();
glFlush();
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
glutInitWindowPosition(100,100);
glutInitWindowSize(400,400);
glutCreateWindow("GLUT Shapes");
glutDisplayFunc(&myDisplay);
glutMainLoop();
return EXIT_SUCCESS;
}
#include<GL/glut.h>
#include<cmath>
const GLfloat R=0.5f;
const GLfloat Pi=3.1415926536f;
static void myDisplay(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_LINE_LOOP);
for(int i=0;i<360;i++)
{
glVertex2f(R*cos(i/360.0*2.0*Pi)-0.5,R*sin(i/360.0*2.0*Pi)+0.5);
}
float aa=cos(54.0/360.0*2*Pi);
float bb=aa*tan(36.0/360.0*2*Pi);
float cc=sin(54.0/360.0*2*Pi)-bb;
for(int j=0;j<360;j+=72)
{
glVertex2f(R*cos(j/360.0*2.0*Pi)-0.5,R*sin(j/360.0*2.0*Pi)+0.5);
glVertex2f(cc*R*cos((j+36)/360.0*2.0*Pi)-0.5,cc*R*sin((j+36)/360.0*2.0*Pi)+0.5);
}
glEnd();
glBegin(GL_LINES);
float pta[5],ptb[5];
for(int k=0;k<5;k+=1)
{
pta[k]=R*cos(k/5.0*2.0*Pi);
ptb[k]=R*sin(k/5.0*2.0*Pi);
}
glVertex2f(pta[0]+0.5,ptb[0]-0.5);
glVertex2f(pta[2]+0.5,ptb[2]-0.5);
glVertex2f(pta[0]+0.5,ptb[0]-0.5);
glVertex2f(pta[3]+0.5,ptb[3]-0.5);
glVertex2f(pta[1]+0.5,ptb[1]-0.5);
glVertex2f(pta[3]+0.5,ptb[3]-0.5);
glVertex2f(pta[1]+0.5,ptb[1]-0.5);
glVertex2f(pta[4]+0.5,ptb[4]-0.5);
glVertex2f(pta[2]+0.5,ptb[2]-0.5);
glVertex2f(pta[4]+0.5,ptb[4]-0.5);
glEnd();
glFlush();
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
glutInitWindowPosition(100,100);
glutInitWindowSize(400,400);
glutCreateWindow("GLUT Shapes");
glutDisplayFunc(&myDisplay);
glutMainLoop();
return EXIT_SUCCESS;
}