grafički prikaz podataka

41
Grafiˇ cki prikaz podataka « Numeriˇ cke metode » Ivo Batisti´ c Fiziˇ cki odsjek, PMF Sveuˇ cilište u Zagrebu predavanja 2005/2006

Upload: hakhuong

Post on 02-Feb-2017

264 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Grafički prikaz podataka

Graficki prikaz podataka« Numericke metode »

Ivo Batistic

Fizicki odsjek, PMFSveucilište u Zagrebu

predavanja 2005/2006

Page 2: Grafički prikaz podataka

Pregled predavanja

Graficke datoteke

Graficki paketi

Graficki paket DISLIN

MathGL biblioteka

Izrada animacija/kratkih filmova

Page 3: Grafički prikaz podataka

Uporaba grafickih biblioteka

◮ Kada govorimo o grafickim bibliotekama misli se na zborkupodprograma i funkcija s kojima možemo stvoriti graficki prikazfunkcije ili nizova podataka bilo direktno na grafickom terminalu iliu nekoj datoteci, tipa slike (gif,tiff,jpeg,eps,. . . ) odnosno datotecinamijenjenoj pisacima (ps,hpgl,. . . ).

◮ Graficke datoteke tipa slika ili onih namijenjenih pisacima moguceje naknadno prikazati na ekranu (grafickom terminalu), ili ispisatina pisacu.

◮ Graficke je datoteke moguce i konvertirati jednu iz druge uzpomoc velike kolekcije alata koje inace postoje u svimoperacijskim sustavima.

Page 4: Grafički prikaz podataka

Graficke datoteke

Postoji ogroman broj razlicitih vrsta grafickih datoteka. Ovje cemospomenuti samo neke od njih.

◮ GIF (Graphics Interchange Format) je jedan on najcešcih nacinacuvanja slika u digitalnom obliku na racunalu. U GIF datotecislika je prikazana dvodimenzionalnim nizom obojenih tockica.Postoji i animirani gif format za prikazivanje animacija.

◮ JPEG (jpg, Joint Photographic Experts Group) se prvenstvenokoristi za prikazivanje fotografija zbog mogucnosti sažimanjapodataka.

◮ TIFF (tif, Tag Image File Format) format najcešce se koristi koduredivanja dokumenata za tisak.

◮ PNG (Portable Network Graphics) format je stvoren u prvom reduda zamijeni GIF s kojim je bilo problema oko patentnih prava do2003.

Page 5: Grafički prikaz podataka

Graficke datoteke

◮ PS (Postscript) je vrst programskog jezika za pisace. Inacetekstualna datoteka, koja sadrži ili dvodimenzionalni bitmapprikaz slike i/ili niz procedura i naredbi cije izvršavanje stvarasliku. Ima mogucnost skaliranja pri povecanju dimenzije slike.

◮ EPS (Encapsulated PostScript) sadrži reducirani skup postscriptnaredbi i namjenjen je prvenstveno za unos postscript slika udruge dokumenate.

◮ PDF (Portable Document Format) je format koji u današnjevrijeme služi za distribuciju dokumenata u digitalnom obliku.

◮ HPGL datoteka sadrži sliku napisanu jezikom namjenjen HPpisacima i ploterima.

◮ SVG (Scalable Vector Graphics) je tekstualna datoteka gdje jeslika opisana pomocu programskog jezika nalik na xml-tagove.(slicno html stranici na web-u).

Page 6: Grafički prikaz podataka

Primjer - postscript datoteka

/Helvetica-Bold findfont30 scalefont setfont/oshow %stack: (string){ true charpath stroke } def/circleofF90{ 15 15 345{ gsaverotate 0 0 moveto( F90) oshowgrestore} for} def% -- Pocetak programa --250 400 translate.5 setlinewidthcircleofF900 0 moveto(Numericke Metode) true charpathgsave 1 setgray fill grestorestrokeshowpage

Page 7: Grafički prikaz podataka

Graficki paketi

Postoji veci broj razlicitih grafickih paketa (biblioteka) namijenjenihfortranu, a tek jedan manji broj je nekomercijalan ili je slobodan zauporabu u nekomercijalnim aplikacijama.

◮ Primjeri iz ovog poglavlja koristiti ce paket DISLIN, koji je zanekomercijalne aplikacije slobodan, te postoji za vecinuoperacijskih sustava (UNIX, MS-dos, MS-Windows te linux).

◮ Web-stranica paketa je http://www.mps.mpg.de/dislin/ gdje jemoguce saznati više o paketu, te samu binarnu verziju bibliotekeskinuti za odgovarajuci operacijski sustav.

Page 8: Grafički prikaz podataka

Graficki paket DISLINinstalacija i uporaba pod MS windowzima

◮ Raspakirati ZIP arhivu dl_90_sf.zip, te pokrenuti setup program.DISLIN paket bit ce instaliran na lokaciju C:\dislin.

◮ Programe treba prevoditi

ftn95 /mod_path c:\dislin exa_f90.f90slink exa_f90.obj c:\dislin\disf95.lib

◮ Kod izvodenja programa postaviti varijable:

PATH=c:\dislin\win;%PATH%SET DISLIN=c:\dislin

Varijablu PATH treba postaviti da bi se mogli koristiti neki pomocniprogrami koje DISLIN instalira (konverzija izmedu grafickih datoteka isl.). Osim tih programa, u imeniku gdje je dislin instaliran postoje podacio geografskim mapama. Putanja do tih podataka je poznata prekovarijable DISLIN.

Page 9: Grafički prikaz podataka

Graficki paket DISLINinstalacija i uporaba pod Linuxom

◮ Raspakirati dislin-9.0.linux.tar.gz, te ga instalirati u /opt/dislin imenik:

prompt> tar xfz dislin-9.0.linux.tar.gzprompt> cd dislin-9.0prompt> export DISLIN=/opt/dislinprompt> ./INSTALL

◮ Prevesti modul dislin.f90, te program exa_f90.f90 (priloženi primjer)

prompt> cp /opt/dislin/g95/dislin.f90 .prompt> ifort -c dislin.f90prompt> cp /opt/dislin/examples/exa_f90.f90 .prompt> ifort exa_f90.f90 -o exa_f90.x -L/opt/dislin -ldislin

◮ Izvodenje

prompt> export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/dislinprompt> export DISLIN=/opt/dislinprompt> ./exa_f90.x

Page 10: Grafički prikaz podataka

DISLIN

Nekoliko napomena:

Varijable PATH, DISLIN i LD_LIBRARY_PATH mogu se automatskipostaviti kod login-a na racunalo pomocu .bashrc datoteke za bashshell, odnosno .cshrc datoteke za tcsh (csh) shell. Nakon toga više ihnije potrebno postavljati ikada.

.bashrc dodatak:

export PATH=/opt/dislin/bin/:$PATHexport DISLIN=/opt/dislin/export LD_LIBRARY_PATH=/opt/dislin/:$LD_LIBRARY_PATH

.cshrc dodatak:

set path=(/opt/dislin/bin/ $path)setenv DISLIN /opt/dislin/setenv LD_LIBRARY_PATH "/opt/dislin/:$LD_LIBRARY_PATH "

Page 11: Grafički prikaz podataka

Primjer

PROGRAM kratki_programREAL, DIMENSION(100) :: x,yINTEGER :: iDO i=1,100

x(i) = 0.0 + (i-1)*0.1y(i) = 2.0*SIN(x(i))

END DOCALL METAFL(’xwin’)CALL QPLOT(x,y,100)

END PROGRAM

0 1 2 3 4 5 6 7 8 9

-1.5

-1.0

-0.5

0.0

0.5

1.0

1.5

Vrijednost argumenta xwin upodprogramu METAFLznaci dagraficki prikaz treba ici nagraficki prozor racunala gdje seprogram izvršava. Ako biargument bio ’gif’ dobili bi gifdatoteku sa slikom, odnosnoako bi bio ’ps’ dobili bipostscript datoteku.

Ako se program izvršava naudaljenom ra cunalu, nije(uvijek) mogu ce dobitidirektni prikaz slike nalokalnog radnoj stanici. Tadatreba graficki prikaz spremati udatoteke.

Page 12: Grafički prikaz podataka

Složeniji primjer

PROGRAM probaUSE DISLINIMPLICIT NONEINTEGER, PARAMETER :: n = 32INTEGER, DIMENSION (n) :: inray,ipray,icrayINTEGER :: iinray=0ipray=0icray=255CALL METAFL(’xwin’)CALL SETPAG(’da4p’)CALL DISINICALL PAGERACALL HWFONT()CALL SETVLT(’small’)CALL INTAX()CALL TICKS(1,’xy’)CALL FRAME(3)....

Page 13: Grafički prikaz podataka

Složeniji primjer - nastavak

CALL AXSLEN(1600,2200)CALL AXSPOS(400,2700)CALL NAME(’Meridijani’,’X’)CALL NAME(’Geo. sirina’,’Y’)CALL TITLIN(’Karta Hrvatske’,3)CALL LABELS(’map’,’xy’)CALL PROJCT(’conf’)CALL GRAFMP(8.,25.,8.,2.,42.,48.,42.,2.)CALL GRIDMP(1,1)CALL SHDEUR(inray,ipray,icray,n)CALL HEIGHT(50)CALL TITLE()CALL DISFIN()

END PROGRAM

Page 14: Grafički prikaz podataka

Primjer

14o E 16o E 18o EMeridijani

42o N

44o N

46o N

Geo

. si

rina

Karta Hrvatske

Izvodenjem programa dobiva sekarta Hrvatske. Program koristipodatke koji se nalaze u imenikugdje je DISLIN instaliran, pa jepotrebno imati shell varijabluDISLIN postavljenu.

DISLIN ima nekoliko podprogramaza brzi prikaz podataka, te nizdodatnih podprograma kojima sekontroliraju razni detalji na slici.

Page 15: Grafički prikaz podataka

Primjer

PROGRAM povrsinaINTEGER, PARAMETER :: n = 41INTEGER :: i,jREAL, PARAMETER :: pi = 3.14159REAL, DIMENSION(n,n) :: zzREAL :: rrDO i=1,nDO j=1,n

rr = ((i-21)**2+(j-21)**2)zz(i,j) = COS(pi*SQRT(rr)/8.0)/(rr+10*10)

END DOEND DOCALL METAFL(’xwin’)CALL DISINICALL COLOR (’green’)CALL QPLSUR (zz,n,n)

END PROGRAM

Page 16: Grafički prikaz podataka

Primjer

Page 17: Grafički prikaz podataka

Primjer

PROGRAM povrsina_3dREAL :: pi = 3.14159REAL :: stepstep=2*pi/30.CALL METAFL(’xwin’)CALL SETPAG(’DA4P’)CALL DISINI()CALL PAGERA()CALL INTAX()CALL GRAF3D(-4.,4.,-4.,4., &

-4.,4.,-4.,4., &-3.,3.,-3.,4.)

CALL SURMSH(’ON’)CALL ZSCALE(-1.,1.)CALL SURFCP(fun,0.,2*pi,step,&

0.,2*pi,step)CALL DISFIN()

CONTAINS

FUNCTION fun(u,v,sw) RESULT (rr)REAL, INTENT(IN) :: u,vINTEGER, INTENT(IN) :: swREAL :: rrIF (sw == 1) THEN

rr = COS(u)*(3+COS(2*u)*COS(v))ELSE IF (sw == 2) THEN

rr = SIN(u)*(3+COS(2*u)*COS(v))ELSE IF (sw == 3) THEN

rr = COS(2*u)*SIN(v)END IF

END FUNCTIONEND PROGRAM

Page 18: Grafički prikaz podataka

Primjer

Page 19: Grafički prikaz podataka

MathGL

◮ web adresa: http://mathgl.sourceforge.net/◮ Instalacija: Postoje gotovi paketi za instalaciju pod MS

windozama & Linux◮ win32 (MinGW) MS windoze◮ DevPak za MS windoze za DevC++◮ RPM paketi za linux (Fetora, Suse, . . . )◮ DEB paketi za linux (Debian, Ubuntu, . . . )

◮ Biblioteka je napisana u C++, ali postoji mogucnost korištenja u◮ C◮ Fortran (f77)◮ Python◮ . . .

Page 20: Grafički prikaz podataka

MathGL galerija

Page 21: Grafički prikaz podataka

MathGL galerija

Page 22: Grafički prikaz podataka

Strujanje nestlacive idealne tekucine u poluravnini prekoprepreke

Rješenje hidrodinamickih jed-nadžbi za 2-dim idealnu nestla-civu tekucinu koja se giba prekoprepreke u poluravnini:

vx(x ,y) = ℜ(x + iy − x0)

(x + iy − x0)2 + y20

vy(x ,y) = ℑ(x + iy − z0)

(x + iy − x0)2 + y20

Page 23: Grafički prikaz podataka

Program 1. dio

PROGRAM Hidrodinamika

IMPLICIT NONE

INTEGER, PARAMETER :: br = 20INTEGER :: i,jREAL :: i0,j0REAL(kind=kind(1.0d0)):: jmxCOMPLEX :: aa,bb,ccREAL(kind=kind(1.0d0)), DIMENSION(br,br) :: jx,jy

! ==========

integer(kind=8) :: gr, mgl_create_graph_zbinteger(kind=8) :: ex,ey,ez,mgl_create_data_sizeexternal :: mgl_create_graph_zb,mgl_create_data_size

...

Page 24: Grafički prikaz podataka

Program 2. dio

jx = 0.0D0; jy = 0.0D0; jj = 0.0D0i0 = 10.5; j0 = 10.5

DO i=1,brDO j=1,br

aa = CMPLX(i-i0,REAL(j))bb = aa/SQRT(aa**2+j0**2)IF (REAL(i) < i0) THEN

jx(i,j) = -REAL(bb)jy(i,j) = -SIGN(AIMAG(bb),i-i0)

ELSE IF (REAL(i) > i0) THENjx(i,j) = REAL(bb)jy(i,j) = -SIGN(AIMAG(bb),i-i0)

END IFEND DOEND DO

jmx = SQRT(MAXVAL(jx*jx + jy*jy))jx = jx/jmx; jy = jy/jmx

Page 25: Grafički prikaz podataka

Program 3. dio

ex = mgl_create_data_size(br,br,1)ey = mgl_create_data_size(br,br,1)

call mgl_data_set_double(ex,jx,br,br,1)call mgl_data_set_double(ey,jy,br,br,1)

gr = mgl_create_graph_zb(600,400)call mgl_box(gr,1);CALL mgl_line (gr,0.0,-1.0,0.0,0.0,0.0,0.0,’r2’,4)call mgl_vect_2d(gr,ex,ey,”,0.0)call mgl_show_image(gr,”,0)! call mgl_write_jpg(gr,TRIM(’slika_strujnica.jpg’),0 )call mgl_delete_graph(gr)

call mgl_delete_data(ey)call mgl_delete_data(ex)

END PROGRAM Hidrodinamika

Page 26: Grafički prikaz podataka

Strujanje nestlacive idealne tekucine u poluravnini prekoprepreke

Page 27: Grafički prikaz podataka

MathGL - opce upute

◮ Podaci koji se crtaju spremaju se u objekt tipa mglData za koji serezervira memorija naredbom:

ex = mgl_create_data_size(br,br,1)

Nakon crtanja taj se prostor oslobada

call mgl_delete_data(ex)

◮ Podaci spremljeni u niz jx prebacuju se u objekt za koji smorezervirali memoriju:

call mgl_data_set_double(ex,jx,br,br,1)

Umjesto, toga podaci se mogu i direkno izracunati i spremiti urezerviranu memoriju iz izraza, pomocu naredbe:

call mgl_data_fill_eq(gr, ex, ’x*sin(2*pi*x)’,0)

◮ Kada su podaci sprtemljeni u objekt, mogu se crtati.

Page 28: Grafički prikaz podataka

MathGL - opce upute

◮ Crtanje uvijek zapocinje naredbom:gr = mgl_create_graph_zb(600,400)što stvara sliku velicine 600x400 tockica. Ako se želi raditi postscriptslika, tada je crtanje potrebno zapoceti naredbom:gr = mgl_create_graph_ps(600,400)Na kraju završetka crtanja porebno je osloboditi memoriju rezerviranu zacrtanje naredbom:call mgl_delete_graph(gr)

◮ Svi oni podaci kojui su spremljeni u objekt mglData sada se moguprikazivati na slici koristeci mnošvo raznih naredbi za crtanje:....call mgl_vect_2d(gr,ex,ey,’’,0.0).....

◮ Na kraju nacrtano se može prikazati na ekranucall mgl_show_image(gr,’’,0)ili/i upisati u datoteke:call mgl_write_jpg(gr,TRIM(’22-strujnice.jpg’),0)!call mgl_write_eps(gr,TRIM(’22-strujnice.eps’),0)

Page 29: Grafički prikaz podataka

Izrada animacija/kratkih filmova

Više slicica koje prikazuju istu scenu ali s vremenskim pomakom možese objediniti u kratki film/animaciju.

Postoji veliki broj nacina digitalnog zapisivanja animacija.

Animirani GIF Gif-slicice pohranjuju se jedna iza druge u jednuzajednicku datoteku koja predstavlja animirani gif.

MPEG-formati Slicice se zapisuju u sažetom obliku, npr. zapisuju sesamo razlike izmedu slicica u razlicitim vremenskimtrenucima.Postoji veliki broj razlicitih nacina kompresije:

MPEG-1 Datoteke imaju ove nastavke: .mpg,.mpeg, .mp1, .m1v, .mpv, . . .(MP3-audio datoteke = MPEG-1 Layer III)

MPEG-2 DVD filmovi.MPEG-4 DivX, xvid, quicktime filmovi

Page 30: Grafički prikaz podataka

Animirani GIF

◮ Za windoze postoji veliki broj razlicitih alata koji se mogu naci nainternetu.

◮ Na linux/unix/windouz racunalima može se rabiti programconvert koji je dio paketa razlicitih video aplikacijaImageMagick(http://www.imagemagick.org/)

Ako u imeniku postoji veliki broj slicica koji opisuju vremenski slijedneke pojave/dogadaja, npr: slika00.jpg, slika01.jpg, slika02.jpg, . . .animirani gif se može napraviti:

prompt> convert slika*.jpg dogadaj.gif

Animacija se može promatrati pomocu web-preglednika ako seanimirani gif stavi kao dio web-stranice,ili pomocu odgovarajuceg programa, npr. animate programa iz istoggrafickog paketa, ImageMagick :

prompt> animate dogadaj.gif

Page 31: Grafički prikaz podataka

Primjer

Program hipnoUSE DISLINIMPLICIT NONECHARACTER(LEN=30) :: fileCHARACTER(LEN=2) :: cbrojREAL :: pomakREAL :: piINTEGER :: j,k

pi = 4.0*atan(1.0)k=40

DO j=0,k-1WRITE(cbroj,’(i2.2)’) jfile = ’hipno’//trim(cbroj)//’.png’pomak = pi*(j-1.0)/kCALL SETFIL(TRIM(file))CALL spirale(’PNG’,pomak)

END DOEnd program hipno

◮ Podprogram spiralecrta dvije spirale.

◮ Generirana slika seupisuje u datoteku cije jeime u varijabli file . Tipdatoteke je PNG.

◮ Prodprogram spiralepoziva se 40 puta, isvaki put spirale suzarotirane za dodatni kut(pi/40 rad.), a slika seupisuje u novu datoteku.

Page 32: Grafički prikaz podataka

Primjer - nastavak

Subroutine spirale (datoteka,kut)CHARACTER(LEN=*),INTENT(IN)::datotekaREAL, INTENT(IN) :: kutINTEGER, PARAMETER :: n=300,n1=600REAL,DIMENSION(n) :: r,psiREAL,DIMENSION(n1) :: r2,psi2INTEGER :: i,n2REAL :: pi!pi = 4.0*atan(1.0)CALL page(2400,1800)CALL winsiz(640,480)CALL metafl(TRIM(datoteka))CALL disiniCALL nografCALL grafp(1.01,0., 1., 0., 360.)DO i=1,n

r(i) = 1.00psi(i)=2*pi*(i-1.0)/(n-1.0)

END DOCALL curve(r,psi,n)

◮ Svaka slika ima640x480 tockica

◮ Spirale su obrubljenekrugom nacrtanimpozivom potprogramacurve

Page 33: Grafički prikaz podataka

Primjer - nastavak

Subroutine spirale (datoteka,kut)...! 1. spiralaDO i=1,n

r(i)= MIN((i-1.0)/(n-1.0),1.0)psi(i)=4*pi*(i-1.0)/(n-1.0) + kut

END DODO i=1,n1

r2(i)= MIN((i-1.0)/(n-1.0),1.0)psi2(i)=4*pi*(i-1.0)/(n-1.0)-0.5*pi+kutn2 = iIF (psi2(i) >= psi(n)) EXIT

END DOCALL shdpat(16)CALL shdcrv(r,psi,n,r2,psi2,n2)! 2. spirala...! krajCALL endgrfCALL disfinEnd subroutine spirale

◮ Spirala se crta tako dase popunjava prostorizmedu dvaju krivulja, r ir2 s bijelom bojom.

◮ Popunjavanje bojomizmedu krivuljapostignuto jepotprogramom shdcrv .

Page 34: Grafički prikaz podataka

Primjer - nastavak

Rezultat izvodenja programa su ovakve slike, spremljene u datotekehipno00.png, hipno01.png, . . . hipno39.png

Page 35: Grafički prikaz podataka

Animacije

◮ Animirani gif dobivamo:

prompt> convert hipno*.png hipno_animirani.gif

◮ Alati za izradu MPEG-1 animacija je mjpeg tools .Linux/unix/wondows verzije programa te dokumentacija dostupnesu s web-adrese: http://mjpeg.sourceforge.net/.

◮ Alat za izradu svih mogucih vrsta animacija (npr. MPEG-1,MPEG-4, Flash video - YouTube, . . . ) je mencoder .Linux/unix/wondows verzije programa te dokumentacija dostupnesu s web-adrese: http://www.mplayerhq.hu/.

Page 36: Grafički prikaz podataka

MPEG TOOLs - primjer uporabe

◮ Konverzija PNG datoteka u JPG:

prompt> for i in *.png> do> convert $i ‘basename $i .png‘.jpg> done

◮ Izgradnja MPEG-1 animacije:

prompt> jpeg2yuv -f 25 -l 20 -j hipno%02d.jpg -I p \

| mpeg2enc -o hipno_mpeg2enc.m2v

Cijeli film se 20 puta ponavlja(malo slovo L).

◮ Prikazivanje animacije

prompt> smplayer hipno_mpeg2enc.m2v

Page 37: Grafički prikaz podataka

mencoder - primjer uporabe

Primjeri uporabe mencoder programa:

◮ MPEG-1 animacija

prompt> mencoder "mf://*.png" -mf fps=25 -ovc lavc \-of mpeg -lavcopts vcodec=mpeg1video -o hipno_mencoder.m2v

◮ MPEG-4 animacija

prompt> mencoder "mf://*.png" -mf fps=25 -ovc lavc \-of avi -lavcopts vcodec=mpeg4 -o hipno_mencoder.avi

◮ Macromedia Flash Video (pogodno za YouTube)

prompt> mencoder "mf://*.png" -mf fps=25 -ovc lavc \-of lavf -lavcopts vcodec=flv -o hipno_mencoder.flv

Page 38: Grafički prikaz podataka

Mandelbrotov skup

U matematici se mogu promatrati nelinearna preslikavanja tipa:

z → z2 + c

gdje je c neki kompleksni broj (x ,y), a pocetna vrijednost zakompleksni broj z je nula. U tom preslikavanju, apsolutna vrijednostbroja z ostaje konacna ili divergira, što ovisi o broju c. Takoder, brzinadivergencije ovisna je o c.

Page 39: Grafički prikaz podataka

Mandelbrotov skup

Tocke (x ,y), u 2D ravnini koje predstavljaju kompleksni broj c,možemo razlicito obojati ovisno o brzini divergencije navedenogpreslikavanja. Kao rezultat se dobiva faktalni objekt:

Page 40: Grafički prikaz podataka

Mandelbrotov skup

Svojstvo fraktalnih objekata je da uvecavanjem skale, uocavaju semanji detalji koji su posve slicni onim vecim objektima.

Program u primjerima 08-mandelbrot.f90 crta Mandelbrotov skup.Program traži tri argumenta, dvije koordinate tocke koja prestavljasredište kvadrata te kao treci argument linearnu dimenziju kvadrata.Kao rezulat se dobiva slika koja predstavlja brzinu divergencije tockicaunutar kvadrata.

Program iz primjera 09-mandelbrot-zoom.f90 radi slicice zumiranjaoko neke tocke u 2D ravnini. Takoder zahtijeva 3 argumenta, 2koordinate tocke zumiranja, te broj slicica. Slike se naknadno moguobjediniti u animaciju.

Page 41: Grafički prikaz podataka

Mandelbrotov skup

Rezultat velikog broja zumiranja oko tocke(0.001643721971153,0.822467633298876).