Vježbe 10

Fraktali

Primjer 1: Julia-ovi skupovi - granice područja konvergencije u kompleksnoj ravnini. Izvorni kod:   julia.c
Primjer 2: Sebislični (eng. self-similar) fraktali - "izrezivanje" jednakostraničnog trokuta. Izvorni kod:   trokuti.c
Primjer 3: Fraktalna aproksimacija Brownovog gibanja - može poslužiti za vizualizaciju iskrenja. Izvorni kod:   iskra.c
Primjer 4: Plazma fraktal - zapravo dvodimenzionalna verzija Primjera 3. Izvorni kod:   plazma.c
Savjet: najprije povećavati dubinu rekurzije (do najmanje 10 ili više) - tek onda se matrica potpuno ispuni, tj. vide se pravi efekti. Potom se pritiskom na bilo koju tipku dobiva nova, sasvim drugačija slika.
10.1. Dopunite Primjer 1 tako da parametar lambda može biti i kompleksan broj, te tipkama 'i' i 'I' omogućite interaktivnu promjenu imaginarnog dijela od lambda (tipkama 'l' i 'L' neka se i dalje mijenja realni dio).
10.2. (za napredne!) Po uzoru na Primjer 2 napišite rekurzivni program koji "izrezuje" tetraedre - vidi sliku: tetraedri.png. Pomoć: vrhovi pravilnog tetredra upisanog u sferu sa centrom u ishodištu (polumjer sfere r = 3) su V1(0, 3, 0), V2(sqrt(6), -1, -sqrt(2)), V3(0, -1, 2 * sqrt(2)), V4(-sqrt(6), -1, -sqrt(2)).
10.3. Modificirajte Primjer 4 tako da matricu vrijednosti plazma fraktala interpretirate kao matricu visina nekog terena - vidi sliku: teren.png.