Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Machr na algoritmy - IFS fraktál

Aktivity
Avatar
David Hartinger
Vlastník
Avatar
David Hartinger:24.6.2013 12:21

Ahoj, programátorská soutěž na tento týden je o placku "Machr na algoritmy" a jako vždy nějaké ty samolepky. Programovat budeme fraktály, konkrétně tzv. IFS. IFS fraktál je definován soustavou několika rovnic a jeho vykreslení je poměrně jednoduché. Nádherné komplexní obrazce jsou definované jen několika čísly. Dá se všude sehnat spoustu zdrojáků a vysvětlení. Smyslem této soutěže tedy je, abyste se s IFS seznámili a zkusili si je vykreslit. Použít můžete libovolný programovací jazyk.

Teorie a i zdrojový kód je k nalezení v místním článku: http://www.itnetwork.cz/…bulka-hodnot . Snažte se o objektovou aplikaci :)

PS: Pokud se tu najde nějaký génius, co si vymyslí vlastní vzoreček, tak má můj obdiv :)

Deadline jako vždy v neděli 30.6. v 15:00

Editováno 24.6.2013 12:56
Odpovědět
24.6.2013 12:21
You are the greatest project you will ever work on.
Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovídá na David Hartinger
Petr Nymsa:24.6.2013 14:37

Tak já bych se konečně snad i zúčastnil :) Ale nějak absolutně nevím a nechápu ty matice co jsou popsány v tom článku 8|

Nahoru Odpovědět
24.6.2013 14:37
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Petr Nymsa
David Hartinger:24.6.2013 14:46

Jde o to, že máš několik rovnic. Položíš bod na souřadnici X,Y a vybereš jednu z rovnic. Na konci článku je ukázáno, jak ty matice spočítat. Z prvního řádku ti vyjde X dalšího bodu, z druhého Y dalšího bodu. A tak stále pokládáš body až máš na konec výsledný útvar.

Můj starší kód v Delphi vypadá takhle:

for i:=0 to (spinedit1.value - 1) do begin
 p:=random(pcount);
 curpoint.x:=round(a[0,p] * prevpoint.x + a[1,p] * prevpoint.y + a[4,p]);
 curpoint.y:=round(a[2,p] * prevpoint.x + a[3,p] * prevpoint.y + a[5,p]);
 image1.canvas.pixels[curpoint.x,curpoint.y]:=clsilver;
 prevpoint:=curpoint;
end;

Určitě to nějak přežvýkáš :)

Editováno 24.6.2013 14:46
Nahoru Odpovědět
24.6.2013 14:46
You are the greatest project you will ever work on.
Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovídá na David Hartinger
Petr Nymsa:24.6.2013 14:52

Díky :) Ale stejně nějak nechápu využití matic :D. Třeba k čemu nebo jak ...
viz. http://www.matweb.cz/matice tak hned první ukázka. Proč nebo kčemu jsou ty indexy a ?

Nahoru Odpovědět
24.6.2013 14:52
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Зайчик
Člen
Avatar
Odpovídá na Petr Nymsa
Зайчик:24.6.2013 14:55

Jste ještě ve škole nepracovali s maticema? Když počítáš vektory, tak taky jedeš s maticema.

Nahoru Odpovědět
24.6.2013 14:55
Коммунизм для нашего будущего!
Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovídá na Зайчик
Petr Nymsa:24.6.2013 15:00

Pokud vím ve druháku se Matice určitě neberou a vektory se přesunuli a prohodila se mírně látka. Takže někdo má vektory (druhá třída) ale zase nemá probrané to co máme my - různé goniometrické funkce, trigonometrie, ..... nebo možná .. já teď osobně ani nevím :D ... každopádně vektory, úplné počítání ne :)

Nahoru Odpovědět
24.6.2013 15:00
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Petr Nymsa
David Hartinger:24.6.2013 15:01

Proměnná a je 2d pole s tabulkou těch koeficientů. P je index řádku, tedy která rovnice se použije. Vybere se vždy náhodně. Práce s maticemi je tam asi kvůli těm transformacím, ty se často dělají přes matice.

Nahoru Odpovědět
24.6.2013 15:01
You are the greatest project you will ever work on.
Avatar
Milan Gallas
Tvůrce
Avatar
Milan Gallas:30.6.2013 13:12

už jen malé úpravy a můžu odeslat :D

 
Nahoru Odpovědět
30.6.2013 13:12
Avatar
Milan Gallas
Tvůrce
Avatar
Milan Gallas:30.6.2013 14:21

přidávám sem svůj výtvor v Javě. Program umí generovat 5 variant "fraktálu". Přidává a ubírá hustotu. http://ulozto.cz/…/fraktal-zip
program využívá třídu Complex.

 
Nahoru Odpovědět
30.6.2013 14:21
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na Milan Gallas
David Hartinger:30.6.2013 15:25

Co jsi poslal bohužel není IFS fraktál.

Nahoru Odpovědět
30.6.2013 15:25
You are the greatest project you will ever work on.
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 10 zpráv z 10.