Pentru a activa modulul grafic din meniul Options/ Linker/ Libraries, bifati optiunea Graphics Library

 

Covorul lui Sierpinski este un exemplu de fractal implementat prin recursivitate 

 

//covorul lui Sierpinski

#include <conio.h>

#include <stdio.h>

#include <math.h>

#include <graphics.h>

#include<dos.h>

#include<stdlib.h>

 

void fractal(int x,int y,int k)

rectangle(x-k/2,y-k/2,x+k/2,y+k/2);

 line(x-k/2,y-k/6,x+k/2,y-k/6);

 line(x-k/2,y+k/6,x+k/2,y+k/6);

 line(x-k/6,y-k/2,x-k/6,y+k/2);

 line(x+k/6,y-k/2,x+k/6,y+k/2);

 delay(10);

 floodfill(x,y,WHITE);

 if (k>5) {fractal(x-3*k/4,y,k/2);

         fractal(x+3*k/4,y,k/2);

         fractal(x,y-3*k/4,k/2);

         fractal(x,y+3*k/4,k/2);}

 }

 

 

 

void main()

{int cul,gd,gm;

 gd=DETECT;

 randomize();

 initgraph(&gd,&gm,"c:\\bc\\bgi");

 int x=300,y=250,k=150;

 fractal(x,y,k);

 getch();

 closegraph();}

 

 

//Alt exemplu : scara cu fractali

#include <conio.h>

#include <stdio.h>

#include <math.h>

#include <graphics.h>

#include<dos.h>

#include<stdlib.h>

 

void fractal(int x,int y,int k)

{delay(10);

rectangle(x-k/2,y-k/2,x+k/2,y+k/2);

 if (k>5) {fractal(x-3*k/4,y,k/2);

         fractal(x+3*k/4,y,k/2);

         fractal(x,y-3*k/4,k/2);

         fractal(x,y+3*k/4,k/2);}

 

 } 

 

void main()

{int cul,gd,gm;

 gd=DETECT;

 initgraph(&gd,&gm,"c:\\bc\\bgi");

 int x=300,y=250,k=150;

 fractal(x,y,k);

 getch();

 closegraph();}

 

Exercitii:

 

1. schimbati in mod aleator culoarea fiecarui dreptunghi pt exemplul 2

2. desenati dreptunghiuri in doua culori (unul rosu, unul galben, unul rosu, unul galben etc)

3. desenati cercuri in loc de dreptunghiuri

4. pt primul exemplu modificati culoare dreptunghiului, culoarea liniilor, schimbati modul de umplere cu functia setfill

5. generati-va fractali proprii. Generati un bmp.