File: /home/mmtprep/public_html/mathzen.mmtprep.com/assets/betaModele31_parametrables-3BteO9vd.js.map
{"version":3,"file":"betaModele31_parametrables-3BteO9vd.js","sources":["../../src/exercices/beta/betaModele31_parametrables.js"],"sourcesContent":["import { codageAngleDroit } from '../../lib/2d/angles.js'\nimport { point, tracePoint } from '../../lib/2d/points.js'\nimport { polygoneRegulier } from '../../lib/2d/polygones.js'\nimport { labelPoint } from '../../lib/2d/textes.js'\nimport { combinaisonListes } from '../../lib/outils/arrayOutils'\nimport { creerNomDePolygone } from '../../lib/outils/outilString.js'\nimport { mathalea2d } from '../../modules/2dGeneralites.js'\nimport { listeQuestionsToContenu, randint } from '../../modules/outils.js'\nimport Exercice from '../Exercice.js'\n\nexport const titre = 'Nom de l\\'exercice'\n\n// Les exports suivants sont optionnels mais au moins la date de publication semble essentielle\nexport const dateDePublication = '25/10/2021' // La date de publication initiale au format 'jj/mm/aaaa' pour affichage temporaire d'un tag\nexport const dateDeModifImportante = '24/10/2021' // Une date de modification importante au format 'jj/mm/aaaa' pour affichage temporaire d'un tag\n\n/**\n * Description didactique de l'exercice\n * @author\n * Référence\n */\nexport default class NomExercice extends Exercice {\n constructor () {\n super()\n this.titre = titre\n this.consigne = 'consigne'\n this.nbQuestions = 1\n\n this.besoinFormulaireNumerique = ['Figure à tracer', 2, '1 : Carré\\n2 : Triangle'] // le paramètre sera numérique de valeur max 2 (le 2 en vert)\n this.sup = 2 // Valeur du paramètre par défaut\n // Remarques : le paramètre peut aussi être un texte avec : this.besoinFormulaireTexte = [texte, tooltip]\n // il peut aussi être une case à cocher avec : this.besoinFormulaireCaseACocher = [texte] (dans ce cas, this.sup = true ou this.sup = false)\n\n this.nbCols = 1\n this.nbColsCorr = 1\n }\n\n nouvelleVersion () {\n this.listeQuestions = []\n this.listeCorrections = []\n this.autoCorrection = []\n\n const typesDeQuestionsDisponibles = [1] // tableau à compléter par valeurs possibles des types de questions\n const listeTypeDeQuestions = combinaisonListes(typesDeQuestionsDisponibles, this.nbQuestions)\n let objetsEnonce, objetsEnonceml, objetsCorrection, paramsEnonce, paramsEnonceml, paramsCorrection\n for (let i = 0, texte, texteCorr, cotes, nomPoly, naturePoly, cpt = 0; i < this.nbQuestions && cpt < 50;) {\n objetsEnonce = [] // on initialise le tableau des objets Mathalea2d de l'enoncé\n objetsEnonceml = [] // Idem pour l'enoncé à main levée si besoin\n objetsCorrection = [] // Idem pour la correction\n\n if (this.sup === 1) { // On a un comportement différent selon le paramètre.\n cotes = 4\n naturePoly = 'carré'\n texteCorr = 'Pour cette construction on peut utiliser la règle et l\\'équerre.<br>'\n } else if (this.sup === 2) {\n cotes = 3\n naturePoly = 'triangle équilatéral'\n texteCorr = 'Pour cette construction on peut utiliser la règle et le compas.<br>'\n }\n nomPoly = creerNomDePolygone(cotes, 'GPT') // Permet de choisir un nom de polygone de cotes lettres qui se suivent à l'exclusion de la séquence GPT\n texte = `Construire le ${naturePoly} $${nomPoly}$.<br>`\n\n let A, B, C, D\n switch (listeTypeDeQuestions[i]) {\n case 1: {\n A = point(0, 0, nomPoly.charAt(0), 'below') // nomPoly.charAt(0) renvoie le premier caractère de nomPoly\n B = point(5, randint(-30, 30) / 10, nomPoly.charAt(1), 'below') // nomPoly.charAt(1) renvoie le deuxième caractère de nomPoly\n\n const figure = polygoneRegulier(A, B, cotes) // Trace le polygone régulier direct à n côtés qui a pour côté [AB]\n // En tant que polygone, figure a de nombreux attributs. En particulier :\n // figure.listePoints[] contient l'ensemble des points du polygone\n // figure.listePoints[0] contient le premier point\n // figure.listePoints[1] contient le deuxième point etc\n // Voir l'exercice 5S12 pour voir comment colorier et hachurer une figure\n\n // Les points créés avec polygoneRegulier n'ont pas de nom donc pour leur ajouter un nom on peut faire\n C = figure.listePoints[2]\n C.nom = nomPoly.charAt(2)\n C.positionLabel = 'above'\n // ou alors\n // C = point(figure.listePoints[2].x, figure.listePoints[2].y, nomPoly.charAt(2), 'above')\n let traces2, labels2, D, angleA, angleB, angleC, angleD//\n if (cotes === 3) {\n traces2 = tracePoint(A, B, C)\n labels2 = labelPoint(A, B, C)\n } else {\n D = point(figure.listePoints[3].x, figure.listePoints[3].y, nomPoly.charAt(3), 'above')\n angleA = codageAngleDroit(B, A, D)\n angleB = codageAngleDroit(A, B, C)\n angleC = codageAngleDroit(B, C, D)\n angleD = codageAngleDroit(C, D, A)\n traces2 = tracePoint(A, B, C, D)\n labels2 = labelPoint(A, B, C, D)\n }\n figure.epaisseur = 2\n const traces1 = tracePoint(A, B)\n const labels1 = labelPoint(A, B)\n\n objetsEnonce.push(traces1, labels1)\n objetsEnonceml.push(traces2, labels2, figure, angleA, angleB, angleC, angleD)\n objetsCorrection.push(traces2, labels2, figure, angleA, angleB, angleC, angleD)\n // ici sont créés les texte, tex_corr, objets mathalea2d divers entrant dans le contenu de l'exercice\n }\n break\n\n case 2:\n // Idem Cas1 mais avec d'autres texte, texteCorr...\n break\n\n case 3:\n\n break\n\n case 4:\n\n break\n }\n // Les lignes ci-dessous permettent d'avoir un affichage aux dimensions optimisées\n const xmin = Math.min(A.x, B.x, C.x, D.x) - 2\n const xmax = Math.max(A.x, B.x, C.x, D.x) + 2\n const ymin = Math.min(A.y, B.y, C.y, D.y) - 2\n const ymax = Math.max(A.y, B.y, C.y, D.y) + 2\n // paramètres de la fenêtre Mathalea2d pour l'énoncé normal\n paramsEnonce = { xmin, ymin, xmax, ymax, pixelsParCm: 20, scale: 1 }\n // paramètres de la fenêtre Mathalea2d pour l'énoncé main levée\n paramsEnonceml = { xmin, ymin, xmax, ymax, pixelsParCm: 20, scale: 1, mainlevee: true, amplitude: 1 }\n // paramètres de la fenêtre Mathalea2d pour la correction\n paramsCorrection = paramsEnonce\n // On ajoute au texte de l'énoncé, la figure à main levée et la figure de l'enoncé.\n texte += mathalea2d(paramsEnonce, objetsEnonce) + mathalea2d(paramsEnonceml, objetsEnonceml)\n // On ajoute au texte de la correction, la figure de la correction\n texteCorr += mathalea2d(paramsCorrection, objetsCorrection)\n // Si la question n'a jamais été posée, on l'enregistre\n if (this.questionJamaisPosee(i, objetsEnonce)) { // <- laisser le i et ajouter toutes les variables qui rendent les exercices différents (par exemple a, b, c et d)\n // Dans cet exercice, on n'utilise pas a, b, c et d mais A, B, C et D alors remplace-les !\n this.listeQuestions.push(texte)\n this.listeCorrections.push(texteCorr)\n i++\n }\n cpt++\n }\n listeQuestionsToContenu(this)\n }\n}\n"],"names":["titre","dateDePublication","dateDeModifImportante","NomExercice","Exercice","listeTypeDeQuestions","combinaisonListes","objetsEnonce","objetsEnonceml","objetsCorrection","paramsEnonce","paramsEnonceml","paramsCorrection","i","texte","texteCorr","cotes","nomPoly","naturePoly","cpt","creerNomDePolygone","A","B","C","D","point","randint","figure","polygoneRegulier","traces2","labels2","angleA","angleB","angleC","angleD","tracePoint","labelPoint","codageAngleDroit","traces1","labels1","xmin","xmax","ymin","ymax","mathalea2d","listeQuestionsToContenu"],"mappings":"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"}