Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Zdeněk Pavlátka:2.4.2015 11:02

V tomto machrovi budete osvětlovat místnosti ;) Aplikace si vyžádá obrázek. Ten bude tvořený černou, modrou a bílou barvou a oranžovými tečkami. Černá barva je volný prostor, bílé jsou zdi, modré jsou dveře a oranžové body jsou světla. (Ukázku máte mezi obrázky) Úkolem aplikace bude tento obrázek "osvětlit" - tzn. černou barvu nahradit odstínem šedé podle světla na daném místě. Světlo se bude šířit z oranžových bodů. Ty budou mít vždy 100% červenou složku a podle velikosti zelené složky poznáte sílu zdroje světla (např. [255;32;0] je slabé světlo, [255,192;0] celkem silné). Světlo samozřejmě nemůže projít zdmi, ale dveře část světla propustí.

Pro jakékoli dotazy je dost místa v komentářích.

Čas si dáme do neděle 12.4.2015 do 12:00. Vyhodnocení bude (snad) téhož dne večer.

Kompletní pravidla soutěží: http://www.itnetwork.cz/…outezi-machr

Odpovědět  +5 2.4.2015 11:02
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Odpovídá na Zdeněk Pavlátka
Ondřej Štorc:2.4.2015 11:19

Otázka první, nemohl bys sem dát trochu větší obrázek té místnosti? :D A druhá otázka je jakou mají mít ty dveře propustnost? Nebo si ji máme zvolit sami?

Nahoru Odpovědět  +3 2.4.2015 11:19
Život je příliš krátký na to, abychom bezpečně odebírali USB z počítače..
Avatar
Odpovídá na Zdeněk Pavlátka
Petr Čech (czubehead):2.4.2015 11:20

Co přesně znamená "dveře část světla propustí" ? Nemohl bys to nějak přiblížit?

Nahoru Odpovědět 2.4.2015 11:20
Why so serious? -Joker
Avatar
Odpovídá na Zdeněk Pavlátka
Michael Škrášek:2.4.2015 11:52

Pochopil jsem správně, že úkolem aplikace bude vyhledávat na obrázku oranžové body, když je najde, tak kolem nich osvětlit body. (pokud to není zeď, pokud tam jsou dveře tak trochu světla propustit)

Ještě jsem nepřišel na lepší způsob, než procházet obrázek bod po bodu a získávat barvu z bodu, ale to bude hodně dlouho trvat, tak budu muset asi přijít na lepší způsob. :D

Nahoru Odpovědět  +1 2.4.2015 11:52
Proč to dělat složitě, když to jde jednoduše.
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Odpovídá na Petr Čech (czubehead)
Zdeněk Pavlátka:2.4.2015 12:01

část světla znamená, že při průchodu dveřmi se světlo výrazně zeslabí

Nahoru Odpovědět 2.4.2015 12:01
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
rwn
Člen
Avatar
Odpovídá na Zdeněk Pavlátka
rwn:2.4.2015 14:13

chtěl bych se také zeptat, ty světelné body si (dejme tomu na začátku) zvolí uživatel, nebo ty budou čistě statické - pořád na stejném místě?

Nahoru Odpovědět 2.4.2015 14:13
Co můžeš naprogramovat dnes, neodkládej na zítřek.
Avatar
patrik.valkovic
Šéfredaktor
Avatar
patrik.valkovic:2.4.2015 14:18

To světlo bude s odstupem od bodu slábnout nebo bude stále ve stejné intenzitě? Sílu světla máme tedy udělat barvou? Odráží se světlo od stěn?

Nahoru Odpovědět  +1 2.4.2015 14:18
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Odpovídá na rwn
Zdeněk Pavlátka:2.4.2015 14:21

Lampy budou pevně dané.

Nahoru Odpovědět 2.4.2015 14:21
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Odpovídá na patrik.valkovic
Zdeněk Pavlátka:2.4.2015 14:22

Ano, světlo slábne se vzdáleností, odrážení záleží na tobě.

Nahoru Odpovědět 2.4.2015 14:22
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
patrik.valkovic
Šéfredaktor
Avatar
patrik.valkovic:2.4.2015 18:08

Ještě taková připomínka, nebylo by jednodušší předat data v jiném formátu? Takhle je potřeba obrázek první "naparsovat" a až poté vytvářet onen algoritmus (který by měl být hlavním cílem, jestli se nemýlím). Například JSON nebo XML?

Nahoru Odpovědět 2.4.2015 18:08
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
Ondrca
Redaktor
Avatar
Odpovídá na Zdeněk Pavlátka
Ondrca:2.4.2015 19:24

Rád bych se zeptal, v jaké velikosti bude obrázek zadán?

Nahoru Odpovědět  +1 2.4.2015 19:24
Zase jsem o něco chytřejší
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Odpovídá na Ondrca
Zdeněk Pavlátka:2.4.2015 19:52

K tomu ti řeknu jen, že nebude větší než 640 * 480.

Nahoru Odpovědět  +1 2.4.2015 19:52
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Ondrca
Redaktor
Avatar
Odpovídá na Zdeněk Pavlátka
Ondrca:2.4.2015 19:56

Díky, tohle zadání je originální a i zajímavé :)
EDIT:// myslím celé zadání toho machra

Editováno 2.4.2015 19:57
Nahoru Odpovědět  +2 2.4.2015 19:56
Zase jsem o něco chytřejší
Avatar
Michael Škrášek:3.4.2015 11:03

Už to začíná trochu vypadat, už jen vylepšit propustnost dveří, optimalizovat a okomentovat kód a mám to hotové. :D

Snad to vypadá celkem k světu. :)

Nahoru Odpovědět  +2 3.4.2015 11:03
Proč to dělat složitě, když to jde jednoduše.
Avatar
Petr Čech (czubehead):5.4.2015 14:06

Myslím, že to není tak zlé.

Nahoru Odpovědět  +2 5.4.2015 14:06
Why so serious? -Joker
Avatar
Michael Škrášek:5.4.2015 16:10

Po dlouhém bádání a přemýšlení, jak funguje světlo jsem došel k tomuto názoru (viz obr), světlo by se měla sčítat, vím, vypadá to divně, ale fyzikálně by to tak mělo být. :D

Pokud jsem v omylu, tak mě z něho prosím někdo vyvěďte :)

Nahoru Odpovědět  +1 5.4.2015 16:10
Proč to dělat složitě, když to jde jednoduše.
Avatar
Odpovídá na Petr Čech (czubehead)
Michael Škrášek:5.4.2015 16:13

Jen malá rada, menší zdroje světla by měli začínat s menším osvětlením okolo, ty všechny začínáš stejně a pak máš různý skoky, skoky by měly být všude stejný.
;)

Nahoru Odpovědět 5.4.2015 16:13
Proč to dělat složitě, když to jde jednoduše.
Avatar
Odpovídá na Michael Škrášek
Michal Žůrek (misaz):5.4.2015 16:16

takhle nějak jsem si to představoval, ostatní tam mají v místech kde se srážejí světla jakousi temnotu, nevím proč, už jsem si myslel, že jsem jenom já divný.

Nahoru Odpovědět  +1 5.4.2015 16:16
Nesnáším {}, proto se jim vyhýbám.
Avatar
Odpovídá na Michal Žůrek (misaz)
Michael Škrášek:5.4.2015 16:21

Původně jsem to tak měl taky, ale pak jsem se kouknul večer (včera) kolem sebe a žádnou temnotu jsem v pokoji neměl, tak jsem se do toho dneska pustil :D

Editováno 5.4.2015 16:22
Nahoru Odpovědět  +1 5.4.2015 16:21
Proč to dělat složitě, když to jde jednoduše.
Avatar
Odpovídá na Michael Škrášek
Petr Čech (czubehead):5.4.2015 16:26

Jo, už jsem to tak měl, ale tohle se mi líbilo víc :D Nicméně to je 1 řádka. Ale zdá se mi, že to mám hrubě neefektivní, pokud tomu dám složitější úkol, trvá vykreslení třeba i několik desítek sekund...

Editováno 5.4.2015 16:28
Nahoru Odpovědět  +1 5.4.2015 16:26
Why so serious? -Joker
Avatar
Odpovídá na Petr Čech (czubehead)
Michael Škrášek:5.4.2015 19:46

Složitějším úkolem myslíš větší mapu?

Mně ta velká mapa trochu blbne a vykresluje se celkem dlouho, ale přes deset sekund to nebude. Blbne mi to asi proto, že zvětšením se to trochu rozmazalo - tím pádem přidaly barvy ...

Nahoru Odpovědět  +1 5.4.2015 19:46
Proč to dělat složitě, když to jde jednoduše.
Avatar
Petr Čech (czubehead):7.4.2015 18:11

Už bych se měl opravdu začít učit Latinu, ale nedokážu přestat myslet na to, jak ten můj algoritmus vylepšit :D :@

Nahoru Odpovědět  +2 7.4.2015 18:11
Why so serious? -Joker
Avatar
Štefan Pružinský:11.4.2015 13:28

Čaute, zapojil som sa do tohto Machra taktiež, avšak nakoľko som bol tento týždeň vysoko pracovne zaťažený (vrátane dnes a zajtra), nestihnem dokončiť Machra načas. Určite ho však pošlem mimo súťaž:).
Zdeněk Pavlátka Výborný nápad na súťaž:)

Nahoru Odpovědět 11.4.2015 13:28
Najefektívnejším spôsobom debuggingu je modlitba. :)
Avatar
Luboš Běhounek (Satik):11.4.2015 16:42

Na Velikonoce jsem byl v Krkonoších a měl nějaký čas, tak jsem něco jednoduchého taky napsal :)

Nahoru Odpovědět  +4 11.4.2015 16:42
:)
Avatar
Michael Škrášek:11.4.2015 19:48

Už jsem to měl hotové, krásné, možnost zvětšení ... a pak se mi to povedlo nějak po*rat :(, musim opravit propustnost dveří

Editováno 11.4.2015 19:49
Nahoru Odpovědět 11.4.2015 19:48
Proč to dělat složitě, když to jde jednoduše.
Avatar
vodacek
Redaktor
Avatar
Odpovídá na Luboš Běhounek (Satik)
vodacek:11.4.2015 20:27

to berem do enginu!

 
Nahoru Odpovědět 11.4.2015 20:27
Avatar
Odpovídá na Luboš Běhounek (Satik)
Petr Čech (czubehead):11.4.2015 22:14

Tak to se můžu jít zahrabat :( 8|

Nahoru Odpovědět  +2 11.4.2015 22:14
Why so serious? -Joker
Avatar
patrik.valkovic
Šéfredaktor
Avatar
Odpovídá na Luboš Běhounek (Satik)
patrik.valkovic:12.4.2015 9:12

Měl jsem stejnou myšlenku, jen jsem to nestihl :( Škoda

Nahoru Odpovědět 12.4.2015 9:12
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
Petr Čech (czubehead):12.4.2015 10:47

Takže tady je moje řešení: https://www.dropbox.com/…usLyYrYjcnva?dl=0
Veškerá logika je v třídě ImageProcessor. Ta obsahuje vlastně 2 algoritmy- jeden je rychlejší, druhý kvalitnější; chtěl bych ohodnotit spíš ten kvalitnější. Když to spustíte, v okně se dá nastavit pár hodnot:
max poloměr světla: [px] nedával bych tam větší hodnoty než 40
koeficient kvality (opravdu mě nic lepšího nenapadlo :D ) je inverzní, tj. čím menší číslo, tím lepší kvalita.
Dveře uberou jas: o kolik se z 255 zmenší jas za dveřmi
Max chyba detekce překážky: ve stupních
Kvalita/výkon: přepínání mezi 2 algoritmy.
PS: pokud je kód prasárna, napište prosím proč a lepší řešení.
PPS: je to 1. kód, který jsem zveřejnil, tudíž i 1. machr

Nahoru Odpovědět 12.4.2015 10:47
Why so serious? -Joker
Avatar
coells
Redaktor
Avatar
Odpovídá na Luboš Běhounek (Satik)
coells:12.4.2015 11:16

Když se koukám na obrázky, tak si říkám, že asi žiju v jiném vesmíru s odlišnými fyzikálními principy :-D Z mojí lampičky bys tohle nevymáčkl ani za nic.

 
Nahoru Odpovědět  +1 12.4.2015 11:16
Avatar
Odpovídá na Luboš Běhounek (Satik)
Michael Škrášek:12.4.2015 11:24

Fakt hustá průsvitnost dveří :)

Nahoru Odpovědět  +1 12.4.2015 11:24
Proč to dělat složitě, když to jde jednoduše.
Avatar
Michael Škrášek:12.4.2015 11:41

Tak jsem to stihl :D

http://leteckaposta.cz/765894050

Sice je hodně malá šance proti Luboš Běhounek (Satik), ale za pokus to stojí

Nahoru Odpovědět  +2 12.4.2015 11:41
Proč to dělat složitě, když to jde jednoduše.
Avatar
Odpovídá na coells
Luboš Běhounek (Satik):12.4.2015 11:52

Co přesně tím máš na mysli? :D

Nahoru Odpovědět  +3 12.4.2015 11:52
:)
Avatar
coells
Redaktor
Avatar
Odpovídá na Luboš Běhounek (Satik)
coells:12.4.2015 12:49

To, že osvětlení povrchu je dáno jen a pouze úhlem mezi odraženým světlem a pozorovatelem jako důsledek nerovnosti povrchu, úbytek světla se na druhou stranu vztahuje k pohlcení světla materiálem (případně prachovými částicemi ve vzduchu). A do třetice halo, které vidíme v mlze je dáno molekulami vody ve vzduchu a rozptylem světla.

Jak říkám, z mé lampičky bys takové obrázky nevymáčkl, ale kdybys viděl elektromagnetické vlnění, asi by to vypadalo hodně podobně, ale foton je foton :-D

 
Nahoru Odpovědět  +1 12.4.2015 12:49
Avatar
Odpovídá na coells
Luboš Běhounek (Satik):12.4.2015 13:32

A ještě tam neuvažuju červený posun :D

Nahoru Odpovědět  +1 12.4.2015 13:32
:)
Avatar
coells
Redaktor
Avatar
Odpovídá na Luboš Běhounek (Satik)
coells:12.4.2015 13:35

Pokud se nepohybuješ rychlostí blízkou rychlosti světla, tak to neřeš...

 
Nahoru Odpovědět  +1 12.4.2015 13:35
Avatar
Odpovídá na coells
Luboš Běhounek (Satik):12.4.2015 13:48

To v zadání nebylo upřesněno, jak rychle se pozorovatel pohybuje.

Nahoru Odpovědět 12.4.2015 13:48
:)
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Zdeněk Pavlátka:12.4.2015 18:53

Jelikož je spousta odevzdaných výtvorů a už moc nestíhám, bude ohodnocení zítra večer.

Nahoru Odpovědět 12.4.2015 18:53
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Odpovídá na Zdeněk Pavlátka
Petr Čech (czubehead):12.4.2015 19:00

Ještě k mému výtvoru: jestli to nebude fungovat, sniž kvalitu někam kolem 50, a chybu ~1, potom by to mělo fungovat bez problémů.

Nahoru Odpovědět 12.4.2015 19:00
Why so serious? -Joker
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Zdeněk Pavlátka:13.4.2015 20:23

Tak tedy hodnocení :) :
Luboš Běhounek (Satik) :
takhle nějak bych si výsledek představoval

Petr Čech (czubehead) :
funguje dobře při menším max poloměru světla, při vyšším to "zrní" - viz. obrázek, na obrázku je max. poloměr 74

Michael Škrášek :
Vypadá to dobře, jen u větších obrázků to spadne (out of memory exception)
Nechápu, proč dveře mají mít podle kódu barvu #0026ff, já tam používal #0000ff

Placku vyhrává Luboš Běhounek (Satik) . Výtvor tedy publikuj a o placku si napiš do PM.

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět  +1 13.4.2015 20:23
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Odpovídá na Zdeněk Pavlátka
Petr Čech (czubehead):13.4.2015 20:58

Jo, věděl jsem o tom, ale nemohl jsem najít chybu a s časem jsem na tom byl bídně, tak jsem doufal, že to nebudeš tak moc pokoušet :D

Nahoru Odpovědět  +1 13.4.2015 20:58
Why so serious? -Joker
Avatar
Odpovídá na Zdeněk Pavlátka
Michael Škrášek:13.4.2015 21:32

S tou barvou ... nevěděl jsem co je to za barvu, a tak jsem při kliknutí nechal ukázat barvu a ukázala se tato. Ale fungovalo to i přes to, tak nevím. Každopádně bylo jasné jak to dopadne :D

Nahoru Odpovědět 13.4.2015 21:32
Proč to dělat složitě, když to jde jednoduše.
Avatar
Odpovídá na Zdeněk Pavlátka
Petr Čech (czubehead):13.4.2015 22:39

Ještě by mě zajímalo, jak moc spatne/dobře je napsaný samotný kód?

Nahoru Odpovědět 13.4.2015 22:39
Why so serious? -Joker
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Odpovídá na Petr Čech (czubehead)
Zdeněk Pavlátka:14.4.2015 8:46

Včera už jsem na podrobnější hodnocení neměl čas, klidně ti podrobnější zhodnocení kódu napíšu do PM. Ale až zítra, dneska budu rád když stihnu ohodnotit druhého machra.

Nahoru Odpovědět  +1 14.4.2015 8:46
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Zdeněk Pavlátka
David Čápka:14.4.2015 9:46

Moc pěkná soutěž, jsem rád, že jsi se tu toho chopil :)

Nahoru Odpovědět  +2 14.4.2015 9: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í.
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 46 zpráv z 46.