05 - Kreslenie s premennými
Na rozbeh si dáme jednu úlohu, ktorá rekapituluje predošlú lekciu.
Úloha 1
Vytvorte skeč, v ktorom sú vykreslené dva štvorce so stranou 100
a sú umiestnené tak, že sa dotýkajú rohmi. Farby štvorcov si vyberte sami. Pozadie okna nastavte na tmavosivé:

Tento skeč si nezatvárajte. Radšej si ho uložte. Ešte sa k nemu vrátime.
Úloha 2
Vytvorte nový skeč a skopírujte si do neho tento kód:
size(500,300);
int x = 100;
int y = 70;
rect(x, y, ? , ? );
Doplňte kód v poslednom riadku (nahraďte otázniky) tak, aby program vykreslil štvorec so stranou 100
:

Úloha 3
Vytvorte nový skeč, ktorý bude používať premenné x
, y
, sirka
, vyska
a s ich použitím nakreslí obdĺžnik, ktorý začína na súradniciach x
,y
a má rozmery sirka
,vyska
. Farbu si vyberte akú chcete.
Napríklad pre tieto hodnoty premenných:
int x = 100;
int y = 70;
int sirka = 200;
int vyska = 50;
Nakreslí toto:

x=100
, y=70
, sirka=200
, vyska=50
Úloha 4
Vytvorte nový skeč, ktorý bude mať premenné x
, y
a dlzka
. Pomocou týchto premenných nakreslí žltý štvorec, ktorý začína na súradniciach x
,y
a má dĺžku strany dlzka
.
Program nech vykreslí ešte aj červený štvorec, ktorý bude nalepený na žltom:

x=50
, y=50
, dlzka=100
.Funguje vám program správne aj keď zmeníte hodnotu premennej dlzka
? Po jej zmene by mali mať štvorce inú veľkosť, ale stále by mali byť k sebe prilepené:

x=50
, y=50
, dlzka=20
.Ak sa stalo, že pri inej dlzke
alebo pri iných hodnotách x
a y
už nie sú k sebe prilepené, tak váš program nie je správny. Opravte ho.
Úloha 5
Vráťme sa teraz k programu z Úlohy 1:

Program ste mali napísaný s pomocou konkrétnych čísel. Nahraďte teraz súradnice prvého štvorca premennými x
a y
. Dĺžku strany, ktorá bola predtým 100, nahraďte premennou dlzka
. Vylaďte program tak, aby fungoval pre rôzne hodnoty x
, y
a dlzka
.To znamená, že štvorce sa stále budú dotýkať v rohu:

x=75
, y=20
, dlzka=40
Úloha 6
Príkaz rect
dostáva od nás v parametroch súradnice ľavého horného rohu. Ale čo ak chceme kresliť obdĺžnik alebo štvorec od stredu?
Teraz budete kresliť štvorec, ktorý má stred v súradniciach x
,y
a jeho strany majú dĺžku 100
. Aby ste taký štvorec mohli vykresliť príkazom rect
, musíte v programe vypočítať súradnice ľavého horného rohu, lebo to od nás očakáva príkaz rect
.

rect( ? , ? , 100, 100)
?Vytvorte taký program. Bude mať premenné x
a y
, ktoré predstavujú pozíciu stredu štvorca. Dĺžku nemusíte vyjadrovať premennou, bude to 100
. Toto by vykreslil pre x=150
a y=50
:

x=150
, y=50
.
(Rozmery okna sú možno u vás iné).Úloha 7
Na základe predošlého programu vytvorte program, ktorý vykreslí tri takto sústredené štvorce. Všetky majú spoločný stred v bode x
,y
a postupne sa zmenšujú. Červený má dĺžku strany 100
, modrý 60
a biely 20
.

x=150
, y=50
.Bude váš skeč fungovať správne, aj keď napríklad zväčšíte hodnotu x
o 17 a hodnotu y
o 29? Ak nie, opravte si program.

x=167
, y=79
.Úloha 8
Vymyslite (podobne ako v Úlohe 6) program, ktorý kreslí obdĺžnik so stredom v x
,y
, ale teraz pridáme premennú sirka
pre šírku obdĺžnika a premennú vyska
pre výšku obdĺžnika. Otestujte si svoj program na rôznych hodnotách týchto premenných.

x=100
, y=120
, sirka=200
, vyska=100
.
x=
50, y=120
, sirka=20
, vyska=200
.Úloha 9
Napíšte skeč, ktorý bude kresliť hlavu robota. Hlava je obdĺžniková a sú na nej dve hranaté oči a jedny hranaté ústa. Je to dosť hranatý robot. Stred hlavy je v súradniciach x
a y
. Veľkosť hlavy, očí a úst je na vás. Len si overte, že sa robot nerozsype, keď zmeníte hodnoty x
a y
.

x=200
,y=150

x=400
,y=250
Úloha 10 *
Ak sa nudíš, môžeš sa pohrať so zaoblením rohov (piaty až ôsmy parameter v príkaze rect
) a vyrobiť Bendera. Ako sa robí zaoblenie rohov nájdeš v dokumentácii k príkazu rect
.

Úloha 11
Päť farebných štvorcov leží tesne vedľa seba na jednej podložke. Veľkosti strán sú postupne 100
, 80
, 60
, 40
a 20
. Napíšte skeč, ktorý ich vykreslí tak, že v premenných x
a y
sú súradnice ľavého dolného rohu prvého štvorca. Ostatné štvorce sú na seba nalepené a zarovnané na spodnú hranu.
A samozrejme: vyskúšajte, či váš program funguje aj ak pomeníte hodnoty x
a y
.

x=30
, y=250
Last updated