1. sada domácich zadaní

Najneskorší termín odovzdania: 3.10.2021 (nedeľa) o 18:00
Odovzdávaný súbor: HomeTurtle.java

Cieľom tejto sady domácich zadaní je vytvoriť triedu HomeTurtle, 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í (ak patríte ku skúsenejším programátorom, tak vedzte, že nie je umenie vyriešiť úlohu s tým, čo viete, že by ste mohli mať k dispozícii, ale s tým, čo naozaj máte k dispozícii)
    • úlohy sú riešiteľné bez toho, aby ste museli nasadzovať goniometrické funkcie alebo odmocniny

Kvietok (1 bod)

Vytvorte metódu flower, ktorá nakreslí kvietok podľa predlohy.

Kvietok je tvorený žltým kruhom so zadaným polomerom radius. Červené "lupene" kvetu sú tvorené časťami kruhových oblúkov s polovičným polomerom (t.j. s polomerom radius/2). Celková výška kvetu je 3*radius. Stred kvietka je v aktuálnej pozícii korytnačky.

public void flower(double radius) {

}

Zub (1 bod)

Vytvorte metódu cog, 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 size. Konkrétne základňa lichobežníka, v ktorej strede sa nachádza korytnačka, má dĺžku 2*size. Kratšia základňa a obe ramená majú dĺžku size. Zub je vyplnený aktuálnou farbou výplne a je kreslený bez obrysov (vypnuté kresliace pero).

public void cog(double size) {

}

Trojzub (1 bod)

Vytvorte metódu tripleCog, 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 tripleCog priamo použiť metódy openPolygon a closePolygon.

public void tripleCog(double cogSize) {

}

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

Vytvorte metódu beehive, ktorá namaľuje nižšie uvedený obrazec skladajúci sa zo 6-uholníkov so zadanou dĺžkou strany. Na kreslenie čiar využite len nižšie uvedenú metódu hexagon na nakreslenie pravidelného 6-uholníka so zadanou dĺžkou strany (t.j. v samotnej metóde beehive korytnačku len presúvate na vhodné pozície - či už so zapnutým alebo vypnutým kresliacim perom). Metódu hexagon neupravujte!

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

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

public void beehive(double size) {

}

Poznámky k evaluácii 1. sady

"OK" pri metóde 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.

Upozorňujeme, že evaluátor dokresľuje do grafických výstupov vizuálne značky (poloha korytnačky, významné body, podfarbenie, atď.), ktoré umožňujú rýchlu vizuálnu kontrolu riešenia. Ako vyzerajú, si môžete pozrieť nižšie. Tieto vizuálne značky vo svojom kóde nekreslite!

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

Kvietok

Zub

Trojzub

Obrazec