IFS fraktály

Algoritmy Grafické IFS fraktály

Euklidovská geometrie rozeznává jen několik základních těles (koule, kvádr, kužel atd.), tudíž je nemožné s její pomocí popsat tak složité útvary, jako hory, stromy, vodní hladinu, mraky a podobně. Tyto objekty lze však poměrně přesně popsat pomocí neuvěřitelně krátkých vzorců s využitím fraktální geometrie.

Fraktál je objekt, jehož geometrická struktura se opakuje v něm samém až do nekonečna. Nekonečno samozřejmě musíme v reálném světě omezit. Například stromy se větví na stále menší a menší větvičky, ale ty úplně nejmenší se už nevětví. Fraktály se obecně dělí na

  • Soběpodobné, se kterými se setkáme jen v matematických konstrukcích a kterýkoli výsek je přesnou kopií původního útvaru.
  • Soběpříbuzné (jmenované stromy, mraky atd.), kde libovolný výsek je podobnou kopií původniho útvaru.

IFS (Interation Function System) je algoritmus, který stále opakuje tvz. afinní transformace, dokud neproběhne zadaný počet interací (počet, kolikrát se geometrická struktura opakuje v mateřském útvaru). Fraktál je tedy zadaný několika afinními transformacemi s těmito parametry. Napr. Sierpinského trojúhelník má 3 afinní transformace, kapradina 4, strom 5 atd. Pokud budou všechny transformace používány pravidelně, vznikne soběpodobný fraktál. Pokud budou používány každá s jinou pravděpodobností (případný parametr p, kterým se zde zabývat nebudu), algoritmus se nazývá hiearchický IFS (HIFS) a vznikne fraktál soběpříbuzný. Afinní transformace s daným objektem provádí následující operace: rotaci, zmenšování a posun. Vlastní popis afinní transformace je dán vztahy :

Vzorec na generování IFS fraktálů

 

Význam jednotlivých parametrů:

  • Úhel fí : Otočení osy x, v jejíž směru je útvar přeškálován parametrem r1
  • Úhel éta : Otočení osy y, v jejíž směru je útvar řeškálován parametrem r2
  • e : Translace útvaru podle horizontální neotočené osy (horizontální posun celým útvarem)
  • f : Translace útvaru podle vertikální neotočené osy (vertikální posun celým útvarem)

Zde jsou parametry (koeficienty) afinních transformací pro několik fraktálních útvarů:

 

Sierpinského trojúhelník
a b c d e f
0.5 0 0 0.5 0 0
0.5 0 0 0.5 0.5 0
0.5 0 0 0.5 0.5 0.5


Vanoční stromeček
a b c d e f
0 -0.5 0.5 0 0.5 0
0 0.5 -0.5 0 0.5 0.5
0.5 0 0 0.5 0.25 0.5


Drak
a b c d e f
0 0.577 -0.577 0 0.0951 0.5893
0 0.577 -0.577 0 0.4413 0.7893
0 0.577 -0.577 0 0.0952 0.9893


Labyrint
a b c d e f
0.333 0 0 0.333 0.333 0.666
0 0.333 1 0 0.666 0
0 -0.333 1 0 0.333 0


Větev
a b c d e f
0.387 0.430 0.430 -0.387 0.2560 0.5220
0.441 -0.091 -0.009 -0.322 0.4219 0.5059
-0.468 0.020 -0.113 0.015 0.4 0.4


Sněhová vločka
a b c d e f
0.255 0 0 0.255 0.3726 0.6714
0.255 0 0 0.255 0.1146 0.2232
0.255 0 0 0.255 0.6306 0.2232
0.370 -0.642 0.642 0.370 0.6356 -0.0061


Kapradina
a b c d e f
0.849 0.037 -0.037 0.849 0.075 0.1830
0.197 -0.226 0.226 0.197 0.4 0.0490
-0.150 0.283 0.260 0.237 0.575 -0.084
0 0 0 0.16 0.5 0


Strom
a b c d e f
0.5 0 0 0.5 0 0
0.5 0 0 0.5 0.5 0
0.5 0 0 0.5 0.5 0.5


 

Ve vztazích pro afinní transformace se provádí výpočty s maticemi. Konkrétně násobení matice o čtyřech a dvou prvcích a sčítání. Pro to platí nasledující obecný vzorec:

Tak a to je prozatím vše. Doufám, že se mi alespoň trochu podařilo nastínit, o čem algoritmus IFS je a co že je to vlastně fraktální útvar. Aplikaci si odvodíte ze zdrojového kódu, je součástí programu IFSgen


 

  Aktivity (1)

Článek pro vás napsal David Čápka
Avatar
Autor pracuje jako softwarový architekt a pedagog na projektu ITnetwork.cz (a jeho zahraničních verzích). Velmi si váží svobody podnikání v naší zemi a věří, že když se člověk neštítí práce, tak dokáže úplně cokoli.
Unicorn College Autor se informační technologie naučil na Unicorn College - prestižní soukromé vysoké škole IT a ekonomie.

Jak se ti líbí článek?
Celkem (1 hlasů) :
55555


 


Miniatura
Všechny články v sekci
Grafické algoritmy
Miniatura
Následující článek
Rasterizace úsečky

 

 

Komentáře

Avatar
Jan Zamecnik
Člen
Avatar
Jan Zamecnik:

Ahoj, na výšce jsme měli předmět Dynamické systémy.
Zde je odkaz na teorii http://www.fce.vutbr.cz/…ialy/Dynsys/
Zde je odkaz na stránky s příklady http://www.fce.vutbr.cz/…rialy/simul/
Je to psáno pro JavaAplet. Je to celkem staré, ale jsou tam zdrojáky, kdyby měl někdo zájem to rozchodit, neboť ze stránek už to nejede.

 
Odpovědět 12. září 9:08
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 1 zpráv z 1.