Logique
Boucles
Math
Texte
Listes
Données
Variables
Fonctions
Programmation
p5.js
Objets web
Propriétés
Formes
Tortue
Apparence
GeoGebra
var canvas, alpha, x, n, delta, r, y, a, b, glissFrac, echelle, glissN, glissEch, fracAlt, frac, couleurs, i, glissVitRot, glissNbPoly; /** * Fonction exécutée une fois, au départ */ function actions_initiales() { document.body.style.paddingLeft="30px"; createElement("h1",'Exemple créé avec p5Visuel'); canevas=creerCanvas(600,600); canvas=canevas; fracAlt = 0; createSpan("<br>"); createSpan('Nombre de polygones :'); glissNbPoly=createSlider(1,1000,200,1); createSpan("<br>"); createSpan('Nombre de côtés :'); glissN=createSlider(3,10,3,1); createSpan("<br>"); createSpan('Facteur d"échelle : '); glissEch=createSlider(0.5,0.99,0.95,0.01); createSpan("<br>"); createSpan('Position sur côté : '); glissFrac=createSlider(0,1.01,1.01,0.01); createSpan(' (placer à droite pour animation)'); createSpan("<br>"); createSpan('Vitesse de rotation : '); glissVitRot=createSlider(1,60,20,0.01); definirCouleurs(); } /** * Fonction exécutée périodiquement, de façon répétée */ function actions_en_boucle() { figure(); frameRate(round((valeurPrudent("glissVitRot",glissVitRot)))); fracAlt = fracAlt + 0.01; if (fracAlt >= 0.99) { fracAlt = 0; } } /** * Décrire cette fonction… */ function figure() { couleurFondC((color(230,230,230,255))); n = valeurPrudent("glissN",glissN); r = 300; alpha = 0; frac = valeurPrudent("glissFrac",glissFrac); if (frac > 1) { frac = fracAlt; } delta = frac * (360 / n); echelle = valeurPrudent("glissEch",glissEch); for (i = 1; i <= valeurPrudent("glissNbPoly",glissNbPoly); i += abs(1)) { fill_((couleurs[i])); poly(n, r, 300, 300, alpha); r = r * echelle; alpha = alpha + delta; } } function mathRandomInt(a, b) { if (a > b) { // Swap a and b to ensure a is smaller. var c = a; a = b; b = c; } return Math.floor(Math.random() * (b - a + 1) + a); } /** * Décrire cette fonction… */ function definirCouleurs() { couleurs = []; for (i = 1; i <= 1000; i += abs(1)) { couleurs[i] = (color((mathRandomInt(0, 255)),(mathRandomInt(0, 255)),(mathRandomInt(0, 255)),255)); } } /** * Décrire cette fonction… */ function poly(n, r, x, y, alpha) { debutPoly(); var repeat_end = n + 1; for (var count = 0; count < repeat_end; count++) { a = x + r * Math.cos(alpha / 180 * Math.PI); b = y + r * Math.sin(alpha / 180 * Math.PI); sommet(a,b); alpha = alpha + 360 / n; } finPoly(); }