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";  
  }
}