FraktályLenka 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
|