
/***************************************************************************
 * 
 *                  NE PAS MODIFIER CETTE SECTION 
 *                  
 **************************************************************************/
import java.awt.*;
import Listes.*;

public class Expresso extends FenetreTortue
{ 
     
/***************************************************************************
 * 
 *                      SECTION MODIFIABLE 
 *                  
 **************************************************************************/
 
 
 
/********************** Parametres de l'interface ************************/

    public static int baseFenetre = 600;  // Largeur de la fenetre
    public static int hauteurFenetre = 500;  // Hauteur de la fenetre
    public static String titreFenetre = unicode("Polygones emboit#eaigs");  // Titre de la fenetre
    // La zone texte
    public static boolean zoneTexte = false; // Indique si on desire ou non une zone de texte
    // Les boutons
    public static String[] nomsBoutonsLigne1 = {"Remplir", "Quitter"}; // Noms des boutons de la ligne 1
    public static String[] nomsBoutonsLigne2 = {}; // Noms des boutons de la ligne 2
    // Les menus
    public static String[] nomsMenus1 = {}; // Exemple: nomsMenus1 = {"nomMenu", "nomItem_1", ...};
    public static String[] nomsMenus2 = {}; // Laissez vide si vous ne desirez pas de menu
    public static String[] nomsMenus3 = {};
    public static String[] nomsMenus4 = {};
    public static String[] nomsMenus5 = {};
    public static String[] nomsMenus6 = {};
    public static String[] nomsMenus7 = {};
    public static String[] nomsMenus8 = {};
    
    public static void ajoutDeGlissieres(){
        ajouterGlissiereLigne1(unicode("Nombre de c#ocirt#eaigs"), 3,24,6,0);
        ajouterGlissiereLigne1("Rayon du cercle inscrit", 10,500,100,0);
        ajouterGlissiereLigne1(unicode("Nombre d'it#eaigrations"), 1,50,1,0);

    }

/****************** Initialisation *********************************/
   
    public void initialisation(){
     
    }
    
/****************** Placer vos procedures ici ****************************/

Color[] couleurs = {rouge, jaune, vert, bleu, gris, noir, blanc, cyan, magenta, orange, rose};
double centreX=0, centreY=0, angleGlisser = 0;
boolean remplir = false;

public void polygonesEmboites(int n, int iter, double r, double x, double y, double angle) {
    for (int i = 1; i<=iter;i++) {
        couleurRemplissage(couleurs[i % 11]);
        if (remplir){debutRemplir();}
        for (int j=1; j<=n; j++) {
            segment(x+r*cos(j*2*Pi/n + angle), y + r*sin(j*2*Pi/n + angle), x+r*cos((j+1)*2*Pi/n + angle), y + r*sin((j+1)*2*Pi/n + angle)); 
        }
        if (remplir){finRemplir();}
        r = r*cos(Pi/(n));
        angle = angle + Pi/(n);
    }
}

/**************  Les actions des boutons  ************************************/

public void actionBouton1(){
    remplir = !remplir;
    actionGlissiere(0);
    if (remplir){
        changerNomBouton(1, "Contours");
    }else{
        changerNomBouton(1, "Remplir");
    }
} 

public void actionBouton2(){
    quitter(); 
} 

public void actionBouton3(){
    
} 

public void actionBouton4(){
    
}

/**************  Les actions des menus  ****************************/

public void actionMenu1Item1(){
   
}

public void actionMenu1Item2(){

}

public void actionMenu1Item3(){
    
}

   
/*************** Les actions des glissieres *********************************/  

  public void actionGlissiere(double a){
        videGraphique();
        polygonesEmboites((int) valeurGlissiere(1), (int) valeurGlissiere(3), valeurGlissiere(2), centreX, centreY, a);
    }
    
  public void actionGlissiere1(double d){
        actionGlissiere(0);
    }
    
  public void actionGlissiere2(double d){
        actionGlissiere(0);
    }
    
  public void actionGlissiere3(double d){
        actionGlissiere(0);
    }
    
  
/**************** Les actions de la souris *******************************/
    
    public void clicSouris(double x, double y){
        centreX=x;
        centreY=y;
        actionGlissiere(0);
    }
    
    public void debutGlisser(double x, double y){
        centreX=x;
        centreY=y;
        angleGlisser = 0;
        actionGlissiere(angleGlisser);
    }
    
    public void finGlisser(double x, double y){
       actionGlissiere(0);        
    }
    
    public void glisserEnCours(double x, double y){
        centreX=x;
        centreY=y;
        angleGlisser = angleGlisser+ 5;
        actionGlissiere(angleGlisser);
    }

    
/***************************************************************************
 * 
 *                  NE PAS MODIFIER CETTE SECTION 
 *                  
 **************************************************************************/    
     
    public static String[][] Menus = {nomsMenus1, nomsMenus2, nomsMenus3, nomsMenus4, nomsMenus5, nomsMenus6, nomsMenus7, nomsMenus8};    
    
    public Expresso(int l, int h, String titre, String[] nomsBoutons1, String[] nomsBoutons2, String[][] Menus, boolean avecTexte){
        super(l, h, titre, nomsBoutons1, nomsBoutons2, Menus, avecTexte);
    }
    
    public Expresso() {
        this(baseFenetre, hauteurFenetre, titreFenetre, nomsBoutonsLigne1, nomsBoutonsLigne2, Menus, zoneTexte);
    }
    
    public static void executer(boolean applet){
        initGlissieres();
        ajoutDeGlissieres();
        Expresso maFenetre = new Expresso();
        faireApplet(applet);
        maFenetre.toFront();
        maFenetre.initialisation();
    }
    
    public static void main(String[] args){
        executer(false);
    }

     
}  
