import java.awt.Graphics2D; import java.awt.geom.Point2D; import java.awt.geom.Line2D; /** * Classe che rappresenta un poligono composto da un numero variabile di punti * @author radaelli11353 */ public class Polygon { private Point2D.Double[] punti; private int nPunti; /** * Costruttore della classe Polygon * @param maxPunti Numero massimo di punti per il poligono */ public Polygon(int maxPunti) { punti = new Point2D.Double[maxPunti]; nPunti = 0; } /** * Metodo per aggiungere un punto al poligono * @param aPoint Punto da aggiungere al poligono */ public void add(Point2D.Double aPoint) { if(nPunti >= punti.length) throw new IllegalArgumentException(); punti[nPunti] = aPoint; nPunti++; } /** * Metodo che disegna il poligono in un contesto grafico * @param g2 Contesto grafico */ public void draw(Graphics2D g2) { for(int i = 0; i < nPunti - 1; i++) { g2.draw(new Line2D.Double(punti[i].getX(), punti[i].getY(), punti[i+1].getX(), punti[i+1].getY())); } g2.draw(new Line2D.Double(punti[nPunti - 1].getX(), punti[nPunti - 1].getY(), punti[0].getX(), punti[0].getY())); } }