opengl入门简单漂亮的小程序,完全代码

#include
#include
#include
//GLint x=5,a=250;
GLdouble a=1.256637,c=0.31415926535897932384;
GLint b=10;
void display()
{
glClear(GL_COLOR_BUFFER_BIT);
glPointSize(3);
glColor3f(1.0,1.0,0.0);
while(b--)
{
glBegin(GL_LINE_STRIP);

glVertex2f(200*cos (a+c),200*sin (a+c));
glVertex2f(200*cos (3*a+c),200*sin (3*a+c));
glVertex2f(200*cos (5*a+c),200*sin (5*a+c));
glVertex2f(200*cos (2*a+c),200*sin (2*a+c));
glVertex2f(200*cos (4*a+c),200*sin (4*a+c));
glVertex2f(200*cos (a+c),200*sin (a+c));
glEnd();
c++;
if(c>5)
{
glColor3f(1.0,0.0,1.0);
}
}
glFlush();
/*
while(x--)
{
glBegin(GL_LINES);
glColor3f(1.0,1.0,0.0);
glVertex2f(-250,a);
glVertex2f(250,a);
glEnd();
glBegin(GL_LINES);
glColor3f(1.0,0.0,1.0);
glVertex2f(a,-250);
glVertex2f(a,250);
glEnd();
a-=100;
}
*/

}

void mymouse(int button,int state,int x,int y)
{
if(state==GLUT_DOWN)
{
while(x<500&&y<500)
{
printf("%d,%d\n",x,y);
glBegin(GL_LINES);
glColor3f(0.0,1.0,0.0);

glVertex2i(x-250,250-y);
glVertex2i(0,0);

// glVertex2i(x-250,y-250);
glEnd();
glFlush();
x=x+3;
y=y+3;
}
}
}
void init()
{
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(-250.0,250.0,-250.0,250.0);
}
int main(int argc,char**argv)
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
glutInitWindowSize(500,500);
glutInitWindowPosition(0,0);
glutCreateWindow("ok");
glutDisplayFunc(display);
//glutKeyboardFunc(mykey);
init();
glutMouseFunc(mymouse);
glutMainLoop();
}

相关文档
最新文档