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é:

Ú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:

Prvý obrázok, ktorý ste nakreslili s použitím premenných.

Ú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:

Výstup pre 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:

Výstup pre hodnoty 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é:

Výstup pre hodnoty 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:

Výstup pre 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.

Čo doplníte do 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:

Výstup pre 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.

Výstup pre 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.

Výstup pre 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.

Najprv si nakresli hlavu na papier a vyjadri si súradnice jednotlivých obdĺžnikov, z ktorých hlava pozostáva.

Robot so stredom hlavy v x=200,y=150
Robot, keď sme zmenily hodnoty na x=400,y=250

Úloha 10 *

Táto úloha je nepovinná, je v názve označená hviezdičkou *. Takéto úlohy sú rozširujúce, na potrápenie sa. Ak ich preskočíte, o nič podstatné neprídete. A neskôr, keď už budete v programovaní zručnejší, sa k nim môžete vrátiť.

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.

Výsledok pre x=30, y=250

Last updated