import java.awt.Color;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
import sk.upjs.jpaz2.Turtle;
import sk.upjs.jpaz2.WinPane;
public class PlochaTvarov extends WinPane {
/*
* metóda na nakreslenie obdĺždnika daného súradnicami
* protiľahlých rohov a farbou
*/
public void obdlzdnik(double x1, double y1, double x2, double y2, Color farba) {
Turtle kreslic = new Turtle();
this.add(kreslic);
kreslic.setFillColor(farba);
kreslic.setPosition(x1, y1);
kreslic.openPolygon();
kreslic.moveTo(x1, y2);
kreslic.moveTo(x2, y2);
kreslic.moveTo(x2, y1);
kreslic.moveTo(x1, y1);
kreslic.closePolygon();
this.remove(kreslic);
}
/*
* metóda na nakreslenie kruhu daného súradnicami
* stredu, polomerom a farbou
*/
public void kruh(double x, double y, double r, Color farba) {
Turtle kreslic = new Turtle();
this.add(kreslic);
kreslic.setFillColor(farba);
kreslic.setPosition(x, y);
kreslic.dot(r);
this.remove(kreslic);
}
/*
* metóda na nakreslenie čiary danej súradnicami
* krajných bodov, farbou a hrúbkou
*/
public void ciara(double x1, double y1, double x2, double y2, Color farba, double hrubka) {
Turtle kreslic = new Turtle();
this.add(kreslic);
kreslic.setPenColor(farba);
kreslic.setPenWidth(hrubka);
kreslic.setPosition(x1, y1);
kreslic.moveTo(x2, y2);
this.remove(kreslic);
}
/*
* metóda ktorá vráti na základe názvu farby
* objekt triedy Color danej farby. Ak je na vstupe
* neznáma farba vráti Color.black.
*/
public Color dajFarbu(String nazov) {
if (nazov.equals("red"))
return Color.red;
if (nazov.equals("blue"))
return Color.blue;
if (nazov.equals("yellow"))
return Color.yellow;
if (nazov.equals("green"))
return Color.green;
return Color.black;
}
/*
* Metóda načíta zo súboru riadky v dohodnutom formáte,
* z ktorých vyextrahuje typ a vlastnosti kresleného tvaru.
* Po vyextrahovaní sa daný tvar nakreslí.
*/
public void vykresliZoSuboru(File subor) {
Scanner citacSuboru = null;
try {
citacSuboru = new Scanner(subor);
while(citacSuboru.hasNextLine()) {
String riadok = citacSuboru.nextLine();
Scanner citacRiadka = new Scanner(riadok);
String tvar = citacRiadka.next();
System.out.println(tvar);
if (tvar.equals("kruh")) {
double x = citacRiadka.nextDouble();
double y = citacRiadka.nextDouble();
double r = citacRiadka.nextDouble();
Color farba = this.dajFarbu(citacRiadka.next());
kruh(x, y, r, farba);
}
if (tvar.equals("obdlzdnik")) {
double x1 = citacRiadka.nextDouble();
double y1 = citacRiadka.nextDouble();
double x2 = citacRiadka.nextDouble();
double y2 = citacRiadka.nextDouble();
Color farba = this.dajFarbu(citacRiadka.next());
obdlzdnik(x1, y1, x2, y2, farba);
}
if (tvar.equals("ciara")) {
double x1 = citacRiadka.nextDouble();
double y1 = citacRiadka.nextDouble();
double x2 = citacRiadka.nextDouble();
double y2 = citacRiadka.nextDouble();
Color farba = this.dajFarbu(citacRiadka.next());
double hrubka = citacRiadka.nextDouble();
ciara(x1, y1, x2, y2, farba, hrubka);
}
}
} catch (FileNotFoundException e) {
System.err.println("Subor sa nenasiel");
} finally {
if (citacSuboru!=null) {
citacSuboru.close();
}
}
}
}