static int circle_points
= 4;
double points[10][2];
void init(void) {
glClearColor(0.0,0.0,0.0,1.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(-1.0,1.0,-1.0,1.0,-1.0,1.0);
glMatrixMode(GL_MODELVIEW);
glRotatef(18,0.0,0.0,1.0);
}
void display(void) {
double angle;
glClear(GL_COLOR_BUFFER_BIT);
for(int i = 0;i < circle_points; i++) {
angle = 2*PI*i/circle_points;
if(i%2) { //minden másodikat egy "belsõ" körív
mentén rajzol
points[i][0] = 0.4*cos(angle);
points[i][1] = 0.4*sin(angle);
} else {
points[i][0] = cos(angle);
points[i][1] = sin(angle);
}
}
glPointSize(6.0);
glBegin(GL_LINE_LOOP);
for(i = 0; i < circle_points; i++) {
glVertex2dv(points[i]);
}
glEnd();
glFlush();
glutSwapBuffers();
}
void keyboard(unsigned
char key, int x, int y) {
switch(key) {
case 27:
exit(0);
break;
case 'c':
if(circle_points < 26) {
circle_points += 2;
glutPostRedisplay();
}
break;
}
case 'v':
if(circle_points > 2) {
circle_points -=2;
glutPostRedisplay();
}
break;
default:
break;
}
}
int APIENTRY WinMain(HINSTANCE
hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nShowCmd)
{
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);
glutInitWindowSize(150, 150);
glutInitWindowPosition(100, 100);
glutCreateWindow("csillag");
init();
glutDisplayFunc(display);
glutKeyboardFunc(keyboard);
glutMainLoop();
return 0;
}