Logique
Boucles
Math
Texte
Listes
Données
Variables
Fonctions
Programmation
p5.js
Objets web
Propriétés
Formes
Tortue
Apparence
var canevas, a, b, h, k, cadre_GGB_OK, paraF, paraG, case_a_cocher, debut_dom, fin_dom, fonction_de_base, bouton, fonction_pour_GeoGebra, domaine_restreint, x, fonction, temp, contenant, et, contenant_case, espace; /** * Fonction exécutée une fois, au départ */ function actions_initiales() { centrerPageExecution(0); createElement("h1",'Familles de fonctions : paramètres et domaine'); fonction_de_base = 'sin(x)'; paraF=createElement("h1",(codeMath((String('f(x)=') + String(fonction_de_base))))); espace=createSpan("").style("display","inline-block").style("width","30px"); bouton=createButton('Changer f(x)'); assignerParentPrudent("espace",espace,"paraF",paraF); assignerParentPrudent("bouton",bouton,"paraF",paraF); stylerObjetPrudent("bouton",bouton,'taille-caractère','18pt'); stylerObjetPrudent("bouton",bouton,'couleur-fond','#c0c0c0'); siClicPrudent("bouton",bouton,"changer_fonction",changer_fonction); paraG=createElement("h1",(codeMath('g(x)=a⋅f(b⋅(x-h))+k'))); stylerObjetPrudent("paraG",paraG,'couleur','#cc0000'); refreshMathJax();domaine_restreint = true; contenant_case=createElement('div',''); case_a_cocher=createCheckbox('Le domaine de f(x) est restreint entre ',domaine_restreint); siChangementPrudent("case_a_cocher",case_a_cocher,"option_change",option_change); debut_dom=createInput('-10'); siRetourPrudent("debut_dom",debut_dom,"modifier_domaine",modifier_domaine); et=createSpan(' et '); fin_dom=createInput('10'); siRetourPrudent("fin_dom",fin_dom,"modifier_domaine",modifier_domaine); stylerObjetPrudent("contenant_case",contenant_case,'transform','scale(1.5)'); stylerObjetPrudent("case_a_cocher",case_a_cocher,'display','inline'); assignerParentPrudent("case_a_cocher",case_a_cocher,"contenant_case",contenant_case); assignerParentPrudent("debut_dom",debut_dom,"contenant_case",contenant_case); assignerParentPrudent("et",et,"contenant_case",contenant_case); assignerParentPrudent("fin_dom",fin_dom,"contenant_case",contenant_case); createSpan("<br>"); a=nouvelleGlissiereValeur('a = ',-5,5,1,0.01); createSpan("").style("display","inline-block").style("width","30px"); b=nouvelleGlissiereValeur('b = ',-5,5,1,0.01); createSpan("").style("display","inline-block").style("width","30px"); h=nouvelleGlissiereValeur('h = ',-5,5,0,0.01); createSpan("").style("display","inline-block").style("width","30px"); k=nouvelleGlissiereValeur('k = ',-5,5,0,0.01); stylerObjetPrudent("a",a,'taille-caractère','24pt'); stylerObjetPrudent("b",b,'taille-caractère','24pt'); stylerObjetPrudent("h",h,'taille-caractère','24pt'); stylerObjetPrudent("k",k,'taille-caractère','24pt'); createSpan("<br>"); createSpan("<br>"); contenant=createElement('div',''); assignerParentPrudent("(select('#'+'figGGB'))",(select('#'+'figGGB')),"contenant",contenant); cadre_GGB_OK = false; faireDelaiPrudent("initialiser_cadre_GeoGebra",initialiser_cadre_GeoGebra,0.2); } /** * Décrire cette fonction… */ function initialiser_cadre_GeoGebra() { if (retournerSiCadreCharge('figGGB',"GEOGEBRA")) { executerCommandeGeoGebraF((fonctionGGB(fonction_de_base)),'figGGB'); executerCommandeGeoGebraF('a=1','figGGB'); executerCommandeGeoGebraF('b=1','figGGB'); executerCommandeGeoGebraF('h=0','figGGB'); executerCommandeGeoGebraF('k=0','figGGB'); executerCommandeGeoGebraF('g(x)=a*f(b*(x-h))+k','figGGB'); executerCommandeGeoGebraF('SetColor(f,0,0,0)','figGGB'); executerCommandeGeoGebraF('SetColor(g,1,0,0)','figGGB'); executerCommandeGeoGebraF('P=Point(f)','figGGB'); executerCommandeGeoGebraF('Q=(x(P)/b+h,g(x(P)/b+h))','figGGB'); executerCommandeGeoGebraF('SetColor(P,0,0,0)','figGGB'); executerCommandeGeoGebraF('SetColor(Q,1,0,0)','figGGB'); cadre_GGB_OK = true; } else { faireDelaiPrudent("initialiser_cadre_GeoGebra",initialiser_cadre_GeoGebra,0.2); } } /** * Fonction exécutée périodiquement, de façon répétée */ function actions_en_boucle() { if (cadre_GGB_OK) { fixerValeurVariableGeoGebraF('a',(valeurPrudent("a",a)),'figGGB'); fixerValeurVariableGeoGebraF('b',(valeurPrudent("b",b)),'figGGB'); fixerValeurVariableGeoGebraF('h',(valeurPrudent("h",h)),'figGGB'); fixerValeurVariableGeoGebraF('k',(valeurPrudent("k",k)),'figGGB'); } } /** * Décrire cette fonction… */ function option_change() { domaine_restreint = !domaine_restreint; executerCommandeGeoGebraF((fonctionGGB(fonction_de_base)),'figGGB'); } /** * Décrire cette fonction… */ function fonctionGGB(fonction) { if (domaine_restreint) { fonction_pour_GeoGebra = substitution('f(x)=If[@1<x && x<@2,@3]',[valeurPrudent("debut_dom",debut_dom), valeurPrudent("fin_dom",fin_dom), fonction]); } else { fonction_pour_GeoGebra = String('f(x)=') + String(fonction); } return fonction_pour_GeoGebra; } /** * Décrire cette fonction… */ function modifier_domaine() { executerCommandeGeoGebraF((fonctionGGB(fonction_de_base)),'figGGB'); } /** * Décrire cette fonction… */ function changer_fonction() { temp = window.prompt('Nouvelle valeur de f(x)'); if (temp.length == 0) { return ; } else { fonction_de_base = temp; } fixeContenuPrudent("paraF",paraF,(codeMath((String('f(x)=') + String(fonction_de_base))))); refreshMathJax();assignerParentPrudent("espace",espace,"paraF",paraF); assignerParentPrudent("bouton",bouton,"paraF",paraF); executerCommandeGeoGebraF((fonctionGGB(fonction_de_base)),'figGGB'); }