42 lines
1.3 KiB
Java
42 lines
1.3 KiB
Java
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()));
|
|
}
|
|
} |