C programming



Lissajous curve  Lissajous curve Lissajous curve
 Lissajous curve Mandelbrot Set Random circle

  • OpenGL


  •  Pythagoras Tree

C code for simple Pythagoras tree . Program is tested in Visual C++ 6.0.
#include <GL/glut.h>

void pytree(int n)
{
    if(n>0)
    {
     glPushMatrix();

     glTranslatef(-0.5,1.0,0);
     glRotatef(45, 0.0, 0.0, 1.0);
     glScalef(0.707,0.707,0.707);
     pytree(n-1);

     glPopMatrix();

     glPushMatrix();


     glTranslatef(0.5,1.0,0);
     glRotatef(-45, 0.0, 0.0, 1.0);
     glScalef(0.707,0.707,0.707);
     pytree(n-1);

     glPopMatrix();
     glutWireCube(1);
    }
}

void pytreeInit(int n)
{
   glColor3f(1.0, 0.0, 0.0);
   pytree(n);
}

void display (void) {
    glClearColor (0.0,0.0,0.0,1.0);
    glClear (GL_COLOR_BUFFER_BIT);
    glLoadIdentity(); 
    gluLookAt (0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);
    pytreeInit(9);
    glFlush();
}

void reshape (int w, int h) {
    glViewport (0, 0, (GLsizei)w, (GLsizei)h);
    glMatrixMode (GL_PROJECTION);
    glLoadIdentity ();
    gluPerspective (60, (GLfloat)w / (GLfloat)h, 1.0, 100.0);
    glMatrixMode (GL_MODELVIEW);
}

int main (int argc, char **argv) {
    glutInit (&argc, argv);
    glutInitDisplayMode (GLUT_SINGLE);
    glutInitWindowSize (500, 500);
    glutInitWindowPosition (100, 100);
    glutCreateWindow ("Pythagoras Tree");
    glutDisplayFunc (display);
    glutReshapeFunc (reshape);
    glutMainLoop ();
    return 0;
}