07 - Náhoda
Náhodnosť je v generatívnej grafike a kreatívnom programovaní celkovo veľmi dôležitý prvok, tak si ho osvojíme čo najskôr.
Úloha 1
Na rozcvičenie a zopakovanie vytvorte skeč, ktorý bude vykresľovať takýto obrazec:

x=200
, y=200
, d=300
, veľkosť okna 400x400Program používa premenné x
a y
na určenie stredu obrazca. Premenná d
určuje veľkosť obrazca. Biele čiary, ktoré križujú obrazec, majú hrúbku 40 pixelov a okrúhle konce.
Ak vás zaujíma, ako urobiť na čiare okrúhle konce, pozrite si dokumentáciu k príkazu strokeCap
: https://processing.org/reference/strokeCap_.html
Vyskúšajte svoj program aj s inými hodnotami premenných:

x=100
, y=150
, d=200
, veľkosť okna 400x400.Úloha 2
Vytvorte nový skeč, ktorý bude obsahovať 3 float
-ové premenné x
, y
a d
. Program vykreslí na obrazovku kruh na súradnice x
,y
s priemerom d
:

x=100
,y=200
,d=50
Úloha 3
V programe, kde do premennej d
priraďujete hodnotu:
float d = 50;
zmeňte toto priradenie na:
float d = random(200);
Skúste skeč pustiť viackrát, sledujte ako vždy dá iný výsledok.
Gratulujem, práve ste použili náhodnosť.
Príkazy a funkcie
Namiesto pevnej hodnoty 50
sme v programe použili príkaz random(200)
. Doteraz sme príkazy používali na to, aby počítač niečo vykonal: nakreslil kruh, nastavil farbu a podobne. Tu sme použili príkaz random
namiesto hodnoty 50
. To je nová vec.
Niektoré príkazy len vykonajú čo treba a nič nám nevrátia. Ako napríklad circle
, ktorý nakreslí kruh, ale inak s nami nekomunikuje. Ale sú príkazy, ktoré niečo vykonajú a vrátia nám, čo im vyšlo.
Napríklad príkaz random
vygeneruje náhodné číslo a toto náhodné číslo nám vráti ako výsledok. Príkazy, ktoré vracajú výsledok, sa volajú aj funkcie.
Príkaz random()
random()
V príkaze random
sme použili parameter 200
. Ak si pozriete dokumentáciu https://processing.org/reference/random_.html dozviete sa, že random
nám vráti náhodné desatinné číslo (float
) niekde medzi nulou a zadaným parametrom.
Úloha 4
Vytvorte nový skeč, ktorý do konzoly vypíše náhodné číslo medzi 0
až 10
.
Úloha 5
Keď dáme príkazu random
dva parametre, vygeneruje nám náhodné číslo ležiace medzi nimi.
Vytvorte nový skeč, ktorý do premennej teplota
priradí náhodné číslo medzi 9
a 17
. Program následne vypíše premennú teplota
takto:
Dnesna teplota: 14.705211 stupnov
Náhodné celé číslo
Príkaz random
generuje desatinné čísla (float
), a preto sme aj v Úlohe 1 potrebovali, aby premenné boli typu float
. Keby sme chceli uložiť náhodné číslo do premennej typu int
, bude sa Processing sťažovať, lebo krabica typu int
nedokáže uchovávať hodnotu typu float
:

My ale vieme jednoducho vyrobiť z float
hodnoty hodnotu typu int
takzvaným pretypovaním:

Hodnotu, ktorú chceme zmeniť - v našom prípade random(200)
- sme zavreli do zátvoriek a pred zátvorku napísali int
. Toto spôsobí, že desatinné číslo v zátvorke sa premení na celé číslo a už sa vojde do krabice typu int
.
Úloha 6
Vytvorte nový skeč, ktorý bude mať premennú typu int
s názvom ludia
a do nej priraďte náhodnú hodnotu v rozsahu 0
až 100
. Program vypíše, koľko ľudí prišlo na koncert:
Na koncert prislo 68 ludi
Úloha 7
Vytvorte nový skeč, ktorý vygeneruje náhodný PIN pre. Do 4 premenných a
, b
, c
, d
priraď náhodné čísla od 0
po 9
, a potom ich jedným príkazom println
vypíšte. Napríklad:
Tvoj nový PIN je 0 3 7 3
Úloha 8
Vyrob generátor náhodných dátumov (nech má každý mesiac 30
dní). Po spustení program vypíše, napríklad:
Koniec sveta bude 30 . 2 . 2019
Úloha 9
Vytvorte program, ktorý vykreslí kruh na náhodnú pozíciu x
,y
a s náhodným priemerom d
. Priemer je náhodný z rozsahu 10
až 100
.
Náhodná farba
Pomocou príkazu random
vieme vytvoriť aj náhodnú farbu. Napríklad takto nastavíme náhodné sivé pozadie:
background(random(256));
Alebo náhodné RGB farebné pozadie:
background( random(256), random(256), random(256) );
Nepotrebujeme teda vždy priradiť random do nejakej premennej, môžeme ho použiť priamo ako číselnú hodnotu v parametre príkazov ako background
, fill
a iných.
Úloha 10
Vytvorte skeč, ktorý bude kresliť obdĺžnik s náhodnými rozmermi, na náhodnú pozíciu, s náhodným pozadím, náhodnou farbou výplne, náhodnou farbou čiary a náhodnou hrúbkou čiary.

Last updated