//Variable pour des tests int a; //Rayon du cercle int R; //centre du cercle int xc; int yc; //angle qui détermine la position de l'arc de gauche float angle1=PI; //angle qui détermine la position de l'arc de droite float angle2=PI/4; //variable qui détermine la vitesse de déplacement float dangle=PI/50; void setup() { size (400,400); //on déclare les variables a=(0); R=height-50; xc=width/2; yc=height/2; } void draw() { //pour qu'il y ait de jolie courbes smooth(); background (255); //pour voir une couleur pour les arcs ou l'on ne peu pas aller fill(a); //un arc //recadrage des angles en utilisant le modulo angle1=(angle1+TWO_PI)%TWO_PI; angle2=(angle2+HALF_PI)%HALF_PI; //tracer les arcs qui déterminent les zones interdites arc (xc,yc,R,R,(angle1-PI/20)%TWO_PI,(angle1+PI/20)%TWO_PI); arc (xc,yc,R,R,(angle2-PI/20-PI/4+TWO_PI)%TWO_PI,(angle2+PI/20-PI/4+TWO_PI)%TWO_PI); //on change de couleur de remplissage fill(a+170); //on trace les arcs que l'on controle arc (xc,yc,R,R,5*PI/4,7*PI/4); arc (xc,yc,R,R,PI/4,3*PI/4); //et pourquoi pas nous montrer ou est le centre de la chose? point(xc,yc); } //balayage du clavier, cherche quelle touche on enfonce void keyPressed() { //d'abord l'arc de gauche //si la touche z est activee if (key == 'z') { //on verifie que ce soit bien dans les limites imposées if((angle1+PI/15)%TWO_PI<=5*PI/4) { //et on monte... angle1 = angle1+dangle; } } //même chose mais cette fois ci pour déscendre if (key == 's') { if((angle1-PI/20)%TWO_PI>=3*PI/4) { angle1 = angle1-dangle; } else{angle1=3*PI/4+PI/20;} } //même chose pour l'arc de droite if (keyCode == UP) { if((angle2-PI/20)>=0) { angle2=angle2-dangle; } } if (keyCode == DOWN) { if((angle2+PI/20)<=HALF_PI) { angle2=angle2+dangle; } else {angle2=HALF_PI-PI/20;} } }