import java.awt.Frame;
import java.awt.Graphics;

/**
 *  Classe minimale permettant l'affichage de figures géométriques dans une
 *  fenetre.
 *
 * @author     Marc Champesme
 * @version    2 janvier 2005
 * @since      février 2002
 */

public class Dessin extends Frame {

	/**
	 *  Lancement de l'application, par création d'une instance de cette classe.
	 *
	 * @param  args  parmètres de la ligne de commande (non utilisés)
	 */
	public static void main(String[] args) {
		Dessin app;

		app = new Dessin();
		app.setTitle("Dessin de figures geometriques");
		app.setSize(600, 600);
		app.setVisible(true);//déclenche l'affichage de la fenetre
		// et appelle la méthode paint() pour
		// afficher le contenu de la fenetre
	}


	/**
	 *  Méthode appellée automatiquement a chaque fois que la fenetre doit etre
	 *  redéssinée. C'est dans cette méthode que doivent etre placées les
	 *  instructions permettant d'afficher les figures géométriques (cf. classe
	 *  Polygone, pour la définition des méthodes paint des figures géométriques a
	 *  afficher)..
	 *
	 * @param  g  le contexte graphique de la fenetre
	 * @see       Polygone
	 */
	/*@ also
	  @ requires g != null;
	  @*/
	public void paint(Graphics g) {
		Polygone lePoly;
		Point[] lesPoints;

		// Creation d'un polygone a trois sommets
		lesPoints = new Point[3];
		lesPoints[0] = new Point(50, 100);
		lesPoints[1] = new Point(150);
		lesPoints[2] = new Point();

		lePoly = new Polygone(lesPoints, 3);

		// Affichage des coordonnees des trois sommets
		for (int i = 0; i < lePoly.getNbSommets(); i++) {
			Point s = lePoly.getSommet(i);
			System.out.println((i + 1) + "eme sommet: (" + s.getX()
					 + ", " + s.getY() + ")");
		}

		// Affichage du polygone
		lePoly.paint(g);

		// Affichage du polygone symetrique
		lePoly.symetrie().paint(g);
	}
}

