Cieľom cvičení:
main
triedy Spustac
(vrátane volania metód nad vytvorenými objektmi),
Pokiaľ to nie je explicitne uvedené, nepredpokladajte, že sa korytnačka nachádza v strede kresliacej plochy (t.j. nepoužívajte center
v metódach vytváraných tried - okrem metódy main
). Rovnako nepredpokladajte konkrétnu farbu pozadia kresliacej plochy (napr. bielu). Pri riešení úloh použite len konštrukcie, ktoré boli obsahom prvej prednášky.
Podľa videotutoriálu vytvorte jednoduchý projekt v Eclipse:
![]() | Vytvorenie projektu s JPAZ2 (videotutoriál) |
Upozornenie: Pri vytváraní nového projektu je treba zvoliť projektový layout "Create separate folders for ...". Predídete tak automatickému vytvoreniu balíčka (package), čo je téma až poslednej tretiny semestra (a teda sa riešeniu a vysvetľovaniu týchto vecí chceme v úplnom úvode radšej vyhnúť).
Experiment č. 1:
Spustac
so spúšťacou metódou "main". V nej napíšte príkazy na vytvorenie objektu triedy WinPane
(referencovaný z premennej plocha
), triedy ObjectInspector
(referencovaný z premennej oi
). Pridajte príkaz, ktorým ObjectInspector-u poviete, aby skúmal kresliacu plochu:
resizable
?
WinPane
?
main
pridajte príkazy (a premenné), ktoré vytvoria 2 korytnačky skúmané ObjectInspector
-om. Prvá z nich nech je umiestnená na súradniciach (X = 100, Y = 150), má nastavené kresliace pero na červenú farbu a referencovaná nech je z premennej zofka
. Druhá nech je na súradniciach (200, 150), jej kresliace pero nech je modré a referencovaná nech je z premennej jozko
.
stamp
, directionTowards
a distanceTo
?
moveTo
a setPosition
?
penDown
? Aké hodnoty môže nadobúdať?
main
pridajte príkazy, ktoré zabezpečia, že modrá korytnačka hneď po spustení programu spomalene nakreslí modrý štvorec (spomalene = po každej strane si na sekundu oddýchne). Na spomalenie využitie príkaz (JPAZUtilities.delay(1000);
).
Experiment č. 2 (v nasledujúcich úlohách využívajte formulku for
na opakovanie skupiny príkazov všade, kde sa len dá; nepoužívajte metódy center
a setPosition
):
ChytraTurtle
, ktorá bude rozširovať ("vylepšovať") triedu Turtle
. Upravte metódu main
v triede Spustac
tak, aby sa okrem dvoch korytnačiek triedy Turtle
vytvorila aj jedna korytnačka triedy ChytraTurtle
, ktorá je umiestnená v strede kresliacej plochy, je referencovaná z premennej albert
a je skúmaná ObjectInspector
-om.
Spustac
porovnajte zoznam metód všetkých troch korytnačiek.
ChytraTurtle
metódu spomalenyStvorec
(bez parametrov) na spomalené nakreslenie štvorca. Dĺžka strany štvorca nech je 70.
Spustac
porovnajte zoznam metód všetkých troch korytnačiek.
ChytraTurtle
metódu trojuholnik
, ktorá nakreslí rovnostranný trojuholník so zadanou dĺžkou strany.
ChytraTurtle
metódu rgbTrojuholnik
, ktorá nakreslí rovnostranný rgb-trojuholník so zadanou dĺžkou strany. rgb-trojuholník je trojuholník nakreslený kresliacim perom hrúbky 2, pričom jedna jeho strana je červená, druhá zelená a posledná tretia je modrá.
ChytraTurtle
metódy na namaľovanie štvorca a obdĺžnika. Zvoľte si vhodné parametre pre jednotlivé metódy.
ChytraTurtle
metódu na namaľovanie domčeka zadaného rozmeru. Využite už vytvorené metódy trojuholnik
a stvorec
.
ChytraTurtle
metódu ciarkaBodkaCiarka
, ktorá nakreslí nižšie umiestnený obrazec. Metóda nech má jeden parameter dlzka
, ktorý určuje vzdialenosť medzi začiatkom prvej a koncom druhej "čiarky". Veľkosť bodky nech je nejako proporcionálna k veľkosti nakresleného obrazca (hodnote dlzka
). Pozor, metóda musí fungovať korektne aj v prípade inej farby kresliacej plochy, ako je biela.
ChytraTurtle
metódu slniecko
, ktorá nakreslí obrázok žltého slnka s oranžovými lúčmi. Slnko sa skladá z kruhu s polomerom zadaným cez parameter. Slnko má 36 lúčov rovnako dlhých ako je polomer slnka. Inšpirujte sa jednoduchou vločkou z prednášky a využite korytnačiu metódu dot
.
ChytraKorytnacka
metódu vrtulka
, ktorá nakreslí jednoduchú 8-lopatkovú vrtuľku so zadanou dĺžkou lopatky. Lopatka sa skladá z rovnej čiary zadanej dĺžky a konca dĺžky 10, ktorý zviera s lopatkou uhol 45 stupňov. Stred vrtuľky je určený pozíciou korytnačky.
ChytraKorytnacka
metódu kriz
, ktorá nakreslí jedným ťahom červený kríž perom hrúbky 2. Kríž sa skladá akoby z 5 štvorcov so zadanou dĺžkou strany.
stvorec
(túto metódu neupravujte!) naprogramujte metódu obrazec
pre objekty triedy ChytraTurtle
, ktorá nakreslí nižšie načrtnutý obrazec. Parametrom metódy obrazec
nech je rozmer strany štvorca, ktorý tvorí obrazec.
diamant
pre objekty triedy ChytraTurtle
, ktorá nakresli kosoštvorec na základe dvoch parametrov: uhla, ktorý zvierajú strany kosoštvorca pri pozícii korytnačky, a dĺžky strany kosoštvorca. Kosoštvorec nech je nakreslený tak, že korytnačka je na začiatku v jednom z jeho vrcholov a natočená je v smere jeho uhlopriečky. Farba kresliaceho pera nech je červená a hrúbka kresliaceho pera nech je 2. S využitím metódy diamant
vytvorte metódu mitsubishi
, ktorá nakreslí znak tejto spoločnosti.
ChytraKorytnacka
metódu mriezka
s jedným parametrom typu double
zvaným rozmer
. Metóda nakreslí mriežku 8 x 8 pričom jedno políčko mriežky je štvorec s rozmerom rozmer
x rozmer
. Ľavý horný roh nakreslenej mriežky nech je na pozícii (X:10, Y:10).
ChytraKorytnacka
metódu hviezda4
, ktorá nakreslí 4-cípu hviezdu. Hviezda je určená 2 parametrami: dĺžka cípu hviezdy (dĺžka ramena rovnoramenného trojuholníka tvoriaceho cíp hviezdy) a uhol v cípe hviezdy (uhol zvieraný ramenami rovnoramenného trojuholníka tvoriaceho cíp hviezdy).
Na cvičení sa naučíme aj niečo nové, čo nebolo obsahom prednášok.
Korytnačka dokáže okrem kreslenia čiar maľovať aj vyplnené objekty. Postup je nasledovný:
openPolygon()
, ktorou sa aktivuje kreslenie vyplneného objektu
closePolygon()
, ktorou sa na základe predchádzajúcej trajektórie pohybu korytnačky namaľuje vyplnený polygón.
Pri maľovaní vyplnených objektov je dobré hýbať korytnačku s vypnutým kresliacim perom. V opačnom prípade za ňou môže vzniknúť farebná stopa, ktorá sa neodstráni ani namaľovaním vyplneného objektu.