09 - Systémové premenné
Spoznáme niekoľko šikovných fínt a zapojíme myš.
Úloha 1
Vytvorte nový skeč s rozmermi okna 400x300, ktorý vykreslí čiary krížom cez okno:

Úloha 2
Zmeňte v príkaze size
rozmery okna na 200x500. Nič ostatné nemeňte. Sledujte ako sa rozhodili uhlopriečky:

Aby sme opravili uhlopriečky, musíme napraviť všetky súradnice v celom programe. Nebolo by fajn mať program, ktorý bude fungovať bez ohľadu na rozmery okna?
width
a height
width
a height
Výška a šírka aktuálneho okna je uložená v systémových premenných width
a height
. Aké čisla dáme do príkazu size
, také si potom hocikedy v programe nájdeme uložené v premenných width
a height
.
Systémové premenné nevytvárame my, vytvára ich sám Processing. Nemusíme napísať int width = 400;
ale Processing to robí za nás. My už len použijeme width
tam, kde chceme hodnotu šírky a height
tam, kde chceme hodnotu výšky.
Úloha 3
Upravte program z Úlohy 2 tak, že namiesto čísla 400
bude používať premennú width
a namiesto čísla 300
použije premennú height
:

width
a height
, uhlopriečky fungujú.Skúste znovu zmeniť rozmery okna v size
a sledujte, že uhlopriečky sa už nepokazia:

Úloha 4
Vytvorte nový skeč, ktorý s použitím width
a height
nakreslí obdĺžnik, ktorý je 50 pixelov od okrajov obrazovky. Vyskúšajte meniť rozmery obrazovky v size
, aby ste si overili, že vám program funguje správne.

size(400,200)

size(200,300)
Úloha 4
Vytvorte skeč, ktorý nakreslí kruh so stredom v strede obrazovky a priemerom 200
. Súradnice stredu obrazovky vyjadrite pomocou premenných width
a height
. Opäť vyskúšajte meniť rozmery okna v size
, aby ste si overili, že program funguje správne.

size(500,300)
Úloha 5
Upravte predošlý skeč tak, aby namiesto kruhu s priemerom 200
kreslil elipsu, ktorá zaberá 90% šírky a 90% výšky obrazovky.

size(600,200)
mouseX
a mouseY
mouseX
a mouseY
Systémové premenné mouseX
a mouseY
uchovávajú aktuálnu pozíciu myši. Aby sme ich vedeli využiť, musíme si pripraviť program so štruktúrou setup
a draw
. Napríklad takýto program kreslí malý biely krúžok na pozíciu 150,200
:
void setup()
{
size(400,400);
background(0);
fill(255);
}
void draw()
{
circle(150, 200, 10);
}
Úloha 6
Skopírujte si tento program a vymeňte v ňo súradnice krúžku za premenné mouseX
a mouseY
. Nezabudnite, že pri programovaní záleží na veľkých a malých písmenách.
Spustite takto upravený program a skúste prebehnúť myšou ponad okno. Darí sa vám kresliť?
Úloha 7
Vytvorte nový skeč, ktorý bude kresliť čiary od stredu obrazovky do aktuálnej pozície myši. Farba čiary je náhodná.

pmouseX
a pmouseY
pmouseX
a pmouseY
Systémové premenné pmouseX
a pmouseY
tiež uchovávajú pozíciu myši, ale nie aktuálnu. Je to pozícia myši v predošlom kole kreslenia draw
. My už vieme, že draw
sa vykonáva stále dokola. Pri každom novom kole vykonávania draw
sa pozícia myši aktualizuje na najnovšie hodnoty. Často ale potrebujeme vedieť, kde bola myš v predošlom kole. A na to služia premenné pmouseX
a pmouseY
.
Budeme tak môcť napríklad spojiť predošlú pozíciu myši s aktuálnou pozíciou myši, čoho výsledkom je súvislá čiara.
Úloha 8
V predošlom skeči nahraďte súradnice čiary tak, aby sa nekreslila od stredu obrazovky ale od predošlej pozície myši:

Last updated