Křejpského 1501/12a, Praha 4 – Opatov
Fraktály a L-systémy Roč íko á prá e
Autor: David Dostal Vedoucí práce: Radovan Daniel
2014/2015
Poděková í Děkuji s é u ko zulta to i, Rado a o i Da ielo i, za odbornou konzultaci a trpěli ost a s é rodi ě za podporu.
Prohláše í Prohlašuji, že jse použité pra e
tuto prá i
pra o al sa ostat ě a že jse
u edl še h
a literaturu
Datum Podpis autora
Stanovisko vedoucího práce Souhlasím s předlože ou podo ou roč íko é prá e.
Datum Podpis vedoucího práce
1
Obsah 1.
Úvod............................................................................................................................... 4
2.
Teoreti ká část ............................................................................................................... 5 2.1
Benoit Mandelbrot.................................................................................................. 5
2.2
Úvod do fraktální geometrie................................................................................... 8
2.3
Co je to fraktál? ....................................................................................................... 9
2.3.1
2.3.1.1
Konstrukce ................................................................................................ 9
2.3.1.2
Vlastnosti ................................................................................................ 10
2.3.1.3
Délka Ko ho
2.3.2
2.4
Příklad fraktálu – Ko ho a kři ka .................................................................... 9
kři k .............................................................................. 10
Fraktální dimenze .......................................................................................... 11
2.3.2.1
Nes áze při
ěře í po řeží ................................................................... 11
2.3.2.2
Dimenze a
ěřítko ................................................................................. 11
2.3.2.3
Výpočet fraktál í di e ze ..................................................................... 12
2.3.2.4
Hausdorffo a di e ze další h fraktálů ................................................. 13
Děle í fraktálů....................................................................................................... 14
2.4.1
Deterministické a stochastické fraktály......................................................... 14
2.4.2
So ěpodo
2.4.3
Děle í podle způso u ge ero á í ................................................................. 15
2.5
é a so ěpří uz é fraktál ......................................................... 14
2.4.3.1
Itero a é fu kč í s sté
2.4.3.2
Time Escape Algoritmy ........................................................................... 16
2.4.3.3
L-systémy................................................................................................ 20
2.4.3.4
Náhodné fraktály, podivné atraktory a další.......................................... 21
..................................................................... 15
V užití.................................................................................................................... 22
2.5.1
Fraktálové antény .......................................................................................... 22
2.5.2
Fraktálová komprese ..................................................................................... 22 2
2.5.3
Počítačo ě
2.5.4
Medicína ........................................................................................................ 24
2.5.5
Další
2.6
t oře é kraji
........................................................................ 23
užití .................................................................................................... 24
Lindenmayerovy systémy ..................................................................................... 25
2.6.1
Přepiso á í, itera e ....................................................................................... 25
2.6.2
Žel í grafika .................................................................................................... 25
2.6.3
Souvislé L-systémy ......................................................................................... 27
2.6.4
Vět e í ........................................................................................................... 28
2.6.5
Další rozšíře í................................................................................................. 29
2.6.5.1
Vykreslování ve 3D ................................................................................. 29
2.6.5.2
Stochastické L-systémy .......................................................................... 29
2.6.5.3
Parametrické L-systémy ......................................................................... 30
2.6.5.4
Pod í ě é přepiso á í ......................................................................... 31
2.6.5.5
Kontextové L-systémy ............................................................................ 31
2.6.5.6
Další
ož á rozšíře í ............................................................................. 31
3.
Prakti ká část ............................................................................................................... 32
4.
U ěle ká část .............................................................................................................. 33
5.
)á ěr ............................................................................................................................ 34
3
1. Úvod Před let í i prázd i a i jsem, že
js e si
ěli
rat té a roč íko é prá e. Věděl
h htěl zpra o at prá i na téma z přírodo ěd é o lasti
chemie či biologie) nebo na téma z o lasti i for atik aprogra o at jse
získal d ě
přede ší
ate atika, f zika, jse
htěl
ě o
e o zpra o at ějaké spíše u ěle ké té a hud a, grafika. ) toho ož á té ata: „T or a počítačo é hr “ a „Nasaze í redakč ího s sté u
Wordpress pro škol “. Nako e
hrálo
asaze í redakč ího s sté u pro škol
a to hla ě z dů odu, že bych v prakti ké části pra o al na e o ý h strá ká h škol a dělal ě o opra du užiteč ého. Přes let í prázd i
jse
ale zjistil, že by
ě zpra o á í tohoto té atu ů e
nebavilo. A to byl jeden z ejdůležitější h požada ků, které jse
na roč íko ou prá i
Mohli js e aštěstí té a na začátku škol ího roku ještě z ě it, tak jse té ate
začal ad
pře ýšlet z o u. Spolu s tátou js e přišli na ěkolik zají a ý h té at,
který i
ěl. ezi
la apříklad „Překlopitel á tělesa“, jede z he i ký h pr ků, „Co je to čas?“,
„)alože í last ího pod iku“ a e o „Proč v Pardubicích neprší“. U ěkterý h z témat by
lo složité
t ořit s
slupl ou prakti kou část, u jiných by zase nebylo co psát
v teoreti ké části. V tě hto d e h jse
se náhodou díval na dokument o fraktálech, který
ě el i zaujal. Té a fraktálů mi také u ožňo alo jako prakti kou část
ě o
naprogramovat a nakonac jsem si toto téma vybral. V teoreti ké části čte áře
ejpr e sez á í
s fraktál o e ě tz .
apříklad
s tím, co to fraktál last ě je, jak se fraktál dělí a jak se dají generovat, kde nacházejí prakti ké
užití . Ví e se pak za ěří
na jed u kategorii fraktálů, takz a é
Lindenmayerovy systémy, které mne zaujaly svým jednoduchým principem a i přesto ge ero at složité rostli
é o raz e. Jako prakti kou část jsem naprogramoval
počítačo ou aplika i na generování L-s sté ů a aprogra o al jse ěkolika rostli
ož osti
o li e ge erátoru
pokročilejší L-systém
als s. z. Jako u ěle kou část roč íko é prá e jse
namaloval obraz inspirovaný fraktální tématikou a fraktály v přírodě –
oč í kraji u
s fraktálovým stromem.
4
2. Teoreti ká část 2.1 Benoit Mandelbrot Benoit B. Mandelbrot se narodil roku 1924 v Polsku do žido ské rodi . Již el i brzy si o lí il geo etrii. Také hrál rád ša h . V ša há h ale e nikal díky logickému pře ýšle í. Hru pro ýšlel geo etri k . 1 V ro e
, kd ž
lo Ma del roto i 11 let, začal
a on s rodinou emigroval do Fra ie. Několik let
Ně e ku sílit
a is us
hodil do Lycée Rolin v Paříži. Pak
se Ma del roto i při
puk utí . s ěto é álk
Běhe
i jeho rodinou visela neustálá hrozba chudoby a obavy z udání
álk
ad í
přestěho ali do Tulle ve Francii.
a následného poslání na s rt. Stra h ještě zesílil po za ití pařížské f zičk )i
Morhange,
jeho blízké známé. Za války se učil hla ě sa ostudie . Dík to u se rozvinul jeho geo etri ký přístup k matematice. 2 Na konci války (v roce 1944) se Mandelbrot navrátil do Paříže. )de se v letech učil na École Polytechnique. Mimo jiné zde studoval i pod Gastonem Juliem
1945a Paule
Lé
, kteří též ýz a
ě přispěli k rozvoji fraktální geometrie. 3
V letech 1947 až 1949 a ště o al Kalifornský technologický institut. Po získání doktorátu matematiky na Pařížské u i erzitě
se znovu vrátil do Ameriky, kde
studoval v Princetonu. 1955 se vrátil do Francie, kde si vzal za že u Aliettu Kaga . Ch íli učil Paříži jako profesor na Université Lille a v Národním výzkumném centru v Paříži. B l ale nespokojený s příliš a strakt í
ráze
ate atik
tehdejší Fra ii a proto odešel
do USA. Zde získal práci v IBM (1958). 4 V IBM zkou al áhod ý šu
způso ují í poru h
linku. Mandelbrot byl zvyklý dívat se na ě i
pře osu dat přes telefo
izuál ě. )kou al proto šu epři házel
z ela
í
hla ě
z hlediska t arů, které
t ářel. Vši l si, že h
áhod ě, jak
se předpokládalo. Ch
astá al ve shlucích. Byla období zcela bez chyb a pak zase
1
Guardian obituary. The MacTutor History of Mathematics archive [online]. 18 October 2010 [cit. 2015-0227]. Dostupné z: http://www-history.mcs.st-and.ac.uk/Obits2/Mandelbrot_Guardian.html 2 Benoit Mandelbrot. In: Wikipedia: the free encyclopedia [online]. San Francisco (CA): Wikimedia Foundation, 2001- [cit. 2015-02-27]. Dostupné z: http://en.wikipedia.org/wiki/Benoit_Mandelbrot 3 FRAME, Michael. Benoit B. Mandelbrot: A Biographical Memoir. National Academy of Sciences [online]. © 2014 [cit. 2015-02-27]. Dostupné z: http://www.nasonline.org/publications/biographical-memoirs/memoirpdfs/mandelbrot-benoit.pdf 4 GREGOROVÁ, Dagmar. Stal jsem se konstruktérem geometrie. OSEL.cz [online]. 19.10.2010 [cit. 2015-0227]. Dostupné z: http://www.osel.cz/index.php?clanek=5346
5
oha h a i. Ma del rot zde o je il určitou pra idel ost. Ať už se díval na výskyt
s
chyb v rá
i
ěsí e, d e i hodi , po ěr
ezi čas
ez h
stej ý. Kd ž se na období s h a i podí al z lízka, je rozděle a na zase podo
e ší části s chybami a ez h . T to
é grafu jako elku
d a eti
lo
apříklad ěhe
i ut . Při jaké koli
ěřítku
ěsí e podo la kři ka podo
a obdobími s chybami byl idět, že i tato část grafu e ší části
á jako ěhe
l přek api ě týd e i ěhe
á sa a so ě. Tak udělal
Ma del rot pr í elký krok stří fraktálů . 5 Ma del rot postup ě začal o je o at oblastech. Zkoumal mraky, zjistil, že so ěpodo na to, že ačkoli je e a a l
ěhe
roku,
last ost „so ěpodo
osti“ i v jiných
ost lze alézt i v elé
es íru. Přišel
ěsí e i d e růz á, kři k prů ěhu de
ího
ěsíč ího i roč ího prodeje jsou shod é. 6 V roce 1967 napsal práci s áz e
„Jak dlouhé je po řeží Britá ie?“. Zjistil,
že na tuto otázku elze tak jed oduše odpo ědět. Vši l si, že růz á se často přes ější
el i liší. Čí
podro
ější
ěře í se berou v ohled i
při ještě podro
ější
l
ap , tí
ěře í délk po řeží
delší se po řeží zdálo
ýt. Při
e ší zákrut a zátoky, které se předtím zanedbaly,
zkou á í i zátoky v zátoce a tak dále – teoreticky až ke každé u
ka e i, každé u zr ku písku. 7 Mandelbrot si zpo
ěl na práci Gastona Julia a Pierra Fatou. Již před let ho jeho
strýc Szolem Mandelbrojt upozornil na jejich dílo zabývající se takzvanými Juliovými oži a i, které
házejí z jednoduché rovnice
=
2
+ . Mandelbrot mu šak tehd
e ě o al elkou pozor ost a epřišel zde na nic nového. Nyní se k této práci vrátil. V užil počítačů, s po o í který h její
ýsledek jako
o ý
ohl tuto ro i i jed oduše a rychle opakovat – použít
stup. Násled ě
ýsledek na počítači
e hal
se Mandelbrot na ěj podí al detail ěji, iděl, že obraz obsaho al padal podo
ě jako elek. Fas i ují í
oži , o je o al čí
dál tí
í e podro
kreslit. Kd ž
e ší út ar , které
lo, že jak se člo ěk přes ěji podí al na detail ostí, o é a nové útvary. A pře i se zde dala
5
Fractal Geometry. IBM United States [online]. May 18, 2011 [cit. 2015-02-27]. Dostupné z: http://www03.ibm.com/ibm/history/ibm100/us/en/icons/fractal/ 6 Telegraph obituary. The MacTutor History of Mathematics archive [online]. © 2010 [cit. 2015-02-27]. Dostupné z: http://www-history.mcs.st-and.ac.uk/Obits2/Mandelbrot_Telegraph.html 7 Telegraph obituary. The MacTutor History of Mathematics archive [online]. © 2010 [cit. 2015-02-27]. Dostupné z: http://www-history.mcs.st-and.ac.uk/Obits2/Mandelbrot_Telegraph.html
6
najít podobnost s elý
o raz e . )áleželo pouze na ýko u počítače, jak daleko
ohl
člo ěk takto pokračo at. 8 Tento útvar – Ma del roto a je krás ý
příklade
„fraktálu“. Poje
v prá i „Fraktál : t ar,
oži a,
zdále ě připo í ají í t ar
„fraktál“ použil Ma del rot popr é
korálů,
roce 1975
áhoda a di e ze“. ) ní také vychází kniha shrnující jeho
dosa ad í o je
esou í áze „The Fra tal Geo etr of Nature“ „Fraktál í geo etrie
přírod “
ejpr e ve fra ouzšti ě a roku 1982 i v a gličti ě. Ma del rot zde
da é
popisuje, v če ji z á e
se fraktální geometrie liší od klasické, Euklidovské. Geometrie, jak
, dokáže přes ě popsat před ět
á i
t oře é. Těžko ale popisuje je
v přírodě, které ejsou ro é a hladké, ale hrubé a ero é. „Mraky nejsou koule, hory ejsou kužel , po řeží ejsou kruh , a kůra e í hladká, ani blesky nejdou po pří é li ii“9, apsal Ma del rot. T to je ,
čet ě
oha další h, lze popsat po o í fraktál í
geometrie. 10 Po z tek s ého ži ota se Mandelbrot i adále ě o al ýzku u fraktálů. Učil na Harvardu a na Massachusettském technologickém institutu a od roku 1999 pracoval jako profesor na u i erzitě Yale. Předpo ěděl fi a č í krizi roce 2004. Za s é úspě h dostal
ohá o e ě í. Be oit B. Ma del rot ze řel
.
.
ve stáří 85 let. 11
8
Fractal Geometry. IBM United States [online]. May 18, 2011 [cit. 2015-02-27]. Dostupné z: http://www03.ibm.com/ibm/history/ibm100/us/en/icons/fractal/ 9 MANDELBROT. Fractal geometry of nature. New York 1983, s. 1 10 Telegraph obituary. The MacTutor History of Mathematics archive [online]. © 2010 [cit. 2015-02-27]. Dostupné z: http://www-history.mcs.st-and.ac.uk/Obits2/Mandelbrot_Telegraph.html 11 http://www-history.mcs.st-and.ac.uk/Obits2/Mandelbrot_Telegraph.html (21. 1. 2014)
7
2.2 Úvod do fraktální geometrie „Proč je geo etrie často popiso á a jako „stude á“ a „su há?“ Jede z dů odů spočí á její es hop osti popsat t ar o laku, hor , po řeží, e o stro u. Mraky nejsou koule, hor
ejsou kužel , po řeží ejsou kruh , a kůra e í hladká, stej ě jako se blesk
nepohybuje po pří é li ii.“ 12 – Benoit B. Mandelbrot Euklidovská geometrie, tak jak ji známe ze škol, je perfektní k popisu hladký h út arů. Dokáže popsat pří ku, kruh, kr hli, do ede e s její po o í spočítat objem válce či o sah čt er e. Podíváme-li se ale z okna, zjistíme, že s ět k ádrů, ál ů, jehla ů, koulí a tak podo
ě. )kuste
e í t oře
přírodě ajít út ar, který by šel
přes ě popsat po o í klasi ké geo etrie. Takovéto útvary se v přírodě zřídka, té ěř ů e . Vod í hladi a za úpl ého ez ětří by idě ý z dálky se á popsat po o í epřes é. Náš
z dokonalých
ůže zdát jako kruh. Například stro
sk tují el i
ohla t ořit ro i u,
ěsí
za oknem bychom mohli
oha růz ý h ál ů. Kd ž se ale podí á e líže, zjistíme, že je to dost odel ted upra í e tak, a
zahr o al každou ět ičku i každý list
na ět í h. Co nyní? Podíváme se přes ěji a zjistíme, že každý list má na so ě složitý zor, ož á se podobající celému stromu. Zpozorujeme, že ět e na stro u ejsou perfekt ě hladké, ale že jeji h kůra je hrubá a rou ko itá. Takto Ko eč ě, a i
ěsí
A i při zdá li é se, že je těžké
e í perfekt í ez ětří
kruhe
ajít
út ar , kd
ohli pořád pokračo at.
a má na svém povrchu spoustu nerovností.
ůže e na hladi ě jezera pozoro at malinkaté vlnky. Ukazuje
e arazit při každé
kroku na fraktální útvar. I u ě í
člo ěke , zdá li ě ro ý h a hladký h, jako lze
ho
t oře ý h
ůže ýt apříklad protější pa elák
ulici,
ero osti. Stačí se podí at dostateč ě přes ě, tře a na omítku. Takovéto á
již přestá á stačit klasi ká euklido ská geo etrie, se s aží popsat
fraktální geometrie. 13
12
MANDELBROT. Fractal geometry of nature. New York 1983, s. 1 SIXTA, To áš. Ú od do fraktálů a chaosu. ITnetwork.cz [online]. © 2015 [cit. 2015-02-27]. Dostupné z: http://www.itnetwork.cz/fraktaly-a-chaos-eukleidovska-geometrie-uvod-svitani-chaosu
13
8
2.3 Co je to fraktál? oži a e o geo etri ký út ar, který lze harakterizo at ásledují í i
Fraktál je
typickými vlastnostmi:
Neko eč á čle itost Fraktální útvary jsou eko eč ě čle ité. Oproti klasi ký
jako apříklad oproti pří
e, která je při z ětše í stále stej á ,
jaké koli z ětše í idět eko eč ě podro
So ěpodo
geo etri ký
út arů
ůže e u fraktálů při
é o raz e. 14
ost
Jed otli é části fraktálu se podobají fraktálu jako celku. Neustále se v ě ty sa é geo etri ké kopií se e sa ého
oti . Fraktál
ohou ýt úpl ě so ěpodo
é slože é z
opakují e ší h
e o so ěpří uz é jed otli é části ejsou přes ý i z e še i a i
celku, pouze se mu podobají). 15
ěřítku
Nezávislost na So ěpodo
é fraktál
ají ještě další vlastnost – tzv. nezávislost na z ě ě
ěřítka. ) a e á to, že se při z ětšo á í fraktálu udou o je o at pořád ty samé útvary – při růz é
z ětše í ude
padat pořád stej ě. 16
2.3.1 Příklad fraktálu – Ko hova křivka 2.3.1.1 Konstrukce Ko ho u kři ku zko struuje e Ta je aší
ý hozí
ásledo ě. )ač e e jed otko ou úsečkou.
út are , tz . i i iátore . Dále potře uje e tz . ge erátor, ož
je útvar, kterým se ahradí i i iátor. Te a ahraze í
prostřed í třeti
získá e rozděle í
i i iátoru na třeti
1
d ě a úsečka i o délce , které svírají úhel 60°. Nyní 3
opako a ě ahrazuje e ge erátor i i iátore . Nejpr e získá e kři ku slože ou ze čt ř 1
úseček o délce . Každá z tě hto úseček se sta e i i iátore 3
1
získáme 16 úseček o délce . Po eko eč ě 9
Ko ho u kři ku. Slože í
pro další krok, ve kterém
oha opako á í h itera í h získá e
tří Ko ho ý h kři ek do „h ězd “ sesta í e Ko ho u ločku. 17
14
ZELINKA, VČELAŘ a ČANDÍK. Fraktál í geometrie: principy a aplikace. Praha 2006, strana 88 ZELINKA, VČELAŘ a ČANDÍK. Fraktál í geometrie: principy a aplikace. Praha 2006, strana 87-88 16 ZELINKA, VČELAŘ a ČANDÍK. Fraktál í geometrie: principy a aplikace. Praha 2006, strana 87 17 HOTAŘ, Vlasti il. Fraktál í geo etrie a fraktály. Fraktální geometrie [online]. [2006] [cit. 2015-02-27]. Dostupné z: http://www.ksr.tul.cz/fraktaly/geometrie.html 15
9
Obr. 1: Ko struk e Ko hov křivk .
2.3.1.2 Vlastnosti Na Ko ho ě kři e
ůže e do ře
idět zatí
popsa é
last osti fraktálů.
Je slože a ze čt ř z e še ý h a otoče ý h kopií se e sa é. A ty jsou zase slože ze z e še ý h kopií so ěpodo
elé kři k . Ko ho a kři ka je ted
á a při růz é
ěřítku
e ajde e ro ou úsečku, žd plyne, že u Ko ho
kři k
padá stej ě. A i při
udou idět pouze
elze žád é
eko eč ě podro
e ší a
eliké
z ětše í
á, ikde
e ší zákrut . ) toho také
odě určit deri a i 18 (určit prá ě jed u teč u).
2.3.1.3 Délka Ko hovy křivky V první itera i
t áře í Ko ho 1
4
3
3
1
kři k získá e čt ři
o é úsečk o délce . 3
To odpovídá celkové délce 4 ∙ = . Ve druhém kroku se z každé úsečk sta ou čt ři o é. Počet úseček ted
ude 4 ∙ 4 = 42 . Délka úseček je oproti před hozí itera i zase
třeti o á. To znamená, že délka každé z nich bude je nyní
1 2 3
iteraci bude
∙ 42 = 4 � 3
4 2 3
1 1
1 2
3 3
3
∙ =
. Pro třetí itera i je délka kři k
1 3 3
. Celko á délka kři k
∙ 43 =
4 3 3
. A pro �-tou
. Protože je počet itera í eko eč ý, lze ří i, že celková délka Kochovy
kři k L = lim�→∞
4 � 3
= +∞. Délka Ko ho
kři k je ted
eko eč á. 19
18
HOTAŘ, Vlasti il. Fraktál í geo etrie a fraktály. Fraktální geometrie [online]. [2006] [cit. 2015-02-27]. Dostupné z: http://www.ksr.tul.cz/fraktaly/geometrie.html 19 JABLONSKI, Adrian. Grundlagen der fraktalen Geometrie mit iterierten Funktionensystemen (IFS). Quadsoft.org [online]. Juli 2011 [cit. 2015-02-27]. Dostupné z: http://quadsoft.org/fraktale/
10
2.3.2 Fraktální dimenze 2.3.2.1 Nes áze při
ěře í po řeží
Běž é geo etri ké út ar
ají eločísel ou di e zi. Například úsečka má dimenzi
, di e ze čt er e je 2 a krychle je trojroz ěr á. Kd veliký i „ ěřidl “, žd
ho
ostrova, zjistili bychom, že u stej ého po řeží délku, ež kd
ho
t to út ar
ho
tře a
ěře í d ou etro ou t čí
ho
se a ěře á délka z ětší o o é detail . Při udou
ěře í h získat
a ěřili
ohe
ětší
úseků, po kterých se
ěří,
o é zákrut , zohled í se více
podrob ostí čle itého po řeží, které
l při
é ě podro
Teoreti k , kd
ěřidlo
až do eko eč a,
z e šo ali
.
ěřili délku po řeží
ůže e při růz ý h
ěřili po 100 metrech. Se zkra o á í
ho
ěřili růz ě
z ěřili stej ou elko ou elikost délku, o sah, o je
Měřit přírod í út ar ale e í tak jed odu hé. Kd odliš é ýsledk . Například při
ho
é
ěře í ig oro á . ůže e
a ěřit
i eko eč ou délku po řeží. Hra i e po řeží je kři ka, tudíž má dimenzi 1. Je ale teoreti k
eko eč ě dlouhá a za írá tak „ í e
ísta“, ež tře a úsečka. )áro eň a i
e plňuje žád ou plo hu. Může e tušit, že po řeží má kro ě klasi ké tz . topologi ké di e ze ještě ji ou, „ ě o
ezi“ di e zí 1 a 2. Tím se dostáváme k Hausdorffo ě e oli
fraktální dimenzi. 20 2.3.2.2 Dimenze a
ěřítko
Vrať e se ještě tro hu a podívejme se na to, jak souvisí dimenze útvaru s
ěřítke . )ač e e úsečkou. Měřidlo úsečka o stejné délce se do ní vejde jednou.
Použije e-li
ěří í úsečku o polo ič í dél e, ejde se dvakrát. A kd ž
ude její délka
třeti o á, ejde se třikrát. N í zkus e to samé se čt er e . Měří í čt ere o polo ič í velikosti se do čt er e ejde čt řikrát. Kd by se de ětkrát. Do krychle by se ešlo os velikosti. To, kolikrát se
ěl
ěří í čt ere třeti o ou elikost, ešel
kostek o polo ič í a dvacet sedm o třeti o é
ěřidlo do daného útvaru vejde (nebo také na kolik
e ší h částí
se út ar rozdělí , zá isí na dimenzi daného útvaru, roste s mocninou jeho dimenze. U úsečk
to byly první mocniny (11 , 21 , 31 ), u čt er e druhé mocniny (12 , 22 , 32 )
a u kr hle třetí (kolikrát se 20
o i
13 , 23 , 33 . O e ě platí ztah
ěřidlo ejde do útvaru), je elikost
=
1
ěřidla elikost
, kde
je počet částí
e ší h částí, na který
ZELINKA, VČELAŘ a ČANDÍK. Fraktál í geometrie: principy a aplikace. Praha 2006, strana 80-81
11
lze út ar rozdělit
a
je dimenze daného objektu. Například do krychle se kostky
o polo ič í elikosti ejdou
Obr. 2: Závislost
=
1
3
1/2
= 8krát. 21
ěřítka a dimenze.
2.3.2.3 Výpočet fraktál í di e ze Teď se podíváme na to, jak je to s fraktály. Zač ě e Ko ho ou kři kou. Úsečka 1
1
o délce se do ní vejde 4krát, úsečka dlouhá 9 pak 16krát. Kd ž 3
=
1
1
, získáme následující rovnici: 4 =
i kd ž dosadí e ostat í čísla, tře a
=
1 9
= 16, žd
o ě strany rovnice zlogaritmujeme: log 4 = Hausdorffo u di e zi Ko ho di e ze Ko ho
kři k
. Po úpra ě získá e 4 = 3 . Platí to,
1/3
a
á
∙ log 3. Ro i i
log 4
=
í dosadí e do vzorce
log 3
jde stej ý po ěr. Nyní dělí e log 3 a získáme
≐ 1,2619. Vidíme, že Hausdorffova
kři k je ětší ež jed a, ož je její topologická dimenze, ale záro eň
ještě e í dvojroz ěr á. 22 Ne eločísel á Hausdorffo a di e ze je t pi kou O e ě se Hausdorffo a di e ze spočítá jako matematickou definici fraktálu: „Fraktál je
=
log log 1/
last ostí fraktál í h út arů.
. N í již js e s hop i po hopit
oži a, jejíž Hausdorffova dimenze je ostře
ětší ež di e ze topologi ká.“23 24 Ukaž e si, že to platí i pro další fraktál . 21
ZELINKA, VČELAŘ a ČANDÍK. Fraktál í geometrie: principy a aplikace. Praha 2006, strana 82-83 MANDELBROT. Fractal geometry of nature. New York 1983, s. 36 23 Fraktál. In: Wikipedia: the free encyclopedia [online]. San Francisco (CA): Wikimedia Foundation, 2001[cit. 2015-02-27]. Dostupné z: http://cs.wikipedia.org/wiki/Frakt%C3%A1l
22
12
2.3.2.4 Hausdorffova di e ze další h fraktálů Sierpinského trojúhelník z iká rozděle í e ší a
j utí
ro ostra
ého trojúhel íku na čt ři
prostřed ího trojúhel íku. To se z o u opakuje pro z lé tři
trojúhelníky. Topologická dimenze
Sierpinského trojúhelníku je , jelikož eo sahuje
žád ou sou islou plo hu
další h a další h trojúhel íků je plocha na konci
j utí
nulová). Sierpinského trojúhelník si
ůže e též předsta it jako
kři ku. S každou itera í se počet trojúhel íků je polo ič í. Hausdorffo a di e ze ted
ude
je vyjmuta z
oži a
=
log 3 log 2
z iká rozděle í
≐ 1,585. Platí tedy
úsečk
oži . Opako a ě žd z každé další úsečk
Topologi ká di e ze Ka toro po eko eč ě
oži
oha itera í h ale již
ztroj áso í, jeji h >
elikost . 25
Obr. 4: Sierpi ského trojúhel ík jako křivka.
Obr. 3: Konstrukce Sierpinského trojúhelníku.
Ka torova
úseček
eko eč ě dlouhou
na tři části, prostřed í část j e e prostřed í třeti u.
= 0. O sahuje si e eko eč ě
oho odů,
eo sahuje žád ou úsečku ta by se ještě dále 1
dělila . V každé itera i získá e 2 o é úsečk o délce . Hausdorffova dimenze Kantorovy 3
oži
ude tí
páde
Obr. 5: Šest itera í Ka torov
=
log 2 log 3
≐ 0,631. 26
oži .
24
MANDELBROT. Fractal geometry of nature. New York 1983, s. 15 ZELINKA, VČELAŘ a ČANDÍK. Fraktál í geometrie: principy a aplikace. Praha 2006, strana 85 26 ZELINKA, VČELAŘ a ČANDÍK. Fraktál í geometrie: principy a aplikace. Praha 2006, strana 85 25
13
Fraktál v plňující rovi u, jako apříklad o zajímavé. Princip generování by
ěl
ě a Pea ovy křivky, jsou o z láště
ýt jas ý z obrázku. V každé
kroku se úsečka
ahradí o ou kři kou sestá ají í z de íti úseček o třeti o é dél e. Tí Hausdorffovu dimenzi dimenzi 1 a přito
=
log 9 log 3
páde
získá e
= 2. Popsali jsme si kři ku, která má topologickou
plňuje d ojroz ěr ou plo hu. Ne še h
fraktál
ted
ají
e eločísel ou Hausdorffo u di e zi, žd je ale ětší ež di e ze topologi ká. 27
Obr. 6: Křivka, která v plňuje plo hu.
2.4 Děle í fraktálů 2.4.1 Deterministické a stochastické fraktály Deterministické fraktály jsou nenáhodné, pravidelné a jsou da é přes ý i pra idl . Při opako a é
ge ero á í je ýsledek pokaždé stej ý. Sto hasti ké fraktál
oproti to u o sahují pr ek áhod . Dík to u
ůže fraktál
padat při opako a é
generová í růz ě. 28
2.4.2 So ěpodo So ěpodo
é a so ěpří uz é fraktály é fraktál jsou slože
ze z e še ý h částí, které jsou přes ý i
kopiemi celého fraktálu. U so ěpří uz ý h fraktálů se
ůže e si e idět podo
oti , ale elze již ajít přes é z e še i . So ěpodo
Ko ho a ločka
é opakují í
ý i fraktál jsou apříklad
e o Sierpi ského trojúhel ík, so ěpří uz á je tře a Ma del roto a
oži a, u které při z ětšo á í
ůže e a házet stále o é a nové útvary. 29
27
MANDELBROT. Fractal geometry of nature. New York 1983, s. 62 HOTAŘ, Vlastimil. Fraktální geometrie a fraktály. Fraktální geometrie [online]. [2006] [cit. 2015-02-27]. Dostupné z: http://www.ksr.tul.cz/fraktaly/geometrie.html 29 ZELINKA, VČELAŘ a ČANDÍK. Fraktál í geometrie: principy a aplikace. Praha 2006, strana 30
28
14
2.4.3 Děle í podle způso u ge erová í 2.4.3.1 Iterova é fu kč í systémy Itero a é fu kč í s sté
zkrá e ě IFS fu gují na pri ipu opako a ého použití
transformací, jako je posunutí, rotace a z ě a
ěřítka tra sfor ač í fu k e jsou
jednoduché funkce, které pracují s x-ovou a y-o ou souřad i í odu, apříklad posu dopra a z a e á přičítá í k x-o é souřad i i . U eď e si příklad na Sierpinského trojúhelníku. K jeho ge ero á í jsou potře a tři tra sfor ač í fu k e. Pr í fu k e z e ší čt ere na polovinu jak ve s ěru os má tento tvar:
2
;
=(
+1 2
na polovinu a ještě ho posune o 1
a posune ho o nahoru: 2
;
3
, tak i y:
; ). S pů od í 2
1 2
1
čt er e
;
= ( ; 2 ). Druhá funkce 2
udělá to, že jej z e ší
dopra a. Posled í fu k e z e ší čt ere na polovinu +1
=( ; 2
2
IFS fraktál jsou často popiso á
). 30 po o í tra sfor ač í h
jednotlivé transformace a se který i progra
ati , které udá ají
dokáže do ře pra o at. Nejčastější
etodou ge ero á í IFS fraktálů je tz . „hra haosu“. Například Sierpi ského trojúhelník lze
ge ero at ásledují í
způso e . Nejpr e zko struuje e trojúhel ík. Náhod ě
zvolíme výchozí bod na jeho o odu. Dále trojúhelníka. V polo i ě o ý
ý hozí
ezi ode
áhod ě
ere e jede
z r holů
a vrcholem zakreslíme bod, který se sta e aší
ode . Několikrát opakuje e postup od vybrání náhodného vrcholu.
Poté áhod ě z olí e o ý ý hozí od na obvodu a še opakuje e. 31
30
DRAVES, Scott a Erik RECKASE. The Fractal Flame Algorithm. RECKASE, Erik. The Flame Algorithm [online]. September 2003, November 2008 [cit. 2015-02-27]. Dostupné z: http://flam3.com/flame_draves.pdf 31 ZELINKA, VČELAŘ a ČANDÍK. Fraktál í geometrie: principy a aplikace. Praha 2006, strana 47-48
15
2.4.3.2 Time Escape Algoritmy TEA fraktály se generují iterací rovnice s ko ple í i čísl . Nejpr e si struč ě popíše e, co to ko ple í čísla jsou. Ko ple í čísla Ko ple í číslo o sahuje d ě části: část reál ou a část i agi ár í. )apisuje se ve tvaru
+ �, kde
je reálná a i agi ár í část. Tato d ě čísla
a jsou reálná
čísla, která určují souřad i e bodu v ko ple í ro i ě. I agi ár í číslo � předsta uje −1. Odmocninu ze zápor ého čísla si e
edokáže e spočítat, dokáže e s ní ale
pracovat i přesto, že ez á e její čísel ou hod otu. S imaginárním � pracujeme jed oduše jako s pro ě
ou. 32
Obr. 7: Číslo + i v ko ple í rovi ě.
32
PATRZALEK, Edyta. Introduction to Fractal Geometry. Fractal.org: Centre for Fractal Design and Consultancy [online]. [2008] [cit. 2015-02-27]. Dostupné z: http://www.fractal.org/Bewustzijns-BesturingsModel/Fractals-Useful-Beauty.htm
16
oži a
Mandelbrotova
Ma del roto a
oži a je jedním z ejz á ější h fraktálů a stala se symbolem
pro fraktální geometrii. Je defi o á a jako které rovnice 0
�+1
=
�
oži a še h odů
v ko ple í ro i ě, pro
nekonverguje k eko eč u33 čísla
+
i
jsou komplexní,
= 0 . Jed oduše se dá ří i, že výsledek rovnice znovu dosazujeme za
do pů od í
rovnice. Pokud se ýsledk postup ě líží k eko eč u r hle se z ětšují , e í bod
součástí Ma del roto
oži . Kd ž ale hod ot
ra ý
e udou s ěřo at
k eko eč u, ale udou se lížit k ějaké u odu e o se výsledky budou periodicky opakovat, bod
do Ma del roto
do Ma del roto
oži
při itera i ikd
(hranici). U Ma del roto zdále ější od
oži
oži
patří. Ji ý i slo ,
od
patří í
epřekročí určitou zdále ost od počátku
je maximální vzdálenost od počátku 2,
še h
udou při itera i ro i e žd u ikat k eko eč u.34 Vzdálenost bodu
od počátku spočítá e jed oduše. Vez ě e apříklad ko ple í číslo 3 + 4�. Vzdálenost od počátku je přepo ou pra oúhlého trojúhel íku, jehož od ěs P thagoro
ět
případě ted
ude zdále ost od počátku 32 + 42 =
2
+
2
=
2
spočítá e délku přepo
ají délk 3 a 4. Podle jako
2
+
2.
V aše
25 = 5.
Obr. 8: Vzdálenost bodu od počátku. 33
DEVANEY, Robert L. Unveiling the Mandelbrot set. Plus.maths.org [online]. August 31, 2006 [cit. 2015-0227]. Dostupné z: http://plus.maths.org/content/unveiling-mandelbrot-set 34 ZELINKA, VČELAŘ a ČANDÍK. Fraktál í geometrie: principy a aplikace. Praha 2006, strana 50
17
Nyní si ukáže e ěkolik příkladů. Nejpr e určí e od , pro který chceme zjistit, zda áleží Ma del roto ě
oži ě.
= 0,5 + 1,5�. Na začátku ude žd 0
= 0.
V první iteraci bude 1
nulové.
1
=
0
2
+ , tedy
= 02 + 0,5 + 1,5� = 0,5 + 1,5�.
Druhá itera e ude pro ás zají a ější. 2
= 0,5 + 1,5�
2
+ 0,5 + 1,5� =
= (0,52 + 2 ∙ 0,5 ∙ 1,5� + 1,5� 2 ) + 0,5 + 1,5� =
= 0,25 + 1,5� + 2,25� 2 + (0,5 + 1,5�).
Dostali jsme druhou mocninu imaginárního �. Ve výsledku ale chceme mít jedno
ko ple í číslo,
i o ji é a
ho
Víme, že i je −1. Pak tedy � 2 bude 2
mohli zjistit jeho vzdálenost od počátku. Co s tím? −1
2
= −1. ) ý á á
= 0,25 + 1,5� + 2,25 ∙ −1 + 0,5 + 1,5� =
−1,5 + 3�.
Vzdálenost tohoto bodu od počátku je ětší ež 2, ko ple í číslo 0,5 + 1,5� ted a tzv. escape-ti e do a ú iku 3 4
dopočítat ro i i:
ude
−1,5
+ 32 ≐ 2,598. Vzdálenost
e ude patřit do Ma del roto
ude d ě itera e. Kd
= −6,25 − 4,5�, vzdálenost od počátku
2
ho
oži
pokračo ali dále, ude
ude při liž ě 6,427, ve čt rté itera i pak
= 19,3125 + 57,75� a vzdálenost od počátku při liž ě 60,894. Vidíme, že vzdálenost
od počátku opra du roste čí
dál tí
í e.
)kus e další od. = 0,1 + 0,2� 0
=0
1
= 0,1 + 0,2�
2
= 0,12 + 2 ∙ 0,1 ∙ 0,2� + (0,2�)2 + (0,1 + 0,2�) =
= 0,07 + 0,24� 3
= 0,072 + 2 ∙ 0,07 ∙ 0,24� + (0,24�)2 + (0,1 + 0,2�) =
= 0,473 + 0,2336� 4
= 0,4732 + 2 ∙ 0,473 ∙ 0,2336� + (0,2336�)2 + 0,1 + 0,2� =
= 0,26916004 + 0,42�
18
Takto
ho
ohli počítat dále a dále. )atí
e ůže e s jistotou ří i, že při
další h itera í h od e ude ko ergo at k eko eč u. Člo ěk a i počítač ale edokážou počítat do eko eč a a proto se v praxi musí spokojit s odhadem a určit iterací. Pokud se dosáh e
a i ál ího počtu itera í a e í překroče a hra ič í
vzdálenost od počátku, od je po ažo á za součást Ma del roto itera í pro ede e, tí
Obr. 9: Ma del rotova
Kd ž
do itera í
oži
přes ější je odhad Ma del roto
oži . Čí
í e
oži .
oži a.
kresluje e Ma del roto u
ýpočet pro každý
a i ál í počet
oži u po o í počítače, pro ede počítač
od pi el na o rázku. Bod pak
patří, e o
ůže tře a odů
i o
ůže o ar it podle toho, zda
oži u přiřadit ar u podle toho, kolik
lo tře a k překroče í hra ič í zdále osti. 35
Obr. 10: O arve í podle počtu itera í. 35
PATRZALEK, Edyta. Introduction to Fractal Geometry. Fractal.org: Centre for Fractal Design and Consultancy [online]. [2008] [cit. 2015-02-27]. Dostupné z: http://www.fractal.org/Bewustzijns-BesturingsModel/Fractals-Useful-Beauty.htm
19
Juliov
oži Další i TEA fraktál , které úz e sou isí s Ma del roto ou
oži . Jeji h ro i e je stej á jako pro Ma del roto u a pro každý od se
ě í ý hozí hod ot
0.
oži ou, jsou Julio
oži u, je je c konstantní
Pro růz á c tak získá e odliš é Julio
oži . Je zajímavé, že pokud bod c je u itř Ma del roto je t oře a pouze jed ou, propoje ou částí. Pokud oži u, získá e definovat i jako
oži , Julio a
ere e od
í e odděle ý h částí. Ma del roto u
oži a
i o Ma del roto u
oži u lze tí
oži u ko ple í h čísel , pro která jsou odpo ídají í Julio
páde oži
souvislé. 36
Obr. 11: Vztah Juliový h
oži a Ma del rotov
oži .
2.4.3.3 L-systémy Li de
a ero
s sté
zkrá e ě též L-systémy) jsou generovány pomocí
přepiso a í h pra idel, která určují čí o ou částí. Dokážou do ře
(a za jakých podmínek) se má část fraktálu přepsat
odelo at ět í í se fraktály, jako jsou rostliny. Lze pomocí
nich si ulo at růst řas a ho á í u ěk a dovedou generovat i ěkteré klasi ké fraktál . Po o í přepiso a í h pra idel lze rostli roz ět it – rovný stonek je ahraze
e hat „růst“, lze určit, kd se má stonek
„přepsá “ roz ět e ý . L-s sté ů
ude ještě
vě o á a elá kapitola mé roč íko é prá e.
36
PATRZALEK, Edyta. Introduction to Fractal Geometry. Fractal.org: Centre for Fractal Design and Consultancy [online]. [2008] [cit. 2015-02-27]. Dostupné z: http://www.fractal.org/Bewustzijns-BesturingsModel/Fractals-Useful-Beauty.htm
20
Obr. 12: Travi
v tvoře é po o í L-s sté ů.
2.4.3.4 Náhodné fraktály, podivné atraktory a další Náhod é fraktál jsou
t áře
po o í sto hasti ký h pra idel. Jeji h ho á í
je o li ě o áhodou, často ale s určitý
pra děpodo
tře a Bro
apř. části e p lu ve odě). I kd ž je pohyb
ů
poh
(náhodný pohyb
ost í
rozlože í . Patří se
náhodný, má mnohé fraktální vlastnosti, má fraktální dimenzi, je eko eč ě podro atd. Náhodné fraktály jsou použí á
apříklad i při
ý
t áře í počítačo ě ge ero a ý h
krajin. Podivné atraktory se ge erují k so ě
od
pod í ká h
ěkolika fu k e i, takz a ý i atraktor , které
„přitahují“. Charakteristické pro ůže způso it, že fraktál ude
ě je, že i
alá z ě a ve výchozích
padat úpl ě ji ak. 37 38
37
Strange Attractors. FractalFoundation.org [online]. © 2013 [cit. 2015-02-27]. Dostupné z: http://fractalfoundation.org/OFC/OFC-7-1.html 38 Attractor. In: Wikipedia: the free encyclopedia [online]. San Francisco (CA): Wikimedia Foundation, 2001[cit. 2015-02-27]. Dostupné z: http://en.wikipedia.org/wiki/Attractor
21
2.5 Využití Neje že lze po o í fraktálů v reál é
t ářet pěk é o rázk , e istuje i široká škála
užití
ži otě. Nejspíše si a i eu ědo ujeme, že v kapse s sebou neustále nosíme
zaříze í, která při své ejdůležitější fu k i
uží ají fraktálové útvary.
2.5.1 Fraktálové antény Od doby, co
lo
aleze o rádio, řešili lidé jak dosáh out co ejlepšího sig álu.
Obvykle to z a e alo z ětšit a té u. Te to pro lé se a té
zakřivily do t aru připo í ají í
fraktál,
l
řeše s po o í fraktálů. Kd ž
ohl
ýt
ohe
elikosti. Na ísto eustálého z ětšo á í stačilo oh out drát na ještě tak pouze
delší při stej é e ší úsek a drát
plňo al ětší část plo h . 39 40
Obr. 13: Fraktálová anténa v mobilním telefonu.
2.5.2 Fraktálová komprese Fraktálová ko prese o rázků
uží á faktu, že jdou ajít fraktál té ěř šude,
tedy i apříklad na fotografii. Algorit us rozdělí o rázek na části a s aží se ajít části co ejpodo s
ohe
ější. Výhodou fraktálové komprese je, že se o rázk dají li o ol ě z ětšo at e ší ztrátou k alit , ež je tomu u klasi ký h for átů. To lze
dodateč é z ětše í fotografie. Ne ýhodou oproti klasi ký
for átů
užít i pro
je tro hu delší
doba komprese. 41 42 39
FRAME, Michael, Benoit MANDELBROT a Nial NEGER. Fractal Antennas. MANDELBROT. Yale University [online]. © 2015 [cit. 2015-02-27]. Dostupné z: http://classes.yale.edu/fractals/panorama/ManuFractals/FractalAntennas/FractalAntennas.html 40 Fractal Applications. FractalFoundation.org [online]. © 2013 [cit. 2015-02-27]. Dostupné z: http://fractalfoundation.org/OFC/OFC-12-2.html 41 GUPTA, Ashish. Fractal Image Compression. Digital Image Analysis [online]. [2003] [cit. 2015-02-27]. Dostupné z: http://www.cs.northwestern.edu/~agupta/_projects/image_processing/web/FractalImageCompression/
22
2.5.3 Počítačově vytvoře é kraji y Počítačo é ge ero á í kraji je dnes ve filmovém i ideoher í ěž é a ušetří grafiků o eko eč é podro
sto k hodi prá e. Po o í fraktálů lze
prů
t ářet
slu z ela
odel teré u
osti – hornaté i kop o ité kraji , řek , ostro , oblohu, stromy,
traviny, neznámé planety a tak dále.
Obr. 14: Tato krajina nikdy neexistovala.
Popíši zde ejjed odušší aria tu pro
t oře í áhod ého
odelu kraji , pro
jednoduchost ve D. )ač e e pří kou. Tu rozdělí e na polovinu a prostřed í posuneme o áhod ou zdále ost s ěre
ahoru e o dolů. Tento postup opakujeme
pro každou z o ě z iklý h úseček. Růz ě eliký posu utí odu
od
ůže e dosáh out růz é k alit kraji
rozsahe –
áhod é zdále osti pro
ůže e tí
o li it, zda bude
kraji a spíše kop o itá e o hor atá. 43
Obr. 15: Takto by
ohla v padat třetí itera e.
42
ZELINKA, VČELAŘ a ČANDÍK. Fraktál í geometrie: principy a aplikace. Praha 2006, strana 103-115 Generating Random Fractal Terrain. Game Programmer [online]. © 1996, 1997 [cit. 2015-02-27]. Dostupné z: http://www.gameprogrammer.com/fractal.html
43
23
2.5.4 Medicína V
edi í ě se
užití fraktálů tepr e začí á roz áhat. V íjí se apříklad postup,
pomocí kterého by šla rako i a odhalit u ožňuje pořizo á í
el i podro
ohe
dří e. D eš í te h ologie jako CT a MRI
ý h s í ků. Pro lé e
je, že pokud má člo ěk
odhalit rako i u ještě ve velmi brzkém stádiu, kdy je ádor el i rozliše í a al zo at elké je
usí při
soké
ožst í dat. Řešením je tuto úlohu pře e hat počítači, který
ohokrát r hlejší. A
a ezdra ou tká í,
alý,
ůže e
ho
dokázali počítači popsat rozdíl
užít toho, že nádor má o
kle
ezi zdra ou
šší fraktál í di e zi ež
zdra á tkáň. 44
2.5.5 Další využití Dále se fraktál
uží ají kupříkladu k analýze cen na trhu, při ýro ě la , která
dokážou udržet i ěkolikatu o ou ko struk i, jakou je most, jako potisk na trička, k
ěře í
ožst í stře a ého o idu uhličitého v lesích, při plá o á í
a k espočet ý
další
ěst a dopravy
účelů .
44
Fractal Applications. FractalFoundation.org [online]. © 2013 [cit. 2015-02-27]. Dostupné z: http://fractalfoundation.org/OFC/OFC-12-4.html
24
2.6 Lindenmayerovy systémy Li de
a ero
s sté
, azý a é též zkrá e ě L-systémy byly objeveny v roce
aďarsko-nizozemským biologem Aristidem Lindenmayerem.45 Lindenmayer se v té do ě za ý al studie pouze k
růstu růz ý h druhů řas a L-systé
odelo á í růstu rostli na úro i u ěk. Později
rostlinné struktury a ke generování i ji ý h ež rostli
ěl pů od ě sloužit l rozšíře
i na složitější
ý h fraktál í h struktur. 46
2.6.1 Přepisová í, itera e Při ge ero á í po o í
oži
repreze to á
uží ají L-systémy opako a é ahrazo á í jed odu hý h út arů
přepiso a í h pra idel. Nejčastěji jsou Li de po o í řetěz ů z aků. Na začátku
Přepiso a í pra idla á
písmenem
s sté
á e ý hozí řetěze , tz . a io .
říkají, jaký i z ak je nahrazen znak z pů od ího řetěz e.
U eď e si příklad. Vý hozí že každý z ak
a ero
a io e
nahradíme znaky
ude . Přepiso a í pra idlo →
. Druhé pravidlo
→
říká,
nahradí písmeno
. Důležité je, že se pra idla aplikují součas ě. Ji ak by druhé pravidlo
způso ilo, že ve výsledku budou pouze samá . 47 V první iteraci z pů od ího epřepíše, jelikož
řetěz i zatí
V druhé iteraci se z řetězce opakováním bychom získali
získáme e í příto
stane
.
. Druhé pra idlo zatí o žád é
, které by se dalo nahradit.
bylo nahrazeno
, pak
žád ý z ak
az
se stalo . Další
a tak dále.
2.6.2 Želví grafika Nejčastější způso i terpreta e s pravidel je tz . „žel í grafika“. Každý ze s
olů
ge ero a ý h po o í přepiso a í h
olů je pro po
sl ou žel u určitý
příkaze ,
jako je apříklad „jdi o krok dopředu“ e o „otoč se dopra a“. Žel a s sebou má štěte , kterým zaznamenává svou cestu. Sta žel
a s ěre , který
se žel a
dívá. Lze zapsat jako uspořáda ou troji i ( , , �), která udá á souřad i e žel
ro i ě
a úhel jejího otoče í zhlede
je dán pozicí žel
k ose . )de jsou základ í po el , které žel a z á:
45
L-system. In: Wikipedia: the free encyclopedia [online]. San Francisco (CA): Wikimedia Foundation, 2001[cit. 2015-02-27]. Dostupné z: http://en.wikipedia.org/wiki/L-system 46 PRUSINKIEWICZ a LINDENMAYER. The algorithmic beauty of plants. New York 1990, strana 1 47 PRUSINKIEWICZ a LINDENMAYER. The algorithmic beauty of plants. New York 1990, strana 3-4
25
� Písmeno , nebo i ji é elké pís e o a e ed říká žel ě „jdi o krok dopředu“,
přiče ž žel a za sebou štět e
za e há á stopu, tj. akreslí čáru od její pů od í
do nové pozice. Nová pozi i žel sin � , �), kde je délka kroku žel .
( ′,
′
, �′) je nyní ( + ∙ cos � , + ∙
Obr. 16: Výpočet ové pozi e želv .
� Malé pís e o a e ed
posu e žel u o krok dopředu, je
za se ou žel a
te tokrát e ude kreslit čáru. + Otočí žel u proti s ěru hodi o ý h ručiček o úhel �. No ý sta žel
( , , � + �).
- Otočí žel u po s ěru hodi o ý h ručiček. Nový stav žel
ted
ude
bude ( , , � − �). 48
Ukaž e si, jak apsat žel í grafikou tře a pís e o F. Nejpr e půjde e d a krok ro ě ahoru (
). Poté se otočí e doprava (−) a udělá e jede krok ( ), úhel otáče í
je 90°. Znovu se otočí e po s ěru hodi o ý h ručiček (−), te tokrát šak čáru kreslit nebudeme (�). ) ý á á
otočka po s ěru hodi o ý h ručiček (−) a poslední krok ( )
a aše F je hotové. Celou estu žel
48
zapíše e jako
−
−�− .
PRUSINKIEWICZ a LINDENMAYER. The algorithmic beauty of plants. New York 1990, strana 6-7
26
2.6.3 Souvislé L-systémy N í, kd ž spojí e dohro ad a dokáže e s
ol
ge ero á í po o í přepiso a í h pra idel
i terpreto at po o í žel í grafik ,
ůže e začít modelovat
fraktály. Axiomem pro generování Kochovy kři k je jediný krok přepiso a í pra idlo
→
+
− − + . Úhel otoče í je 60°. Přepiso a í pra idlo říká,
že ahrazuje e každou úsečku protože ji é ež ro ě, poté další
v to to případě e á e krokem
o 60° otoče ý , otočí e se o 120° dopra a, akreslí e další úsečku
a poslední nakreslíme otoče ou o 60° doleva. Může e popsat postup
. Na ěj aplikuje e
t áře í Ko ho
kři k
idět, že L-s sté
last ě el i podo
ý
dokážou
způso e , jak jsme
si popisovali v jedné z prvních kapitol. 49 50
Obr. 17: Ko hova křivka jako L-systém.
49
PRUSINKIEWICZ a LINDENMAYER. The algorithmic beauty of plants. New York 1990, strana 11-17 L-systém. In: Wikipedia: the free encyclopedia [online]. San Francisco (CA): Wikimedia Foundation, 2001[cit. 2015-02-27]. Dostupné z: http://cs.wikipedia.org/wiki/L-syst%C3%A9m
50
27
2.6.4 Větve í N í již dokáže e
t ářet po o í L-s sté ů fraktál , které jsou t oře
souvislou linkou. Kdybychom ale htěli ejpr e
jed ou
t ářet ět í í se struktury, museli bychom
t ořit jed u ěte , poté se vrátit na
ísto ět e í a odtud pak kreslit ěte
další. Člo ěk je aštěstí lí ý a proto nám tuto práci usnadnil. K žel í
příkazů
á
při udou další d a z ak .
[ Hra atá zá orka říká žel ě „zapa atuj si aktuál í pozi i“, přes ěji „ulož s ůj sta na záso
ík“. Zásobník si
ůže e předsta it apříklad jako sloupek talířů – talíř,
který js e položili na hromadu jako poslední, z ní vezmeme jako první. ] Uza írají í hra atá zá orka z a e á pro žel u „ rať se na svou poslední zapa ato a ou pozi i“, e oli „ ačti sta ze záso Tí
ůže e jed oduše
t ářet ět í í se struktury. Jed oduše uza ře e ěte
do hranatých závorek. Tím se před a po doko če í ět e se
íku“. 51
t áře í
ět e uloží sta
žel
na zásobník
ůže zase rátit zpět.
Jako příklad ět í í se struktury si ukáže e jednoduchý strom. Strom roste tím způso e , že v každé itera i
roste ěte na dvojnásobnou délku a na konci se roz ět í.
Roz ět ují se žd je kraj í
ladé ět e. Nekraj í starší části ět e pouze rostou.
Mladé ět e udou repreze to á zač e růst z jedi é
ladé ět ičk
stane stará a vyroste z ní jed a →
+
pís e e
, staré ět e pís e e
, která je axiomem. V každé itera i se z
. Strom ladé ět e
ladá ěte dole a úhel otoče í je 45°) a druhá doprava
[− ]. Růst starší h ět í zapíše e jako
→
.
Obr. 18: Růst stro u.
51
PRUSINKIEWICZ a LINDENMAYER. The algorithmic beauty of plants. New York 1990, strana 24
28
2.6.5 Další rozšíře í 2.6.5.1 Vykreslování ve 3D Výhodou L-s sté ů je jeji h s ad á rozšiřitel ost o o é příkaz . Tak lze jed oduše příkaz |, který z a e á „čele
zad“ e oli otoče í o 180°. Dále lze L-systémy
rozšířit i pro generování fraktálu v prostoru.
^ „Otoč se ahoru“ o přede
sta o e ý úhel.
& Otoče í dolů o daný úhel. / Otoče í dopleva podél last í os žel a by ez ě ila s ěr, který
by se dívala,
ale otočila by se apř. na stranu nebo na záda). \ Otoče í podél last í os dopra a po s ěru hodi o ý h ručiček při pohledu zezadu na žel u
52
2.6.5.2 Stochastické L-systémy Stochastické L-s sté Nejjed odušší
způso e
přidá ají do přepiso á í anebo vykreslování prvek náhody. je při
( apř. o ±20%). V ge ero a é s
kreslo á í áhod ě o tro hu
ě it úhel a délku kroku
ol tak udou žd stej é, ale ýsled ý o raz ude
pokaždé o ě o jiný. 53 54
Obr. 19: Náhodná délka a úhel.
52
PRUSINKIEWICZ a LINDENMAYER. The algorithmic beauty of plants. New York 1990, strana 18-21 PRUSINKIEWICZ a LINDENMAYER. The algorithmic beauty of plants. New York 1990, strana 28 54 L-systém. In: Wikipedia: the free encyclopedia [online]. San Francisco (CA): Wikimedia Foundation, 2001[cit. 2015-02-27]. Dostupné z: http://cs.wikipedia.org/wiki/L-syst%C3%A9m 53
29
Další
ož ostí je přidat
áhodu již při sa ot é
ge ero á í, kd
pra idlu přiřadí e určitou váhu, která určuje, s jakou pra děpodo se pravidlo vybere. Pra děpodo přepiso a í
ost í po ěr zapisuje e
každé u
ostí ůči ostat í ad šipku
daném
pra idle. 55 56
Obr. 20: Náhod é přepisova í pravidlo.
2.6.5.3 Parametrické L-systémy Parametrické L-s sté para etr , které
přidá ají
ož ost přidat ke z aků
ohou ýt při i terpreta i žel í grafikou použit
délk čár , její tloušťk , úhlu rota e a podo
L-systému
apříklad pro urče í
ě. Jednotlivé parametry zapisujeme za daný
znak do kulatých závorek, odděluje e je čárkou. Para etre
ůže ýt číslo, pro ě
á,
nebo matematický výraz. 57 Přepiso a í pra idlo
ůže
padat
apříklad takto:
Toto přepiso a í pra idlo by apříklad z axiomu 2
(8,3). V další itera i ) ke
ho
získali
ý á při i terpreta i
2
4
4,3
( , ) → ( /2) v pr í itera i
(8, ). t ořilo
(8,3).
rát pr í para etr jako délku kroku, u z aků
+ a – jako úhel rotace. I terpreta e další h para etrů je již růz á. Pokud parametr ezapíše e, použije se výchozí hodnota, která by se použila i u bezparametrických
L-s sté ů. 58
55
PRUSINKIEWICZ a LINDENMAYER. The algorithmic beauty of plants. New York 1990, strana 28 L-systém. In: Wikipedia: the free encyclopedia [online]. San Francisco (CA): Wikimedia Foundation, 2001[cit. 2015-02-27]. Dostupné z: http://cs.wikipedia.org/wiki/L-syst%C3%A9m 57 PRUSINKIEWICZ a LINDENMAYER. The algorithmic beauty of plants. New York 1990, strana 41-42 58 PRUSINKIEWICZ a LINDENMAYER. The algorithmic beauty of plants. New York 1990, strana 46 56
30
2.6.5.4 Pod í ě é přepisová í Parametrické L-systémy lze ještě dále rozšířit o pod í ě é přepiso á í. Pokud se pod í ka
hod otí jako pra di á, přepiso a í pra idlo se použije, opač é
případě
se přepiso a í pra idlo přeskočí a zůsta e pů od í s
ol. Podmínky se zapisují
ks
ásleduje d ojtečka, poté
olu před šipkou. Za symbolem (a jeho para etr
podmínka. V pod í ká h
ůže e kro ě arit eti ký h operátorů a porovnávacích
operátorů (<, >, =) použít i logické operátory &, |
,
Přepiso a í
pra idlo
:
!=0 →
>= 3 &
3 a záro eň
s pod í kou
! (and, or a not). 59 60
ůže
padat
apříklad
. Pravidlo lze přečíst jako: „pokud
není rovno 0, tak přepiš ( , ) za
ásledo ě:
je ětší e o ro o
“.
2.6.5.5 Kontextové L-systémy Kontextové L-s sté
á
u ožňují při oz ače í z aku, který má ýt přepsá
brát ohledy i na jeho sousedy. Na levého souseda vybraného znaku ukazujeme pomocí z ačk <, na pravého pomocí >.61 Pravidlo kontextového systému by Toto pra idlo přepíše še h a 2.6.5.6 Další L-s sté
ohlo
padat tře a takto:
následovaná písmenem .
by rostl ve 3D
→
.
ož á rozšíře í jdou sa ozřej ě rozšiřo at dále a dále. Lze apříklad přidat si ula i
gravitace, která jako i v přírodě táh e ět e stro ů s ěre rozšířit
>
apříklad tak, a
reago al na prostředí, apříklad d a stro
é ě na so ě při rá e é stra ě. Také lze přidat odelů, dík který
dolů. Nebo lze L-systémy lízko u sebe
kreslo á í o rázků, e o
ůže e tře a na ko e sto ku jed oduše přidat k ět e o
list. )áleží na ko krét í h potře á h, o co člo ěk L-systémy dále obohatí.
59
PRUSINKIEWICZ a LINDENMAYER. The algorithmic beauty of plants. New York 1990, strana 41-42 L-systém. In: Wikipedia: the free encyclopedia [online]. San Francisco (CA): Wikimedia Foundation, 2001[cit. 2015-02-27]. Dostupné z: http://cs.wikipedia.org/wiki/L-syst%C3%A9m 61 PRUSINKIEWICZ a LINDENMAYER. The algorithmic beauty of plants. New York 1990, strana 30
60
31
3. Prakti ká část Prakti ká část o saho ala d ě části. Tou pr í
lo
t oře í progra u
na vykreslování L-s sté ů. K naprogramování jsem si vybral jaz k C#, jed ak protože v C# umím programovat nejlépe, za druhé k ůli .Net Fra e orku, který prá i ýraz ě us adňuje. Program sestává ze d ou hla í h částí a to části ge erují í L-systém podle přepiso a í h pra idel a interpreteru L-s sté ů „žel “ . T to části jsou odděle é i v grafickém rozhraní. Uži atel si zvolí axiom L-systému a zadá jed otli á přepiso a í pravidla a z olí počet itera í. Progra
ásled ě
ge eruje L-systém v te to é podo ě.
Dále pak asta í para etr žel , jako je apříklad úhel otoče í a délka kroku. Žel a pak L-systém vykreslí. Je
ož é použí at o ě části progra u odděle ě – lze generovat
L-systém pouze v te to é podo ě,
e o lze zadat
last í příkaz
žel ě a nechat
je vykreslit.
Obr. 21: Ukázka uživatelského rozhra í progra u.
V druhé
části
jse
se ě o al
odelo á í
L-s sté ů
Na modelování jsem si vybral online generátor L-s sté ů modelovat i pokročilé L-s sté rostlin
s áhod ý
ý ěre
. V zkoušel jse přepiso a ího
si
ěkolika
rostli .
als s. z, který z ládá
odelo á í složitější h sto hasti ký h pra idla
i náhodnou
délkou/úhlem
při interpretaci i práci s tříroz ěr ý i L-systémy. Naprogramoval jsem L-systém kapradi , sto hasti ké tra i , tříroz ěr ý sto hasti ký stro
a další
Rostliny lze nalézt i v online galerii generátoru malsys a jsou přilože
e ší L-systémy. v příloze na konci
roč íko é prá e. 32
4. U ěle ká část U u ěle ké části jse
dlouho
ěkterý h klasi ký h fraktálů mi přišla by
la
e ěděl, co
h
last ě
ohl udělat. Kres a
o jed odu há. Naopak tře a
el i složitá. Stej ě tak i kresle í
last í h
al a fraktálů TEA
šle ý h fraktálů je moc
jednoduché a malba fraktálového charakteru inspirovaná komplexními fraktály zase moc složitá. Na í jse Došel jse
htěl t ořit spíše ě o ko krét ějšího ež a strakt í o raz e.
ted k tomu, že nebudu malovat pří o fraktál , ale že namaluji obraz, který
je fraktály inspirován. O z láště
e zají ají přírod í fraktál a fraktálové rostliny, došel
jsem tedy k tomu, že namaluji obraz, ve kterém budou rostliny fraktálového charakteru. )ačal jse
ejpr e ěkolika áčrt a poté ětší kres ou uhle . Pak jse
podle zorů
namaloval na papír formátu A3 podklad akvarelovými barvami. Nakonec jsem pastelkami namaloval strom a doladil ěkolik detailů.
Obr. 22: Doko če á u ěle ká část.
33
5. Závěr V roč íko é prá i js e si řekli o tom, co je to fraktál a popsali jeho typické vlastnosti. Pak jsme se podívali na ži ot Be oita B. Ma del rota – člo ěka, který je po právu nazýván otcem fraktální geometrie, a který el i přispěl k rozvoji fraktální geometrie. V s ětlili js e si, jaký i růz ý i způso nacházejí v každode
í
fraktálů z a ý h Li de
ži otě. Tro hu podro a ero
s sté
lze fraktály generovat a jaké
užití
ěji js e se pak podívali na skupinu
, po o í který h lze přede ší
do ře
popisovat rostliny. Doufám, že se mi podařilo čte áři eje sdělit spoustu informací z oblasti fraktální geo etrie, ale hla ě ukázat, že fraktál
ejsou je zají a é
ate ati ké
oži
e o
barevné obrazce, ale že dokážou po o í jed odu hý h pra idel popiso at i tak složité út ar , jako apříklad rostli , které se vyskytují v přírodě šude kole a házejí
ohe
ětší prakti ké
užití, ež si
M ě dala roč íko á prá e opra du se fraktálů , které jse
předtí
ož á ěkteří
ás a že fraktály
sleli.
oho. Měl jse
ož ost
ě o at
z al pouze okrajo ě í e do hloubky, obzvláště
e
zaujaly fraktály v přírodě a jejich modelování. Trochu jsem se zdokonalil i v praktických dovednostech programování a hla ě jse
se aučil, jak se má psát odborná práce a jak
se pracuje se zdroji a odbornou literaturou. Pro které jse
dík roč íko é prá i získal. Ze začátku jse
a psa í roč íko é prá e jse Roč íko ou prá i jse
přede ší
ěl jse
ů e
eko u iko al s vedoucím
ze strachu, že mi to epůjde pořád odkládal.
začal psát až ke konci prosince a bylo to poprvé, co jsem opravdu
narazil díky tomu, že ě o dělá bavilo, a
ě to ejdůležitější jsou ale zkuše osti,
na poslední chvíli. Nakonec
huť jí dále a dále rozšiřo at a
se last ě htěl ě o at ještě í e a progra
ě psa í roč íko é prá e
lepšo at. I prakti ké části
h
dále rozšířit.
34
Sez a
použitý h pra e ů a literatury
Použitá literatura
MANDELBROT, Benoit B. The fractal geometry of nature. Vyd. 3. New York: Freeman and company, 1983, 468 s. ISBN 07-167-1186-9. PRUSINKIEWICZ, Przemyslaw a Aristid LINDENMAYER. The algorithmic beauty of plants. New York: Springer-Verlag, 1990, xii, 228 p. ISBN 35-409-7297-8.
Dostupné z: http://algorithmicbotany.org/papers/abop/abop.pdf )ELINKA, I a , Fra tišek VČELAŘ a Marek ČANDÍK. Fraktální geometrie: principy a aplikace. 1. vyd. Praha: BEN, 2006, 159 s. ISBN 80-730-0191-8.
Internetové zdroje
Attractor. In: Wikipedia: the free encyclopedia [online]. San Francisco (CA): Wikimedia Foundation, 2001- [cit. 2015-02-27]. Dostupné z:
http://en.wikipedia.org/wiki/Attractor Benoit Mandelbrot. In: Wikipedia: the free encyclopedia [online]. San Francisco (CA): Wikimedia Foundation, 2001- [cit. 2015-02-27]. Dostupné z:
http://en.wikipedia.org/wiki/Benoit_Mandelbrot Benoit Mandelbrot. NNDB [online]. © 2014 [cit. 2015-02-27]. Dostupné z: http://www.nndb.com/people/752/000022686/ DEVANEY, Robert L. Unveiling the Mandelbrot set. Plus.maths.org [online]. August 31, 2006 [cit. 2015-02-27]. Dostupné z: http://plus.maths.org/content/unveiling-
mandelbrot-set DRAVES, Scott a Erik RECKASE. The Fractal Flame Algorithm. RECKASE, Erik. The Flame Algorithm [online]. September 2003, November 2008 [cit. 2015-02-27].
Dostupné z: http://flam3.com/flame_draves.pdf FIŠER, Marek. L-systems online [online]. Prague, 2012 [cit. 2015-02-27]. Dostupné z: http://www.malsys.cz/Download/MarekFiser-LsystemsOnline.150208.v101.pdf.
Bakalářská prá e. Charles U i ersit in Prague. Fractal antenna. In: Wikipedia: the free encyclopedia [online]. San Francisco (CA): Wikimedia Foundation, 2001- [cit. 2015-02-27]. Dostupné z: http://en.wikipedia.org/wiki/Fractal_antenna
35
Fractal Applications. FractalFoundation.org [online]. © 2013 [cit. 2015-02-27]. Dostupné z: http://fractalfoundation.org/OFC/OFC-12-4.html Fractal Applications. FractalFoundation.org [online]. © 2013 [cit. 2015-02-27]. Dostupné z: http://fractalfoundation.org/OFC/OFC-12-2.html Fractal compression. In: Wikipedia: the free encyclopedia [online]. San Francisco (CA): Wikimedia Foundation, 2001- [cit. 2015-02-27]. Dostupné z:
http://en.wikipedia.org/wiki/Fractal_compression Fractal dimension. In: Wikipedia: the free encyclopedia [online]. San Francisco (CA): Wikimedia Foundation, 2001- [cit. 2015-02-27]. Dostupné z:
http://en.wikipedia.org/wiki/Fractal_dimension Fractal Geometry. IBM United States [online]. May 18, 2011 [cit. 2015-02-27]. Dostupné z: http://www-03.ibm.com/ibm/history/ibm100/us/en/icons/fractal/ Fractal landscape. In: Wikipedia: the free encyclopedia [online]. San Francisco (CA): Wikimedia Foundation, 2001- [cit. 2015-02-27]. Dostupné z:
http://en.wikipedia.org/wiki/Fractal_landscape Fractals in Science, Engineering and Finance (Roughness and Beauty). MIT Video [online]. 2001-11-27 [cit. 2015-02-27]. Dostupné z: http://video.mit.edu/watch/fractals-in-science-engineering-and-finance-
roughness-and-beauty-9893/ Fractals. The Math Images Project [online]. July 22, 2008, 19 December 2012 [cit. 2015-02-27]. Dostupné z:
http://mathforum.org/mathimages/index.php/Field:Fractals Fraktál. In: Wikipedia: the free encyclopedia [online]. San Francisco (CA): Wikimedia Foundation, 2001- [cit. 2015-02-27]. Dostupné z:
http://cs.wikipedia.org/wiki/Frakt%C3%A1l FRAME, Michael, Benoit MANDELBROT a Nial NEGER. Fractal Antennas. MANDELBROT. Yale University [online]. © 2015 [cit. 2015-02-27]. Dostupné z: http://classes.yale.edu/fractals/panorama/ManuFractals/FractalAntennas/Fractal
Antennas.html FRAME, Michael. Benoit B. Mandelbrot: A Biographical Memoir. National Academy of Sciences [online]. © 2014 [cit. 2015-02-27]. Dostupné z: 36
http://www.nasonline.org/publications/biographical-memoirs/memoir
pdfs/mandelbrot-benoit.pdf Generating Random Fractal Terrain. Game Programmer [online]. © 1996, 1997 [cit. 2015-02-27]. Dostupné z: http://www.gameprogrammer.com/fractal.html GREGOROVÁ, Dagmar. Stal jsem se konstruktérem geometrie. OSEL.cz [online]. 19.10.2010 [cit. 2015-02-27]. Dostupné z:
http://www.osel.cz/index.php?clanek=5346 Guardian obituary. The MacTutor History of Mathematics archive [online]. 18 October 2010 [cit. 2015-02-27]. Dostupné z: http://www-history.mcs.st-
and.ac.uk/Obits2/Mandelbrot_Guardian.html GUPTA, Ashish. Fractal Image Compression. Digital Image Analysis [online]. [2003] [cit. 2015-02-27]. Dostupné z: http://www.cs.northwestern.edu/~agupta/_projects/image_processing/web/Frac
talImageCompression/ HOTAŘ, Vlasti il. Fraktál í geo etrie a fraktály. Fraktální geometrie [online]. [2006] [cit. 2015-02-27]. Dostupné z:
http://www.ksr.tul.cz/fraktaly/geometrie.html Iterated function system. In: Wikipedia: the free encyclopedia [online]. San Francisco (CA): Wikimedia Foundation, 2001- [cit. 2015-02-27]. Dostupné z:
http://en.wikipedia.org/wiki/Iterated_function_system JABLONSKI, Adrian. Grundlagen der fraktalen Geometrie mit iterierten Funktionensystemen (IFS). Quadsoft.org [online]. Juli 2011 [cit. 2015-02-27].
Dostupné z: http://quadsoft.org/fraktale/ L-system. In: Wikipedia: the free encyclopedia [online]. San Francisco (CA): Wikimedia Foundation, 2001- [cit. 2015-02-27]. Dostupné z:
http://en.wikipedia.org/wiki/L-system L-systém. In: Wikipedia: the free encyclopedia [online]. San Francisco (CA): Wikimedia Foundation, 2001- [cit. 2015-02-27]. Dostupné z: http://cs.wikipedia.org/wiki/L-syst%C3%A9m
37
Mandelbrot set. In: Wikipedia: the free encyclopedia [online]. San Francisco (CA): Wikimedia Foundation, 2001- [cit. 2015-02-27]. Dostupné z:
http://en.wikipedia.org/wiki/Mandelbrot_set O'CONNOR, J. J. a E. F. ROBERTSON. Mandelbrot biography. The MacTutor History of Mathematics archive [online]. © July 1999, 2014 [cit. 2015-02-27]. Dostupné z:
http://www-history.mcs.st-and.ac.uk/Biographies/Mandelbrot.html PATRZALEK, Edyta. Fractals: Useful Beauty. Elika Kurniadi [online]. October 10, 2011 [cit. 2015-02-27]. Dostupné z:
https://elikakurniadi.wordpress.com/2011/10/10/fractal-geometry/ PATRZALEK, Edyta. Introduction to Fractal Geometry. Fractal.org: Centre for Fractal Design and Consultancy [online]. [2008] [cit. 2015-02-27]. Dostupné z:
http://www.fractal.org/Bewustzijns-Besturings-Model/Fractals-Useful-Beauty.htm Rotations: the how's and why's. Pete's QBASIC / QuickBasic Site [online]. [2004] [cit. 2015-02-27]. Dostupné z: http://www.petesqbsite.com/sections/tutorials/tuts/relsoft3d/Chapter2/Chapter
2.htm SIXTA, To áš. Ú od do fraktálů a chaosu. ITnetwork.cz [online]. © 2015 [cit. 201502-27]. Dostupné z: http://www.itnetwork.cz/fraktaly-a-chaos-eukleidovska-
geometrie-uvod-svitani-chaosu Strange Attractors. FractalFoundation.org [online]. © 2013 [cit. 2015-02-27]. Dostupné z: http://fractalfoundation.org/OFC/OFC-7-1.html Telegraph obituary. The MacTutor History of Mathematics archive [online]. © 2010 [cit. 2015-02-27]. Dostupné z: http://www-history.mcs.st-
and.ac.uk/Obits2/Mandelbrot_Telegraph.html WAHL, Bernt Rainer. Calculating Fractal Dimension. Fractal Explorer [online]. © 2014 [cit. 2015-02-27]. Dostupné z: http://www.wahl.org/fe/HTML_version/link/FE4W/c4.htm
38
Seznam zdrojů ilustra í O r. : Ko struk e Ko ho
kři k . ..................................................................................... 10
http://quadsoft.org/fraktale/koch.png; upraveno (14. 1. 2015) O r. : )á islost
ěřítka a dimenze. ................................................................................... 12
http://upload.wikimedia.org/wikipedia/commons/4/4d/Fractaldimensionexampl e.PNG; upraveno (15. 3. 2015) Obr. 3: Konstrukce Sierpinského trojúhelníku. ................................................................... 13 http://upload.wikimedia.org/wikipedia/commons/0/05/Sierpinski_triangle_evol ution.svg; upraveno (2. 3. 2015) O r. : Sierpi ského trojúhel ík jako kři ka. ...................................................................... 13 http://upload.wikimedia.org/wikipedia/commons/a/ae/Arrowhead_curve_1_thr ough_6.png (2. 3. 2015) O r. : Šest itera í Ka toro
oži . .............................................................................. 13
http://upload.wikimedia.org/wikipedia/commons/5/56/Cantor_set_in_seven_ite rations.svg (2. 3. 2015) O r. : Kři ka, která
plňuje plo hu. ................................................................................. 14
https://cedevertiginoushoplist.files.wordpress.com/2012/11/peano-curve.jpg (2. 3. 2015) O r. : Číslo +2i v ko ple í ro i ě. ................................................................................. 16 V t oře o v programu GeoGebra Obr. 9: Vzdálenost bodu od počátku. .................................................................................. 17 V t oře o programu GeoGebra O r.
: Ma del roto a
oži a. ...................................................................................... 19
http://upload.wikimedia.org/wikipedia/commons/5/56/Mandelset_hires.png (2. 3. 2015) O r.
: O ar e í podle počtu itera í. ................................................................................ 19 http://rosettacode.org/mw/images/2/2a/Mandelbrot-Javascript.png; upraveno (2. 3. 2015)
O r.
: Vztah Julio ý h
oži a Ma del roto
oži . ............................................. 20
http://ocw.upm.es/matematica-aplicada/introduccion-a-los-sistemasdinamicos/contenidos/IMAGES/juliaenmandel.gif (2. 3. 2015) O r.
: Tra i
t oře é po o í L-s sté ů. .................................................................. 21 39
http://upload.wikimedia.org/wikipedia/commons/a/af/Fractal_weeds.jpg (2. 3. 2015) Obr. 14: Fraktálová anténa v mobilním telefonu. ............................................................... 22 http://classes.yale.edu/fractals/panorama/ManuFractals/FractalAntennas/FracT enna1.gif (24. 5. 2015) Obr. 15: Tato krajina nikdy neexistovala. ............................................................................ 23 http://upload.wikimedia.org/wikipedia/commons/4/40/BlueRidgePastures.jpg (24. 5. 2015) Obr. 16: Takto by
ohla
padat třetí itera e. ................................................................... 23
http://www.gameprogrammer.com/fractal/mpd3.gif (24. 5. 2015) O r.
: Výpočet o é pozi e žel ..................................................................................... 26 V t oře o programu GeoGebra
O r.
: Ko ho a kři ka jako L-systém................................................................................ 27 http://w3-o.cs.hm.edu/~ruckert/compiler/www.math.okstate.edu/img109.gif (24. 1. 2015)
O r.
: Růst stro u. .......................................................................................................... 28 http://en.wikipedia.org/wiki/L-system#mediaviewer/File:Graftal0.png http://en.wikipedia.org/wiki/L-system#mediaviewer/File:Graftal1.png http://en.wikipedia.org/wiki/L-system#mediaviewer/File:Graftal2.png http://en.wikipedia.org/wiki/L-system#mediaviewer/File:Graftal3.png http://en.wikipedia.org/wiki/L-system#mediaviewer/File:Graftal4.png http://en.wikipedia.org/wiki/L-system#mediaviewer/File:Graftal7.png; upraveno (25. 1. 2015)
Obr. 20: Náhodná délka a úhel. ........................................................................................... 29 http://cs.wikipedia.org/wiki/Lsyst%C3%A9m#mediaviewer/File:RandomizedPythagorasLsystem.svg (26. 1. 2015) O r.
: Náhod é přepiso a í pra idlo............................................................................... 30 http://cs.wikipedia.org/wiki/Lsyst%C3%A9m#mediaviewer/File:PythagorasStochasticLsystem.svg (26. 1. 2015)
40
Sez a
příloh
Příloha : Model rostli – L-systémy Příloha : Program na generování L-s sté ů – zdrojové kódy
41
Příloha : Modely rostli – L-systémy Kapradina lsystem StochasticPlant { let li = 0.9; //length increase let wi = 0.8; //width increase let bi = 0.4; //branch increase let angle = 45; let td = 0.5; //decrease first branch part length let width = 0.2; set set set set set
iterations = 7; initialAngle = 90; symbols axiom = A(10, 1, 1); tropismVector = {0, 1, 0}; tropismCoefficient = 2;
rewrite A(l, w, f) where f==0 to F(l*li, w*wi) [+A(l*li*bi, w*wi*bi, 1)] [-A(l*li*bi, w*wi*bi, 1)] A(l*li, w*wi, 0); rewrite A(l, w, f) where f==1 to F(l*li*td, w*wi*td) [+A(l*li*bi, w*wi*bi, 1)] [-A(l*li*bi, w*wi*bi, 1)] A(l*li, w*wi, 0); interpret interpret interpret interpret interpret interpret interpret
A(l, B(l, F(l, + as - as [ as ] as
w, f) as DrawForward(l, width); w) as DrawForward(l, width); w) as DrawForward(l, width); TurnLeft(angle); TurnLeft(-angle); StartBranch(); EndBranch();
} process StochasticPlant with SvgRenderer;
42
Stochastické traviny lsystem Grass { let angle = 14; let thickness = 0.1; set set set set set
iterations = 8; initialAngle = random(80, 110); tropismVector = {0, -1, 0}; tropismCoefficient = 2; symbols axiom = A(10);
rewrite A(x) where x<10 to F(x*0.75)[+A(x*0.5)]B(x) weight 5 to F(x/2)[+F(x)] weight 1; rewrite A(x) to F(x*0.75)[+A(x*0.5)]B(x); rewrite B(x) where x<10 to F(x*0.75)[-B(x*0.5)]A(x) weight 5 to f weight 1; rewrite B(x) to F(x*0.75)[-B(x*0.5)]A(x); interpret interpret interpret interpret interpret interpret interpret
F(x) A(x) B(x) + as - as [ as ] as
as DrawForward(x, thickness); as DrawForward(x, thickness); as DrawForward(x, thickness); TurnLeft(angle); TurnLeft(-angle); StartBranch(); EndBranch();
} process Grass with SvgRenderer;
43
Strom fun randomize (number, maxDistance) { return number + random(0, maxDistance) -random(0, maxDistance); } lsystem Tree { let let let let let let
tlm = 0.8; //trunkLength multiplier blm = 0.8; //branchLength multiplier wm = 0.7; //widthMultiplier angle = 20; rotation = 137.5; rran = 20; //rotation randomness
set set set set set
iterations = 10; initialAngle = 90; tropismVector = {0, -1, 0}; tropismCoefficient = 3; symbols axiom = /(random(0, 360)) A(10, 1);
rewrite A(l, w) to F(l, w) /(randomize(rotation, rran))[+B(l*blm, w*wm)] A(l*tlm, w*wm); rewrite B(l, w) to F(l, w) /(randomize(rotation, rran))[+C(l*blm, w*wm)] B(l*blm, w*wm); rewrite C(l, w) to F(l, w) /(randomize(rotation, rran))[-B(l*blm, w*wm)] C(l*blm, w*wm); interpret interpret interpret interpret interpret interpret interpret interpret
F(l, A(l, B(l, + as - as /(r) [ as ] as
w) as DrawForward(l, w); w) as DrawForward(l, w); w) as DrawForward(l, w); TurnLeft(angle); TurnLeft(-angle); as Roll(r); StartBranch(); EndBranch();
} process Tree with SvgRenderer;
44
Příloha : Progra
na generování L-systé ů – zdrojové kódy
Turtle.cs using System; using System.Collections.Generic; using System.Drawing; namespace LSystem { class Turtle { private Position position; private Bitmap buffer; private Stack
savedPositions; public Turtle(Position start, Size canvasSize) { position = start; position.angle += 180; buffer = new Bitmap(canvasSize.Width, canvasSize.Height); savedPositions = new Stack(); } public void TurnRight(float angle) { position.angle += angle; } public void TurnLeft(float angle) { TurnRight(-angle); } public void TurnBackwards() { position.angle += 180; } public void BeginBranch() { savedPositions.Push(position); } public void EndBranch() { position = savedPositions.Pop(); }
public void MoveForward(float length) { position.x += length * (float)Math.Cos(position.angle * Math.PI / 180); position.y += length * (float)Math.Sin(position.angle * Math.PI / 180); } public void DrawForward(float length) { Position oldPosition = position; MoveForward(length); DrawLine(oldPosition, position); }
45
public Bitmap GetImage() { return buffer; } private void DrawLine(Position from, Position to) { using (Graphics g = Graphics.FromImage(buffer)) { g.DrawLine(Pens.Black, from.x, from.y, to.x, to.y); } } } }
RewritingRule.cs namespace LSystem { struct RewritingRule { public RewritingRule(char toRewrite, string rewriteWith) { this.toRewrite = toRewrite; this.rewriteWith = rewriteWith; } public char toRewrite; public string rewriteWith; } }
Program.cs using System; using System.Windows.Forms; namespace LSystem { static class Program { [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new FrmLSystem()); } } }
Position.cs namespace LSystem { struct Position { public Position(float angle, float x, float y) { this.angle = angle; this.x = x; this.y = y; } public float angle, x, y; } }
46
LSystemParser.cs using System; using System.Text.RegularExpressions; namespace LSystem { class LSystemParser { private char ruleSeparator; private char rulePartsSeparator; public LSystemParser(char ruleSeparator, char rulePartsSeparator) { this.ruleSeparator = ruleSeparator; this.rulePartsSeparator = rulePartsSeparator; } public LSystem Parse(string axiom, string rules) { LSystem parsedLSystem; if (AxiomValid(axiom)) { parsedLSystem = new LSystem(axiom, getRewritingRules( SplitRules(rules, ruleSeparator), rulePartsSeparator)); } else { throw new ArgumentException( "The axiom \"" + axiom + "\"is not valid."); } return parsedLSystem; }
private RewritingRule[] getRewritingRules(string[] rules, char separator) { RewritingRule[] rewritingRules = new RewritingRule[rules.Length]; for (int i = 0; i < rules.Length; i++) { char toRewrite = rules[i][0]; string rewriteWith = rules[i].Split(separator)[1]; RewritingRule r = new RewritingRule(toRewrite, rewriteWith); rewritingRules[i] = r; } return rewritingRules; }
47
private string[] SplitRules(string rules, char separator) { rules = rules.Trim(); rules = rules.Remove(rules.Length - 1); string[] individualRules = rules.Split(separator); for (int i = 0; i < individualRules.Length; i++) { string rule = individualRules[i].Trim(); if (RuleValid(rule)) { individualRules[i] = rule; } if (!RuleValid(rule)) { throw new ArgumentException( "The rule \"" + rule + "\" is not valid."); } } return individualRules; } private bool AxiomValid(string axiom) { return Regex.IsMatch(axiom, @"^[\w\+-\[\]|]{1,}$"); } private bool RuleValid(string rule) { return Regex.IsMatch(rule, @"^[\w\+-\[\]|]{1}=[\w\+-\[\]|]{1,}$"); } } }
48
LSystemManager.cs using System.Drawing; namespace LSystem { class LSystemManager { private LSystem lSystem; private LSystemParser parser; private Turtle turtle; public LSystemManager() { parser = new LSystemParser(';', '='); } public Bitmap GetImage(string commands, float turnAngle, float stepLength, float x, float y, int width, int height) { turtle = new Turtle(new Position(90f, x, y), new Size(width, height)); foreach (char c in commands) { if (c == '+') turtle.TurnRight(turnAngle); else if (c == '-') turtle.TurnLeft(turnAngle); else if (c == '[') turtle.BeginBranch(); else if (c == ']') turtle.EndBranch(); else if (c == '|') turtle.TurnBackwards(); else if (c.ToString().ToUpper() == c.ToString()) turtle.DrawForward(stepLength); else if (c.ToString().ToLower() == c.ToString()) turtle.MoveForward(stepLength); } return turtle.GetImage(); } public string Process(string axiom, string rules, int iterations) { lSystem = parser.Parse(axiom, rules); for (int i = 0; i < iterations; i++) { lSystem.Iterate(); } return lSystem.getText(); } } }
49
LSystem.cs namespace LSystem { class LSystem { private string axiom; private string lSystem; private RewritingRule[] rules; public LSystem(string axiom, RewritingRule[] rules) { this.axiom = axiom; this.rules = rules; lSystem = axiom; } public void Iterate() { string lSystemBuffer = ""; foreach (char c in lSystem) { string rewriteWith = c.ToString(); foreach (RewritingRule r in rules) { if (r.toRewrite == c) { rewriteWith = r.rewriteWith; } } lSystemBuffer += rewriteWith; } lSystem = lSystemBuffer; } public string getText() { return lSystem; } } }
50
FrmLSystem.cs using System; using System.Windows.Forms; namespace LSystem { public partial class FrmLSystem : Form { private LSystemManager manager = new LSystemManager(); public FrmLSystem() { InitializeComponent(); } private void btnProcess_Click(object sender, EventArgs e) { try { tbxLsystem.Text = manager.Process( tbxAxiom.Text, tbxRules.Text, (int)nudIterations.Value); } catch (ArgumentException ex) { MessageBox.Show(ex.Message); } } private void btnDraw_Click(object sender, EventArgs e) { pbxTurtle.Image = manager.GetImage(tbxLsystem.Text, (float)nudAngle.Value, (float)nudLength.Value,(float)nudPositionX.Value, (float)nudPositionY.Value, pbxTurtle.Width, pbxTurtle.Height); } } }
51