Avatar
David Čápka
Tým ITnetwork
Avatar
David Čápka:

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
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Petr Nymsa
Redaktor
Avatar
Odpovídá na David Čápka
Petr Nymsa:

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 Čápka
Tým ITnetwork
Avatar
Odpovídá na Petr Nymsa
David Čápka:

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
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Petr Nymsa
Redaktor
Avatar
Odpovídá na David Čápka
Petr Nymsa:

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
Зайчик:

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
Redaktor
Avatar
Odpovídá na Зайчик
Petr Nymsa:

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 Čápka
Tým ITnetwork
Avatar
Odpovídá na Petr Nymsa
David Čápka:

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
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Milan Gallas
Redaktor
Avatar
Milan Gallas:

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

 
Nahoru Odpovědět 30.6.2013 13:12
Avatar
Milan Gallas
Redaktor
Avatar
Milan Gallas:

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 Čápka
Tým ITnetwork
Avatar
Odpovídá na Milan Gallas
David Čápka:

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

Nahoru Odpovědět 30.6.2013 15:25
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
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.