1. sada domácich zadaní

Najneskorší termín odovzdania: 4.10.2015 (nedeľa) o 21:00
Odovzdávaný súbor: ZadanaKorytnacka.java

Cieľom tejto sady domácich zadaní je vytvoriť triedu ZadanaKorytnacka, ktorá rozširuje triedu Turtle a ktorá obsahuje nižšie predpísané metódy.

Doplňujúce požiadavky:

  • vo vytvorených metódach nevyužívajte príkazy center, setPosition, moveTo, setX, setY (v "spusťači" v metóde main ich použiť samozrejme môžete),
  • po vykonaní každej z metód nech je korytnačka na pozícii, kde bola pred jej vykonaním, a je natočená tým smerom, akým bola pred jej vykonaním,
  • nepredpokladajte bielu farbu pozadia kresliacej plochy (korytnačka musí nakresliť korektný obrázok pri akejkoľvek farbe kresliacej plochy),
  • riešenia, ktoré nebude možné skompilovať (t.j. riešenia so syntaktickými chybami) nebudú hodnotené,
  • zdrojový kód správne naformátujte (CTRL+SHIFT+F),
  • komentovaný zdrojový kód je vítaný,
  • počiatočná a zároveň koncová pozícia korytnačky sú vyznačené na obrázkoch,
  • pri riešení používajte len poznatky, ktoré boli súčasťou 1. prednášky a na ňu nadväzujúcich cvičení
    • úlohy sú riešiteľné bez toho, aby ste museli nasadzovať goniometrické funkcie alebo odmocniny

Činka (1 bod)

Vytvorte metódu cinka, ktorá nakreslí činku so zadanou dĺžkou (vzdialenosť medzi najvzdialenejšími bodmi činky). Dĺžka činky je zadaná parametrom dlzka. Závažia činky sú čiernej farby a ich priemer je štvrtina z celkovej dĺžky činky. Tyč činky nech je čiernej farby a hrúbky 3. Korytnačka nech sa nachádza na začiatku a konci metódy v ťažisku činky a zároveň nech je nasmerovaná tak, že jej smer je kolmý na tyč činky.

public void cinka(double dlzka) {

}

Navigačné šípky (2 body)

Vytvorte metódu sipka, ktorá nakreslí vyplnený rovnostranný trojuholník oranžovej farby so zadanou dĺžkou strany. Korytnačka sa nachádza v strede jednej zo strán a natočená je v smere protiľahlého vrcholu.

S využitím metódy sipka nakreslite navigačnú šípku, ktorá sa skladá z piatich rovnostranných trojuholníkov so zadanou dĺžkou strany strana tak, ako je uvedené na predlohe nižšie. Rozostupy medzi trojuholníkmi majú dĺžku strana/2.

public void sipka(double strana) {

}

public void navigacia(double strana) {

}

Obrazec zo šesťuholníkov (1 bod)

Vytvorte metódu obrazec, ktorá namaľuje nižšie uvedený obrazec skladajúci sa zo 6-uholníkov so zadanou dĺžkou strany. V metóde využite nižšie uvedenú metódu sestuholnik na nakreslenie pravidelného 6-uholníka so zadanou dĺžkou strany. Metódu sestuholnik neupravujte!

Korytnačka sa tak, ako je to v predlohe, nachádza v strede obrazca. Obrazec je nakreslený zelenou farbou.

public void sestuholnik(double strana) {
        this.penUp();
        this.step(strana);
        this.penDown();
        this.turn(120);
        for (int i = 0; i < 6; i++) {
                this.step(strana);
                this.turn(360 / 6);
        }
        this.turn(-120);
        this.penUp();
        this.step(-strana);
        this.penDown();
}

public void obrazec(double strana) {

}

Smartwatch (1 bod)

Chytré hodinky sú dnes "in". Možno aj preto, že umožňujú definovať si vlastné zobrazenie času.

Vytvorte metódu smartWatch, ktorá namaľuje zobrazenie analógového ciferníka ako na obrázku nižšie. Stred ciferníka je aktuálna pozícia korytnačky a to je zároveň aj pozícia korytnačky po vykonaní metódy. Polomer ciferníka je určený parametrom polomer. Zobrazovaný čas je určený parametrami hh (hodina) a mm (minúta). Kvôli zjednodušeniu, nech je ciferník stále nakreslený bez rotácie v závislosti od aktuálneho natočenia korytnačky (t.j. na vhodných miestach využite setDirection namiesto turn). Korytnačka nech je po skončení kreslenia natočená smerom 0.

public void smartWatch(double polomer, int hh, int mm) {

}

Popis:

  • modrý obvod ciferníka má šírku polomer/4,
  • značky celých hodín sú čiernej farby a dĺžky polomer/4,
  • stred ciferníka je svetlošedý (Color.lightGray),
  • hodinová ručička je červenej farby, má hrúbku 5 a dĺžku polomer/3,
  • minútová ručička je červenej farby, má hrúbku 3 a dĺžku 2*polomer/3,
  • modrý stred ciferníka má polomer polomer/10.

Poznámky k evaluácii 1. sady

"Odfajknutie" metódy znamená, že sa podarilo zrealizovať všetky testy a po skončení metódy ostala korytnačka v požadovanom stave. Neznamená to, že korytnačka nakreslila to, čo mala.

Očakávané grafické výstupy evaluátora pre korektné riešenie (poloha, natočenie a veľkosť obrazcov sa môžu líšiť):

Činka

Navigačné šípky

Obrazec

Smartwatch