#include <GL/glut.h>
#include <GL/gl.h>

void tri(int n, double x1,double y1, 
                double x2,double y2, 
                double x3,double y3)
{
  if (n)
   {
    tri( n-1, x1,y1, (x1+x2)/2, (y1+y2)/2, 
                     (x1+x3)/2, (y1+y3)/2);
    tri( n-1, (x1+x2)/2, (y1+y2)/2, 
                x2,y2, (x2+x3)/2, (y2+y3)/2);
    tri( n-1, (x1+x3)/2, (y1+y3)/2, 
              (x2+x3)/2, (y2+y3)/2, x3,y3);
   }
 else
   {
    glBegin(GL_TRIANGLES);
    glVertex3f(x1,y1,0);
    glVertex3f(x2,y2,0);
    glVertex3f(x3,y3,0);
    glEnd();
   }
}


void renderScene(void) {
	glClear(GL_COLOR_BUFFER_BIT);
//	glBegin(GL_TRIANGLES);
        tri(5,-1,-1, 0,1, 1,-1);
//	glEnd();
	glFlush();
}

int main(int argc, char **argv) 
{
	glutInit(&argc, argv);
	glutInitDisplayMode(GLUT_DEPTH | 
                        GLUT_SINGLE | GLUT_RGBA);
	glutInitWindowPosition(100,100);
	glutInitWindowSize(320,320);
	glutCreateWindow("3D Tech- GLUT Tutorial");
	glutDisplayFunc(renderScene);
	glutMainLoop();
	return 0;
}
