1. sada domácich zadaní

Najneskorší termín odovzdania: 5.10.2014 (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

Šípky (1 bod)

Vytvorte metódu sipky, ktorá nakreslí 4 rovnostranné trojuholníky umiestnené okolo korytnačky tak, ako je uvedené na ilustračnom obrázku. Dĺžka strán rovnostranných trojuholníkov je určená parametrom rozmer. Najbližšia strana každého trojuholníka je vzdialená presne rozmer od aktuálnej pozície korytnačky. Trojuholníky sú orientované v smere natočenia korytnačky.

public void sipky(double rozmer) {

}

Zub (1 bod)

Vytvorte metódu zub, ktorá nakreslí vyplnený rovnoramenný lichobežník tak, ako je to znázornené na ilustračnom obrázku. Rozmery lichobežníka sú určené parametrom rozmer. Konkrétne základňa lichobežníka, v ktorej strede sa nachádza korytnačka, má dĺžku 2*rozmer. Kratšia základňa má dĺžku rozmer. Zub je vyplnený aktuálnou farbou výplne a je kreslený bez obrysov (vypnuté kresliace pero).

public void zub(double rozmer) {

}

Trojzub (1 bod)

Vytvorte metódu trojzub, ktorá nakreslí červený obrazec skladajúci sa z troch zubov so zadaným rozmerom. Dlhšie základne zubov tvoria rovnostranný trojuholník. Korytnačka sa nachádza v strede dlhšej základne jedného zo zubov a je natočená v smere od spoločného body zostávajúcich dvoch zubov. Na nakreslenie zubov využite metódu z predošlej úlohy, t.j. nie je dovolené v metóde trojzub použiť metódy openPolygon a closePolygon.

public void trojzub(double rozmerZubu) {

}

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) {

}

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ť):

Šípky

Zub

Trojzub

Obrazec