Polygon.java
import java.awt.*;
public class Polygon implements Figur {
// gegeben durch Array von Punkten
protected Punkt[] p;
// Konstruktoren
public Polygon(Punkt[] p1) {
p = p1;
}
public Polygon() {
// "leeres" Polygon, wird für Vererbung gebraucht
p = null;
}
// öffentliche Methoden
public void move(Punkt p1) {
// verschiebt um "Vektor" p1
for (int i = 0; i < p.length; i++) {
p[i].move(p1);
}
}
public void scale(double s) {
// skaliert um Faktor s, Bezugspunkt O
for (int i = 0; i < p.length; i++) {
p[i].scale(s);
}
}
public void rotate(double alpha) {
// dreht um Winkel alpha, Drehpunkt O
for (int i = 0; i < p.length; i++) {
p[i].rotate(alpha);
}
}
public void draw(Graphics g) {
// zeichne die Figur
// erzeuge int-Arrays für x- und y-Koordinaten für drawPolygon
int[] xPoints = new int[p.length];
int[] yPoints = new int[p.length];
for (int i = 0; i < p.length; i++) {
xPoints[i] = p[i].getX();
yPoints[i] = p[i].getY();
}
g.drawPolygon(xPoints, yPoints, p.length);
}
public String toString() {
// beschreibt Objekt als String
String str = getName() + "\n";
for (int i = 0; i < p.length; i++) {
str += " " + p[i] + "\n";
}
return str;
}
protected String getName() {
// wird von abgeleiteten Klassen überschrieben
return "POLYGON";
}
}