Autorské riešenie
Keďže máme podľa fotky poľa zistiť pomer nepoškodenej a poškodenej časti, musíme ju oskenovať. To urobíme tak, že prejdeme postupne každý bod fotky. Pri takomto skenovaní zisťujeme, akej farby je daný bod. Stačí si pamätať počet bodov jednej farby, všetky ostatné body sú určite druhej farby. Pamätáme si teda počet bodov zelenej farby, ktorá znázorňuje nepoškodenú časť poľa.
Ak už máme oskenované celé pole, tak môžeme vypočítať pomery a znázorniť ich pomocou farebných obdĺžnikov.
Najprv v spodnej časti po celej šírke vykreslíme obdĺžnik hnedej farby, do ktorého vykreslíme zelený, ktorý bude znázorňovať nepoškodenú časť.
Šírku zeleného obdĺžnika vypočítame ako súčin šírky kresliacej plochy(v našom prípade je to šírka fotky) a pomeru nepoškodenej časti.
Pomer nepoškodenej časti vypočítame ako podiel počtu zelených bodov na fotke a počet všetkých bodov, teda
;Imagine logo
viem skenuj_pole skry urobTu "pocet_zelenych 0 urobTu "x 0 urobTu "y 0 kým [ :x < 400 ][ kým [ :y < 300][ nechxysur :x :y ak farbabodu = "zelena [urobTu "pocet_zelenych (:pocet_zelenych + 1)] urobTu "y (:y+1) ] urobTu "x (:x + 1) urobTu "y 0 ] domov nechfp "hnedá polygon[ do 55 vp 90 do 399 vp 90 do 55 vp 90 do 399 vp 90 ] urobTu "sirka_zeleneho_obdlznika (:pocet_zelenych / 300) nechfp "zelená polygon[ do 50 vp 90 do :sirka_zeleneho_obdlznika vp 90 do 50 vp 90 do :sirka_zeleneho_obdlznika vp 90 ] ukáž koniec Vaše zaujímavé riešenia a najčastejšie chyby Táto úloha bola zvládnutá veľmi dobre. V jednom prípade sa vyskytol problém s použitím príkazu vyplň pri vykresľovaní obdĺžnikov vyjadrujúcich pomer nepoškodenej a poškodenej časti poľa. Lepším riešením by bolo tieto obdĺžniky vykresľovať pomocou príkazu polygon. V ďalšom prípade bolo pole úspešne zoskenované a vypočítané pomery, no neboli vykreslené. |
||||||||||
© Univerzita Pavla Jozefa Šafárika v Košiciach, Prírodovedecká fakulta, Ústav informatiky palmaj (zavinac) upjs.sk |