Vaje 4: Risanje grafov

Program iz prejšnjih vaj bomo dopolnili tako, da bo možno graf tudi narisati.

1. Razredu Tocka dodaj realni komponenti x in y. Konstruktor naj njuni vrednosti nastavi na 0.

2. Razredu Graf dodaj metodo razporedi, ki bo točke grafa enakomerno razporedila na krožnico s središčem v točki (x, y) polmera r.

3. Sestavi razred Platno, na katerega bomo risali graf. To bo podrazred razreda JPanel. Vsebuje naj:

  • komponento graf, ki določa, kateri graf je narisan na platnu
  • konstruktor, ki nastavi velikost platna (širino in višino dobi za parameter) in graf (nastavi ga na null)
  • metodo nastaviGraf(Graf g), ki nastavi nov graf za risanje
  • metodo paintComponent(Graphics g), ki nariše graf na grafični objekt g (najprej povezave, nato še točke). Videz točk in povezav naj bo določen s komponentami barvaPovezave, barvaTocke, barvaRoba, debelinaPovezave, debelinaRoba in polmer.V pomoč bo tudi pomožna statična metoda round, ki dano realno število zaokroži na najbližje celo število.

4. Sestavi razred Okno, ki bo podrazred razreda JFrame. Vsebuje naj:

  • komponento platno
  • konstruktor, ki nastavi naslov okna in platno, na katerega bomo risali (platno je treba vstaviti v okno)

5. Razredu Graf dodaj metodi za branje in shranjevanje grafa na dototeko. Datoteka z opisom grafa naj ima naslednjo obliko:

  • najprej za vsako točko navedemo njeno ime in koordinati (n vrstic oblike ime: x y)
  • sledi posebna vrstica, ki vsebuje samo tri zvezdice (vrstica ***)
  • na koncu za vsako točko navedemo imena vseh njenih sosedov (n vrstic oblike ime: sosed1 sosed2 ...)
6. Dopolni metodo main v razredu Test, tako da bo odprla novo okno, v katerem bo narisala nek graf.