1. sada domácich zadaní

Najneskorší termín odovzdania: 2.10.2016 (nedeľa) o 22: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í (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

Upozornenie: Evaluačný systém predpokladá, že odosielaná trieda je v defaultnom balíčku (v druhej časti semestra sa dozviete, čo to znamená, teraz to nie je dôležité). Môže sa však stať, že vývojové prostredie v závislosti od svojho nastavenia umiestni vytváranú triedu do iného než defaultného balíčka. Spoznáte to tak, že úplne prvý riadok (ešte pred import-ami) začína slovom package. Ak je to váš prípad, pred odoslaním riešenia tento riadok vymažte. V tomto prípade je lepšie neodosielať súbor s riešením, ale v on-line editore riešenia (záložka "Edit") systémom CTRL+C, CTRL+V vložiť svoje upravené riešenie z Eclipse. Kliknutím na tlačidlo s ikonkou diskety riešenie uložíte, kliknutím na tlačidlo so ikonkou "zaškrtnutia" spustíte evaluáciu riešenia.

Kvietok (1 bod)

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

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

public void kvietok(double polomer) {

}

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 a obe ramená majú 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. Na kreslenie čiar využite len nižšie uvedenú metódu sestuholnik na nakreslenie pravidelného 6-uholníka so zadanou dĺžkou strany (t.j. v samotnej metóde obrazec korytnačku len presúvate na vhodné pozície - či už so zapnutým alebo vypnutým kresliacim perom). 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

"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.

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