import java.awt.Color; public class Polygon implements Drawable { private Color color; private int lineWidth; private Point[] points; public Polygon(Point[] points, int lineWidth, Color color) { this.points = new Point[points.length]; for (int i = 0; i < points.length; i++) { this.points[i] = points[i]; } this.lineWidth = lineWidth; this.color = color; } public Polygon(Point[] points) { this(points, 1, Color.BLACK); } public void draw(SimpleWindow w) { Color oldColor = w.getLineColor(); int oldLineWidth = w.getLineWidth(); w.setLineColor(color); w.setLineWidth(lineWidth); w.moveTo(points[0].getX(), points[0].getY()); for (int i = 1; i < points.length; i++) { w.lineTo(points[i].getX(), points[i].getY()); } w.lineTo(points[0].getX(), points[0].getY()); w.setLineColor(oldColor); w.setLineWidth(oldLineWidth); } public void addPoint(Point p) { Point[] newPoints = new Point[points.length + 1]; for (int i = 0; i < points.length; i++) { newPoints[i] = points[i]; } newPoints[newPoints.length - 1] = p; points = newPoints; } }