VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ L-SYSTÉMY A SYSTÉMY ITEROVANÝCH FUNKCÍ POPIS A REALIZACE V PROSTREDÍ MATLAB

Podobné dokumenty
Fraktály. Kristina Bártová. Univerzita Karlova v Praze 9.prosince

Příloha 1. Náleţitosti a uspořádání textové části VŠKP

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY NÁVRH STRATEGIE ROZVOJE MALÉ RODINNÉ FIRMY THE DEVELOPMENT OF SMALL FAMILY OWNED COMPANY

Počítačové zobrazování fraktálních množin. J. Bednář*, J. Fábera**, B. Fürstová*** *Gymnázium Děčín **SPŠ Hronov ***Gymnázium Plasy

Bakalářská práce bakalářský studijní obor Teleinformatika

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ

Metodický pokyn č. 1/09 pro odevzdávání, ukládání a zpřístupňování vysokoškolských závěrečných prací

10. FRAKTÁLY. Cíl Po prostudování této kapitoly budete znát. Výklad Soběpodobnost. 10. Fraktály

Fraktály. Ondřej Bouchala, George Dzhanezashvili, Viktor Skoupý

Jana Dannhoferová Ústav informatiky, PEF MZLU

NÁVRH ŘEŠENÍ FLUKTUACE ZAMĚSTNANCŮ VE SPOLEČNOSTI

DIPLOMOVÁ PRÁCE (MMSE) Pokyny pro vypracování

Studentská tvůrčí a odborná činnost STOČ D MODELY STROMŮ PRO VYUŽITÍ V REAL-TIME APLIKACI. Michaela Brázdilová

U Úvod do modelování a simulace systémů

Fraktály a chaos. Za otce fraktální geometrie je dnes považován Benoit Mandelbrot. Při zkoumání chyb při

11 Zobrazování objektů 3D grafiky

SMĚRNICE REKTORA Č. 9/2007

ŠIFROVACÍ METODA ZALOŽENÁ NA FRAKTÁLNÍ KOMPRESI. 1. Úvod. V posledních letech se ukázalo, že teorii fraktálů lze využít v mnoha teoretických

RNDr. Martin Pivokonský, Ph.D.

GIS Geografické informační systémy

2D transformací. červen Odvození transformačního klíče vybraných 2D transformací Metody vyrovnání... 2

7 Transformace 2D. 7.1 Transformace objektů obecně. Studijní cíl. Doba nutná k nastudování. Průvodce studiem

9 Prostorová grafika a modelování těles

Geometrické transformace pomocí matic

AUTOMATIZACE CHYB OBJEDNÁVKOVÉHO SYSTÉMU AUTOMATION OF ORDERING SYSTEM ERRORS

Mgr. Ladislav Zemánek Maturitní okruhy Matematika Obor reálných čísel

VYUŽITÍ PRAVDĚPODOBNOSTNÍ METODY MONTE CARLO V SOUDNÍM INŽENÝRSTVÍ

Moderní technologie ve studiu aplikované fyziky CZ.1.07/2.2.00/ Množiny, funkce

Slovo ALGEBRA pochází z arabského al-jabr, což znamená nahrazení. Toto slovo se objevilo v názvu knihy

i=1 Přímka a úsečka. Body, které leží na přímce procházející body a a b můžeme zapsat pomocí parametrické rovnice

13 Barvy a úpravy rastrového

Aplikace multifraktální geometrie na finančních trzích

Hisab al-džebr val-muqabala ( Věda o redukci a vzájemném rušení ) Muhammada ibn Músá al-chvárizmího (790? - 850?, Chiva, Bagdád),

Matematika (CŽV Kadaň) aneb Úvod do lineární algebry Matice a soustavy rovnic

Předpokládané znalosti žáka 1. stupeň:

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

Maticí typu (m, n), kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru:

Fraktální geometrie. Topologická a fraktální dimenze. Vypracovali: Jiří Thoma Jiří Pelc Jitka Stokučová

ztrátová odstraňuje zbytečné informace z obrazu. Různé druhy ztrátových kompresních metod se liší podle druhu odstraněných zbytečných informací.

Rasterizace je proces při kterém se vektorově definovaná grafika konvertuje na. x 2 x 1

0.1 Úvod do lineární algebry

EKO-KOLONIE. Ústav informatiky, Filozoficko-přírodovědecká fakulta Slezské univerzity v Opavě 24.

GIS Geografické informační systémy

7. Funkce jedné reálné proměnné, základní pojmy

Maturitní otázky z předmětu MATEMATIKA

ZŠ ÚnO, Bratří Čapků 1332

Vývoj počítačové grafiky. Tomáš Pastuch Pavel Skrbek

IB112 Základy matematiky

transformace je posunutí plus lineární transformace má svou matici vzhledem k homogenním souřadnicím [1]

Formální jazyky a gramatiky Teorie programovacích jazyků

FAKULTA INFORMAČNÍCH TECHNOLOGIÍ

B) výchovné a vzdělávací strategie jsou totožné se strategiemi vyučovacího předmětu Matematika.

Dynamické systémy 4. Deterministický chaos. Ing. Jaroslav Jíra, CSc.

OSTRAVSKÁ UNIVERZITA V OSTRAVĚ PŘÍRODOVĚDECKÁ FAKULTA

Funkce a základní pojmy popisující jejich chování

Gymnázium Jiřího Ortena, Kutná Hora

Gymnázium Česká a Olympijských nadějí, České Budějovice, Česká 64, 37021

Systematizace a prohloubení učiva matematiky. Učebna s dataprojektorem, PC, grafický program, tabulkový procesor. Gymnázium Jiřího Ortena, Kutná Hora

Práce s texty, Transformace rastru, Připojení GPS

CZ 1.07/1.1.32/

Teorie měření a regulace

Tematický plán Obor: Informační technologie. Vyučující: Ing. Joanna Paździorová

Matematika PRŮŘEZOVÁ TÉMATA

Afinní transformace Stručnější verze

Vyučovací předmět / ročník: Matematika / 4. Učivo

Ludolfovo číslo přepočítá z diskrétního do Euklidova prostoru - 1

1 Připomenutí vybraných pojmů

BRNO UNIVERSITY OF TECHNOLOGY FAKULTA STROJNÍHO INŽENÝRSTVÍ ENERGETICKÝ ÚSTAV FACULTY OF MECHANICAL ENGINEERING ENERGY INSTITUTE

2. Množiny, funkce. Poznámka: Prvky množiny mohou být opět množiny. Takovou množinu, pak nazýváme systém množin, značí se

Základní topologické pojmy:

Informatika 8. třída/6

ŠVP Školní očekávané výstupy. - vytváří konkrétní soubory (peníze, milimetrový papír, apod.) s daným počtem prvků do 100

MATURITNÍ TÉMATA Z MATEMATIKY

MATEMATIKA Maturitní témata společná část MZ základní úroveň (vychází z Katalogu požadavků MŠMT)

Vektory a matice. Obsah. Aplikovaná matematika I. Carl Friedrich Gauss. Základní pojmy a operace

ANALYTICKÁ GEOMETRIE V ROVINĚ

0.1 Úvod do lineární algebry

Fraktální geometrie Plasnice,

OBSAHOVÁ STRÁNKA DP, BP

Maturitní témata z matematiky

6 Skalární součin. u v = (u 1 v 1 ) 2 +(u 2 v 2 ) 2 +(u 3 v 3 ) 2

Gymnázium Jiřího Ortena, Kutná Hora

MATEMATIKA 5. TŘÍDA. C) Tabulky, grafy, diagramy 1 - Tabulky, doplnění řady čísel podle závislosti 2 - Grafy, jízní řády 3 - Magické čtverce

BIOMECHANIKA KINEMATIKA

PŘÍMKA A JEJÍ VYJÁDŘENÍ V ANALYTICKÉ GEOMETRII

CVIČNÝ TEST 13. OBSAH I. Cvičný test 2. Mgr. Zdeňka Strnadová. II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17

Generování pseudonáhodných. Ing. Michal Dorda, Ph.D.

VY_32_INOVACE_INF.10. Grafika v IT

Projekt IMPLEMENTACE ŠVP. pořadí početních operací, dělitelnost, společný dělitel a násobek, základní početní operace

Křivky a plochy technické praxe

Měsíc: učivo:. PROSINEC Numerace do 7, rozklad čísla 1 7. Sčítání a odčítání v oboru do 7, slovní úlohy.

Fraktály. krásné obrázky v matematice

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE

6. Vektorový počet Studijní text. 6. Vektorový počet

Bakalářské a diplomové práce. katedra matematiky

Algoritmizace prostorových úloh

CVIČNÝ TEST 36. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17

Cvičení z matematiky - volitelný předmět

REGRESNÍ ANALÝZA V PROSTŘEDÍ MATLAB

Očekávané výstupy z RVP Učivo Přesahy a vazby

Transkript:

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA STROJNÍHO INŽENÝRSTVÍ ÚSTAV AUTOMATIZACE A INFORMATIKY FACULTY OF MECHANICAL ENGINEERING INSTITUTE OF AUTOMATION AND COMPUTER SCIENCE L-SYSTÉMY A SYSTÉMY ITEROVANÝCH FUNKCÍ POPIS A REALIZACE V PROSTREDÍ MATLAB L-SYSTEMS AND ITERATED FUNCTION SYSTEM DESCRIPTION AND APPLICATION IN MATLAB ENVIRONMENT BAKALÁŘSKÁ PRÁCE BACHELOR'S THESIS AUTOR PRÁCE AUTHOR VEDOUCÍ PRÁCE SUPERVISOR Mgr. ROBERT ZÁLEŠÁK Ing. RADOMIL MATOUŠEK, Ph.D. BRNO 2007

Vysoké učení technické v Brně, Fakulta strojního inženýrství Ústav automatizace a informatiky Akademický rok: 2006/07 ZADÁNÍ BAKALÁŘSKÉ PRÁCE student: Zálešák Robert, Mgr. který studuje v bakalářském studijním programu obor: Aplikovaná informatika a řízení (3902R001) Ředitel ústavu Vám v souladu se zákonem č. 111/1998 o vysokých školách a se Studijním a zkušebním řádem VUT v Brně určuje následující téma bakalářské práce: L-systémy a systémy iterovaných funkcí popis a realizace v prostředí Matlab v anglickém jazyce: L-systems and Iterated Function System Description and Application in Matlab Enverioment Stručná charakteristika problematiky úkolu: Bakalářská práce bude stručně popisovat a prakticky realizovat vybrané třídy fraktálních objektů označovaných jako Lindenmayerovy systémy a systémy iterovaných funkcí. Tyto dvě kategorie zcela odlišně definovaných fraktálů, kterých je možno užít k procedurálnímu modelování rozličných těles (objektů), budou stručně popsány a dále prakticky realizovány v prostředí Matlab. Cíle bakalářské práce: 1. Stručný popis problematiky s ohledem na přiměřenou rešerši dostupných zdrojů. 2. Praktickou realizaci v prostředí Matlab. Realizace bude zahrnovat: modulární řešení (funkce) pro výpočet a vizualizaci L-systémů a IFS, včetně importu a exportu dat prostředky Matlabu. 3. Pokus o pokročilou vizualizaci realizované třídy fraktálů.

Seznam odborné literatury: Mařík, V. a kol.: Umělá inteligence (3), Academia, Praha 2002, ISBN 80-200-0504-8 Vedoucí bakalářské práce: Ing. Radomil Matoušek, Ph.D. Termín odevzdání bakalářské práce je stanoven časovým plánem akademického roku 2006/07. V Brně dne 15.12.2006 L.S. doc. RNDr. Ing. Miloš Šeda, Ph.D. Ředitel ústavu doc. RNDr. Miroslav Doupovec, CSc. Děkan fakulty

1. Pan/paní LICENČNÍ SMLOUVA POSKYTOVANÁ K VÝKONU PRÁVA UŽÍT ŠKOLNÍ DÍLO uzavřená mezi smluvními stranami: Jméno a příjmení: Robert Zálešák Bytem: Kupkova 15, Brno, 638 00 Narozen/a (datum a místo): 9.4.1981, Brno (dále jen autor ) 2. Vysoké učení technické v Brně Fakulta strojního inženýrství se sídlem Technická 2896/2, 616 69 Brno a jejímž jménem jedná na základě písemného pověření děkanem fakulty: Doc. RNDr. Ing. Miloš Šeda, Ph.D., ředitel ÚAI (dále jen nabyvatel ) Čl. 1 Specifikace školního díla 1. Předmětem této smlouvy je vysokoškolská kvalifikační práce (VŠKP): disertační práce diplomová práce bakalářská práce jiná práce, jejíž druh je specifikován jako... (dále jen VŠKP nebo dílo) Název VŠKP: Vedoucí/ školitel VŠKP: Ústav: Datum obhajoby VŠKP: L-systémy a systémy iterovaných funkcí popis a realizace v prostředí Matlab Ing. Radomil Matoušek, Ph.D. Ústav automatizace a informatiky VŠKP odevzdal autor nabyvateli v * : tištěné formě počet exemplářů 2.. elektronické formě počet exemplářů 3.. * hodící se zaškrtněte

2. Autor prohlašuje, že vytvořil samostatnou vlastní tvůrčí činností dílo shora popsané a specifikované. Autor dále prohlašuje, že při zpracovávání díla se sám nedostal do rozporu s autorským zákonem a předpisy souvisejícími a že je dílo dílem původním. 3. Dílo je chráněno jako dílo dle autorského zákona v platném znění. 4. Autor potvrzuje, že listinná a elektronická verze díla je identická. Článek 2 Udělení licenčního oprávnění 1. Autor touto smlouvou poskytuje nabyvateli oprávnění (licenci) k výkonu práva uvedené dílo nevýdělečně užít, archivovat a zpřístupnit ke studijním, výukovým a výzkumným účelům včetně pořizovaní výpisů, opisů a rozmnoženin. 2. Licence je poskytována celosvětově, pro celou dobu trvání autorských a majetkových práv k dílu. 3. Autor souhlasí se zveřejněním díla v databázi přístupné v mezinárodní síti ihned po uzavření této smlouvy 1 rok po uzavření této smlouvy 3 roky po uzavření této smlouvy 5 let po uzavření této smlouvy 10 let po uzavření této smlouvy (z důvodu utajení v něm obsažených informací) 4. Nevýdělečné zveřejňování díla nabyvatelem v souladu s ustanovením 47b zákona č. 111/ 1998 Sb., v platném znění, nevyžaduje licenci a nabyvatel je k němu povinen a oprávněn ze zákona. Článek 3 Závěrečná ustanovení 1. Smlouva je sepsána ve třech vyhotoveních s platností originálu, přičemž po jednom vyhotovení obdrží autor a nabyvatel, další vyhotovení je vloženo do VŠKP. 2. Vztahy mezi smluvními stranami vzniklé a neupravené touto smlouvou se řídí autorským zákonem, občanským zákoníkem, vysokoškolským zákonem, zákonem o archivnictví, v platném znění a popř. dalšími právními předpisy. 3. Licenční smlouva byla uzavřena na základě svobodné a pravé vůle smluvních stran, s plným porozuměním jejímu textu i důsledkům, nikoliv v tísni a za nápadně nevýhodných podmínek. 4. Licenční smlouva nabývá platnosti a účinnosti dnem jejího podpisu oběma smluvními stranami. V Brně dne:... Nabyvatel.. Autor

ABSTRAKT Práce se zabývá dvěma třídami fraktálních objektů označovaných jako L- systémy a systémy iterovaných funkcí. Je proveden jejich stručný popis včetně rešerše týkající se základních pojmů z oblasti fraktálů. Dále je provedena jejich praktická realizace s využitím matematického softwaru Matlab. Pro geometrickou interpretaci fraktálů vytvořených pomocí L-systémů je využito tzv. želví grafiky. IFS fraktály jsou vytvářeny s využitím algoritmu náhodné procházky. Na závěr je provedena pokročilá vizualizace a to s využitím programu POV-Ray. ABSTRACT Thesis deals with two classes of fractal objects known as L-systems and iterated function systems (IFS). Brief description is made including insight into basic definitions in fractals area. Then their practical realization is performed using mathematical software Matlab. For geometrical interpretation of fractals created by L-systems "turtle graphics" is used. IFS fractals are created using random walk algorithm. Finally advanced visualization is made using software POV-Ray. KLÍČOVÁ SLOVA Fraktály, Lindenmayerovy sytémy (L-systémy), systémy iterovaných funkcí (IFS), želví grafika, algoritmus náhodné procházky (RWA) KEYWORDS Fractals, Lindenmayer systems (L-systems), iterated function systems (IFS), turtle graphics, random walk algorithm (RWA) 7

8

Děkuji Ing. Radomilu Matouškovi, Ph.D. za odborné vedení a za poskytnuté konzultace, které mi pomohly vypracovat tuto bakalářskou práci. 9

10

OBSAH ZADÁNÍ BAKALÁŘSKÉ PRÁCE...3 LICENČNÍ SMLOUVA...5 ABSTRAKT, KLÍČOVÁ SLOVA...7 1 ÚVOD...13 2 FRAKTÁLY...15 2.1 HISTORICKÝ VÝVOJ FRAKTÁLŮ...15 2.2 DEFINICE FRAKTÁLŮ, VYMEZENÍ POJMŮ...16 2.2.1 Definice fraktálů...16 2.2.2 Soběpodobnost a soběpříbuznost...17 2.2.3 Fraktální dimenze...17 2.3 DĚLENÍ FRAKTÁLŮ...18 2.4 VYUŽITÍ FRAKTÁLŮ...19 3 L SYSTÉMY...21 3.1 ÚVOD DO L-SYSTÉMŮ...21 3.2 ŽELVÍ GRAFIKA...22 3.3 FRAKTÁLY VYTVOŘENÉ POMOCÍ DETERMINISTICKÝCH L-SYSTÉMŮ...22 3.3.1 Kochova křivka a Kochova vločka...22 3.3.2 Sierpinského trojúhelník...24 3.3.3 Hilbertova, Peano-Gosperova a dračí křivka...25 3.3.4 Použití zásobníku pro větvící se struktury...26 3.4 STOCHASTICKÉ L-SYSTÉMY...29 4 SYSTÉMY ITEROVANÝCH FUNKCÍ...31 4.1 ÚVOD DO SYSTÉMŮ ITEROVANÝCH FUNKCÍ...31 4.2 TEORIE SYSTÉMŮ ITEROVANÝCH FUNKCÍ...32 4.2.1 Afinní transformace...32 4.2.2 Algoritmus náhodné procházky...33 4.3 FRAKTÁLY VYTVOŘENÉ POMOCÍ IFS...33 4.3.1 Kochova křivka...33 4.3.2 Sierpinského trojúhelník...34 4.3.3 Barnsleyovo kapradí...35 4.3.4 Sierpinského kobereček...36 4.3.5 Některé další známé příklady IFS fraktálů...37 5 REALIZACE FRAKTÁLŮ V PROSTŘEDÍ MATLAB...39 5.1 SCHÉMA REALIZACE...39 5.2 REALIZACE L-SYSTÉMŮ...40 5.3 REALIZACE IFS FRAKTÁLŮ...41 6 POKROČILÁ VIZUALIZACE...45 11

OBSAH 6.1 ÚVOD DO PROGRAMU POV-RAY... 45 6.2 EXPORT DAT Z MATLABU A VYTVÁŘENÍ SCÉN V PROGRAMU POV-RAY... 46 6.3 UKÁZKY VIZUALIZACE S VYUŽITÍM PROGRAMU POV-RAY... 47 6.4 ANIMACE... 49 7 ZÁVĚR... 51 LITERATURA... 53 PŘÍLOHY... 55 PŘEHLED FRAKTÁLŮ VYTVOŘENÝCH POMOCÍ L-SYSTÉMŮ... 55 PŘEHLED FRAKTÁLŮ VYTVOŘENÝCH POMOCÍ IFS... 59 CD NOSIČ... 63 12

1 ÚVOD Tato práce se zabývá dvěma třídami fraktálů (fraktálních objektů) označovaných jako Lindenmayerovy systémy (zkráceně L-systémy) a systémy iterovaných funkcí (zkráceně IFS). Mezi cíle této práce patří stručná rešerše týkající se vymezení a vysvětlení základních pojmů z oblasti fraktálů a fraktální geometrie s detailnějším zaměřením na L-systémy a systémy iterovaných funkcí. Další cíle představují provedení praktické realizace těchto tříd fraktálů v prostředí Matlab a pokus o pokročilou vizualizaci. Kapitola 2 stručně shrnuje historický vývoj fraktálů, zabývá se definicí pojmu fraktál a vysvětluje další pojmy, které s fraktály úzce souvisí, jako jsou soběpodobnost, fraktální (nebo též Hausdorffova) dimenze apod. Je v ní také provedeno rozdělení a využití fraktálů. Kapitola 3 se zaměřuje na L-systémy. Jsou v ní vysvětleny základní pojmy týkající se L-systémů včetně pojmu želví grafika, pomocí které jsou fraktály vytvořené L- systémy zobrazovány. Podstatná část této kapitoly je také věnována popisům a konstrukcím fraktálů vytvářených pomocí deterministických i stochastických L- systémů. Konkrétně se jedná o Kochovu křivku, Kochovu vločku, Sierpinského trojúhelník, Hilbertovu křivku, různé rostliny vytvářené deterministicky i stochasticky a další. Kapitola 4, která pojednává o systémech iterovaných funkcí, se mimo jiné zabývá afinními transformacemi, pomocí kterých IFS generují fraktály. Jedna z podkapitol této kapitoly je také věnována algoritmu náhodné procházky (zkráceně RWA), který je využit při vytváření fraktálů, které jsou součástí této kapitoly. Patří mezi ně Kochova křivka, Sierpinského trojúhelník, Barnsleyovo kapradí, Sierpinského kobereček, sněhová vločka a další. V kapitole 5 je nejprve obecně popsán postup, podle kterého byly v prostředí Matlab prakticky realizovány dvě výše zmíněné třídy fraktálů. Další části se zabývají konkrétními způsoby realizace L-systémů a IFS fraktálů. Kapitola 6 se zabývá pokročilou vizualizací fraktálů generovaných v matematickém softwaru Matlab. K této vizualizaci je použit program POV-Ray, do kterého jsou data získaná pomocí Matlabu importována. V další části této kapitoly jsou uvedeny konkrétní ukázky vizualizace s využitím programu POV-Ray. Kapitola končí zmínkou o možnosti vytváření animací v programu POV-Ray. V příloze se nachází přehledy fraktálů, které byly v rámci této práce pomocí L- systémů a systémů iterovaných funkcí vytvořeny. 13

14

2 FRAKTÁLY V této kapitole je nejprve stručně shrnut historický vývoj fraktálů. Další část se zabývá definováním pojmu fraktál a vymezením dalších pojmů, které s fraktály úzce souvisí. Dále je provedeno rozdělení fraktálů a závěr této kapitoly je věnován využití fraktálů. 2.1 Historický vývoj fraktálů Matematické konstrukce podivných útvarů, které se značně lišily od geometricky ideálních objektů, se začaly objevovat na přelomu 19. a 20. století [02]. Mezi takové konstrukce patřila spojitá funkce, která nemá v žádném bodě derivaci, objevená Karlem Weierstrassem v roce 1872. Tato funkce se chová jako fraktál, neboť zvětšené části grafu a původní graf jsou podobné (pojmem soběpodobnost se bude zabývat kapitola 2.2.2. Soběpodobnost a soběpříbuznost). Roku 1884 Georg Cantor přišel s diskontinuem. Cantorovo diskontinuum (viz [13]) představuje množinu (tzv. Cantorovu množinu), která je konstruována v iteračních krocích, kdy na počátku je dán uzavřený interval [0,1] a v každém kroku je vynechána druhá třetina tohoto intervalu a všech dalších, které zbyly z předchozích iterací. Cantorova množina je znázorněna na obr. 1 (převzato z [13]). Následně v roce 1904 sestrojil Helge von Koch nekonečně dlouhou křivku, která ohraničuje konečnou plochu. Tzv. Kochova křivka bude podrobně popsána v pozdějších kapitolách. V roce 1918 Gaston Maurice Julia a Pierre Fatou popsali konstrukci tzv. Juliových množin a roku 1919 podal Felix Hausdorff definici Hausdorffovy (nebo také fraktální) dimenze, která pro mnohé objekty vychází neceločíselná. Hausdorffovou dimenzí se bude zabývat kapitola 2.2.3 Fraktální dimenze. Obr. 1 Cantorova množina po čtyřech iteracích. Vědní disciplína zabývající se fraktály se nazývá fraktální geometrie a je intenzivně rozvíjena od šedesátých let minulého století [06]. Za jejího zakladatele je považován vědec polského původu Benoid B. Mandelbrot. 15

KAPITOLA 2. FRAKTÁLY Pojem fractal se poprvé objevuje až v roce 1975 v publikaci, jejímž autorem je B. B. Mandelbrot. Tento pojem pochází z latinského slova fractus značící zlomený, rozbitý, apod. (viz [02]). 2.2 Definice fraktálů, vymezení pojmů 2.2.1 Definice fraktálů Všeobecně platná definice fraktálu prozatím neexistuje (viz [07]). Například Mandelbrot označil za fraktál množinu, jejíž hodnota Hausdorffovy dimenze je větší než hodnota dimenze topologické [05] (bude vysvětleno v kapitole 2.2.3 Fraktální dimenze). Fraktál lze také charakterizovat jako nekonečně členitý útvar [07], i když se tak na první pohled nemusí jevit, což je způsobeno nedokonalou rozlišovací schopností pozorujícího objektu (lidského oka nebo technického zařízení jako je například obrazovka nebo tiskárna). Neboli co se z dálky může jevit jako objekt jednoduchého tvaru (například čtverec), může po přiblížení (tedy po změně měřítka) vypadat poněkud složitěji (obr. 2). Na obr. 2 je zobrazena Hilbertova křivka, která bude zmíněna ještě v kapitole 3 s názvem L-systémy. Obr. 2 Hilbertova křivka pozorovaná při změně měřítka (při postupném přibližování). Za fraktály lze považovat (viz [01]) geometrické objekty, které mají následující vlastnosti: jsou soběpodobné nebo soběpříbuzné mají neceločíselnou dimenzi mají na první pohled složitý tvar, ale jsou generovány jednoduchými pravidly 16

KAPITOLA 2. FRAKTÁLY 2.2.2 Soběpodobnost a soběpříbuznost Soběpodobnost lze definovat [07] jako invarianci (neměnnost) vůči změně měřítka (obr. 3). Ať je daný soběpodobný útvar pozorován v jakémkoli měřítku, vykazuje stále stejný charakteristický tvar. Dalo by se tedy říci, že soběpodobnost znamená opakování sebe sama při určité transformaci, jako je například změna měřítka, rotace, translace nebo zkosení. Kromě lineárních transformací se může jednat i o transformace nelineární, vždy to však musí být transformace kontrahující, což znamená, že vzdálenost dvou libovolných nestejnolehlých bodů se po aplikaci transformace musí zmenšit. Obr. 3 Ukázka soběpodobnosti krystalu pomocí změny měřítka. Soběpříbuznost je určité zobecnění soběpodobnosti. Vyskytuje se u fraktálů, které jsou generovány stochasticky, tj. pomocí více pravidel, kde každé má přiřazenu hodnotu pravděpodobnosti výběru. Mezi soběpříbuzné fraktály patří i Mandelbrotova a Juliovy množiny, i když jsou generovány deterministickými algoritmy (viz [02]). 2.2.3 Fraktální dimenze Pro základní geometrické útvary a tělesa (jako například čtverec nebo krychli) jsou známy vzorce a vztahy, díky nimž lze vypočítat jejich geometrické charakteristiky jako například obvod, obsah nebo objem, a přitom změnou měřítka se tyto charakteristiky nemění (výsledek je vždy stejný). Například čtverec s danou délkou strany bude mít při libovolném přibližování (změně měřítka) vždy stejný obvod. Takovéto útvary nazýváme geometricky hladké [06]. Veličiny jako například obvod, obsah nebo objem mohou být spočítány i pro poněkud složitější útvary, které vzniknou kombinací konečného počtu elementárních útvarů, ale výsledky jsou opět nezávislé na použitém měřítku. Každému geometricky hladkému útvaru může být přiřazeno jisté celé číslo, které nazýváme počet rozměrů nebo také (topologická) dimenze daného útvaru (viz [06]). Hodnota této dimenze udává, jaký je počet parametrů nutných k určení pozice bodu, který přísluší danému objektu. Například úsečka, přímka či jiná křivka (parabola nebo sinusová křivka apod.) má dimenzi rovnu 1. Reálný svět si však s geometricky hladkými útvary nevystačí, protože například kameny nebo mraky nejsou koule, hory nejsou kužely apod. 17

KAPITOLA 2. FRAKTÁLY Problém může nastat i při měření délky pobřeží [02] (což je křivka s topologickou dimenzí rovnou jedné): při zmenšování měřítka se naměřená hodnota postupně stává nekonečně velkou (při zmenšení měřítka jsou vidět i detaily pobřeží, které nebyly například na mapě s větším měřítkem viditelné). Pobřeží tedy v rovině zabírá více místa než hladká křivka. Nezabírá však všechno místo, protože nevyplňuje celou rovinu. Jeho skutečná dimenze je tedy větší než topologická dimenze křivky (ta je rovna jedné) a zároveň je menší než topologická dimenze roviny (ta je rovna dvěma). Toto necelé číslo se nazývá fraktální, Hausdorffova, případně Hausdorffova- Besicovicova dimenze (viz [02]). Hodnota fraktální dimenze udává, s jakou rychlostí při zmenšování měřítka roste do nekonečna například délka fraktálních útvarů. Jestliže se Hausdorffova dimenze a topologická dimenze budou lišit velmi málo, bude takový objekt málo členitý a naopak. 2.3 Dělení fraktálů Fraktály lze rozdělit [07] do několika skupin, přičemž fraktály ze stejné skupiny mají shodné své nejvýznamnější charakteristiky. Mezi základní skupiny fraktálů patří: 4. L-systémy Systémy iterovaných funkcí Dynamické systémy s fraktální strukturou Náhodné fraktály L-systémy a Systémy iterovaných funkcí se budou podrobně zabývat kapitoly 3 a Dynamickými systémy se označují (viz [06]) matematické modely, které jsou závislé na nějaké proměnné (nejčastěji to bývá na čase). Systém je většinou popsán soustavou diferenciálních rovnic a může nabývat různých stavů. Přitom u některých dynamických systémů tento stavový prostor tvoří fraktál (dynamické systémy s fraktální strukturou). Většinou je nelze použít pro zkoumání přírodních objektů, protože vytváří sice abstraktní, zato často fascinující obrazce. Mezi nejznámější představitele dynamických systémů patří Mandelbrotova množina (obr. 4, převzato z [06]) a Juliovy množiny. 18

KAPITOLA 2. FRAKTÁLY Obr. 4 Mandelbrotova množina. Náhodné fraktály (viz [06]) umožňují nejreálnější popis přírodních objektů. Zatímco při generování například stromu klasickým L-systémem nebo systémem iterovaných funkcí získáme strom symetrický případně do jisté míry symetrický (viz kapitola 2.2.2 Soběpodobnost a soběpříbuznost), skutečný strom v přírodě vypadá poněkud odlišně: má nepravidelné délky a tloušťky větví, úhel růstu větví je různý, strom rostoucí v lese bude mít jiný tvar než tentýž druh stromu rostoucí osamoceně apod. Náhodné fraktály mohou být vytvářeny např. pomocí: - Brownova pohybu: bod se náhodně přesouvá v rovině nebo v prostoru a zanechává za sebou stopu. Tato metoda se používá například při generování toků řek. - Metody přesouvání středního bodu: často se používá v počítačové grafice k vygenerování a následné vizualizaci přírodní krajiny. 2.4 Využití fraktálů Fraktály nalezly uplatnění (viz [06]) v nejrůznějších oblastech. Mohou být využity ve fyzice, biologii nebo medicíně. Například při zkoumání vlastností krve se měří Hausdorffova dimenze. Dále se například zkoumá, zda má nějakou souvislost Hausdorffova dimenze povrchu mozku a inteligence člověka či jeho paměťové schopnosti (povrch mozku je tvořen mozkovými závity, které svým počtem a členitostí určují různé schopnosti mozku, například paměť či inteligenci). 19

KAPITOLA 2. FRAKTÁLY Další uplatnění fraktálů je v počítačové grafice, například při modelování přírodních útvarů (jako jsou stromy, rostliny, mraky, hory, kameny apod.) nebo při generování textur, kde je výhodou fraktálů jejich paměťová nenáročnost. Ta je využita i při fraktálové kompresi. Oblastí využití fraktálů je také výtvarné umění (obr. 5, převzato z [07]). Obr. 5 Juliova množina v hyperkomplexním prostoru. Je vhodné poznamenat, že pro vytvoření celého fraktálu je zapotřebí nekonečné množství iterací, které tedy budou spočítány v nekonečném čase. V praktických realizacích se proto provádí pouze konečný počet iterací, jejichž výsledkem je pouze přibližný tvar fraktálu (viz [06]). 20

3 L SYSTÉMY Začátek této kapitoly obecně pojednává o L-systémech a vysvětluje některé základní pojmy týkající se L-systémů. Další část je věnovaná popisům a konstrukcím některých známých fraktálů vytvořených pomocí deterministických L-systémů. Kapitolu uzavírají stochastické L-systémy. 3.1 Úvod do L-systémů L-systémy neboli Lindenmayerovy systémy získaly svůj název podle maďarského biologa Aristida Lindenmayera, který v 60. letech minulého století rozvinul formální popis vývoje biologických systémů určený pro simulace na počítačích. Základní myšlenka spočívala v tom, že na vývoj organismu může být nahlíženo jako na vykonávání určitého programu, který je uložen v oplodněném vajíčku (viz [02]). L-systémy generují řetězce znaků, které jsou v jednotlivých iteračních krocích přepisovány podle určitých přepisovacích pravidel. Každému symbolu v řetězci je přiřazen jistý geometrický význam jako například posun vpřed o zadanou délku, otočení o určitý úhel apod. L-systém bývá označovaný [01] jako bezkontextový L-systém (neboli 0L-systém), jestliže je výběr použitelného pravidla závislý pouze na právě nahrazovaném symbolu a nikoliv na jeho kontextu (tedy na symbolech před a za ním). Některé simulace (např. šíření různých látek v těle rostlin) vyžadují vzít v úvahu právě naznačené kontexty. Bezkontextový L-systém je tvořen: výchozím řetězcem (axiomem) množinou přepisovacích pravidel množinou symbolů, které se mohou vyskytovat v řetězci (tzv. abecedou) Tato trojice se také nazývá gramatika L-systému (viz [07]). Výchozí řetězec je tvořen neprázdným slovem (slovo je řetězec symbolů). Přepisovací pravidlo určuje, jaký symbol bude nahrazen jakým slovem a abeceda je tvořena terminálními a neterminálními symboly. Neterminální symbol je takový, který může být přepsán, naopak terminální být přepsán nemůže. L-systémy mohou být rozděleny na deterministické a stochastické (viz [01]). Deterministický L-systém je takový, ve kterém je každému neterminálnímu symbolu přiřazeno pouze jedno přepisovací pravidlo. Deterministický L-systém generuje při stejném počtu opakování (iterací) vždy stejný obrazec, protože výsledný řetězec je pokaždé stejný. U stochastických L-systémů tomu tak není, protože jednotlivým 21

KAPITOLA 3. L-SYSTÉMY neterminálním symbolům může být přiřazeno více přepisovacích pravidel (existuje více pravidel pro náhradu jednoho symbolu). Pomocí L-systémů mohou být generovány fraktály, které se podobají rostlinám, stromům a dalším přírodním útvarům. L-systémy jsou také využívány v geologii, biologii a dalších přírodních vědách. 3.2 Želví grafika L-systémy generují řetězce znaků. Pro geometrickou interpretaci takto vytvořených řetězců se používá tzv. želví grafika (viz např. [01], [07]), která je známá z programovacího jazyka LOGO, ve kterém se pomocí jednoduchých příkazů daly pomocí želvy kreslit různé obrazce. Jednotlivé symboly řetězce se chápou jako příkazy pro řízení pohybu želvy. Želva sekvenčně čte vygenerovaný řetězec a jednotlivé symboly interpretuje jako příkazy (posun vpřed o zadanou délku apod.). Mezi základní příkazy patří: F = posun želvy vpřed o zadanou délku, želva za sebou zanechává stopu ve formě úsečky f = posun želvy vpřed o zadanou délku bez zanechání stopy + = želva se na místě otočí doleva o zadaný úhel α - = želva se na místě otočí doprava o zadaný úhel α = želva změní svůj směr na opačný Dalšími příkazy mohou být příkazy pro zapamatování pozice a orientace želvy apod. 3.3 Fraktály vytvořené pomocí deterministických L-systémů 3.3.1 Kochova křivka a Kochova vločka Niels Fabian Helge von Koch byl švédský matematik, který v roce 1904 představil křivku, která po něm nese jméno. Vytváření Kochovy křivky (viz [07]) spočívá v provedení následujících kroků: 1. nejprve je zadán počáteční řetězec v podobě úsečky zadané délky. 2. úsečka je rozdělena na třetiny, prostřední úsečka se vyjme a nahradí se rameny rovnoramenného trojúhelníku. Z původní úsečky tedy vznikne obrazec, který představuje lomená úsečka, jejíž délka je rovna 3 4 délky původní úsečky (lomenou úsečku tvoří 4 úsečky, každá s délkou, která je rovna 3 1 délky původní úsečky). 22

KAPITOLA 3. L-SYSTÉMY 3. na vzniklý obrazec se opakovaně aplikuje pravidlo uvedené v předchozím bodě. Pro zobrazení Kochovy křivky v programu Matlab jsou využity 3 symboly: F, +, -. Geometrická interpretace těchto symbolů je uvedena v kapitole 3.2 Želví grafika. Přepisovací pravidlo uvedené v bodě 2. má pak následující podobu: F F + F F + F (symbol nacházející se vlevo od matematického symbolu je nahrazen řetězcem symbolů, které se od nachází vpravo) a úhel α = 60. Pomocí Matlabu je nejdříve vytvořen (vypočten) řetězec, který je poté opět s využitím programu Matlab vykreslen. Několik prvních iterací takto vytvořené Kochovy křivky je zobrazeno na obr. 6. Obr. 6 Prvních 6 iterací Kochovy křivky. Při výpočtu fraktální dimenze Kochovy křivky (viz [02]) se vyjde ze skutečnosti, že při každé iteraci se délka každé hrany zmenší na 3 1 své původní hodnoty a počet soběpodobných úseků vzroste čtyřikrát (neboli při trojnásobném zjemnění se délka Kochovy křivky zvětší čtyřikrát). Fraktální (Hausdorffova) dimenze Kochovy křivky se získá ze vztahu: log N D H =, (1) 1 log ε 1 kde N označuje faktor změny délky a faktor změny měřítka. Po dosazení N = 4 a ε 1 ε = má fraktální dimenze Kochovy křivky po zaokrouhlení hodnotu: D H= 1, 262. 3 Kochova vločka je vytvořena stejným způsobem jako Kochova křivka, změna nastává pouze v počátečním řetězci, který tvoří trojúhelník a který je pro potřeby želví grafiky zapsán následovně: F F F. Na obr. 7 je znázorněno několik prvních iterací Kochovy vločky. 23

KAPITOLA 3. L-SYSTÉMY Obr. 7 Prvních 6 iterací Kochovy vločky. 3.3.2 Sierpinského trojúhelník Autorem dalšího klasického fraktálu je polský matematik Waclaw Franciszek Sierpinski, který jej publikoval v roce 1916. Při konstrukci Kochovy křivky a vločky bylo použito pouze jedno přepisovací pravidlo, u Sierpinského trojúhelníku (viz [01]) to jsou již přepisovací pravidla dvě. Počátečním řetězcem (axiomem) je obvykle rovnoramenný trojúhelník ( axiom = FGF + + FF + + FF ). Symbol G představuje pomocný, tzv. negrafický prvek, který želví grafika jednoduše ignoruje. Sierpinského trojúhelník vzniká odstraněním trojúhelníku s vrcholy ve středech stran původního trojúhelníku. V dalších iteracích se odstraňují analogicky středy zůstávajících trojúhelníků. α = 60 a přepisovací pravidla mají následující podobu: F FF, G + + FGF FGF FGF + +. Popsaná konstrukce je patrná z prvních iterací Sierpinského trojúhelníku, které jsou zobrazeny na obr. 8. 1 V první iteraci se získá N = 3 pokrývacích útvarů s měřítkem ε = (jeden 2 trojúhelník je nahrazen třemi trojúhelníky s poloviční délkou stran). Ve druhé iteraci 1 1 1 n pak N = 3 3 = 9 útvarů s měřítkem ε = =. Tedy obecně v n -té iteraci N= 3 2 2 4 a ε 1 = 2 n. Fraktální dimenze Sierpinského trojúhelníku (viz [02]) je pak: D H log N = lim ε 0 1 log ε log 3 = lim n log 2 n n nlog 3 = lim = n n log 2 log3 log 2 = 1,585 (2) 24

KAPITOLA 3. L-SYSTÉMY Obr. 8 Prvních 6 iterací Sierpinského trojúhelníku. 3.3.3 Hilbertova, Peano-Gosperova a dračí křivka Dalšími známými fraktály, které lze vytvořit pomocí L-systémů, jsou Hilbertova křivka [07] a Peano-Gosperova křivka [14], které jsou zajímavé především tím, že zatímco jejich topologická dimenze je rovna jedné, hodnota jejich fraktální dimenze je rovna dvěma, tedy i když jsou vytvořeny pomocí na sebe navazujících úseček, vyplňují současně celou plochu. Gramatiky těchto dvou křivek lze nalézt v příloze této bakalářské práce. Jsou zobrazeny na obr. 9, Hilbertova křivka po 6. iteraci a Peano- Gosperova křivka po 4. iteraci. Obr. 9 Hilbertova a Peano-Gosperova křivka. 25

KAPITOLA 3. L-SYSTÉMY Tzv. dračí křivka [07] (obr. 10) je dalším příkladem fraktálního objektu, který je vytvořen pomocí L-systémů a má také fraktální dimenzi rovnu dvěma. Její počáteční řetězec tvoří úsečka, která je v prvním iteračním kroku ohnuta o pravý úhel doleva, tedy vzniknou dvě úsečky navzájem svírající úhel 90. Ve druhém iteračním kroku jsou tyto dvě úsečky opět ohnuty: první o pravý úhel doleva, druhá o pravý úhel doprava. Výsledkem pak je čtveřice úseček, které tvoří lomenou čáru. V dalších iteracích probíhá ohyb úseček podle stejného principu. Gramatika dračí křivky je k nalezení v příloze této práce. Obr. 10 Dračí křivka po 16 iteracích. 3.3.4 Použití zásobníku pro větvící se struktury Všechny předchozí fraktály vyobrazené na obr. 6 až 10 mají mimo jiné společnou tu vlastnost, že byly vytvořeny jedním tahem (nepřerušovaným pohybem želvy), tedy netvořily a ani nemohly tvořit rozvětvující se struktury. To je zapříčiněno tím, že želva, která fraktály na základě vytvořeného řetězce vykreslovala, neměla k dispozici žádnou paměť, do které by si ukládala svůj předchozí stav (stavy), tedy svou pozici a orientaci. Pro strukturu rostlin jsou ale typická větvení, tedy želva se musí vrátit po nakreslení jedné větve bez nakreslení čáry. Pro takovýto posun bez zanechání stopy bývá definován symbol f. Větvení rostlin ale mají obvykle rekurzivní charakter a pro tento účel se hodí použití zásobníku (viz [01]). Do něj se v místě větvení uloží stav či více stavů želvy. Při vybrání ze zásobníku se želva vrátí na zapamatované místo a obnoví přitom i svoji orientaci. Obvykle se pro operace vkládání do zásobníku a výběr ze zásobníku používají otvírací a zavírací hranaté závorky. Ty nebyly vybrány náhodně, protože mezi znaky [ a ] jsou vkládány relativně samostatné sekvence příkazů, které ve výsledku neovlivní stav želvy (želva se po interpretaci řetězce uloženého mezi těmito závorkami vrátí zpět do původní pozice). L-systémy rozšířené o výše uvedenou dvojici terminálních symbolů bývají označovány jako závorkové L-systémy (viz [07]). 26

KAPITOLA 3. L-SYSTÉMY Jednoduchá virtuální rostlina generovaná L-systémem s přepisovacím pravidlem ve tvaru F FF + [ + F F F] [ F + F + F] (viz [01]), počátečním řetězcem + +++F a úhlem α = 22, 5 je zobrazena na obr. 11. Obr. 11 Rostlina po 4 iteracích. Nejrůznějších rostlin může být pomocí L-systémů vygenerováno libovolně velké množství. Na ukázku jsou na obr. 12 znázorněny 2 rostliny, na kterých je zajímavé to, že jejich přepisovací pravidlo se od přepisovacího pravidla rostliny zobrazené na obr. 11 liší pouze v jediném znaku. Rostlina umístěná vlevo na obr. 12 má přepisovací pravidlo ve tvaru: F FF + [ + F F F] [ F + F F], rostlina umístěná vpravo: F FF + [ + F F F] [ F F + F]. 27

KAPITOLA 3. L-SYSTÉMY Obr. 12 2 rostliny po 4 iteracích. Na obr. 13 jsou další dvě rostliny vytvořené L-systémem, které mají stejný počáteční řetězec + + + + G, také stejné přepisovací pravidlo F FF i stejný úhel α = 22, 5. Liší se nepatrně pouze ve druhém přepisovacím pravidle (viz [05]), přesto tyto rostliny vypadají vzájemně značně odlišně. Rostlina vlevo má toto pravidlo ve tvaru: G F[ + G][ G] FG, rostlina vpravo: G F[ + G] F[ G] + G. Obr. 13 2 rostliny po 7 iteracích. 28

KAPITOLA 3. L-SYSTÉMY 3.4 Stochastické L-systémy Všechny doposud uvedené příklady L-systémů byly vytvořeny deterministicky, tedy tak, kdy při stejném počtu iterací je daný L-systém vygenerován vždy stejně. Pokud by byly tímto způsobem vytvářeny i přírodní objekty jako jsou stromy a keře, bude patrné, že se od skutečných přírodních objektů liší. To je způsobeno tím, že reálné přírodní objekty nejsou zcela pravidelné, ale obsahují jisté náhodné prvky (které však nemění celkový geometrický ani topologický tvar objektu). Z tohoto důvodu se pro lepší simulaci reality používají tzv. stochastické L-systémy (viz [01] a [07]), kde na rozdíl od deterministických L-systémů existuje více přepisovacích pravidel pro náhradu jednoho symbolu. Na obr. 14 jsou zobrazeny 4 rostliny, které byly vytvořeny pomocí totožného stochastického L-systému, jehož výpočet byl 4x proveden v programu Matlab a jak je z obrázku patrné, pokaždé se vykreslila jiná rostlina. Gramatika tohoto L-systému se třemi přepisovacími pravidly pro jeden symbol je opět k nalezení v příloze této práce. Obr. 14 Stochastické rostliny. Výsledná podoba stochastického L-systému může být ovlivněna nejen náhodou, ale i prioritami, které jsou přiřazeny jednotlivým přepisovacím pravidlům, které slouží k nahrazování stejného symbolu. V předchozím příkladu, kde byl jeden symbol nahrazován pomocí trojice přepisovacích pravidel, byla každému z těchto pravidel přiřazena hodnota pravděpodobnosti výběru 3 1. Pokud se u tohoto L-systému tyto 1 1 1 pravděpodobnosti změní na hodnoty, a, dojde k jistým odlišnostem 2 3 6 v charakteru vykreslované rostliny, které jsou patrné z obr. 15. 29

KAPITOLA 3. L-SYSTÉMY Obr. 15 Stochastické rostliny 2. 30

4 SYSTÉMY ITEROVANÝCH FUNKCÍ V této kapitole jsou nejprve podány základní informace o systémech iterovaných funkcí a afinních transformacích, které s IFS úzce souvisí. Dále je popsána jedna z metod, jakou lze fraktály konstruované pomocí IFS generovat a závěr kapitoly se věnuje konkrétním ukázkám fraktálů, které lze pomocí IFS vytvořit. 4.1 Úvod do systémů iterovaných funkcí Systémy iterovaných funkcí bývají často označovány zkratkou IFS z anglického Iterated Function Systems (viz [07]). První publikace týkající se systémů iterovaných funkcí se objevují v 80. letech minulého století. Známá je například publikace s názvem Fractals Everywhere autora Michaela Barnsleyho vydaná v roce 1988. Systémy iterovaných funkcí generují fraktály pomocí afinních transformací (viz [07]). Afinní transformace jsou lineární, to znamená, že například při aplikaci takové transformace na úsečku, resp. množinu bodů ležících na přímce, bude výsledkem transformace rovněž úsečka (resp. množina bodů ležící na přímce). Afinní transformace provádí s daným objektem několik operací, jako jsou translace, rotace, změna měřítka apod. Jinak řečeno, afinní transformace vzniká složením několika lineárních transformací. V některých případech se však používají i transformace nelineární (ohyb, zkrut, zborcení apod.). K vybudování fraktálního objektu obvykle nestačí jen jedna afinní transformace, ale je jich potřeba několik. Systém iterovaných funkcí je tvořen množinou afinních transformací a k nim přiřazenými pravděpodobnostmi. Větší pravděpodobnost je přiřazena těm afinním transformacím, které mají větší míru kontrakce (pojem kontrakce bude vysvětlen v kapitole 4.2.1 Afinní transformace). IFS je generativní metoda vytváření fraktálů, která se řadí mezi deterministické. Algoritmus pro generování IFS fraktálů však může být jak deterministický, tak nedeterministický [06]. IFS mohou být využity (viz [06]) při generování textur, např. v počítačových hrách. Metoda IFS se ukázala také výhodná pro kompresi dat, jelikož jedna transformace je v tomto případě zapsána pouze pomocí osmi čísel (šest čísel na zapsání transformace a dvě čísla na změnu kontrastu a jasu). Metodu IFS využívá mimo jiné i grafický formát FIF. Další možnosti využití, kde lze systémy iterovaných funkcí použít v počítačové grafice, jsou tvorby například stromů, rostlin apod. s následnou možností jejich vizualizace nebo animace. 31

KAPITOLA 4. SYSTÉMY ITEROVANÝCH FUNKCÍ 4.2 Teorie systémů iterovaných funkcí 4.2.1 Afinní transformace Afinní transformaci lze vyjádřit (viz [06]) vztahem: w ( X ) = AX+ B, (3) kde A je transformační matice a B je vektor posunu. Koeficienty matice A se uplatňují při rotaci, zkosení a změně měřítka. Koeficienty matice B při translaci (posunutí). Vztah (3) může být zapsán [06] ve tvaru: kde x i a y i jsou souřadnice iterovaného bodu. x2 a11 a12 x1 b1 w = +, (4) y2 a21 a22 y1 b2 Transformační matici A a vektor posunu B lze sloučit (viz [07]) do jediné matice transformace M, jejíž velikost se však zvětší. Půjde o matici s 3 3 prvky (v prostoru by se jednalo o matici s 4 4 prvky). Získá se vztah: x2 a y2 = a 1 0 11 21 a a 12 22 0 b1 x1 b2 y1 1 1 (5) Poslední řádek matice M obsahuje hodnoty [0,0,1], tj. v operační paměti je při praktické implementaci nutné ukládat o jeden řádek číselných hodnot méně, což je užitečné jak z hlediska paměťových nároků (zejména při fraktální kompresi), tak i kvůli redukci počtu aritmetických operací násobení a sčítání. Prakticky to znamená, že v rovině je transformace popsána pomocí šesti číselných hodnot a v prostoru pomocí čísel dvanácti. V literatuře bývá vztah (4) často zapisován v podobě: x w y 2 2 a = c b x d y 1 1 e + f (6) Afinní transformace musí splňovat následující podmínku: musí být kontrakcemi (viz [07]). To znamená, že po aplikaci transformace na libovolné dva body, bude nová vzdálenost bodů menší než původní vzdálenost bodů. Tato vlastnost mimo jiné zaručuje, že atraktorem množiny IFS nikdy nebude nekonečno. Pojmem atraktor se označuje konečný stav systému. 32

KAPITOLA 4. SYSTÉMY ITEROVANÝCH FUNKCÍ 4.2.2 Algoritmus náhodné procházky Pro generování IFS koláží existují různé metody, mezi které patří i algoritmus náhodné procházky [06] (neboli RWA z angl. Random Walk Algorithm). Jeho výhodou je jednoduchost a malá paměťová náročnost. Jeho nevýhodou je, že některé části fraktálu se generují vícekrát, zatímco některé jen jednou, a proto bývá pomalejší (náročnější na čas). Generování IFS fraktálu začíná tak, že je zvolen náhodný bod v rovině, nejčastěji bod [0,0]. Poloha tohoto bodu neovlivní konečný výsledek, protože kontrahující afinní transformace zajišťují směřování systému do svého atraktoru. Protože ale tento startovací bod nemusí nezbytně ležet v atraktoru IFS, je vhodné několik prvních iterací nezobrazovat, protože do atraktoru se systém může dostat až po několika iteracích. Afinní transformace IFS, která se bude poté na tento bod aplikovat, bude vybrána náhodně, nicméně je při tomto výběru nutné zohlednit pravděpodobnosti jednotlivých afinních transformací. Jinak řečeno, afinní transformace se vybírají náhodně s pravděpodobností p. Takto se pokračuje až do dosažení zvoleného počtu iterací. Takováto konstrukce fraktálů pomocí systémů iterovaných funkcí a náhodných procesů je nazývána hra chaosu [01] (z angl. chaos game). Právě pomocí algoritmu náhodné procházky budou generovány fraktály uvedené v následující kapitole. 4.3 Fraktály vytvořené pomocí IFS 4.3.1 Kochova křivka Kochova křivka, o které byla již řeč v kapitole 3.3.1 Kochova křivka a Kochova vločka, je pomocí IFS vytvářena čtyřmi afinními transformacemi. Tyto afinní transformace mají následující podobu (viz [10]): a b c d e f p 1/3 0 0 1/3 0 0 1/4 cos( / 3) 1/ 3 sin( π / 3) 1/ 3 sin( π / 3) 1/ 3 cos( π / 3) 1/3 0 1/4 cos( / 3) 1/ 3 sin( π / 3) 1/ 3 sin( π / 3) 1/ 3 cos( π / 3) 1/2 3 / 6 1/4 1/3 0 0 1/3 2/3 0 1/4 1/ 3 π 1/ 3 π Parametry a, b, c, d, e, f představují koeficienty afinní transformace popsané vztahem (6), parametr p je pravděpodobnost přiřazená afinní transformaci. Obr. 16 zobrazuje 3 Kochovy křivky vytvořené pomocí 100, 1000 a 10 000 iterací, tedy jsou tvořeny 100, 1000 a 10 000 body. Jak bylo uvedeno v kapitole 4.2.2 s 33

KAPITOLA 4. SYSTÉMY ITEROVANÝCH FUNKCÍ názvem Algoritmus náhodné procházky: startovací bod nemusí nezbytně ležet v atraktoru IFS (viz [06]). A proto je v tomto příkladě (a také ve všech dalších příkladech této kapitoly) několik prvních iterací nezobrazeno. Dále v této kapitole bylo zmíněno také to, že některé body se mohou vygenerovat vícekrát, neboli může být vytvořeno více bodů, které budou mít stejné souřadnice. Proto i když je fraktál vytvořen pomocí například 1000 iterací, nemusí být vidět všech 1000 bodů, ale o něco méně. Obr. 16 Kochovy křivky tvořené zleva 100, 1000 a 10 000 body. 4.3.2 Sierpinského trojúhelník Podobně jako Kochova křivka může být i Sierpinského trojúhelník (obr. 17) vytvořen pomocí IFS, a to konkrétně pomocí těchto tří afinních transformací (viz např. [02]): a b c d e f p 0,5 0 0 0,5 0,25 0 1/3 0,5 0 0 0,5 0 0,5 1/3 0,5 0 0 0,5 0,5 0,5 1/3 Obr. 17 Sierpinského trojúhelníky tvořené zleva 1000, 10 000, 100 000 body. Drobnými úpravami v afinních transformacích lze získat Sierpinského trojúhelníky jiných tvarů. Na obr. 18 Sierpinského trojúhelníky vlevo a uprostřed vznikly jedinou změnou v afinních transformacích Sierpinského trojúhelníku z obr. 17. Parametr v 1. afinní transformaci je změněn z hodnoty e = 0. 25 na hodnotu e = 0, resp. e = 0.5. Sierpinského trojúhelník vpravo na obr. 18 je vytvořen těmito afinními transformacemi (viz [12]): 34

KAPITOLA 4. SYSTÉMY ITEROVANÝCH FUNKCÍ a b c d e f p 0,5 0 0 0,5 0 0 1/3 0,5 0 0 0,5 1 0 1/3 0,5 0 0 0,5 0,5 3 / 2 1/3 Obr. 18 Sierpinského trojúhelníky tvořené 200 000 body. 4.3.3 Barnsleyovo kapradí Tzv. Barnsleyovo kapradí je vytvářeno pomocí čtyř afinních transformací (viz např. [01]): a b c d e f p 0 0 0 0,16 0 0 0,01 0,2-0,26 0,23 0,22 0 1,6 0,07-0,15 0,28 0,26 0,24 0 0,44 0,07 0,85 0,04-0,04 0,85 0 1,6 0,85 Na obr. 19 jsou dvě Barnsleyova kapradí, která se obě skládají z 50 000 bodů, přesto vypadají výrazně odlišně. V kapitole 4.2.2 Alogoritmus náhodné procházky bylo řečeno, že při jednotlivých iteracích je sice afinní transformace vybírána náhodně, přesto je potřeba při tomto výběru zohlednit pravděpodobnosti p příslušející jednotlivým afinním transformacím. U kapradí, které je umístěno v levé části obr. 19, byly tyto pravděpodobnosti výběru příslušející Barnsleyovu kapradí dodrženy, ale u kapradí, které se na tomto obrázku nachází v pravé části, byly jednotlivé afinní transformace vybírány náhodně s pravděpodobností p = 0. 25. U kapradí vpravo je proto mnoho bodů kresleno přes sebe, a proto by vygenerování Barnsleyova kapradí tímto způsobem trvalo neúměrně dlouho (pokud bychom ho chtěli získat v podobě kapradí, které je na obr. 19 umístěno v levé části). 35

KAPITOLA 4. SYSTÉMY ITEROVANÝCH FUNKCÍ Obr. 19 2 Barnsleyova kapradí tvořená 50 000 body. 4.3.4 Sierpinského kobereček Konstrukce Sierpinského koberečku (viz [11]) vychází ze čtverce, který je rozdělen na 9 stejných čtverců. Délka strany každého z těchto 9 čtverců se rovná 3 1 délky strany, kterou měl původní čtverec. Prostřední čtverec se vyjme a na zbývajících 8 čtverců se aplikuje stejné pravidlo. 1 V 1. iteraci tedy vzniká N = 8 pokrývacích útvarů s měřítkem ε = (jeden 3 čtverec je nahrazen osmi čtverci s třetinovou délkou stran). S využitím vztahu (1) se fraktální dimenze Sierpinského koberečku vypočítá následovně: log N log8 D H = = = 1,893 (7) 1 log3 log ε Na obr. 20 je vidět, že Sierpinského kobereček vyplňuje téměř celou plochu, a proto se jeho fraktální dimenze blíží hodnotě 2. Sierpinského kobereček je vytvořen pomocí osmi afinních transformací (viz [11]) a jejich výpis se nachází v příloze této práce. 36

KAPITOLA 4. SYSTÉMY ITEROVANÝCH FUNKCÍ Obr. 20 Sierpinského kobereček tvořený 500 000 body. 4.3.5 Některé další známé příklady IFS fraktálů Všechny afinní transformace, pomocí kterých jsou vytvořeny fraktály vyobrazené v této kapitole, se nachází v příloze. Obr. 21 Spirála a dračí křivka, obě tvořené 300 000 body. 37

KAPITOLA 4. SYSTÉMY ITEROVANÝCH FUNKCÍ Obr. 22 Krystal a sněhová vločka tvořené 100 000 body. Dva stromy na obr. 23 jsou vytvořeny pomocí pěti stejných afinních transformací (viz [02]), liší se pouze v pravděpodobnostech výběru těchto pravidel (viz příloha). Strom umístěný na obr. 23 vlevo je tvořen 50 000 body, strom umístěný na tomto obrázku v pravé části je tvořen 100 000 body. Obr. 23 2 stromy. 38

5 REALIZACE FRAKTÁLŮ V PROSTŘEDÍ MATLAB V této kapitole je nejprve obecně popsán zvolený postup při praktické realizaci fraktálů v prostředí Matlab. Další části se zabývají konkrétní realizací L-systémů a IFS fraktálů. 5.1 Schéma realizace Při praktické realizaci dvou tříd fraktálů, kterými se zabývaly kapitoly 3 a 4, se postupovalo podle schématu, které je znázorněné na obr. 24. Slovní popis tohoto schématu je uveden v následujících odstavcích. soubor.m export dat vygenerovaného fraktálu *.txt/*.pov POV-Ray Obr. 24 Schéma realizace. Nejdříve se vytvořil soubor.m (neboli m-soubor, m-file), tedy soubor s příponou.m. Jedná se o textový soubor, který obsahuje posloupnost příkazů a povelů pro program Matlab, které se po spuštění tohoto souboru z prostředí Matlab provedou. Soubor.m může být script nebo funkce (viz [04]). M-soubory vytvořené v rámci této práce představují většinou funkce s jedním vstupním parametrem. Spuštění m-souboru se provede zápisem a potvrzením jména m-souboru (bez přípony) z příkazového okna Matlabu. Za jméno souboru je ještě potřeba do kulatých závorek dopsat zvolenou hodnotu vstupního parametru. To je potřeba udělat z toho důvodu, protože, jak již bylo řečeno, většina m-souborů, které jsou součástí této práce, jsou funkce s jedním vstupním parametrem. Tedy například pro spuštění m-souboru s názvem kochovakrivka.m stačí (po zvolení příslušného adresáře, v jakém se tento soubor nachází) do příkazového okna Matlabu zapsat (a poté potvrdit) 39

KAPITOLA 5. REALIZACE FRAKTÁLŮ V PROSTŘEDÍ MATLAB kochovakrivka(6) a dojde k vygenerovaní a také vykreslení Kochovy křivky v tomto případě pomocí 6 iterací. Doplnění vhodných příkazů do m-souboru umožní vizualizovat Matlabem vygenerovaný fraktál i jiným způsobem než pomocí Matlabu. Vygenerovaný fraktál lze exportovat do nového textového souboru (například s názvem kochovakrivka.pov, ale mohl by mít i název kochovakrivka.txt apod.), který bude spustitelný v programu POV- Ray a který příslušnou vizualizaci provede. Tímto tématem se zabývá kapitola 6 s názvem Pokročilá vizualizace. Součástí každého m-souboru, který se nachází na přiloženém médiu, je i stručný help a také okomentování jednotlivých sekvencí příkazů. 5.2 Realizace L-systémů M-soubory vytvořené pro generování a zobrazení fraktálů, které vznikají pomocí L-systémů, jsou tvořeny následujícími částmi: stručným helpem definováním přepisovacího pravidla, počátečního řetězce a příslušných rozměrů (úhlu α, délky základní úsečky) algoritmem pro výpočet řetězce inicializací (nastavením počátečních hodnot) a příkazy pro vykreslení fraktálu z řetězce, který byl vytvořen v předchozí části příkazy pro úpravu vzhledu grafického okna (obrázku) Takto vytvořené m-soubory, které generují fraktály pomocí L-systémů, se nachází na přiloženém médiu. Všechny obrázky uvedené v kapitole 3 L-systémy vznikly právě pomocí těchto m-souborů. Ucelený přehled tímto způsobem vytvořených fraktálů se nachází v příloze této práce. U každého fraktálu je uveden jeho název, gramatika, příslušný obrázek a graf doby výpočtu fraktálu v závislosti na počtu iterací. Tato závislost doby výpočtu na počtu iterací je nelineární (viz obr. 25). Hodnoty v jednotlivých grafech byly získány pomocí matlabovských funkcí tic a toc. Protože tyto hodnoty závisí na výkonu počítače, slouží grafy spíše ke sledování zmíněné nelinearity (případně k porovnávání časové náročnosti výpočtu mezi jednotlivými fraktály), než ke sledování naměřených absolutních hodnot. Výpočty byly prováděny na počítači s procesorem AMD Athlon XP 2600+ (1,92 GHz) a 1 GB RAM paměti. 40

KAPITOLA 5. REALIZACE FRAKTÁLŮ V PROSTŘEDÍ MATLAB Kochova křivka 60 50 Čas [s] 40 30 20 10 0 1 2 3 4 5 6 7 8 Počet iterací Obr. 25 Graf zobrazující dobu výpočtu Kochovy křivky v závislosti na počtu iterací. 5.3 Realizace IFS fraktálů M-soubory vytvořené pro generování a zobrazení fraktálů, které vznikají pomocí systémů iterovaných funkcí, jsou tvořeny následujícími částmi: stručným helpem definováním afinních transformací algoritmem pro výpočet pozic bodů generovaného fraktálu (algoritmus při výpočtu zohledňuje pravděpodobnosti jednotlivých afinních transformací) příkazem pro zobrazení fraktálu příkazy pro úpravu vzhledu grafického okna (obrázku) Takto vytvořené m-soubory se nachází na přiloženém médiu. Všechny obrázky uvedené v kapitole 4 Systémy iterovaných funkcí vznikly právě pomocí těchto m- souborů. Ucelený přehled tímto způsobem vytvořených fraktálů se opět nachází v příloze této práce. U každého fraktálu je uveden jeho název, jeho afinní transformace s příslušnými pravděpodobnostmi a obrázek tohoto fraktálu. Graf doby výpočtu fraktálu v závislosti na počtu iterací není potřeba u IFS fraktálů uvádět, protože počtem iterací se v tomto případě rozumí počet bodů, které tvoří fraktál, a tedy tato závislost bude mít lineární průběh (viz obr. 26). 41

KAPITOLA 5. REALIZACE FRAKTÁLŮ V PROSTŘEDÍ MATLAB 25 20 Kochova k řivka Čas [s] 15 10 5 0 0 200000 400000 600000 800000 1000000 1200000 Počet bodů Obr. 26 Graf zobrazující dobu výpočtu Kochovy křivky v závislosti na počtu iterací. Body, pomocí kterých je IFS fraktál zobrazován, mohou mít různou velikost. Z obr. 27 je patrné, že menší body umožňují detailnější zobrazení fraktálu, jeho výpočet pak ale bude probíhat delší bodu. To je způsobeno tím, že pro zobrazení fraktálu s menšími body je potřeba vykreslit více bodů, aby bylo dosaženo stejné hustoty (vyplnění plochy), jaké dosahuje fraktál s většími vykreslovanými body. Kapradí na obr. 27 umístěné vlevo je tvořeno 50 000 body, kapradí umístěné ve střední části tohoto obrázku je tvořeno menšími body, kterých je 500 000. Obr. 27 3 Barnsleyova kapradí. 42

KAPITOLA 5. REALIZACE FRAKTÁLŮ V PROSTŘEDÍ MATLAB Kromě různé velikosti mohou mít tyto body i jinou barvu než černou, nebo i různým bodům jednoho fraktálu může být přiřazena různá barva (viz pravá část obr. 27). Vykreslovanými body nemusí teoreticky být přímo body (v Matlabu nazývané point), ale například i kruhy, trojúhelníky, různé symboly jako +,, apod., nicméně to nemá u fraktálů velké uplatnění, protože při zobrazování fraktálů je naopak užitečné tyto jednotlivé body, kterými je fraktál tvořen, nevidět. 43

44

6 POKROČILÁ VIZUALIZACE Tato kapitola nejprve obecně pojednává o programu POV-Ray. Poté se zabývá exportováním dat z Matlabu a vytvářením scén v programu POV-Ray. Další část se věnuje konkrétním ukázkám vizualizace fraktálů a na závěr kapitoly je zmíněna možnost vytváření animací. 6.1 Úvod do programu POV-Ray Pro pokročilou vizualizaci fraktálů generovaných v prostředí Matlab je využit freewarový program POV-Ray (Persistance Of Vision Raytracer) ve verzi 3.6 [15]. Důvody k vybrání právě tohoto programu jsou, že je volně šířitelný (tedy zdarma), má snadno pochopitelnou syntaxi a v neposlední řadě také to, že součástí tohoto programu je i velké množství předvytvořených příkladů, textur, barev apod., které je možné využít při vytváření vlastních scén. Jiným způsobem, jak provést tuto vizualizaci, by mohlo být, že data budou z Matlabu exportována do souborů *.wrl, tedy souborů psaných v jazyce VRML (Virtual Reality Markup Language). Soubory tohoto typu je poté možné importovat do programů jako jsou Bryce, Blender apod. a v nich provádět tuto vizualizaci. POV-Ray je, jak název tohoto programu napovídá, raytracer (raytracingový program). Tento název pochází z angl. ray tracing (tzv. metoda sledování paprsku, viz např. [16]). V reálném světě paprsky světla vychází ze světelného zdroje, lámou se a odráží od objektů (překážek), až se některé střetnou s okem pozorovatele. U techniky sledování paprsku paprsky naopak vycházejí z kamery (oka) a poté jsou opět sledovány při průchodu scénou až ke světelným zdrojům, které osvětlují scénu. Ray tracing představuje jednu z metod renderování (z angl. rendering). Rendering označuje tvorbu reálného obrazu na základě počítačového modelu (viz [17]). Vstupem programu POV-Ray je textový soubor, který obsahuje popis zobrazované scény (její zdrojový text). Vlastnosti scény jsou ve zdrojovém textu popsány pomocí jazyka, který je podobný jazykům programovacím (viz [18]). Protože ale existují modelovací programy, které exportují kód pro POV-Ray, není znalost tohoto programovacího jazyka nezbytná (viz [19]). 45

KAPITOLA 6. POKROČILÁ VIZUALIZACE 6.2 Export dat z Matlabu a vytváření scén v programu POV-Ray Některé m-soubory vytvořené pro potřeby kapitol 3 a 4 byly rozšířeny o povely a příkazy, které umožňují export dat (tedy pozic bodů vypočítaného fraktálu). Takto rozšířené soubory mají názvy jako například kochovakrivkapov.m apod. Po spuštění takového souboru se nejen pomocí Matlabu vypočítá a zobrazí příslušný fraktál, ale dojde navíc k vytvoření nového textového souboru s příponou.pov (například kochovakrivka.pov), který bude obsahovat vypočítané souřadnice bodů, kterými je fraktál tvořen. Tento soubor se bude nacházet ve stejném adresáři jako spouštěný m- soubor. Takto rozšířené m-soubory obsahují také příkazy, které do nově vytvářeného souboru *.pov navíc přidají informace o předvytvořené scéně pro program POV-Ray. Tato předvytvořená scéna přidává k souřadnicím bodů, které vytvářejí fraktál, zvolený rozměr, barvu (nebo případně texturu) a tvar (nejčastěji v podobě koule). Součástí předvytvořené scény jsou také informace o pozici a natočení kamery, o zdrojích světla, pozadí apod. Tedy po spuštění například souboru s názvem kochovakrivkapov.m dojde k zobrazení této křivky pomocí Matlabu (viz obr. 16) a dále bude vytvořen nový soubor kochovakrivka.pov. Po spuštění tohoto nově vytvořeného souboru v programu POV-Ray dojde k vytvoření a zobrazení nového obrázku (viz obr. 28). Obr. 28 Kochova křivka zobrazená pomocí programu POV-Ray. 46

KAPITOLA 6. POKROČILÁ VIZUALIZACE Scény, které jsou součástí m-souborů, jsou pouze ukázkové a lze je libovolně upravovat a doplňovat přímo v textovém editoru programu POV-Ray a poté jimi i případně nahradit předvytvořené scény v m-souborech. Návody na vytváření scén v programu POV-Ray lze nalézt např. v [20]. 6.3 Ukázky vizualizace s využitím programu POV-Ray Obr. 29 Scéna se třemi stromy. Obr. 30 Strom. 47

KAPITOLA 6. POKROČILÁ VIZUALIZACE Obr. 31 Sierpinského trojúhelník. Obr. 32 Barnsleyovo kapradí. 48

KAPITOLA 6. POKROČILÁ VIZUALIZACE Obr. 33 Les. 6.4 Animace Přímo animace POV-Ray vytvářet sice neumí, ale umí vytvořit sekvenci snímků (viz např. [21]), z kterých lze poté animace jednoduše sestavit. Pro spojení POV-Rayem vytvořené sekvence snímků, a tedy pro vytvoření animace, byl použit freewarový program Rostrum Camera [22]. Ukázky takto vytvořených animací se nachází na médiu, které je součástí této práce. Vytvoření animace se provede tímto způsobem: spustí se soubor např. s názvem kochovakrivkapovanim.m (ten byl již doplněn o příkazy nutné pro vytváření sekvence snímků v programu POV-Ray). Dojde k vytvoření souboru s názvem kochovakrivkaanim.pov. Volba počtu vykreslených snímků se provede pomocí úprav v souboru QUICKRES.INI, který se nachází v podadresáři renderer nainstalovaného programu POV-Ray. Způsob, jak provádět tyto úpravy, je popsán např. v [21] a také ve vytvořeném helpu, který se nachází na přiloženém médiu. Po spuštění souboru kochovakrivkaanim.pov dojde k vytvoření zvoleného počtu snímků, které se pak jednoduše spojí do animace v programu Rostrum Camera. 49

50

7 ZÁVĚR Začátek této bakalářské práce se obecně věnoval fraktálům, jejich historii, využití, rozdělení apod. Byly zde také vysvětleny pojmy z oblasti fraktálů, jejichž znalost je nejen užitečná, ale v některých případech i nezbytná pro správné pochopení dalších částí této práce, a proto je nebylo možné opomenout. K objasnění těchto pojmů se snažily přispět i některé obrázky fraktálů uveřejněné v této části bakalářské práce, které byly právě pro tento účel s využitím programu Matlab vytvořeny. Ze stejného důvodu se i části kapitol pojednávající o L-systémech a IFS nejprve věnovaly základním pojmům z oblastí L-systémů a IFS. Obě tyto kapitoly obsahovaly také množství příkladů fraktálů, které lze pomocí L-systémů a systémů iterovaných funkcí vytvořit. Každý z těchto příkladů byl doplněn o obrázek příslušného fraktálu, který byl vytvořen v matematickém softwaru Matlab. Některé z těchto příkladů obsahovaly takových obrázků víc a to z toho důvodu, aby bylo umožněno naznačit různé podoby a variace na daný příklad fraktálu, kterých lze dosáhnout. Z důvodu větší přehlednosti byly také vytvořeny dva přehledy fraktálů, které byly postupně uveřejněny v této práci. Tyto přehledy obsahují základní informace o těchto fraktálech a nachází se v příloze této práce. Pro pokročilou vizualizaci fraktálů generovaných v prostředí Matlab byl použit raytracingový program s názvem POV-Ray. Mezi důvody, proč byl vybrán právě tento program, mimo jiné patří, že je to volně šířitelný program, má relativně jednoduchou syntaxi a také například to, že to je poměrně hojně rozšířený program. Scény s fraktály, které byly vytvořené pro účely této práce, jsou pouze ukázkové a tedy jen naznačují možnosti programu POV-Ray v této oblasti. Totéž platí i pro vytvořené animace, které se nachází na přiloženém médiu, které je součástí této práce. Při snaze o výpočet fraktálů s větším počtem iterací (u L-systémů) nebo bodů (u IFS) se začíná projevovat nevýhoda generování fraktálů pomocí Matlabu a tou je velká výpočtová náročnost. To je způsobeno tím, že každý bod (u IFS) a každá změna polohy želvy (u L-systémů) je vypočítávána zvlášť. Výpočtová náročnost by mohla být u IFS snížena využitím jiného algoritmu namísto algoritmu náhodné procházky. Velká výpočtová náročnost je patrná i při následné vizualizaci fraktálů v programu POV-Ray, a to zejména při vytváření animací. Mohlo by být zajímavé porovnat tyto hodnoty s hodnotami získanými při jiným způsobem prováděné vizualizaci. Data by mohla být exportována z Matlabu do souborů *.wrl, tedy souborů psaných v jazyce VRML, které je možné importovat do programů jako jsou například Bryce, Blender a další, a zde by následně byla vizualizace prováděna. Tato práce by mohla posloužit i k budoucím rozšířením. Jedním z nich by mohlo být rozšíření vytvářených L-systémů i IFS o další rozměr. Tomu by mohlo napomoci také to, že na přiloženém médiu jsou všechny m-soubory doplněny kromě stručného helpu také o okomentování jednotlivých sekvencí příkazů. To by mělo uživatelům, kteří s programem Matlab prozatím nemají velké zkušenosti, napomoci k pochopení, jakým způsobem byly fraktály s využitím Matlabu v této práci vytvářeny. 51

52

LITERATURA [01] MAŘÍK, Vladimír; ŠTĚPÁNKOVÁ, Olga; LAŽANSKÝ, Jiří; a kolektiv. Umělá inteligence (3). Praha: ACADEMIA, 2001. ISBN 80-200-0472-6. [02] ZELINKA, Ivan; VČELAŘ, František; ČANDÍK, Marek. Fraktální geometrie - principy a aplikace. Praha: BEN, 2006. ISBN 80-7300-193-4. [03] ZAPLATÍLEK, Karel; DOŇAR, Bohuslav. MATLAB pro začátečníky. 2. vyd. Praha: 2005, BEN. ISBN 80-7300-175-6. [04] ZAPLATÍLEK, Karel; DOŇAR, Bohuslav. MATLAB tvorba uživatelských aplikací. Praha: 2004, BEN. ISBN 80-7300-133-0. [05] PRUSINKIEWICZ, Premyslaw; LINDENMAYER, Aristid. The Algorithmic Beauty of Plants. [PDF dokument]. New York: 1990, Springer-Verlag. Dostupné z: < algorithmicbotany.org/papers/abop/abop.lowquality.pdf> [06] TIŠNOVSKÝ, Pavel. Fraktály [online]. 1999,2000 [cit. 2007-5-10]. Dostupné z: < http://www.fit.vutbr.cz/~tisnovpa/fract/clanky/0.htm> [07] TIŠNOVSKÝ, Pavel. Seriál Fraktály v počítačové grafice [online]. 2005-2007 [cit. 2007-5-10]. Dostupné z: <http://www.root.cz/serialy/fraktaly-v-pocitacove-grafice> [08] KOŽÁR, Martin; ORAJA, Tomáš; a další. Lindenmayerove systémy [online]. 1998-2006 [cit. 2007-5-10]. Dostupné z: <http://alife.fei.tuke.sk/index.php?clanok=97> [09] KOČAN, Peter; KANDRA, Rastislav; a další. IFS - systém iterovaných funkcií [online]. 1999-2006 [cit. 2007-5-10]. Dostupné z: <http://alife.tuke.sk/index.php?clanok=997>. [10] Matlab Databaze: Fractals [databáze online]. Universität Stuttgart, 2002-2006. Dostupné z: <http://matlabdb.mathematik.uni-stuttgart.de/files.jsp?mc_id=5&sc_id=13> [11] RIDDLE, Lawrence. Classic Iterated Function Systems [online]. 1998-2006, 5th of May 2006 [cit. 2007-5-10]. Dostupné z: <http://ecademy.agnesscott.edu/~lriddle/ifs/ifs.html> [12] RUSTAD, James. Regular Point Fractals with Iterated Function Systems [online]. [cit. 2007-5-10]. Dostupné z: <http://people.bath.ac.uk/jegr20/acgassignment_files/acgassignment.htm> 53

LITERATURA [13] Cantorovo diskontinuum [online]. 2007 [cit. 2007-5-10]. Dostupné z: <http://cs.wikipedia.org/wiki/cantorovo_diskontinuum> [14] STEINBAUER, Petr. Interpret deterministických bezkontextových L-systémů [online]. 2002 [cit. 2007-5-10]. Dostupné z: <http://www.volny.cz/stei/studium/pjw/start.html> [15] POV-Ray [online]. Dostupné z: <http://www.povray.org> [16] DOLEŽAL, Jiří. Počítačová grafika pro geodety [online]. [cit. 2007-5-10]. Dostupné z: <http://mdg.vsb.cz/jdolezal/index_pg_hgf.html> [17] Rendering [online]. 2007 [cit. 2007-5-10]. Dostupné z: <http://cs.wikipedia.org/wiki/rendering> [18] POLÁCH, Eduard. Povray 2.2 [online]. 1999 [cit. 2007-5-10]. Dostupné z: <http://home.pf.jcu.cz/~edpo/povray/povray.html> [19] ČERNOHOUS, Pavel. POV-Ray - freewareový zázrak [online]. 2002 [cit. 2007-5- 10]. Dostupné z: <http://www.grafika.cz/art/3d/povray.html> [20] LOHMÜLLER, Andrea; LOHMÜLLER, Friedrich. 3D Computer Graphics, Raytracing [online]. 1999-2007, 1st of May 2007 [cit. 2007-5-10]. Dostupné z: <http://www.f-lohmueller.de> [21] MORAVEC, Tomáš. Animace molekul proteinů. [online]. 1999-2001 [cit. 2007-5- 10]. Dostupné z: <http://www.ueb.cas.cz/laboratory_of_virology/anim_prot.htm> [22] Rostrum Camera [online]. Dostupné z: <http://www.price-media.demon.co.uk/rostrum.html> 54

PŘÍLOHY Přehled fraktálů vytvořených pomocí L-systémů U každého fraktálu vytvořeného pomocí L-systémů je uveden jeho počáteční řetězec, úhel α a přepisovací pravidla. Dále pak jeho podoba (obrázek) a graf závislosti doby výpočtu na počtu iterací. Název fraktálu a jeho podoba Počáteční řetězec Úhel α Přepisovací pravidla Graf závislosti doby výpočtu (osa y ) v [s] na počtu iterací (osa x ) F 60 F F + F F + F 60 50 40 30 20 10 0 1 2 3 4 5 6 7 8 F F 60 40 35 F 30 25 20 15 10 5 0 F F + F F + F 1 2 3 4 5 6 7 55

PŘÍLOHA Přehled fraktálů vytvořených pomocí L-systémů FGF + + FF+ + FF 60 F FF G + + FGF - -FGF - -FGF + + 30 25 20 15 10 5 0 1 2 3 4 5 6 7 8 G 90 G -HF + GFG + FH - + GF - HFH - FG + 100 H 0 80 60 40 20 1 2 3 4 5 6 7 8 FG 60 200 150 100 50 0 1 2 3 4 5 6 G G + HF + + HF - FG - -FGFG - HF + H -FG + HFHF + + HF + FG - -FG - H FG 90 G G + HF + -FG - H 60 50 40 30 20 10 H 0 1 3 5 7 9 11 13 15 56

PŘÍLOHA Přehled fraktálů vytvořených pomocí L-systémů + +++F 22,5 F FF + [ + F - F - F] -[-F + F + F] 0 25 20 15 10 5 1 2 3 4 5 + +++F 22,5 F FF + [ + F - F - F] -[-F + F F] 25 20 15 10 5 0 1 2 3 4 5 + +++F 22,5 F FF + [ + F - F - F] -[-F F + F] 25 20 15 10 5 0 1 2 3 4 5 40 + + + +G 35 30 25 22,5 20 15 10 F FF 5 G F[+G][-G]FG 0 1 2 3 4 5 6 7 8 9 + + + +G 22,5 F FF G F[ + G]F[-G] + G 50 40 30 20 10 0 1 2 3 4 5 6 7 8 9 57

PŘÍLOHA Přehled fraktálů vytvořených pomocí L-systémů + +++F 22,5 F [+F]F[-F]F, 1 p = 3 F F[+F]F[-F][-F], 1 p = 3 F FF -[-F+ F + F] + [ + F - F + F], Doba výpočtu při stejném počtu iterací výrazně kolísá, což je způsobeno náhodou, která ovlivňuje výběr pravidla (a to i přesto, že pravděpodobnost výběru je vždy 3 1 ). 1 p = 3 + +++F 22,5 Doba výpočtu při stejném počtu iterací výrazně kolísá, což je způsobeno náhodou, která ovlivňuje výběr pravidla. F [+F]F[-F]F, 1 p = 2 F F[+F]F[-F][-F], 1 p = 6 F FF -[-F+ F + F] + [ + F - F + F], 1 p = 3 58

Přehled fraktálů vytvořených pomocí IFS U každého fraktálu vytvořeného pomocí IFS je uveden jeho název, obrázek a afinní transformace včetně jejich pravděpodobností p. a b c d e f p 1/3 0 0 1/3 0 0 1/4 1/ 3 cos( π / 3) 1/ 3 sin( π / 3) 1/ 3 sin( π / 3) 1/ 3 cos( π / 3) 1/3 0 1/4 1/ 3 cos( π / 3) 1/ 3 sin( π / 3) 1/ 3 sin( π / 3) 1/ 3 cos( π / 3) 1/2 3 / 6 1/4 1/3 0 0 1/3 2/3 0 1/4 a b c d e f p 0,5 0 0 0,5 0,25 0 1/3 0,5 0 0 0,5 0 0,5 1/3 0,5 0 0 0,5 0,5 0,5 1/3 a b c d e f p 0,5 0 0 0,5 0 0 1/3 0,5 0 0 0,5 0 0,5 1/3 0,5 0 0 0,5 0,5 0,5 1/3 59

PŘÍLOHA Přehled fraktálů vytvořených pomocí IFS a b c d e f p 0,5 0 0 0,5 0,5 0 1/3 0,5 0 0 0,5 0 0,5 1/3 0,5 0 0 0,5 0,5 0,5 1/3 a b c d e f p 0,5 0 0 0,5 0 0 1/3 0,5 0 0 0,5 1 0 1/3 0,5 0 0 0,5 0,5 3 / 2 1/3 a b c d e f p 0 0 0 0,16 0 0 0,01 0,2-0,26 0,23 0,22 0 1,6 0,07-0,15 0,28 0,26 0,24 0 0,44 0,07 0,85 0,04-0,04 0,85 0 1,6 0,85 60

PŘÍLOHA Přehled fraktálů vytvořených pomocí IFS a b c d e f p 1/3 0 0 1/3 0 0 0,125 1/3 0 0 1/3 0 1/3 0,125 1/3 0 0 1/3 0 2/3 0,125 1/3 0 0 1/3 1/3 0 0,125 1/3 0 0 1/3 1/3 2/3 0,125 1/3 0 0 1/3 2/3 0 0,125 1/3 0 0 1/3 2/3 1/3 0,125 1/3 0 0 1/3 2/3 2/3 0,125 a b c d e f p 0,382 0 0 0,382 0,3072 0,619 0,2 0,382 0 0 0,382 0,6033 0,4044 0,2 0,382 0 0 0,382 0,0139 0,4044 0,2 0,382 0 0 0,382 0,1253 0,0595 0,2 0,382 0 0 0,382 0,492 0,0595 0,2 a b c d e f p 0,255 0 0 0,255 0,3726 0,6714 0,1 0,255 0 0 0,255 0,1146 0,2232 0,1 0,255 0 0 0,255 0,6306 0,2232 0,1 0,37-0,642 0,642 0,37 0,6356-0,0061 0,7 61

PŘÍLOHA Přehled fraktálů vytvořených pomocí IFS a b c d e f p -0,121212 0,257576 0,151515 0,255-6,721654 1,377236 0,05 0,181818-0,136364 0,090909 0,255 6,086107 1,568035 0,05 0,787879-0,424242 0,242424 0,255 1,758647 1,408065 0,9 a b c d e f p 0,088272 0,520988-0,463889-0,377778 0,78536 8,095795 0,2 0,824074 0,281428-0,212346 0,864198-1,88229-0,110607 0,8 a b c d e f p 0,195-0,488 0,344 0,443 0,4331 0,2452 0,35 0,462 0,414-0,252 0,361 0,2511 0,5692 0,35-0,058-0,07 0,453-0,111 0,5976 0,0969 0,05-0,035 0,07-0,469-0,022 0,4884 0,5069 0,05-0,637 0 0 0,501 0,8562 0,2513 0,2 Afinní pravidla jsou stejná jako u předcházejícího stromu. Jejich pravděpodobnosti jsou nyní ale stejné: p = 0, 2 62