#include #include void myinit(void) { /* 속성들 */ 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); } void display(void) { typedef GLfloat point2[2]; /* 점 데이터 형의 정의 */ /* 삼각형 */ point2 vertices[3] = {{0.0, 0.0}, {250.0, 500.0}, {500.0, 0.0}}; int j, k; /*long rand(); /* 표준 난수 발생기 */ point2 p = {75.0, 50.0}; /* 임의의 점 */ glClear(GL_COLOR_BUFFER_BIT); /* 윈도우를 지움 */ /* 5000 개의 새로운 점을 계산하고 그림 */ for (k=0; k<5000; k++) { j = rand()%3; /* 하나의 정점을 무작위로 선택 */ /* 정점과 이전의 점의 중점을 계산 */ p[0] = (p[0]+vertices[j][0])/2.0; p[1] = (p[1]+vertices[j][1])/2.0; /* 점을 그림 */ glBegin(GL_POINTS); glVertex2fv(p); glEnd(); } glFlush(); } void main(int argc, char **argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); glutInitWindowSize(500, 500); glutInitWindowPosition(0, 0); glutCreateWindow("simple OpenGL exxample"); glutDisplayFunc(display); myinit(); glutMainLoop(); }