Logique
Boucles
Math
Texte
Listes
Données
Variables
Fonctions
Programmation
p5.js
Objets web
Propriétés
Formes
Tortue
Apparence
GeoGebra
var canevas, x, n, nombre, rayon, y, alpha, coeff, i, j, theta, couleurs, glissN, glissNB, glissR, glissCOEF, glissROT; /** * Fonction exécutée une fois, au départ */ function actions_initiales() { disposerPageExecution(true,1000); createElement("h1",'Polygones emboîtés'); choixAxes("MATH"); canevas=creerCanvas(800,800); canvas=canevas; couleurs = ['#ffcccc', '#ff9966', '#ffcc66', '#ffcc33', '#009900', '#66cccc', '#33ccff', '#3366ff', '#ff99ff', '#cc33cc']; createSpan("<br>"); glissN=nouvelleGlissiereValeur('n = ',3,10,5,1); createSpan("<br>"); glissNB=nouvelleGlissiereValeur('nombre = ',1,50,5,1); createSpan("<br>"); glissR=nouvelleGlissiereValeur('rayon = ',10,400,300,1); createSpan("<br>"); glissCOEF=nouvelleGlissiereValeur('coefficient = ',-1,1,0,0.01); createSpan("<br>"); glissROT=nouvelleGlissiereValeur('rotation = ',0,5,0,0.01); alpha = 0; format(); } /** * Décrire cette fonction… */ function polygones_emboit_C3_A9s(n, nombre, rayon, coeff, x, y, alpha) { theta = coeff * (180 / n); for (i = 1; i <= nombre; i += abs(1)) { fill_((couleurs[(i % couleurs.length)])); debutPoly(); sautePos((x + rayon * Math.cos(alpha / 180 * Math.PI)),(y + rayon * Math.sin(alpha / 180 * Math.PI))); for (j = 1; j <= n; j += abs(1)) { fixePos((x + rayon * Math.cos((j * (360 / n) + alpha) / 180 * Math.PI)),(y + rayon * Math.sin((j * (360 / n) + alpha) / 180 * Math.PI))); } finPoly(); rayon = (rayon * Math.cos((180 / n) / 180 * Math.PI)) / Math.cos(theta / 180 * Math.PI); alpha = alpha + 180 / n + theta; } } /** * Fonction exécutée périodiquement, de façon répétée */ function actions_en_boucle() { couleurFondC('#ffffff'); x = posXsouris() - 400; y = 400 - posYsouris(); if (!(mouseIsPressed && Math.abs(x) < 400 && Math.abs(y) < 400)) { x = 0; y = 0; } alpha = alpha + valeurPrudent("glissROT",glissROT); polygones_emboit_C3_A9s(valeurPrudent("glissN",glissN), valeurPrudent("glissNB",glissNB), valeurPrudent("glissR",glissR), valeurPrudent("glissCOEF",glissCOEF), x, y, alpha); } /** * Décrire cette fonction… */ function format() { stylerObjetPrudent("glissN",glissN,'largeur','500px'); stylerObjetPrudent("glissNB",glissNB,'largeur','500px'); stylerObjetPrudent("glissCOEF",glissCOEF,'largeur','500px'); stylerObjetPrudent("glissR",glissR,'largeur','500px'); stylerObjetPrudent("glissROT",glissROT,'largeur','500px'); stylerObjetPrudent("glissCOEF",glissCOEF,'taille-caractère','36px'); stylerObjetPrudent("glissN",glissN,'taille-caractère','36px'); stylerObjetPrudent("glissNB",glissNB,'taille-caractère','36px'); stylerObjetPrudent("glissR",glissR,'taille-caractère','36px'); stylerObjetPrudent("glissROT",glissROT,'taille-caractère','36px'); }