Logique
Boucles
Math
Texte
Listes
Données
Variables
Fonctions
Programmation
p5.js
Objets web
Propriétés
Formes
Tortue
Apparence
GeoGebra
var canvas, n, alpha, echelle, glissN, glissAlpha, glissEchelle, i, rot, glissVitRot, vitRot, elem1, elem2, elem3, elem4, elem5, elem6, elem7, elem8, elem9, conteneur, x, y, glissVarAlpha, varAlpha, affN, affAlpha, affEchelle, affVitRot, affVarAlpha, btnEnregistrer, btnRamener, listeAenregistrer, listeRamenee; /** * C'est la fonction "setup" de p5.js */ function actions_initiales() { rot = 0; document.body.style.paddingLeft="30px"; createElement("h1",'Spirales polygonales +'); canevas=creerCanvas(430,430); canvas=canevas; createSpan("<br>"); createSpan("<br>"); createSpan('Nombre de segments : '); glissN=createSlider(0,1000,1000,1); createSpan("").style("display","inline-block").style("width","10px"); affN=createSpan(''); createSpan("<br>"); createSpan('Angle entre les segments : '); glissAlpha=createSlider(1,179,119,1); createSpan("").style("display","inline-block").style("width","10px"); affAlpha=createSpan(''); createSpan("<br>"); createSpan('Échelle : '); glissEchelle=createSlider(0.01,10,2,0.01); createSpan("").style("display","inline-block").style("width","10px"); affEchelle=createSpan(''); createSpan("<br>"); createSpan('Vitesse de rotation : '); glissVitRot=createSlider(-10,10,1,0.01); createSpan("").style("display","inline-block").style("width","10px"); affVitRot=createSpan(''); createSpan("<br>"); createSpan('Variation de l\'angle : '); glissVarAlpha=createSlider(0,0.05,0.005,0.001); createSpan("").style("display","inline-block").style("width","10px"); affVarAlpha=createSpan(''); createSpan("<br>"); createSpan("<br>"); btnEnregistrer=createButton('Enregistrer'); createSpan("").style("display","inline-block").style("width","10px"); btnRamener=createButton(' Ramener '); siClicPrudent("btnEnregistrer",btnEnregistrer,"enregistrer",enregistrer); siClicPrudent("btnRamener",btnRamener,"ramener",ramener); stroke_((color(0,0,255,255))); } /** * C'est la fonction "draw" de p5.js */ function actions_en_boucle() { n = valeurPrudent("glissN",glissN); alpha = valeurPrudent("glissAlpha",glissAlpha); echelle = valeurPrudent("glissEchelle",glissEchelle); vitRot = valeurPrudent("glissVitRot",glissVitRot); varAlpha = valeurPrudent("glissVarAlpha",glissVarAlpha); if (Math.abs(vitRot) < 0.2) { vitRot = 0; } fixeContenuPrudent("affN",affN,n); fixeContenuPrudent("affAlpha",affAlpha,alpha); fixeContenuPrudent("affEchelle",affEchelle,echelle); fixeContenuPrudent("affVitRot",affVitRot,vitRot); fixeContenuPrudent("affVarAlpha",affVarAlpha,varAlpha); couleurFondC((color(255,255,255,255))); sautePos((leGraphicsActif.width / 2),(leGraphicsActif.height / 2)); fixeCap(rot); x = posXsouris(); y = posYsouris(); if (mouseIsPressed && x > 0 && x < leGraphicsActif.width && y > 0 && y < leGraphicsActif.height) { sautePos(x,y); } for (i = 1; i <= n; i += abs(1)) { avance((echelle * i)); droite(alpha); alpha = alpha + varAlpha; } rot = rot - vitRot; } /** * Décrire cette fonction… */ function enregistrer() { listeAenregistrer = ['Paramètres du programme Spirales perturbées', 'Nombre de segments', n, 'Angle entre les segments', valeurPrudent("glissAlpha",glissAlpha), 'Échelle', echelle, 'Vitesse de rotation', vitRot, 'Variation de l\'angle', varAlpha]; enregistrerDonnees(listeAenregistrer); } /** * Décrire cette fonction… */ function ramener() { chargerDonnees(traiter_donnees_quand_lues); } /** * Décrire cette fonction… */ function traiter_donnees_quand_lues() { listeRamenee = donneesChargees(); if (listeRamenee[0] != 'Paramètres du programme Spirales perturbées') { if (listeRamenee[0] != 'Annulé') { window.alert('ATTENTION : Fichier incompatible'); } return ; } fixeValeurPrudent("glissN",glissN,(listeRamenee[2])); fixeValeurPrudent("glissAlpha",glissAlpha,(listeRamenee[4])); fixeValeurPrudent("glissEchelle",glissEchelle,(listeRamenee[6])); fixeValeurPrudent("glissVitRot",glissVitRot,(listeRamenee[8])); fixeValeurPrudent("glissVarAlpha",glissVarAlpha,(listeRamenee[10])); }