Toto cvičenie robte, ak ste už prešli za lekciu 10 - Udalosti.
Úloha 1
Vytvorte skeč, ktorý na náhodné miesta vykresľuje krúžok o priemere 100. Rozsah, z ktorého sa generujú náhodné pozície však upravte tak, aby krúžky nezachádzali za hranice obrazovky a boli celé na obrazovke:
Upravte svoj skeč tak, aby aj priemer každého krúžku bol náhodný. Generujte ho z rozsahu 50,100. Nezabudnite prispôsobiť náhodné rozsahy pozícií, aby stále platilo, že krúžky nesmú vyjsť von z obrazovky.
Riešenie
void setup()
{
size(400, 400);
background(0);
fill(255, 255, 0);
}
void draw()
{
float d = random(50, 100);
float x = random(d/2, width-d/2);
float y = random(d/2, height-d/2);
circle(x, y, d);
}
Úloha 3
Urobte niečo podobné, ale s náhodnými obdĺžnikmi. Majú náhodnú šírku a výšku z rozsahu 0,200. A ich poloha sa generuje tak, aby na okraji obrazovky zostala voľná 20 pixelová hranica, do ktorej nesmú zasahovať:
Riešenie
void setup()
{
size(400, 400);
background(0);
fill(255, 255, 0);
}
void draw()
{
float a = random(0, 200);
float b = random(0, 200);
float x = random(20, width-a-20);
float y = random(20, height-b-20);
rect(x, y, a, b);
}
Úloha 4
Vytvorte skeč, ktorý pri stlačení myši vykreslí bublinu so stredom v myši. Bublina má taký veľký priemer, aká je vertikálna súradnica myši:
Vytvorte skeč, ktorý bude kresliť obdĺžniky, ktoré začínajú na predošlej pozícii myši (pmouseX, pmouseY) a končia na súčasnej pozícii myši (mouseX, mouseY). Vo výsledku tak rýchle pohyby myšou budú tvoriť väčšie obdĺžniky, lebo myš sa stihla viac vzdialiť od predošlej pozície:
Nakreslite si to najprv na papier. Jeden bod je pmouseX, pmouseY a druhý bod je mouseX, mouseY. Na akých súradniciach má obdĺžnik začínať? Akú má mať šírku a výšku?
Vytvorte skeč, ktorý pri stlačení myši vykreslí na pozíciu myši balón. Balón má šírku 50, výšku 100, má náhodnú farbu a má na sebe aj malý biely odlesk:
Upravte svoj skeč tak, aby veľkosť balóna bola náhodná. Rozsah rozmerov si zvoľte sami, ale zabezpečte, aby bol balón vždy natiahnutý do výšky. Dajte tiež pozor, aby odlesk nevyliezol von z balóna.