30400titre1Mon premier programmetitre1color25500255couleur rougevertbleuopacitéNombre de côtés : glissN32061Nombre de polygones : gliss03061Rayon : glissR0rMaxrMax0.1Vitesse de rotation : glissV01010.012rMax×20+2rMax×20+canvasmodifier le centre de la figurecoordonnée en x de la tortuecoordonnée en y de la tortueSans remplissagefixercentreYàfixercentreXàsi clic surfaireCanevas : dim horizontaledimension verticaleInsérer un saut de ligneInsérer un saut de ligneCréer une glissièreminimummaximumvaleur initialepasCréer un textede contenuInsérer un saut de ligneCréer une glissièreminimummaximumvaleur initialepasCréer un textede contenuInsérer un saut de ligneCréer une glissièreminimummaximumvaleur initialepasCréer un textede contenuInsérer un saut de ligneCréer une glissièreminimummaximumvaleur initialepasCréer un textede contenuPour l'objetstylevaleurCréer un titrecontenantfixerrMaxàMarge gauchepixelspouractions initiales glissNvaleur deglissvaleur deglissRvaleur deglissVvaleur desifairesinonestpairnr180n÷sin×fixercà1180n÷sin÷temptemp180n÷cos×+1temptemp×+racine carrée2r×temp÷fixercàfixertempàfixertempàfixertempà230230255255couleur rougevertbleuopaciténbPolyfigureavec :nbPolyvtourne à droite dedegrésfondfixervàfixerràfixernbPolyàfixernàpouractions en boucle pourfigureavec : nbPolycentreXcentreYrnbPolypolygone360nbPoly÷tourne à droite dedegrésrépéterfoisfaireCercle de centre (,) et de rayonnc360n÷tourne à droite dedegrésavance d'une distancerépéterfoisfairepourpolygone 255230230255couleur rougevertbleuopacitéposition en X de la sourisposition en Y de la souriscentreXcentreYsauter au point (,)fixercentreYàfixercentreXàfondpourmodifier le centre de la figure retour


var canvas, titre1, x, nbCotes, nbPoly, gliss, glissR, r, c, glissV, v, glissN, n, rMax, centreX, centreY, temp;

/**
 * Fonction exécutée une fois, au départ
 */
function actions_initiales() {
  document.body.style.paddingLeft="30px";
  rMax = 400;
  titre1=createElement("h1",'Mon premier programme');
  stylerObjetPrudent("titre1",titre1,'color',(color(255,0,0,255)));
  createSpan('Nombre de côtés : ');
  glissN=createSlider(3,20,6,1);
  createSpan("<br>");
  createSpan('Nombre de polygones : ');
  gliss=createSlider(0,30,6,1);
  createSpan("<br>");
  createSpan('Rayon : ');
  glissR=createSlider(0,rMax,rMax,0.1);
  createSpan("<br>");
  createSpan('Vitesse de rotation : ');
  glissV=createSlider(0,10,1,0.01);
  createSpan("<br>");
  createSpan("<br>");
  canevas=creerCanvas((2 * rMax + 20),(2 * rMax + 20)); canvas=canevas;
  siClicPrudent("canvas",canvas,"modifier_le_centre_de_la_figure",modifier_le_centre_de_la_figure);
  centreX = leGraphicsActif.tortueX;
  centreY = leGraphicsActif.tortueY;
  noFill_();
}

/**
 * Fonction exécutée périodiquement, de façon répétée
 */
function actions_en_boucle() {
  n = valeurPrudent("glissN",glissN);
  nbPoly = valeurPrudent("gliss",gliss);
  r = valeurPrudent("glissR",glissR);
  v = valeurPrudent("glissV",glissV);
  if (n % 2 == 0) {
    c = r * Math.sin((180 / n) / 180 * Math.PI);
  } else {
    temp = 1 / Math.sin((180 / n) / 180 * Math.PI);
    temp = temp + temp * Math.cos((180 / n) / 180 * Math.PI);
    temp = Math.sqrt(1 + temp * temp);
    c = (2 * r) / temp;
  }
  couleurFondC((color(230,230,255,255)));
  figure(nbPoly);
  droite(v);
}

/**
 * Décrire cette fonction…
 */
function figure(nbPoly) {
  cercle_(centreX,centreY,r);
  for (var count = 0; count < nbPoly; count++) {
    polygone();
    droite((360 / nbPoly));
  }
}

/**
 * Décrire cette fonction…
 */
function polygone() {
  for (var count2 = 0; count2 < n; count2++) {
    avance(c);
    droite((360 / n));
  }
}

/**
 * Décrire cette fonction…
 */
function modifier_le_centre_de_la_figure() {
  couleurFondC((color(255,230,230,255)));
  centreX = posXsouris();
  centreY = posYsouris();
  sautePos(centreX,centreY);
}
Exécuter