Cvičenie 03
Cieľom cvičenia je vyskúšať si vypĺňanie oblastí.
Odovzdávanie úloh pre párnotýždňových (cvičenie 19.10.2010) - 08.11.2010 23:59:59
Odovzdávanie úloh pre nepárnotýždňových (cvičenie 26.10.2010) - 15.11.2010 23:59:59
Zadania
CV03_01 (2 body) | |
Zadanie | V grafickom režime 320x200 8bit napíšte algoritmus, ktorý vyplní vzory vytvorené volaním funkcie void cv03_vzor(uint8_t id) rôznymi farbami. Výber farieb je na Vás, dôležité je, aby každá oblasť oddelená bielými pixelmi mala inú farbu a aby nezostal na obrazovke žiadny neofarbený pixel. Celé ofarbovanie musí prebiehať pomocou jediného algoritmu. |
Funkcie |
void ugr_asm_setmode(uint8_t mode) void ugr_mem_putpixel(uint8_t color, int16_t x, int16_t y) void ugr_vline(uint8_t color,int16_t x,int16_t ay,int16_t by) void ugr_hline(uint8_t color,int16_t ax,int16_t y,int16_t bx) void cv03_vzor(uint8_t id) |
EXE | http://mirror.bwpow.eu/pub/upjs/ugr1/cv03/cv03_01.exe |
Vzor | |
Komentár | Na obrázku je ukázané vyplnenie vzoru číslo 4 farbami s indexami 14, 13 a 10 a so začiatkom vypĺňania na pozíciách [160,100], [160,50] a [160,0]. |
CV03_02 (3 body) | |
Zadanie | V grafickom režime 320x200 8bit vytvorte algoritmus, ktorý vyplní ľubovoľný trojuholník (teda dostane súradnice troch rôznych bodov) zadanou farbou. Následne volajte tento algoritmus v cykle s náhodne vybranými bodmi a farbou, pričom pozadie nemažte, ale nechajte ho prekresliť vždy novým vyplneným trojuholníkom. V celom algoritme používajte len celočíselnú aritmetiku (int), nie je dovolené použiť desatinné čísla. Taktiež nie je povolené používať polia, algoritmus musí bežať v pamäti o veľkosti závislej len od počtu vrcholov a nie od veľkosti obrazovky alebo samotného trojuholníka. Algoritmus by si mal vedieť poradiť aj s prípadmi, ak všetky tri body ležia na priamke alebo sú dokonca totožné. |
Funkcie |
void ugr_asm_setmode(uint8_t mode) void ugr_mem_putpixel(uint8_t color, int16_t x, int16_t y) void ugr_vline(uint8_t color,int16_t x,int16_t ay,int16_t by) void ugr_hline(uint8_t color,int16_t ax,int16_t y,int16_t bx) |
EXE | http://mirror.bwpow.eu/pub/upjs/ugr1/cv03/cv03_02.exe |
Vzor | |
Komentár | Na výber náhodného čísla môžete použiť funkciu random(). Samotný algoritmus založte na bresenhamovom algoritme pre úsečku. |