/* * simple2.c -- Angel, OpenGL: A Primer, p. 23 */ #include #include #include #include void display() { typedef GLfloat point2[2]; point2 vertices[3] = { {0.0,0.0},{250.0,500.0},{500.0,0.0}}; static point2 p = {75.0,50.0}; int i,j,k; //fprintf(stderr,"Display\n"); glClear(GL_COLOR_BUFFER_BIT); for(k=0;k<50000;k++) { j=rand()%3; p[0] = (p[0]+vertices[j][0])/2.0; p[1] = (p[1]+vertices[j][1])/2.0; //fprintf(stderr,"%04d: %f %f\n",p[0],p[1]); glBegin(GL_POINTS); glVertex2fv(p); glEnd(); } glFlush(); } void init() { glClearColor(1.0,1.0,1.0,0.0); glColor3f(1.0,0.0,0.0); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluOrtho2D(0.0,500.0,0.0,500.0); glMatrixMode(GL_MODELVIEW); } int main(int argc,char *argv[]) { glutInit(&argc,argv); srand(time(0)); glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); glutInitWindowSize(500,500); glutInitWindowPosition(0,0); glutCreateWindow("simple"); glutDisplayFunc(display); init(); glutMainLoop(); }