Sunteți pe pagina 1din 13

Fractali

Definiie fractal

Cupri ns

Curba lui Koch pentru un triunghi echilateral Program C++ pentru Curba lui Koch Covorul lui Sierpinski Program C++ pentru Covorul lui Sierpinski Program C++ pentru scara cu fractali Importana fractalilor Bibliografie STOP

Definiie fractal
Un fractal este "o figur geometric fragmentat sau frnt care poate fi divizat n pri, astfel nct fiecare dintre acestea s fie (cel puin aproximativ) o copie miniatural a ntregului". Termenul a fost introdus de Benot Mandelbrot n 1975 i este derivat din

Curba lui Koch pentru un triunghi echilateral


Se consider un triunghi echilateral. Fiecare latur a sa se mparte n trei segmente congruente, se elimin segmentul din mijloc i se a fost Herge von Koch construiete matematician suedez i a deasupra un imaginat aceast curb triunghi echilateral. n anul 1904.

Program C++ pentru


#include<graphics.h> #include<iostream.h> #include<stdlib.h> #include<conio.h> #include<math.h> int gdriver,gmode,ls,L; void init() {gdriver=DETECT;

Curba lui Koch

initgraph(&gdriver,&gmode,"c:\\tC\\ BGI"); if(graphresult()) { cout<<"Tentativa nereusita."; cout<<"Apasa o tasta pentru a inchide..."; getch(); exit(1); } }

Program C++ pentru


Curba lui Koch
void rotplan(int xc,int yc,int x1,int y1, int &x, int &y, float unghi) {x=ceil(xc+(x1-xc)*cos(unghi)-(y1-yc)*sin(unghi)); y=ceil(yc+(x1-xc)*sin(unghi)+(y1-yc)*cos(unghi)); } void desenez(int x1,int y1,int x2, int y2, int x3, int y3) {moveto(x1,y1); lineto(div((2*x1+x2),3).quot,div((2*y1+y2),3).quot); lineto(x3,y3); lineto(div((x1+2*x2),3).quot,div((y1+2*y2),3).quot); lineto(x2,y2);}

Program C++ pentru


Curba lui Koch
void generator(int x1,int y1, int x2,int y2, int n, int ls) {int x,y; rotplan(div((2*x1+x2),3).quot,div((2*y1+y2),3).quot, div((x1+2*x2),3).quot, div((y1+2*y2),3).quot,x,y,M_PI/3); if(n<ls) {generator(x1,y1,div((2*x1+x2),3).quot,div((2*y1+y2),3).quot,n+1,ls); generator(div((2*x1+x2),3).quot,div((2*y1+y2),3).quot,x,y,n+1,ls); generator(x,y,div((x1+2*x2),3).quot,div((y1+2*y2),3).quot,n+1,ls); generator(div((x1+2*x2),3).quot,div((y1+2*y2),3).quot,x2,y2,n+1,ls); } else desenez(x1,y1,x2,y2,x,y); }

Program C++ pentru


Curba lui Koch
void main() {cout<<"ls=";cin>>ls; randomize(); init(); setcolor(random(getmaxcolor())); L=getmaxx()-320; generator(160,getmaxy()-150,160+L,getmaxy()-150,1,ls); generator(160+L,getmaxy()150,160+div(L,2).quot,getmaxy()-150ceil(L*(sqrt(3)/2)),1,ls); generator(160+div(L,2).quot,getmaxy()-150ceil(L*(sqrt(3)/2)),160,getmaxy()-150,1,ls); setfillstyle(1,4); floodfill(div(getmaxx(),2).quot,div(getmaxx(),2).quot,6); Program getch(); executabil closegraph(); C++ }

Covorul lui Sierpinski


Este o form de repartizare a unor goluri pentru a modela o "sit natural". Un ptrat plin este divizat n 9 prti egale din care se ndeprteaz partea central. Rmn 8 ptrate negre prin eliminarea celui din mijloc

Program C++ pentru 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,yk/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:\\tc\\bgi"); int x=300,y=250,k=150; fractal(x,y,k); getch(); closegraph();}

Program executabil C++

Program C++ pentru 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); setcolor(random(15)); rectangle(x-k/2,yk/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; randomize(); gd=DETECT; initgraph(&gd,&gm,"c:\\tc\\bgi"); int x=300,y=250,k=150; fractal(x,y,k); getch(); closegraph();}
Program executabil C++

Importana Aceste forme geometrice au fost fractalilor

considerate n trecut haotice sau aberaii geometrice, iar multe dintre ele erau att de complexe nct necesitau calculatoare performante pentru a le vizualiza. Pe parcurs, domenii tiinifice ca fizica, chimia, biologia sau meteorologia descopereau elemente asemntoare cu fractalii n viaa real. Fractalii au proprieti matematice extrem de interesante, care de multe ori contrazic aparena, dar acestea depesc cu mult

Bibliografie
http://ro.wikipedia.org/wiki/Fractal Manual de informatic intensiv clasa a XI-a Vlad Huanu, Tudor Sorin, ed. L&S Soft
Profesor Liliana chiopu

http://infoscience.3x.ro/c++/exfracta