nika.blog.matfyz.sk

Veronika Dropčová
veronika.dropcova(at)gmail.com

08 – farebný model RGB

S farbami pri programovaní v Delphách sa stretávame veľmi často. Bohužiaľ, však, zatiaľ poznáme iba niekoľko farieb a aj to len v niekoľkých odtieňoch. Ale to sa zmení! Na tejto hodine sa naučíme používať príkazy, ktorými budeme môcť generovať farby od výmyslu sveta…

 

Možno ste už počuli o farebnom modeli RGB (red-green-blue). V princípe sa dá povedať, že akákoľvek farba sa dá vytvoriť pomocou týchto troch farieb, záleží na tom, ako ich „namiešame“.

 

Miešať farby budeme v príkaze RGB(číslo, číslo, číslo). Tri čísla, ktoré hovoria o troch farbách, pričom tieto čísla musia byť z rozsahu 0 – 255.

 

Tak napríklad:

 

clBlack = RGB(0,0,0)
clRed = RGB(128,0,0)

clGreen = RGB(0,128,0)
clBlue = RGB(0,0,255)
clGray = RGB(128,128,128)
clYellow = RGB(255,255,0)
clWhite = RGB(255,255,255)

 

Nie, nič z toho si pamätať nemusíte, ak to niekedy budete potrebovať, jednoducho si to vygooglite.

 

Skúsme sa teraz ale krátko zamyslieť, koľko farieb sa dá takto vytvoriť. Každú z troch uvedených farieb (červená, modrá, zelená) primiešavame v 256 rôznych odtieňoch. Spolu nám to teda dá 256*256*256 možností, čo je 16777216. Každá farba má tak teda nejaké svoje číslo. A keď sme už pri číslach – tie vieme náhodne generovať… že? Takže ak vygenerujeme nejaké náhodné číslo zo 16777216, dostaneme sa k náhodnej farbe. Pamätať si 16777216 je však vskutku náročné, preto budeme používať takýto zápis:

 

(napríklad) Image1.Canvas.Pen.Color := random(256*256*256);

 

Samozrejme, náhodnú farbu vieme získať aj iným spôsobom, použitím príkazu RGB:

 

(napríklad) Image1.Canvas.Pen.Color := RGB(random(256), random(256), random(256));  //vygeneruje úplne náhodnú farbu

 

alebo

 

Image1.Canvas.Pen.Color := RGB(random(256), 0, 0);  //vygeneruje farbu s náhodným červeným odtieňom (od čiernej až po červenú)

 

alebo

 

Image1.Canvas.Pen.Color := RGB(random(256), 0, random(256));  //vygeneruje náhodnú fialovú farbu (od červenej až po modrú)

 

Úlohy

 

1. Napíšte program, ktorý po kliknutí na tlačidlo vykreslí kruh na náhodnej pozícii, s náhodným polomerom a s náhodnou farbou výplne.

 

2. Upravte predchádzajúci program tak, aby aj orámovanie kruhu bolo rovnakej farby ako jeho vnútro.

 

3. Napíšte program, ktorý po kliknutí na tlačidlo bude kresliť farebnú úsečku náhodnej farby tak, že bude spájať hornú a dolnú hranu image-u, pričom X-ová súradnica bude náhodná.
1

 

4. Upravte predchádzajúci program tak, aby kreslil iba úsečky v červených odtieňoch.
2

 

5. Upravte predchádzajúci program tak, aby boli farby úsečiek usporiadané – vľavo budú čierne a vpravo budú najsvetlejšie odtiene červenej.
3

 

6. Napíšte program, ktorý po kliknutí na tlačidlo vypíše text „Teším sa na test“ náhodnou farbou.

 

7. Napíšte program, ktorý po kliknutí na tlačidlo vykreslí vlajku skladajúcu sa z troch pruhov náhodných farieb.

 

8. Napíšte program, ktorý nakreslí 4 sústredné kruhy s rôznymi polomermi (napr. 20, 40, 60 a 80), pričom budú mať rôzne farby výplne.

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *