Cieľom cvičení je vyskúšať a zautomatizovať prácu s poľom (s poľom primitívnych i referečných hodnôt).
Vytvorte triedu GrafickyEditor
rozširujúcu triedu WinPane
. Grafický editor funguje takto:
Alt
sa korytnačka natočí smerom k aktuálnej pozícii myši a nakreslí čiaru z jej aktuálnej pozície do pozície myši (korytnačka po nakreslení čiary ostáva tam, kde bola predtým)
onMouseDragged
), korytnačka sa presunie na miesto, kde je aktuálne myš, pričom počas tohto pohybu kreslí čiaru
Korytnackovo
rozširujúcu triedu WinPane
. Po vytvorení objektu triedy Korytnackovo
(v "inicializačnej" metóde) nech sa v kresliacej ploche automaticky vygeneruje 10 korytnačiek na náhodnej pozícii.
Korytnackovo
metódy:
void posunITu(int idx, double dlzka)
- idx
-ta korytnačka spraví krok zadanej dĺžky
void nahodneFarby()
- každá korytnačka si nastaví náhodnú farbu kresliaceho pera
Color sFarbouVon(int index)
- vráti farbu i
-tej korytnačky
Korytnackovo
tak, aby pri kliknutí do plochy sa náhodne zvolená korytnačka presunula na miesto kliknutia.
Korytnackovo
pridajte metódu krok
, ktorá spraví následovné:
i
-ta korytnačka sa natočí smerom k (i+1)
-vej korytnačke (posledná smerom ku korytnačke s číslom 0) a spraví krok rovný 1/10 vzdialenosti k (i+1)
-vej korytnačke.
Korytnackovo
pridajte metódu kroky
, ktorá zadaný počet krát zavolá metódu krok, pričom medzi jednotlivými krokmi bude nejaké vhodné spomalenie.
Korytnackovo
pridajte metódu doKruhu
, ktorá všetky korytnačky v ploche rovnomerne rozmiestni do kruhu so zadaným polomerom, ktorého stredom je stred kresliacej plochy. Návod: na rozmiestnenie korytnačiek si vytvorte pomocnú korytnačku, ktorá bude korytnačky rozmiestňovať na správne miesta.
Korytnackovo
metódu pocetTopKorytnaciek
, ktorá vráti počet korytnačiek, ktoré majú y
-ovú súradnicu menšiu ako je hodnota v parametri zhora
Korytnackovo
pridajte metódu bezpecnyKruh
, ktorá pre zadanú korytnačku (určenú jej indexom medzi korytnačkami) nakreslí najväčší možný kruh taký, že:
Double.MAX_VALUE
(najväčšie číslo, ktoré možno uložiť v premennej typu double
) a Double.POSITIVE_INFINITY
(+nekonečno).
Korytnackovo
metódy:
int laviciarka()
- vráti index korytnačky, ktorá sa nachádza najviac vľavo
double najblizsie()
- vráti ako sú vzdialené 2 korytnačky, ktoré sú k sebe najbližšie
Do projektu Farma
z prednášky pridajte metódy:
int pocetKvetin(int odZahonuIdx, int poZahonIdx)
- vráti celkový počet kvetiniek od záhonu na indexe odZahonuIdx
po záhon na indexe poZahonIdx
double priemernyPocetVZahone()
- vráti priemerný počet kvetiniek v záhone
boolean neklesajuciPocet()
- vráti, či počet kvetiniek v jednotlivých záhonoch tvorí neklesajúcu postupnosť
int pridatNaVyvazenie()
- vráti, aký minimálny počet kvetiniek musíme vysadiť, aby počet kvetín v záhonoch na párnej pozícii bol rovnaký ako počet záhonov na nepárnej pozícii
int prazdneZaSebou()
- vráti, aký maximálny počet prázdnych záhonov umiestnených v záhradke hneď za sebou sa nachádza v záhradke
Korytnackovo
doprogramujte drag&drop presúvanie korytnačiek.
Korytnackovo
pridajte metódu vsetkyVKruhu
, ktorá nakreslí najmenší možný kruh taký, že všetky korytnačky sa nachádzajú v tomto kruhu
Korytnackovo
pridajte metódu vObmedzenomKruhu
, ktorá nakreslí taký kruh s polomerom obmedzenie
, v ktorom sa nachádza čo najviac korytnačiek. Pozn.: Využite poznatky z geometrie z metódy vsetkyVKruhu
.