QuestionCopyright.org

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 Priklad 1
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 Priklad 2
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.