AMIGA REVIEW obsah časopisu online!
  Domov     Software     Hry     Obaly     Download  

Fraktály

Lenka Eslerová

Nepochybně se každý z amigistů někdy setkal s některým programem pro generování fraktálů. Víme však, co to vlastně fraktály jsou? Většinou si pod tím pojmem představíme krásné barevné obrázky - ale co dál? Ve skutečnosti se za vším skrývá spousta teorie, která je často velice zajímavá, a proto bychom vám z ní část chtěli přiblížit. Nelekejte se, pokud narazíte na podivně znějící názvy, většinu z nich si postupně přiblížíme.

Příroda a geometrie
Klasická geometrie, jakou všichni známe ze školy, se snaží všechno popsat pomocí poměrně jednoduchých útvarů - přímek, křivek kruhů, trojúhelníků apod. I nejsložitější z těchto běžných útvarů se jeví jako velmi jednoduché, pokud se na ně podíváme v dostatečném zvětšení - při hodně velkém zvětšení například část kružnice vypadá skoro jako úsečka. V přírodě však nic není takto jednoduché. V roce 1982 pan Mandelbrot ve své knize The Fractal Geometry of Nature správně poznamenal: "Mraky nejsou koule, hory jehlany..." Jestliže se totiž na kterýkoliv přírodní útvar podíváme s libovolně velkým zvětšením, vždy najdeme další a další detaily.
Zajímavé je, že tyto detaily se obvykle podobají celkové podobě - list stromu mívá podobný tvar jako má při pohledu z dálky celý strom, podíváme-li se dalekohledem na mraky, zjistíme, že v jejich obrysech se opakují stále stejné tvary, jen více zmenšené, větvička připomíná celý strom, kousek horniny je malým obrazem hory... Jednotlivé útvary sou tedy složeny ze svých vlastních zmenšených opií, příroda se opakuje. Této vlastnosti se říká samopodobnost.

Kde se vzaly fraktály
Na konci minulého století začali někteří matematici "nabourávat" představy Euklidovské geometrie. Ta však v té době byla již několik set let starou klasikou, a proto mnozí nesli tyto zásahy nelibě. Novinky, jako například křivka pana Hilberta, která vyplní celý čtverec, byly považovány za bezvýznamné hříčky a i to jen s ohledem na to, že autorem byl proslulý matematik. Nedivme se tehdy bylo nutné všechno počítat ručně, a proto bylo žádoucí mít všechno co nejjednodušší. Teprve rozvoj výpočetní techniky a počítačové grafiky v posledních desetiletích otevřel bránu ke zpracování tak složitých funkcí - a svět fraktálních krajin, krajkoví a snových obrazců je nyní na dosah.

Konstrukce fraktálů a želví grafika
Pan Mandelbrot nám definoval fraktál takto: "Fraktál je množina, jejíž Hausdorffova dimenze je ostře větší než topologická dimenze". Dokážete si pod tím něco představit? Myslím, že většina z vás ne. V příštím pokračování tohoto článku vám o dimenzi něco opatrně naznačím, ale dnes začneme opatrněji: ukážeme si, jak konstruovat fraktál pomocí samopodobnosti. Fraktál přitom budeme chápat jako nekonečně nepravidelný tvar, v jehož zvětšeninách nalézáme stále stejné útvary opakující se v různé poloze a velikostí (žádný fraktál tedy nelze nakreslit přesně, všechno jsou jen nějaká více či méně přesná přiblížení). Dá se tedy zhruba říci, že fraktál je množina "nepravidelnější" než množiny v klasické geometrii - čím více budeme fraktál zvětšovat, tím menší a menší nepravidelnosti uvidíme.
Pro kreslení mnoha fraktálů se krásně hodí programovací jazyk LOGO, který je dnes bohužel už prakticky neznámy. Implementuje "želví grafiku". Na obrazovce se pohybuje maličká želva, které přikazujeme, co má dělat. Želvička přitom umí jen několik jednoduchých činností: přesunout se na zadané místo, nakreslit úsečku zadané délky, otočit se o zadaný úhel v kladném (proti směru hodinových ručiček) nebo záporném (po směru) smyslu. Procedura kreslící jeden z nejznámějších fraktálů v Logu vypadá následovně:

to Koch :depth :size
if :depth = 0 [forward cize stop]
Koch :depth-1 :size/3
left 60
Koch :depth-1 :size/3
right 120
Koch :depth-1 :size/3
left 60
Koch :depth-1 :size/3
end

Co tato procedura provádí? Vstupními parametry je úroveň (depth) a velikost (size). Je-li zadána úroveň 0, vykreslí se rovná čára (forward) o délce slze a činnost se ukončí (stop). V opačném případě se třikrát volá tatáž procedura (činnost je tedy rekurzívní), přičemž po prvním provedení se želvička otáčí o 60 stupňů doleva, po druhém o 120 stupňů doprava a po třetím opět o 60 vlevo. Nemáte-li po ruce vhodnou želvičku která by vám toto vše předvedla, nezoufejte a pokračujte ve čtení následujícím odstavcem.
Výsledný obrazec můžete získat také ručně: narýsujte si úsečku o délce Délka (například 27 cm). Nyní ji rozdělte na třetiny, nad prostřední částí narýsujte rovnostranný trojúhelník (jedna z jeho stran bude tvořena právě střední částí úseč), a pak střední část úsečky (tu, kterou má společnou s trojúhelníkem) vymažte. Nyní máme obrazec tvořený čtyřmi stejně dlouhými úsečkami (jejich délka je třetinová oproti původní délce). Každou z nich opět roztřetíme, nad střední částí narýsujeme rovnostranný trojúhelník a střední část úsečky vymažeme. Opakujeme libovolně dlouho - čím déle, tím přesněji dostaneme podobu fraktálu, který se jmenuje křivka Kochové.
Jiná varianta: při popisu jsem vycházela z jedné úsečky o zvolené délce. Zkuste začít s rovnostranným trojúhelníkem a tytéž operace provádět s každou z jeho stran. Můžete hádat, proč se výsledek jmenuje sněhová vločka! (Úmyslně jsme sem nezařadili její obrázek, neboť chceme podpořit vaše vlastní tvůrčí snažení.)

Využití podobnostních zobrazení při konstrukci fraktálů
Samozřejmě nezůstaneme u jediného fraktálu - další návod popisuje sestrojení fraktálu, který je známý jako Sierpiňského trojúhelník (nebo také jako Sierpiňského koberec či krajkoví). Některé fáze jeho konstrukce jsou dokumentovány přiloženými obrázky.
Zde je základem vybarvený rovnostranný trojúhelník. Každou z jeho stran rozpůlíme a půlící body spojíme mezi sebou. Tak máme trojúhelník rozdělený na čtyři stejné trojúhelníčky, s poloviční délkou strany, přičemž prostřední je otočený špičkou dolů. Tento prostřední trojúhelník vymažeme. Nyní tedy máme tři vyplněné trojúhelníky poskládané do tvaru většího trojúhelníku. U každého z nich opět rozpůlíme strany a půlící body téhož trojúhelníku opět spojíme mezi sebou, vzniknou tak z každého trojúhelníku čtyři menší, z nichž zase prostřední mažeme. Tento postup opět můžeme opakovat libovolně dlouho.
Pokud tuto konstrukci nechcete provádět ručně (asi by vás to rychle přestalo bavit), spusťte si program DPaint nebo některý podobný kreslící program. Zde při kreslení využijeme samopodobnost obrazce: když si jej dobře prohlédnete, uvidíte, že se skládá ze tří trojúhelníků, které opakují vzor celku, ale s poloviční velikostí. Postup kreslení bude následující:
Navolte si bílé pozadí a černé popředí. Nakreslete rovnostranný trojúhelník (nejlépe asi pomocí středové symetrie s faktorem 3) a vybarvěte ho.
Nyní trojúhelník naberte jako štětec důležité je, abyste jej nabrali co nejpřesněji: horní okraj štětce by měl začínat přesně na špičce trojúhelníku, dolní okraj by měl kopírovat jeho základnu a levý a pravý okraj je dán krajními body základny trojúhelníku. Jednoduše řečeno: štětec bude tvořen nejmenším čtvercem, do nějž se trojúhelník vejde.
Až naberete tento štětec změňte jeho velikost na poloviční (u DPaintu stiskem klávesy h). Původní obrazec smažte a ze tří otisků štětce sestavte pečlivě nový trojúhelník o velikostí předchozího, ale s prázdným středem. Tento nový trojúhelník nyní naberte jako nový štětec a celou posloupnost akcí zopakujte (tj. smažte původní obrazec a tři otisky štětce opět poskládejte do tvaru trojúhelníku). Tento postup můžete opakovat tak dlouho, dokud má smysl zmenšování štětce (tím se totiž ztrácí přesnost, a tady je ten hlavní rozdíl mezi fraktálem a jeho aproximací, tj. přibližným zobrazením na počítači neboť pro nalezení skutečné podoby fraktálu by bylo nutné postup opakovat nekonečně dlouho, aby se získaly nekonečně malé detaily - to si samozřejmě v sebelepším kreslícím programu nemůžeme dovolit neboť jsme omezeni velikostí jednoho bodu pixelu, kterou již nelze dále zmenšovat).
V čem přesně tedy spočívá samopodobnost u tohoto fraktálu? Vidíte, že každé další přiblížení dává jemnější detaily než předchozí, každý nový obrazec se skládá ze tří zmenšených kopií předchozího. U výsledného obrazce bychom složením tří zmenšených kopií obrazce nedostali již nic nového, výsledkem by byl tentýž obrazec. Zdá se vám to nemožné? Po nekonečně mnoha krocích není nic nemožné...

Co jsou to podobnostní zobrazení?
Ještě bychom měli asi upřesnit, co to jsou podobnostní zobrazení, o kterých jsme se zmiňovali, neboť jsou základem uvedených postupů. Vezměme si jako pracovní plochu rovinu s osami x a y, které jsou vzájemně kolmé (to všichni známe z geometrie ze základní školy). Všechna podobnostní zobrazení jsou složena z různých posunutí, rotací a kontrakcí.
Posunutí je dáno vektorem, zde konkrétně dvěma čísly X a Y. Obrazem každého bodu je jiný bod, jehož x-ová souřadnice je o X větší než x-ová souřadnice původního bodu a y-ová souřadnice je analogicky zvětšená o Y. Pro představu si vystřihněte z papíru čtvereček a prstem ho zkuste posunovat po stole.
Rotace je dána středem a úhlem. Obraz bodu se najde takto: nakreslíme přímku spojující bod se zadaným středem rotace; tuto přímku otočíme kolem středu o zadaný úhel, tím dostaneme novou přímku. Obraz původního bodu leží na této přímce ve stejné vzdálenosti od středu rotace, jako původní bod. Zkuste si papírový čtvereček připíchnout špendlíkem na stůl a otáčet s ním - bod, v němž jste jej připíchli, je nyní středem rotace. Kontrakce je vlastně změna velikostí. Je dána středem a koeficientem k. Obraz bodu získáme následovně: sestrojíme polopřímku střed - bod, zjistíme vzdálenost středu a bodu, tuto vzdálenost násobíme koeficientem k a nově získanou vzdálenost naneseme na polopřímku. Nalezený bod je obrazem původního bodu. Je jasné, že pro k > 1 se obrazce budou zvětšovat, pro 0 < k < 1 se budou zvětšovat. Je-li například k = -1, dostaneme středovou symetrii. Kontrakci s koeficientem 1/2 si můžete představit například tak, že svůj papírový čtvereček přeložíte napůl a vznikly obdélníček opět napůl (u obdélníčku je nutno půlit delší stranu) - dostanete tak opět čtvereček, ale s poloviční délkou strany.
Co jsme tedy z pohledu geometrie dělali při konstrukci Sierpiňského trojúhelníku? Každé další přiblížení jsme dostali jako sjednocení výsledků tří kontrakcí; středy těchto kontrakcí ležely ve vrcholech původního trojúhelníku, koeficient každé z nich byl 1/2.
Jak jsme si již řekli, kdybychom měli výsledný Sierpiňského trojúhelník (po nekonečně mnoha opakováních uvedených zobrazení), dostali bychom dalším provedením těchto zobrazení tentýž obrazec. Množina bodů tvořící krajkoví se tedy dalším opakováním akcí již nezmění. Takové množině se říká invariantní množina zobrazení.

Závěr, kterým ještě nekončíme
Zde ukončíme naši dnešní exkurzi do světa fraktálů. Příště budeme samozřejmě pokračovat, neboť o fraktálech se dá povídat velmi dlouho. Čím vším se budeme zabývat: uvedeme několik obrázků, které budou lépe ilustrovat všechnu tu teorii, která na vás "skáče" z tohoto článku; povíme si něco o dimenzích a ukážeme si, čím se křivka Kochové liší od běžných křivek (například paraboly) a Sierpiňského trojúhelník od běžných trojúhelníků; řekneme si něco o komplexních číslech, která jsou základem pro sestrojení fraktálů typu Mandelbrot nebo Julia; dozvíte se, že známé fraktály tak, jak byly definovány, jsou mnohem ošklivější než obrázky, které pro vás vykreslují různé programy (jeden takový pro inspiraci doprovází tento článek) a čím tedy jsou ty "hezké" obrázky; stručně popíšeme některý z nových fraktálních programů povíme si, k čemu jsou fraktály dobré (kromě toho, že je to pěkné pokoukáníčko), a možná vám prozradím, proč nemohou meteorologové předpovídat počasí přesně.
Pro zvídavé uvedu několik možností, kde lze nalít další informace o fraktálech:
Gerald A. Edgar: Measure Topology, and Fractal Geometry (kniha psaná v angličtině, předpokládá znalosti matematiky na úrovni VŠ), časopisy Věda a technika mládeži 18/89, Téčko 88 číslo 5 (doplněno mnoha hezkými obrázky), a samozřejmě návody k různým fraktálním programům.

Vytlačiť článok



Pozn.: články boli naskenované ako text a preto obsahujú aj zopár chýb. Taktiež neručíme za zdrojové kódy (Asm, C, Arexx, AmigaGuide, Html) a odkazy na web. Dúfame, že napriek tomu vám táto databáza dobre poslúži.

Žiadna časť nesmie byť reprodukovaná alebo inak šírená bez písomného povolenia vydavatela © ATLANTIDA Publishing



none

AMIGA REVIEW

57 ( 11-12 / 2000 )
56 ( 9-10 / 2000 )
55 ( 7-8 / 2000 )
54 ( 5-6 / 2000 )
53 ( 3-4 / 2000 )
52 ( 1-2 / 2000 )
 
51 ( 12 / 1999 )
50 ( 11 / 1999 )
49 ( 10 / 1999 )
48 ( 9 / 1999 )
46-47 ( 7-8 / 1999 )
45 ( 6 / 1999 )
44 ( 5 / 1999 )
43 ( 4 / 1999 )
42 ( 3 / 1999 )
41 ( 2 / 1999 )
40 ( 1 / 1999 )
 
39 ( 12 / 1998 )
38 ( 11 / 1998 )
37 ( 10 / 1998 )
36 ( 9 / 1998 )
35 ( x / 1998 )
34 ( x / 1998 )
33 ( 1-2 / 1998 )
 
32 ( 11-12 / 1997 )
31 ( 9-10 / 1997 )
30 ( 7-8 / 1997 )
29 ( 6 / 1997 )
28 ( 5 / 1997 )
27 ( 4 / 1997 )
26 ( 3 / 1997 )
25 ( 2 / 1997 )
24 ( 1 / 1997 )
 
23 ( 12 / 1996 )
22 ( 11 / 1996 )
21 ( 10 / 1996 )
20 ( 9 / 1996 )
18-19 ( 7-8 / 1996 )
17 ( 6 / 1996 )
16 ( 5 / 1996 )
15 ( 4 / 1996 )
14 ( 3 / 1996 )
13 ( 2 / 1996 )
12 ( 1 / 1996 )
 
11 ( 12 / 1995 )
10 ( 11 / 1995 )
9 ( 10 / 1995 )
8 ( 9 / 1995 )
7 ( 7 / 1995 )
6 ( 5 / 1995 )

ATLANTIDA NEWS

5 ( 3 / 1995 )
4 ( 1 / 1995 )
 
3 ( 11 / 1994 )
2 ( 9 / 1994 )
1 ( 7 / 1994 )
0 ( 5 / 1994 )