Hlavne menu We are sorry, but magazine AMMO is suspended. Here is just read-only access to the articles archive. Some features are removed because they were outdated, pointless in read-only (voting and pools), or it was missused by spammers (comments) etc. Now the webpages aren't maintained so when something will get broken most probably it won't be fixed at all. If you liked our magazine then please make donation with paypal so we can pay for traffic on this server.

TOP Technické
01 Windows Vs. Linux 54 bodov
02 Chladenie 4 body
Najnovsie clanky
Kvalitné služby podľa skúseností iných - TopSlužby.sk
LOTR - Dve veže - Parodia - Scénka 2. časť
Neverwinter nights
Children Of Bodom-Hatebreeder
Kult Duny - 6. časť (Bonus)
Kult Duny - 5. časť (Filmy, Hry)
Dobré ráno. (morc certa, hora incerta...)
Kult Duny - 4. časť (Knihy 2/2)
Stretnutie Spoločenstva Tolkiena
GRAVE DIGGER – Knights Of The Cross
Kult Duny - 3. časť (Knihy 1/2)
Kult Duny - 2. časť (Pojmy)
Kult Duny - 1. časť (Úvod)
LOTR - Dve veže - Parodia - Scénka
Jackass
Vsetky clanky
Airsoft - Specnaz [4 clanky]
Básne [6 clankov]
Fantázia [4 clanky]
Filmy a DVD [51 clankov]
Hardware [10 clankov]
Hry [170 clankov]
Hry, návody [6 clankov]
Hudba [8 clankov]
Internet [7 clankov]
Knihy [6 clankov]
O AMME [4 clanky]
Pandemonium [10 clankov]
Poviedky [14 clankov]
Programy [18 clankov]
Rôzne [8 clankov]
Technické [3 clanky]
Chladenie
Windows Vs. Linux
Úvahy [8 clankov]
Výuka [50 clankov]
Zábava [5 clankov]
Zdravie [15 clankov]
Celkovy pocet clankov: 407
Fraktály 
Technické | Dna 27.5.2001 | Johny + Censored | 14 znamok, priemer 2.42 | 9018 videni | 949 WAP videni

Definícia p. Mandelbrota: Fraktál je množina, pre ktorú Hausdorff
Besicovichova dimenzia presahuje topologickú dimenziu.
Jednoduchšie vysvetlenie: Fraktál je vlastne obrázok plný
ornamentov a obrazov, ktorý pekne vyzerá. Teda záleží na vašom vkuse.
Fraktál je zložený z častí, ktoré sa neustále opakujú, pričom každá
zmenšená časť je podobná s originálom. Fraktály sú nezávislé na
merítku. Sú si navzájom podobné a často sa vyskytujú v prírode, napr.
mraky, hory, atď.
Dokonca sa našlo uplatnenie aj v Eliotovej schéme (dúfam, že som
to nazval správne). Stručne: ide o graf, ktorý má priebeh taký, že sú
tu štyri fázy stúpania a jedna klesania. Podľa tohto sa dá určiť
napríklad vzrast a pokles hodnoty akcií či iných vecí. Lenže na takéto
určovanie by ste potrebovali poznať vec do takých detailov, že ...
No späť ku fraktálom - tým známejším. Najznámejším fraktálom je
Mandelbrot, pomenovaný podľa jeho autora. Je generovaný veľmi
jednoduchým výrazom, a to síce z:=z^2 c. Pozor, také jednoduché to
zase nie je, z a c sú komplexné čísla, ich charakter vysvetlím neskôr.
Ďalším fraktálom je napr. Julia. Tá sa počíta tak, že sa zvolí bod
z Mandelbrotovej množiny a ten slúži ako základ pre Juliu. Taktiež je
možné použiť vyššie mocniny pre fraktály. Fraktálov je dá sa povedať
nekonečne veľa, ale medzi najkrajšie patria tie, ktoré som uviedol
a ešte napríklad Newtonova schéma, Barnsleyho forumla, Phoenix, Octo,
magnet.
Fraktál sa dá teoreticky zväčšovať donekonečna, len doma vám to
nepôjde, lebo počítač má obmedzený počet desatinných miest. Ale
v pohode by vám malo chodiť zväčšenie aj 70000 krát, to ešte nie je
tak veľa. Teda už len pri takomto zväčšení môžte dosiahnuť toľko
rôznych obrazcov, že si každý nájde niečo, čo sa mu páči. Pri
zobrazovaní fraktálov je tiež dôležité mať nastavenú pekne paletu, tá
totiž veľa spraví, odtiene potom pekne prechádzajú do iných farieb.


Vykresľovanie fraktálov :

V prvom rade chcem upozorniť, že všetky príklady, ktoré budú,
budú písané v pascale, pretože si myslím, že tomu by mohol rozumieť
každý. Pri kreslení fraktálov sa nezaobídeme bez počítania, a toho
počítania bude fakt veľa. Uvediem príklad ako vypočítať Mandelbrotovu
množinu. Základom teda je z:=z^2 c, kde z a c sú komplexné čísla.
Komplexné čísla sú nadmnožinou reálnych čísel, čo znamená, že zahŕňajú
všetky čísla používané bežnými smrteľníkmi. Každé komplexné číslo je
v tvare a bi, "a" je reálna časť, "bi" je imaginárna časť.
Pomenovanie je veľmi výstižné a je akékoľvek číslo, ktoré viete
povedať len tak z hlavy, napr. 2, PI, odmocnina z 2, ... No
a imaginárna časť bi, základom je imaginárna jednotka i, ktorá má
hodnotu takú, že i*i=-1. Ja viem, že vás učili, že takýto výraz je
vždy kladný, ale niekto si zrejme povedal, že čo keď nie. Imaginárny
člen sa volá preto, lebo si to fakt môžte len predstaviť. Asi by bol
problém napísať konkrétne číslo. Konkrétne číslo sa napísať nedá.
Aspoň zatiaľ nie. Ktovie, možno na to prídete. No a potom platí
nasledovné :


i*i =-1
i*i*i =-i
i*i*i*i =1
i*i*i*i*i=i
a znovu sa to opakuje.


Toľko z matematiky, no a teraz budeme pre každý bod počítať
nasledovne. Z sa na začiatku nastaví na nula a c sa nastaví tak, že
reálna časť je x, imaginárna časť je y. Začiatok množiny je približne
-2-2i ... 2 2i - to už je koniec. Potom už len stačí počítať príslušné
hodnoty farby pre každý bod. Toto sa robí v cykle, ale niekedy treba
cyklus skončiť, a to vtedy, keď číslo "z" vyskočí z hranice, väčšinou
0 až 4. Vtedy sa cyklus preruší a farba je to číslo, koľkokrát cyklus
prebehol. Potom sa už len vykreslí na obrazovku.

Hovoril som síce, že budem uvádzať len v Pascale, ale tu je niečo
v C.


static int
mand_calc (number_t cre,
number_t cim,
number_t pre,
number_t pim)
{
number_t rp = 0, ip = 0;
unsigned long iter = maxiter;
number_t zre, zim;
zre = cre;
zim = cim;
while ((iter) && (rp ip < 4))
{
ip = (zim * zim);
zim = (zim * zre) * 2 pim;
rp = (zre * zre);
zre = rp - ip pre;
iter--;

}
iter = maxiter - iter;
return (iter);
}


Toto je základ. V Pascale to vyzerá asi takto, je tu completný
zdroják :





program mset; {Produces a full-sized M set in Turbo Pascal}
uses crt, graph;

var xcorner, y2corner, x2corner, ycorner: real;
xsize, ysize, k, i, xgap, ygap, max: integer;
ca, cb, za1, za2, zb: real;
gd, gm: integer;
count: word;

procedure iterate; {The heart of the program - performs the
calculations
necessary to determine the colour}
begin
count := 0;
za1 := 0;
za2 := 0;
zb := 0;
while 1 = 1 do
begin
za1 := za2;
za2 := (za1 * za1 - zb * zb) ca;
zb := za1 * zb * 2 cb;
iF za2 * za2 zb * zb > 4 THEN EXIT;
count := count 1;
if count > max then EXIT;
end;

END;

procedure main;
begin
gd := Detect;
InitGraph(gd, gm, 'd:\tp\bgi');
xcorner := -2.2; {corners of the full-sized M set}
y2corner := 1.4;
x2corner := 0.6;
ycorner := -1.4;
xsize := 400; {pixel size}
ysize := 400;
xgap := 0;
ygap := 0;
max := 40; {maximum count before stopping iteration -
a high count is better for high magnifictions but for
the
full sized M set it can be quite small}


FOR k := ysize downTO 1 do
FOR i := 1 TO xsize do
begin
ca := (i / xsize) * (x2corner - xcorner) xcorner;
cb := (k / ysize) * (y2corner - ycorner) ycorner;
iterate;
if count > max then count := 0;
setcolor(count);
LINE (xgap i, ygap ysize- k, xgap i, ygap ysize- k);
end;
repeat until keypressed;


closegraph;
END;


begin
main;
end.



Zväčšovanie a zmenšovanie dosiahnete tak, že budete hranice
zobrazenia zmenšovať, a tým sa zobrazia väčšie detaily. Iste si
všimnete, že je to akési pomalé, to áno. Na to, aby vám to išlo čo
najlepšie, odporúčam použiť assembler, Fredy určite použije aj 32
bitový, ak to bude robiť. No a prípadne ešte použiť koprocesor, a čo
je úplný zlepšováák, tak to je jedna z metód zobrazovania. A to je,
v angličtine: diagonal interpolation algorithm, opíšem princíp
zobrazovania: Zobrazí sa napr. niekoľko bodov v diagonálnych čiarach
po obrazovke, no a vy sa potom triafate medzi ne. Funguje to asi tak,
že zistíte farbu 4 bodov, ktoré obkolopujú pozíciu nového bodu, ktorý
idete umiestniť, ak sú všetky rovnaké, tak nový bod bude mať farbu ako
oni, inak musíte tento bod vypočítať samostatne. Tento spôsob je veľmi
rýchly, ale nájdu sa aj rýhchlejšie.

Pre tých, ktorí sa chcú pozrieť na pekné fraktály odporúčam
pozrieť moju amatérsku robotu, program na zobrazenie Mand. množiny,
alebo inú, profesionálnejšiu robotu tímu Xaos. Z tadiaľto som tiež
čerpal nejaké informácie, majú to urobené fakt dobre, to nie je len
rýchle zobrazovanie, ale aj reálne zoomovanie, čo je fakt super. Ku
AMMU to pribalené nie je, lebo to by bolo treba na AMMO už DVD-čko,
aby sa to všetko pomestilo. To je tak asi všetko o fraktáloch, na
NET-e samozrejme nájdete mnoho ďalších informácií a obrázkov. Je to
populárna téma. Nechcel som vás nudiť len s teóriou, takto si to môžte
vyskúšať aj v praxi.


Obr�zok - Klikni a zv�?�� sa
Najnovsie clanky od tohto redaktora
Podobne clanky