9. Fraktali - Mandelbrotov i Julijev fraktalni skup

41 KB
Lab9.zip

ZADATAK VJEŽBE

Prikazati skupove Mandelbrota i Julije na zadanom području kompleksne ravnine.

PRIMIJENJENI POSTUPAK

U svakoj točki kompleksne ravnine generira se niz i ispituje njegova konvergencija. Promatrani nizovi se generiraju iterativnim preslikavanjem, uz određene razlike – ovisno o tome da li se radi o Mandelbrotovom ili Julijevom skupu:

Mandelbrot:
zn+1 = zn2 + c
z0 = 0
c = u + i v
Julija:
zn+1 = zn2 + c
z0 = u + i v
c = (zadano od korisnika)

Ocjenu o konvergenciji donosimo po jednostavnom kriteriju: ako niz nakon određenog broja iteracija prijedje zadani prag udaljenosti epsilon od ishodišta, smatramo da niz divergira; u suprotnom, smatramo da konvergira. Radijus i maksimalni broj dozvoljeni broj iteracija su među parametrima koje kontrolira korisnik.

Dano kompleksno područje se linearno preslikava na određeno područje na zaslonu, također određeno od strane korisnika.

PROGRAMSKO OSTVARENJE

Pseudokod:

Učitati korisničke parametre iz ulazne datoteke: prag eps, maks. broj iteracija m,
područje kompleksne ravnine koja se promatra (umin, umax), (vmin, vmax).
Za svaku točku zaslona x, y:
    Odrediti u i v.
    Postaviti k i r na nulu.
    Ponavljati sve dok je r < eps i istovremeno k < m:
        k = k + 1
        zn+1 = zn2 + c
        r = sqrt (zreal2 + zimag2)
    Iscrtati točku (x, y) u boji k.

Područje konvergencije prikazujemo crvenom bojom, a područje divergencije plavo. Nijanse biramo sve svjetlije s porastom varijable k, uz napomenu da su svake dvije susjedne nijanse zamijenjene, pa nijanse idu redom svjetlija-tamnija-svjetlija, da bi granice među njima bile što uočljivije.

UPUTE ZA KORIŠTENJE

Program očekuje da mu se navede ulazna datoteka kao parametar:

Lab9.exe  ulaz.txt

Primjer ulazne datoteke:

m=16
eps =100
umin = -1.5
umax = 0.5
vmin = -1
vmax = 1

daje prikaz Mandelbrotovog skupa:

Primjer ulazne datoteke:

m = 16
eps =100
umin = -1
umax = 1
vmin = -1.2
vmax = 1.2
creal = 0.32
cimag = 0.043

daje prikaz Julijevog skupa:

Ante Radman, Laboratorijske vježbe iz Računalne grafike, šk. godina 2003/2004.