Cieľom cvičení:
main
triedy Launcher
(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.
Katalóg archetypov pre JPAZ2: http://jpaz2.ics.upjs.sk/maven/archetype-catalog.xml
Podľa screencastu vytvorte Mavenovský projekt v Eclipse s týmito parametrami:
jpaz2-archetype-novice
sk.paz1a.practicals
task1
main
v triede Launcher
?
main
triedy Launcher
?
ObjectInspector
preskúmajte kresliacu plochu referencovanú premennou sandbox
(čo znamená, že premenná referencuje objekt?):
resizable
?
AnimatedWinPane
?
SmartTurtle
, resp. Turtle
.
moveTo
a setPosition
?
penDown
? Aké hodnoty môže nadobúdať?
stamp
, directionTowards
a distanceTo
?
dot
a circle
?
penColor
a fillColor
?
main
pridajte príkazy, ktoré korytnačku referencovanú premennou franklin
presunú na súradnice (X: 100, Y: 150)
a nastavia farbu kresliaceho pera na modrú.
main
pridajte príkazy a príslušné premenné, ktoré zabezpečia, že sa vytvorí korytnačka triedy Turtle
umiestnená v kresliacej ploche na pozícii (X: 200, Y: 150)
a referencovaná premennou cecil
. Táto korytnačka nech má nastavenú červenú farbu kresliaceho pera a nech je skúmaná ObjectInspector-om.
main
pridajte príkazy a príslušné premenné, ktoré zabezpečia, že sa vytvorí korytnačka triedy SmartTurtle
umiestnená v kresliacej ploche a referencovaná premennou albert
.
franklin
, cecil
a albert
?
SmartTurtle
a triedou Turtle
?
SmartTurtle
a Launcher
?
main
pridajte príkazy, ktoré zabezpečia, že modrá korytnačka hneď po spustení programu nakreslí modrý štvorec s dĺžkou strany 75.
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
.
SmartTurtle
metódu square
(bez parametrov) na nakreslenie štvorca s dĺžkou strany 75.
franklin
, cecil
a albert
?
SmartTurtle
metódu triangle
, ktorá nakreslí rovnostranný trojuholník so zadanou dĺžkou strany (parameter size
).
SmartTurtle
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á.
SmartTurtle
metódy na namaľovanie štvorca a obdĺžnika. Zvoľte si vhodné parametre pre jednotlivé metódy.
SmartTurtle
metódu na namaľovanie domčeka zadaného rozmeru. Využite už vytvorené metódy triangle
a square
.
SmartTurtle
metódu dashDotDash
, ktorá nakreslí nižšie umiestnený obrazec. Metóda nech má jeden parameter length
, ktorý určuje vzdialenosť medzi začiatkom prvej a koncom druhej "čiarky" (pomlčky). Veľkosť bodky nech je nejako proporcionálna k veľkosti nakresleného obrazca (hodnote length
). Pozor, metóda musí fungovať korektne aj v prípade inej farby kresliacej plochy, ako je biela.
SmartTurtle
metódu sun
, ktorá nakreslí obrázok žltého slnka s oranžovými lúčmi. Slnko sa skladá z kruhu s polomerom zadaným cez parameter radius
. 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
.
SmartTurtle
metódu pinwheel
, ktorá nakreslí jednoduchú 8-lopatkovú vrtuľku so zadanou dĺžkou lopatky (parameter size
). 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.
SmartTurtle
metódu cross
, ktorá nakreslí jedným ťahom červený kríž perom hrúbky 2. Kríž sa skladá akoby z 5 štvorcov so zadanou dĺžkou strany.
square
(túto metódu neupravujte!) naprogramujte metódu squareDrawing
pre objekty triedy SmartTurtle
, ktorá nakreslí nižšie načrtnutý obrazec. Parametrom metódy squareDrawing
nech je rozmer strany štvorca, ktorý tvorí obrazec.
diamond
pre objekty triedy SmartTurtle
, 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 diamond
vytvorte metódu mitsubishi
, ktorá nakreslí znak tejto spoločnosti.
SmartTurtle
metódu grid
s jedným parametrom typu double
zvaným unitSize
. Metóda nakreslí mriežku 8 x 8 pričom jedno políčko mriežky je štvorec s rozmerom unitSize
x unitSize
. Ľavý horný roh nakreslenej mriežky nech je na pozícii (X:10, Y:10).
SmartTurtle
metódu star4
, 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.
V triede Launcher
aj SmartTurtle
pred hlavičkou triedy si môžete všimnúť riadky, ktoré vyzerajú nasledovne.
Experimentujte: Čo sa stane ak zmažeme riadok začínajúci slovom import? Po experimente si zodpovedajte otázky: