File: /home/mmtprep/public_html/mathzen.mmtprep.com/assets/beta5G30-2-M-Gb2gvb.js.map
{"version":3,"file":"beta5G30-2-M-Gb2gvb.js","sources":["../../src/exercices/beta/beta5G30-2.js"],"sourcesContent":["import { arcPointPointAngle } from '../../lib/2d/cercle.js'\nimport { texteSurArc } from '../../lib/2d/codages.js'\nimport { droite } from '../../lib/2d/droites.js'\nimport { point } from '../../lib/2d/points.js'\nimport { vecteur } from '../../lib/2d/segmentsVecteurs.js'\nimport { homothetie, rotation, translation } from '../../lib/2d/transformations.js'\nimport { choice } from '../../lib/outils/arrayOutils'\nimport Exercice from '../Exercice.js'\nimport { mathalea2d, colorToLatexOrHTML, fixeBordures } from '../../modules/2dGeneralites.js'\nimport { context } from '../../modules/context.js'\nimport { listeQuestionsToContenu } from '../../modules/outils.js'\nimport { pickRandom } from 'mathjs'\nimport { aleaVariables } from '../../modules/outilsMathjs.js'\nexport const titre = 'Angles et parallèles'\n// eslint-disable-next-line no-debugger\ndebugger\n\n// Les exports suivants sont optionnels mais au moins la date de publication semble essentielle\nexport const dateDePublication = '08/01/2022' // La date de publication initiale au format 'jj/mm/aaaa' pour affichage temporaire d'un tag\n// export const dateDeModifImportante = '08/01/2022' // Une date de modification importante au format 'jj/mm/aaaa' pour affichage temporaire d'un tag\n\nfunction anglesSecantes (A, rot = { O: 60, A: 0 }) {\n const s = rotation(translation(A, vecteur(1, 0)), A, rot.A)\n const t = rotation(s, A, 180)\n const x = rotation(translation(A, vecteur(1, 0)), A, rot.O)\n const Ox = rotation(x, A, 180)\n return {\n a: arcPointPointAngle(s, x, rot.O - rot.A, true, 'blue'),\n b: arcPointPointAngle(x, t, 180 - (rot.O - rot.A), true, 'green'),\n c: arcPointPointAngle(t, Ox, rot.O - rot.A, true, 'red'),\n d: arcPointPointAngle(Ox, s, 180 - (rot.O - rot.A), true, 'gray'),\n s,\n t,\n x,\n Ox,\n As: droite(A, s),\n Ax: droite(A, x),\n A,\n labela: texteSurArc((rot.O - rot.A) % 180 + '°', s, x, rot.O - rot.A, 'black'),\n labelb: texteSurArc((180 - (rot.O - rot.A)) % 180 + '°', x, t, 180 - (rot.O - rot.A), 'black'),\n labelc: texteSurArc((rot.O - rot.A) % 180 + '°', t, Ox, rot.O - rot.A, 'black'),\n labeld: texteSurArc((180 - (rot.O - rot.A)) % 180 + '°', Ox, s, 180 - (rot.O - rot.A), 'black')\n }\n}\n/**\n * Description didactique de l'exercice\n * @author Frédéric PIOU\n * Référence\n*/\nexport default function ExercicesAnglesAIC () {\n Exercice.call(this)\n const formulaire = [\n '0 : Mélange des types de questions',\n '1 : Angle alterne-interne ou correspondant ?',\n '2 : Déterminer si des droites sont parallèles.',\n '3 : Calculer la mesure d\\'un angle.'\n ]\n this.nbQuestions = 0\n this.besoinFormulaireNumerique = [\n 'Type de questions', this.nbQuestions, formulaire.join('\\n')\n ]\n this.consigne = ''\n this.nbCols = 0\n this.nbColsCorr = 0\n this.tailleDiaporama = 1\n this.video = ''\n this.correctionDetailleeDisponible = false\n this.correctionDetaillee = true\n context.isHtml ? (this.spacing = 2.5) : (this.spacing = 0)\n context.isHtml ? (this.spacingCorr = 2.5) : (this.spacingCorr = 0)\n this.sup = 0 // Type d'exercice\n this.nouvelleVersion = function (numeroExercice, dDebug = false) {\n this.nbQuestions = this.NbQuestions > 0 ? this.nbQuestions : this.sup !== 0 ? 1 : formulaire.length - 1\n this.listeQuestions = [] // Liste de questions\n this.listeCorrections = [] // Liste de questions corrigées\n this.autoCorrection = [] // À placer même si l'exercice n'a pas vocation à être corrigé\n let nquestion = 0\n for (let i = 0, exercice, cpt = 0; i < this.nbQuestions && cpt < 100;) { // Boucle principale où i+1 correspond au numéro de la question\n nquestion = this.sup === 0 ? cpt + 1 : this.sup\n if (dDebug) {\n console.log(`\n ********************************\n Exercice ${i + 1} Case ${nquestion}\n ********************************`)\n }\n switch (nquestion) { // Chaque question peut être d'un type différent, ici 4 cas sont prévus...\n case 1: {\n const objetsEnonce = [] // on initialise le tableau des objets Mathalea2d de l'enoncé\n const objetsEnonceml = [] // Idem pour l'enoncé à main levée si besoin\n const objetsCorrection = [] // Idem pour la correction\n const param = aleaVariables(\n {\n O: 'randomInt(0,90)',\n A: 'randomInt(-90,90)',\n B: 'randomInt(-90,90)',\n r1: 'pickRandom([1.5,2])',\n r2: 'pickRandom([1.5,2])',\n test: 'O-A>30 and O-B>30'\n }\n )\n if (dDebug) console.log(param)\n const O = point(0, 0)\n const anglesA = anglesSecantes(homothetie(rotation(point(1, 0), O, param.O), O, param.r1), { O: param.O, A: param.A })\n const anglesB = anglesSecantes(homothetie(rotation(point(1, 0), O, param.O + 180), O, param.r2), { O: param.O, A: param.B })\n for (const i of ['a', 'b', 'c', 'd']) {\n anglesA[i].couleurDeRemplissage = colorToLatexOrHTML('red')\n anglesB[i].couleurDeRemplissage = colorToLatexOrHTML('red')\n }\n const ab = choice([\n choice(['aa', 'bb', 'cc', 'dd']),\n choice(['ca', 'db']),\n choice(['a', 'b', 'c', 'd']) + choice(['a', 'b', 'c', 'd'])\n ])\n const a = ab[0]\n const b = ab[1]\n objetsEnonce.push(\n anglesA[a],\n anglesA.As,\n anglesA.Ax,\n anglesB[b],\n anglesB.As,\n anglesB.Ax,\n anglesA['label' + a],\n anglesB['label' + b]\n )\n const paramsEnonce = fixeBordures([\n ...Object.keys(anglesA).map(key => { return anglesA[key] }),\n ...Object.keys(anglesB).map(key => { return anglesB[key] })\n ])\n // On copie tout le contenu de objetsEnonce et de objetsEnonceml dans objetsCorrection\n objetsEnonce.forEach(objet => {\n objetsCorrection.push(objet)\n })\n objetsEnonceml.forEach(objet => {\n objetsCorrection.push(objet)\n })\n // ici sont créés les texte, tex_corr, objets mathalea2d divers entrant dans le contenu de l'exercice\n let texte = 'Les angles marqués sont-ils alternes-internes, correspondants ou ni l\\'un ni l\\'autre ?<br>'\n let reponse\n if (a === b) {\n reponse = 'correspondants'\n } else if (a + b === 'ca' || a + b === 'db') {\n reponse = 'alternes-internes'\n } else {\n reponse = 'ni alternes-internes ni correspondants'\n }\n const texteCorr = `Les angles marqués sont ${reponse}.`\n texte += mathalea2d(Object.assign({ scale: 0.7 }, paramsEnonce), objetsEnonce)\n exercice = { texte, texteCorr }\n break\n }\n case 2: {\n const objetsEnonce = [] // on initialise le tableau des objets Mathalea2d de l'enoncé\n const objetsCorrection = [] // Idem pour la correction\n const param = aleaVariables(\n {\n O: 'randomInt(0,90)',\n A: 'randomInt(-90,90)',\n B: 'A',\n r1: 'pickRandom([1.5,2])',\n r2: 'pickRandom([1.5,2])',\n test: '70>O-A>30 and 70>O-B>30 and abs(A-B)<45'\n }\n )\n const ab = aleaVariables(\n {\n a: 'randomInt(0,3)',\n b: 'randomInt(0,3)',\n test: 'a!=b and (a!=2 or b!=0) and (a!=3 or b!=1)'\n }\n )\n if (dDebug) console.log(param)\n const O = point(0, 0)\n const anglesA = anglesSecantes(homothetie(rotation(point(1, 0), O, param.O), O, param.r1), { O: param.O, A: param.A })\n const anglesB = anglesSecantes(homothetie(rotation(point(1, 0), O, param.O + 180), O, param.r2), { O: param.O, A: param.B })\n for (const i of ['a', 'b', 'c', 'd']) {\n anglesA[i].couleurDeRemplissage = colorToLatexOrHTML('blue')\n anglesB[i].couleurDeRemplissage = colorToLatexOrHTML('blue')\n }\n const a = ['a', 'b', 'c', 'd'][parseInt(ab.a)]\n const b = ['a', 'b', 'c', 'd'][parseInt(ab.b)]\n const epsilon = choice([pickRandom([-2, -1, 1, 2]), 0])\n anglesA.labela = texteSurArc(((param.O - param.A) % 180 + epsilon) + '°', anglesA.s, anglesA.x, param.O - param.A, 'black')\n anglesA.labelb = texteSurArc((180 - (param.O - param.A) + epsilon) % 180 + '°', anglesA.x, anglesA.t, 180 - (param.O - param.A), 'black')\n anglesA.labelc = texteSurArc((param.O - param.A + epsilon) % 180 + '°', anglesA.t, anglesA.Ox, param.O - param.A, 'black')\n anglesA.labeld = texteSurArc((180 - (param.O - param.A) + epsilon) % 180 + '°', anglesA.Ox, anglesA.s, 180 - (param.O - param.A), 'black')\n anglesB.labela = texteSurArc(((param.O - param.A) % 180) + '°', anglesB.s, anglesB.x, param.O - param.A, 'black')\n anglesB.labelb = texteSurArc((180 - (param.O - param.A)) % 180 + '°', anglesB.x, anglesB.t, 180 - (param.O - param.A), 'black')\n anglesB.labelc = texteSurArc((param.O - param.A) % 180 + '°', anglesB.t, anglesB.Ox, param.O - param.A, 'black')\n anglesB.labeld = texteSurArc((180 - (param.O - param.A)) % 180 + '°', anglesB.Ox, anglesB.s, 180 - (param.O - param.A), 'black')\n objetsEnonce.push(\n anglesA[a],\n anglesA.As,\n anglesA.Ax,\n anglesB[b],\n anglesB.As,\n anglesB.Ax,\n anglesA['label' + a],\n anglesB['label' + b]\n )\n objetsEnonce.forEach(objet => {\n objetsCorrection.push(objet)\n })\n let angles, calculs\n switch (a + b) {\n case 'ab':\n anglesB[a].couleurDeRemplissage = colorToLatexOrHTML('green')\n anglesA[a].couleurDeRemplissage = colorToLatexOrHTML('red')\n objetsCorrection.push(anglesB['label' + 'a'], anglesB.a)\n angles = 'correspondants'\n calculs = `$180°-${anglesB.labelb.texte} = ${anglesB.labela.texte}$`\n break\n case 'ac':\n anglesB[a].couleurDeRemplissage = colorToLatexOrHTML('green')\n anglesA[a].couleurDeRemplissage = colorToLatexOrHTML('red')\n objetsCorrection.push(anglesB['label' + 'a'], anglesB.a)\n angles = 'correspondants'\n break\n case 'ad':\n anglesB[a].couleurDeRemplissage = colorToLatexOrHTML('green')\n anglesA[a].couleurDeRemplissage = colorToLatexOrHTML('red')\n objetsCorrection.push(anglesB['label' + 'a'], anglesB.a)\n angles = 'correspondants'\n calculs = `$180°-${anglesB.labeld.texte} = ${anglesB.labela.texte}$`\n break\n case 'ba':\n anglesB[a].couleurDeRemplissage = colorToLatexOrHTML('green')\n anglesA[a].couleurDeRemplissage = colorToLatexOrHTML('red')\n objetsCorrection.push(anglesB['label' + 'b'], anglesB.b)\n angles = 'correspondants'\n calculs = `$180°-${anglesB.labela.texte} = ${anglesB.labelb.texte}$`\n break\n case 'bc':\n anglesB[a].couleurDeRemplissage = colorToLatexOrHTML('green')\n anglesA[a].couleurDeRemplissage = colorToLatexOrHTML('red')\n objetsCorrection.push(anglesB['label' + 'b'], anglesB.b)\n angles = 'correspondants'\n calculs = `$180°-${anglesB.labelc.texte} = ${anglesB.labelb.texte}$`\n break\n case 'bd':\n anglesB[a].couleurDeRemplissage = colorToLatexOrHTML('green')\n anglesA[a].couleurDeRemplissage = colorToLatexOrHTML('red')\n objetsCorrection.push(anglesB['label' + 'b'], anglesB.b)\n angles = 'correspondants'\n break\n case 'cb':\n anglesB.a.couleurDeRemplissage = colorToLatexOrHTML('green')\n anglesA[a].couleurDeRemplissage = colorToLatexOrHTML('red')\n objetsCorrection.push(anglesB['label' + 'a'], anglesB.a)\n angles = 'alternes-internes'\n calculs = `$180°-${anglesB.labelb.texte} = ${anglesB.labela.texte}$`\n break\n case 'cd':\n anglesB.a.couleurDeRemplissage = colorToLatexOrHTML('green')\n anglesA[a].couleurDeRemplissage = colorToLatexOrHTML('red')\n objetsCorrection.push(anglesB['label' + 'a'], anglesB.a)\n angles = 'alternes-internes'\n calculs = `$180°-${anglesB.labeld.texte} = ${anglesB.labela.texte}$`\n break\n case 'da':\n anglesB.b.couleurDeRemplissage = colorToLatexOrHTML('green')\n anglesA[a].couleurDeRemplissage = colorToLatexOrHTML('red')\n objetsCorrection.push(anglesB['label' + 'b'], anglesB.b)\n angles = 'alternes-internes'\n calculs = `$180°-${anglesB.labela.texte} = ${anglesB.labelb.texte}$`\n break\n case 'dc':\n anglesB.b.couleurDeRemplissage = colorToLatexOrHTML('green')\n anglesA[a].couleurDeRemplissage = colorToLatexOrHTML('red')\n objetsCorrection.push(anglesB['label' + 'b'], anglesB.b)\n calculs = `$180°-${anglesB.labelc.texte} = ${anglesB.labelb.texte}$`\n angles = 'alternes-internes'\n break\n }\n const paramsEnonce = fixeBordures([\n ...Object.keys(anglesA).map(key => { return anglesA[key] }),\n ...Object.keys(anglesB).map(key => { return anglesB[key] })\n ])\n let texte = 'Les droites sont-elles parallèles ?<br>'\n let sont\n if (epsilon !== 0) {\n sont = 'ne sont pas'\n } else {\n sont = 'sont'\n }\n const texteCorr = mathalea2d(Object.assign({ scale: 0.7 }, paramsEnonce), objetsCorrection) + String.raw`\n <br>\n ${calculs !== undefined ? calculs : 'Les angles bleu et vert sont opposés par le sommet. Ils sont donc de même mesure.'}\n <br>\n Les angles rouge et vert sont ${angles} et ${sont} de la même mesure.\n <br>\n Donc les droites ${sont} parallèles.\n `\n texte += mathalea2d(Object.assign({ scale: 0.7 }, paramsEnonce), objetsEnonce)\n exercice = { texte, texteCorr }\n break\n }\n case 3: {\n const objetsEnonce = [] // on initialise le tableau des objets Mathalea2d de l'enoncé\n const objetsCorrection = [] // Idem pour la correction\n const param = aleaVariables(\n {\n O: 'randomInt(0,90)',\n A: 'randomInt(-90,90)',\n B: 'A',\n r1: 'pickRandom([1.5,2])',\n r2: 'pickRandom([1.5,2])',\n test: '70>O-A>30 and 70>O-B>30 and abs(A-B)<45'\n }\n )\n const ab = aleaVariables(\n {\n a: 'randomInt(0,3)',\n b: 'randomInt(0,3)',\n test: 'a!=b and (a!=2 or b!=0) and (a!=3 or b!=1)'\n }\n )\n if (dDebug) console.log(param)\n const O = point(0, 0)\n const anglesA = anglesSecantes(homothetie(rotation(point(1, 0), O, param.O), O, param.r1), { O: param.O, A: param.A })\n const anglesB = anglesSecantes(homothetie(rotation(point(1, 0), O, param.O + 180), O, param.r2), { O: param.O, A: param.B })\n for (const i of ['a', 'b', 'c', 'd']) {\n anglesA[i].couleurDeRemplissage = colorToLatexOrHTML('blue')\n anglesB[i].couleurDeRemplissage = colorToLatexOrHTML('blue')\n }\n const a = ['a', 'b', 'c', 'd'][parseInt(ab.a)]\n const b = ['a', 'b', 'c', 'd'][parseInt(ab.b)]\n const epsilon = 0\n anglesA.labela = texteSurArc(((param.O - param.A) % 180 + epsilon) + '°', anglesA.s, anglesA.x, param.O - param.A, 'black')\n anglesA.labelb = texteSurArc((180 - (param.O - param.A) + epsilon) % 180 + '°', anglesA.x, anglesA.t, 180 - (param.O - param.A), 'black')\n anglesA.labelc = texteSurArc((param.O - param.A + epsilon) % 180 + '°', anglesA.t, anglesA.Ox, param.O - param.A, 'black')\n anglesA.labeld = texteSurArc((180 - (param.O - param.A) + epsilon) % 180 + '°', anglesA.Ox, anglesA.s, 180 - (param.O - param.A), 'black')\n anglesB.labela = texteSurArc(((param.O - param.A) % 180) + '°', anglesB.s, anglesB.x, param.O - param.A, 'black')\n anglesB.labelb = texteSurArc((180 - (param.O - param.A)) % 180 + '°', anglesB.x, anglesB.t, 180 - (param.O - param.A), 'black')\n anglesB.labelc = texteSurArc((param.O - param.A) % 180 + '°', anglesB.t, anglesB.Ox, param.O - param.A, 'black')\n anglesB.labeld = texteSurArc((180 - (param.O - param.A)) % 180 + '°', anglesB.Ox, anglesB.s, 180 - (param.O - param.A), 'black')\n objetsEnonce.push(\n anglesA[a],\n anglesA.As,\n anglesA.Ax,\n anglesB[b],\n anglesB.As,\n anglesB.Ax,\n anglesA['label' + a]\n // anglesB['label' + b]\n )\n objetsEnonce.forEach(objet => {\n objetsCorrection.push(objet)\n })\n objetsCorrection.push(anglesB['label' + b])\n let angles, calculs, mesure\n switch (a + b) {\n case 'ab':\n anglesB[a].couleurDeRemplissage = colorToLatexOrHTML('green')\n anglesA[a].couleurDeRemplissage = colorToLatexOrHTML('red')\n objetsCorrection.push(anglesB['label' + 'a'], anglesB.a)\n angles = 'correspondants'\n calculs = `$180°- ${anglesB.labela.texte}=${anglesB.labelb.texte}$`\n mesure = anglesB.labelb.texte\n break\n case 'ac':\n anglesB[a].couleurDeRemplissage = colorToLatexOrHTML('green')\n anglesA[a].couleurDeRemplissage = colorToLatexOrHTML('red')\n objetsCorrection.push(anglesB['label' + 'a'], anglesB.a)\n angles = 'correspondants'\n mesure = anglesB.labela.texte\n break\n case 'ad':\n anglesB[a].couleurDeRemplissage = colorToLatexOrHTML('green')\n anglesA[a].couleurDeRemplissage = colorToLatexOrHTML('red')\n objetsCorrection.push(anglesB['label' + 'a'], anglesB.a)\n angles = 'correspondants'\n calculs = `$180°-${anglesB.labela.texte}=${anglesB.labeld.texte}$`\n mesure = anglesB.labeld.texte\n break\n case 'ba':\n anglesB[a].couleurDeRemplissage = colorToLatexOrHTML('green')\n anglesA[a].couleurDeRemplissage = colorToLatexOrHTML('red')\n objetsCorrection.push(anglesB['label' + 'b'], anglesB.b)\n angles = 'correspondants'\n calculs = `$180°-${anglesB.labelb.texte}=${anglesB.labela.texte}$`\n mesure = anglesB.labela.texte\n break\n case 'bc':\n anglesB[a].couleurDeRemplissage = colorToLatexOrHTML('green')\n anglesA[a].couleurDeRemplissage = colorToLatexOrHTML('red')\n objetsCorrection.push(anglesB['label' + 'b'], anglesB.b)\n angles = 'correspondants'\n calculs = `$180°- ${anglesB.labelb.texte}=${anglesB.labelc.texte}$`\n mesure = anglesB.labelc.texte\n break\n case 'bd':\n anglesB[a].couleurDeRemplissage = colorToLatexOrHTML('green')\n anglesA[a].couleurDeRemplissage = colorToLatexOrHTML('red')\n objetsCorrection.push(anglesB['label' + 'b'], anglesB.b)\n angles = 'correspondants'\n mesure = anglesB.labelb.texte\n break\n case 'cb':\n anglesB.a.couleurDeRemplissage = colorToLatexOrHTML('green')\n anglesA[a].couleurDeRemplissage = colorToLatexOrHTML('red')\n objetsCorrection.push(anglesB['label' + 'a'], anglesB.a)\n angles = 'alternes-internes'\n calculs = `$180°- ${anglesB.labela.texte}=${anglesB.labelb.texte}$`\n mesure = anglesB.labelb.texte\n break\n case 'cd':\n anglesB.a.couleurDeRemplissage = colorToLatexOrHTML('green')\n anglesA[a].couleurDeRemplissage = colorToLatexOrHTML('red')\n objetsCorrection.push(anglesB['label' + 'a'], anglesB.a)\n angles = 'alternes-internes'\n calculs = `$180°-${anglesB.labela.texte}=${anglesB.labeld.texte}$`\n mesure = anglesB.labeld.texte\n break\n case 'da':\n anglesB.b.couleurDeRemplissage = colorToLatexOrHTML('green')\n anglesA[a].couleurDeRemplissage = colorToLatexOrHTML('red')\n objetsCorrection.push(anglesB['label' + 'b'], anglesB.b)\n angles = 'alternes-internes'\n calculs = `$180°- ${anglesB.labelb.texte}=${anglesB.labela.texte}$`\n mesure = anglesB.labela.texte\n break\n case 'dc':\n anglesB.b.couleurDeRemplissage = colorToLatexOrHTML('green')\n anglesA[a].couleurDeRemplissage = colorToLatexOrHTML('red')\n objetsCorrection.push(anglesB['label' + 'b'], anglesB.b)\n calculs = `$180°- ${anglesB.labelb.texte}=${anglesB.labelc.texte}$`\n angles = 'alternes-internes'\n mesure = anglesB.labelc.texte\n break\n }\n const paramsEnonce = fixeBordures([\n ...Object.keys(anglesA).map(key => { return anglesA[key] }),\n ...Object.keys(anglesB).map(key => { return anglesB[key] })\n ])\n let texte = `\n Donnée : Les droites sont parallèles.\n <br>\n En déduire la mesure de l'angle bleu.\n `\n const texteCorr = mathalea2d(Object.assign({ scale: 0.7 }, paramsEnonce), objetsCorrection) + String.raw`\n <br>\n Les angles rouge et vert sont ${angles} et formés par des droites parallèles.\n <br>\n Donc ils sont de même mesure.\n <br>\n ${calculs !== undefined ? calculs : 'Les angles bleu et vert sont opposés par le sommet.<br> Ils sont donc de même mesure.'}\n <br>\n L'angle bleu mesure donc ${mesure}.\n `\n texte += mathalea2d(Object.assign({ scale: 0.7 }, paramsEnonce), objetsEnonce)\n exercice = { texte, texteCorr }\n break\n }\n }\n // Les lignes ci-dessous permettent d'avoir un affichage aux dimensions optimisées\n if (this.questionJamaisPosee(i, nquestion)) {\n this.listeQuestions.push(exercice.texte)\n this.listeCorrections.push(exercice.texteCorr)\n i++\n }\n cpt++\n }\n listeQuestionsToContenu(this) // On envoie l'exercice à la fonction de mise en page\n }\n}\n"],"names":["titre","dateDePublication","anglesSecantes","A","rot","s","rotation","translation","vecteur","t","Ox","arcPointPointAngle","droite","texteSurArc","ExercicesAnglesAIC","Exercice","formulaire","context","numeroExercice","dDebug","nquestion","i","exercice","cpt","objetsEnonce","param","aleaVariables","O","point","anglesA","homothetie","anglesB","colorToLatexOrHTML","ab","choice","a","b","paramsEnonce","fixeBordures","key","objet","texte","reponse","texteCorr","mathalea2d","objetsCorrection","epsilon","pickRandom","angles","calculs","sont","mesure","listeQuestionsToContenu"],"mappings":"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"}