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.
Last updated
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.
Last updated
Na rozcvičenie a zopakovanie vytvorte skeč, ktorý bude vykresľovať takýto obrazec:
Program 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:
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
:
V programe, kde do premennej d
priraďujete hodnotu:
zmeňte toto priradenie na:
Skúste skeč pustiť viackrát, sledujte ako vždy dá iný výsledok.
Gratulujem, práve ste použili náhodnosť.
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.
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.
Vytvorte nový skeč, ktorý do konzoly vypíše náhodné číslo medzi 0
až 10
.
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:
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
.
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:
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:
Vyrob generátor náhodných dátumov (nech má každý mesiac 30
dní). Po spustení program vypíše, napríklad:
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
.
Pomocou príkazu random
vieme vytvoriť aj náhodnú farbu. Napríklad takto nastavíme náhodné sivé pozadie:
Alebo náhodné RGB farebné pozadie:
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.
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.
x=200
, y=200
, d=300
, veľkosť okna 400x400x=100
, y=150
, d=200
, veľkosť okna 400x400.x=100
,y=200
,d=50