IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

IFS fraktály

Euklidovská geometria rozoznáva len niekoľko základných telies (guľa, kváder, kužeľ, atď.), Teda je nemožné s jej pomocou opísať tak zložité útvary, ako hory, stromy, vodnú hladinu, mraky a podobne. Tieto objekty možno však pomerne presne popísať pomocou neuveriteľne krátkych vzorcov s využitím fraktálne geometrie.

Fraktál je objekt, ktorého geometrická štruktúra sa opakuje v ňom samom až do nekonečna. Nekonečno samozrejme musíme v reálnom svete obmedziť. Napríklad stromy sa vetví na stále menšie a menšie vetvičky, ale tie úplne najmenšie sa už nevetví. Fraktály sa všeobecne delia na

  • Soběpodobné, s ktorými sa stretneme len v matematických konštrukciách a ktorýkoľvek výsek je presnou kópiou pôvodného útvaru.
  • Soběpříbuzné (menované stromy, mraky atď.), Kde ľubovoľný výsek je podobnou kópiou pôvodného útvaru.

IFS (interation Function System) je algoritmus, ktorý stále opakuje tvz. afinní transformácie, až kým neprebehne zadaný počet Interac (počet, koľkokrát sa geometrická štruktúra opakuje v materskom útvare). Fraktál je teda zadaný niekoľkých afinními transformáciami s týmito parametrami. Napr. Sierpinski trojuholník má 3 afinní transformácie, papraď 4, strom 5 atď. Pokiaľ budú všetky transformácie používané pravidelne, vznikne soběpodobný fraktál. Pokiaľ budú používané každá s inou pravdepodobnosťou (prípadný parameter p, ktorým sa tu zaoberať nebudem), algoritmus sa nazýva hierarchicky IFS (HIFS) a vznikne fraktál soběpříbuzný. Afinní transformácie s daným objektom vykonáva nasledujúce operácie: rotáciu, zmenšovanie a posun. Vlastný popis afinní transformácie je daný vzťahy:

Vzorec na generovanie IFS fraktálov - Grafické algoritmy

Význam jednotlivých parametrov:

  • Uhol fí: Otočenie osi x, v ktorej smere je útvar Úprava meradla parametrom r1
  • Uhol ETA: Otočenie osi y, v ktorej smere je útvar řeškálován parametrom r2
  • e: Translácia útvaru podľa horizontálnej neotočený osi (horizontálny posun celým útvarom)
  • f: Translácia útvaru podľa vertikálnej neotočený osi (vertikálny posun celým útvarom)

Tu sú parametre (koeficienty) afinní transformácií pre niekoľko fraktálne útvarov:

Sierpinski trojuholník
Grafické algoritmy
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


Vianočný stromček
Grafické algoritmy
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
Grafické algoritmy
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
Grafické algoritmy
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


vetva
Grafické algoritmy
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


snehová vločka
Grafické algoritmy
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


papraď
Grafické algoritmy
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
Grafické algoritmy
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


Vo vzťahoch pre afinní transformácie sa vykonáva výpočty s maticami. Konkrétne násobenie matice o štyroch a dvoch prvkoch a sčítanie. Pre to platí nasledujúce všeobecný vzorec:
Grafické algoritmy
Tak a to je zatiaľ všetko. Dúfam, že sa mi aspoň trochu podarilo načrtnúť, o čom algoritmus IFS je a čo že je to vlastne fraktálne útvar. Aplikáciu si odvodíte zo zdrojového kódu, je súčasťou programu IFSgen

 

Všetky články v sekcii
Grafické algoritmy
Článok pre vás napísal David Hartinger
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
David je zakladatelem ITnetwork a programování se profesionálně věnuje 15 let. Má rád Nirvanu, nemovitosti a svobodu podnikání.
Unicorn university David sa informačné technológie naučil na Unicorn University - prestížnej súkromnej vysokej škole IT a ekonómie.
Aktivity