09 - Systémové premenné
Spoznáme niekoľko šikovných fínt a zapojíme myš.
Last updated
Spoznáme niekoľko šikovných fínt a zapojíme myš.
Last updated
Vytvorte nový skeč s rozmermi okna 400x300, ktorý vykreslí čiary krížom cez okno:
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
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.
Upravte program z Úlohy 2 tak, že namiesto čísla 400
bude používať premennú width
a namiesto čísla 300
použije premennú height
:
Skúste znovu zmeniť rozmery okna v size
a sledujte, že uhlopriečky sa už nepokazia:
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.
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.
Upravte predošlý skeč tak, aby namiesto kruhu s priemerom 200
kreslil elipsu, ktorá zaberá 90% šírky a 90% výšky obrazovky.
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
:
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ť?
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
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.
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:
width
a height
, uhlopriečky fungujú.size(400,200)
size(200,300)
size(500,300)
size(600,200)