File: /home/mmtprep/public_html/mathzen.mmtprep.com/assets/6G23-5-U9mABLKH.js.map
{"version":3,"file":"6G23-5-U9mABLKH.js","sources":["../../src/exercices/6e/6G23-5.js"],"sourcesContent":["import { angleModulo, codageAngle, codageAngleDroit } from '../../lib/2d/angles.js'\nimport { afficheMesureAngle } from '../../lib/2d/codages.js'\nimport { point, pointSurSegment, tracePoint } from '../../lib/2d/points.js'\nimport { segment } from '../../lib/2d/segmentsVecteurs.js'\nimport { labelPoint } from '../../lib/2d/textes.js'\nimport { rotation } from '../../lib/2d/transformations.js'\nimport { choice, combinaisonListes } from '../../lib/outils/arrayOutils'\nimport { miseEnEvidence } from '../../lib/outils/embellissements'\nimport { abs, arrondi } from '../../lib/outils/nombres'\nimport { lettreDepuisChiffre, sp } from '../../lib/outils/outilString.js'\nimport Exercice from '../deprecatedExercice.js'\nimport { fixeBordures, mathalea2d } from '../../modules/2dGeneralites.js'\nimport { gestionnaireFormulaireTexte, listeQuestionsToContenu, randint } from '../../modules/outils.js'\nimport { ajouteChampTexteMathLive } from '../../lib/interactif/questionMathLive.js'\nimport { max, min } from 'mathjs'\nimport { context } from '../../modules/context.js'\nimport { setReponse } from '../../lib/interactif/gestionInteractif.js'\n\nexport const titre = 'Calculate an angle, deduced from simple figures'\nexport const amcReady = true\nexport const amcType = 'AMCNum'\nexport const interactifType = 'mathLive'\nexport const interactifReady = true\n\nexport const dateDePublication = '03/05/2022'\nexport const dateDeModifImportante = '09/05/2023'\n\n/**\n * Calculer un angle à partir de figures simples\n * Ref 6G23-5\n * @author Eric Elter\n * Publié le 03/05/2022\n */\nexport const uuid = '329fe'\nexport const ref = '6G23-5'\nexport default function CalculerUnAngle () {\n Exercice.call(this) // Héritage de la classe Exercice()\n this.nbQuestions = 5\n this.sup = 15\n this.nouvelleVersion = function () {\n this.consigne = (this.nbQuestions === 1 ? 'L\\' angle attendu est un angle saillant' : 'The expected angles are salient angles') + ' (whose measurement is between $0\\\\degree$ and $180\\\\degree$).'\n this.listeQuestions = [] // Liste de questions\n this.listeCorrections = [] // Liste de questions corrigées\n this.autoCorrection = []\n /*\n let QuestionsDisponibles = []\n\n if (!this.sup) { // Si aucune liste n'est saisie\n QuestionsDisponibles = rangeMinMax(1, 15)\n } else {\n if (typeof (this.sup) === 'number') { // Si c'is a number it means the number was entered in the address bar\n QuestionsDisponibles[0] = contraindreValeur(1, 15, this.sup, 15)\n } else {\n QuestionsDisponibles = this.sup.split('-')// Sinon on créé un tableau à partir des valeurs séparées par des -\n for (let i = 0; i < QuestionsDisponibles.length; i++) { // on a un tableau avec des strings : ['1', '1', '2']\n QuestionsDisponibles[i] = contraindreValeur(1, 15, parseInt(QuestionsDisponibles[i]), 15) // parseInt en fait un tableau d'entiers\n }\n }\n }\n if (compteOccurences(QuestionsDisponibles, 15) > 0) QuestionsDisponibles = rangeMinMax(1, 14) // Teste si l'utilisateur a choisi tout\n QuestionsDisponibles = combinaisonListes(QuestionsDisponibles, this.nbQuestions)\n */\n const QuestionsDisponibles = gestionnaireFormulaireTexte({\n max: 14,\n defaut: 15,\n nbQuestions: this.nbQuestions,\n melange: 15,\n // shuffle: false, // KEEP FOR DEBUGGING\n saisie: this.sup\n })\n const partagesPossiblesAngle90 = combinaisonListes([2, 3, 5, 6, 9, 10], this.nbQuestions)\n\n for (let i = 0, QCas6 = 0, somAngle, choixAngD, choixAngC, numA, numB, numC, numD, numE, texte, texteCorr, tabAngle, partageAngle, pointsPartage, choixPartage, reponse, A, B, B1, C, C1, D, D1, E, AB, AC, AD, sensRot, posA, posB, posC, posD, angB, angC, angD, paramsEnonce; i < this.nbQuestions; i++) {\n texte = ''\n texteCorr = ''\n // We prepare the figure...\n const objetsEnonce = [] // on initialise le tableau des objets Mathalea2d de l'enoncé\n const objetsCorrection = [] // Idem pour la correction\n\n // The vertex of all angles is A.\n // Point B is the starting point for all angles. In fact, we first construct B1 then B constructed is between A and B1 (so that B is not always X cm from A because this distance does not have to be fixed for a student)\n // Point C is the end point for the reference angles in each case (straight, flat, acute, obtuse)\n // Point D is the point at which we seek to find the angle CAD.\n // Point E is only used for cases 13 and 14.\n // We first construct C1 and D1... under the same conditions as for B1.\n\n // Each number will correspond to a different letter for each point.\n numA = randint(1, 26, [4, 5, 15, 23, 24, 25])\n numB = randint(1, 26, [4, 5, 15, 23, 24, 25, numA])\n numC = randint(1, 26, [4, 5, 15, 23, 24, 25, numA, numB])\n numD = randint(1, 26, [4, 5, 15, 23, 24, 25, numA, numB, numC])\n sensRot = choice([-1, 1]) // Ce sens de rotation indique si on tourne dans le sens trigo ou pas.\n angB = randint(0, 360) - 180 // Compris entre -180 et 180. Pour éviter d'avoir un segment forcément horizontal ou vertical.\n\n // Setting up angles BAC and BAD depending on the case\n choixPartage = 0\n\n switch (QuestionsDisponibles[i]) {\n case 1:\n angC = sensRot * 90\n break\n case 2:\n angC = 180\n break\n case 3:\n angC = 180\n break\n case 4:\n angC = sensRot * randint(51, 89)\n break\n case 5:\n angC = sensRot * randint(91, 179)\n break\n case 6:\n partageAngle = partagesPossiblesAngle90[QCas6]\n QCas6++\n choixPartage = 1\n angD = sensRot * (90 - choixPartage * arrondi(90 / partageAngle))\n angC = sensRot * 90\n break\n case 7:\n partageAngle = randint(3, 10, [4, 7, 8])\n choixPartage = randint(2, partageAngle - 1)\n angD = sensRot * (90 - choixPartage * arrondi(90 / partageAngle))\n angC = sensRot * 90\n break\n case 8:\n partageAngle = randint(2, 6, [4])\n choixPartage = partageAngle + randint(1, partageAngle - 1)\n angD = sensRot * choixPartage * arrondi(90 / partageAngle)\n angC = sensRot * 90\n break\n case 9:\n partageAngle = randint(3, 10, [7, 8])\n choixPartage = 1\n angD = sensRot * (180 - arrondi(choixPartage * 180 / partageAngle))\n angC = sensRot * 180\n break\n case 10:\n partageAngle = randint(3, 10, [7, 8])\n choixPartage = randint(2, partageAngle - 1)\n while (arrondi(choixPartage * 180 / partageAngle) === 90) { // Pour éviter d'avoir à trouver un angle droit\n choixPartage = randint(2, partageAngle - 1)\n }\n angD = sensRot * (180 - arrondi(choixPartage * 180 / partageAngle))\n angC = sensRot * 180\n break\n case 11:\n // We create an array of 5 angles\n tabAngle = []\n somAngle = 0\n for (let ee = 0; ee <= 4; ee++) {\n tabAngle[ee] = (randint(25, 60))\n somAngle += tabAngle[ee]\n }\n // D is the rotation of B by the sum, at most, of the first 3 angles of the table. At a minimum, this is just the first angle.\n choixAngD = randint(0, 2)\n angD = tabAngle[0]\n for (let ee = 1; ee <= choixAngD; ee++) {\n angD += tabAngle[ee]\n }\n // C is the rotation of D of the sum of the following 2 or 3 angles in the table.\n angC = angD\n choixAngC = min(choixAngD + randint(2, 3), 4) // Si angD est la somme des 3 premiers, alors angC est forcément la somme des deux suivants.\n for (let ee = choixAngD + 1; ee <= choixAngC; ee++) {\n angC += tabAngle[ee]\n }\n angD = sensRot * angD\n angC = sensRot * angC\n somAngle = sensRot * somAngle\n break\n case 12:\n angD = -sensRot * randint(25, 85)\n angC = sensRot * 90\n break\n case 13:\n partageAngle = randint(2, 5)\n choixAngD = randint(25, 36)\n angD = sensRot * (90 - choixAngD)\n angC = sensRot * 90\n numE = randint(1, 26, [4, 5, 15, 23, 24, 25, numA, numB, numC, numD])\n break\n case 14:\n partageAngle = randint(2, 5)\n choixAngD = randint(25, 36)\n angD = sensRot * (90 - choixAngD)\n angC = sensRot * 90\n numE = randint(1, 26, [4, 5, 15, 23, 24, 25, numA, numB, numC, numD])\n break\n }\n if (QuestionsDisponibles[i] < 6) angD = sensRot * randint(25, abs(angC) - 25, [90])\n\n /* Ne pas effacer ! Pratique à décommenter pour débugguer\n numA = 1\n numB = 2\n numC = 3\n numD = 4\n numE = 5\n */\n\n // Part common to all cases\n // posA (and posB, pos C...) allows you to choose a position of the point so that it is not illegible (generated by the protractor or the orientation of a half-line)\n // This table has 12 entries, therefore 4 identical because depending on whether the rotation is in the trigo direction or not, for a given angle, the position of A in the table varies by 4.\n // The position of A could perhaps result in a function to prevent a point from touching a line.\n const tabPosition = ['above', 'above left', 'left', 'below left', 'below', 'below right', 'right', 'above right', 'above', 'above left', 'left', 'below left', 'left']\n if ([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12].indexOf(QuestionsDisponibles[i]) !== -1) posA = tabPosition[sensRot === -1 ? Math.trunc((180 + angleModulo(angB + angC + 22.5)) / 45) : 4 + Math.trunc((180 + angleModulo(angB + angC + 22.5)) / 45)]\n else if (QuestionsDisponibles[i] === 11) posA = tabPosition[sensRot === -1 ? Math.trunc((180 + angleModulo(angB + somAngle + 22.5)) / 45) : 4 + Math.trunc((180 + angleModulo(angB + somAngle + 22.5)) / 45)]\n else if ([13, 14].indexOf(QuestionsDisponibles[i]) !== -1) posA = tabPosition[sensRot === -1 ? Math.trunc((180 + angleModulo(angB + angC + (partageAngle - 1) * choixAngD * sensRot + 22.5)) / 45) : 4 + Math.trunc((180 + angleModulo(angB + angC + (partageAngle - 1) * choixAngD * sensRot + 22.5)) / 45)]\n\n A = point(0, 0, lettreDepuisChiffre(numA), posA)\n B1 = rotation(point(6, 0), A, angB)\n posB = angB > 135 ? 'above' : (angB > 45 ? 'right' : (angB > -45 ? 'below' : (angB > -135 ? 'left' : 'above')))\n B = pointSurSegment(A, B1, randint(50, 60) / 10, lettreDepuisChiffre(numB), posB)\n posC = angleModulo(angB + angC) > 135 ? 'above' : (angleModulo(angB + angC) > 45 ? 'right' : (angleModulo(angB + angC) > -45 ? 'below' : (angleModulo(angB + angC) > -135 ? 'left' : 'above')))\n C1 = rotation(B1, A, angC)\n C = pointSurSegment(A, C1, choixPartage === 0 ? randint(40, 55) / 10 : 6, lettreDepuisChiffre(numC), posC)\n posD = angleModulo(angB + angD) > 135 ? 'above' : (angleModulo(angB + angD) > 45 ? 'right' : (angleModulo(angB + angD) > -45 ? 'below' : (angleModulo(angB + angD) > -135 ? 'left' : 'above')))\n D1 = rotation(B1, A, angD)\n D = pointSurSegment(A, D1, choixPartage === 0 ? randint(50, 60) / 10 : 6, lettreDepuisChiffre(numD), posD)\n AB = segment(A, B1)\n AC = segment(A, C1)\n AD = segment(A, D1)\n E = A // Utile pour les cas 13 et 14\n // Creation in cases 6 to 10, of the different dividing angles of the right or flat angle and the associated segments.\n if ([6, 7, 8, 9, 10].indexOf(QuestionsDisponibles[i]) !== -1) {\n pointsPartage = [B1]\n for (let ee = 1; ee <= max(partageAngle, choixPartage); ee++) {\n pointsPartage[ee] = rotation(B1, A, sensRot * ee * arrondi(abs(angC) / partageAngle))\n objetsEnonce.push(codageAngle(pointsPartage[ee - 1], A, sensRot * arrondi(abs(angC) / partageAngle), 3, 'X'))\n objetsCorrection.push(codageAngle(pointsPartage[ee - 1], A, sensRot * arrondi(abs(angC) / partageAngle), 3, 'X'))\n if (ee !== partageAngle - choixPartage || ee !== partageAngle) { // On ne crée pas les angles pour C et D (car créé dans la partie commune)\n objetsEnonce.push(segment(A, pointsPartage[ee]))\n objetsCorrection.push(segment(A, pointsPartage[ee]))\n }\n }\n // Creation in case 11 of the different angles and associated segments\n } else if (QuestionsDisponibles[i] === 11) {\n pointsPartage = [B1]\n for (let ee = 1; ee <= 5; ee++) {\n pointsPartage[ee] = rotation(pointsPartage[ee - 1], A, sensRot * tabAngle[ee - 1])\n objetsEnonce.push(afficheMesureAngle(pointsPartage[ee - 1], A, pointsPartage[ee]))\n objetsCorrection.push(afficheMesureAngle(pointsPartage[ee - 1], A, pointsPartage[ee]))\n if (ee !== choixAngD + 1 & ee !== choixAngC + 1) { // On ne crée pas les angles pour D (car créé dans la partie commune)\n objetsEnonce.push(segment(A, pointsPartage[ee]))\n objetsCorrection.push(segment(A, pointsPartage[ee]))\n }\n }\n // Creation in cases 13 and 14 of the different angles and associated segments\n } else if ([13, 14].indexOf(QuestionsDisponibles[i]) !== -1) {\n pointsPartage = [D1]\n for (let ee = 1; ee <= partageAngle; ee++) {\n pointsPartage[ee] = rotation(pointsPartage[ee - 1], A, sensRot * choixAngD)\n objetsEnonce.push(codageAngle(pointsPartage[ee - 1], A, sensRot * choixAngD, 3, 'X'))\n objetsCorrection.push(codageAngle(pointsPartage[ee - 1], A, sensRot * choixAngD, 3, 'X'))\n if (ee !== 1) { // On ne crée pas les angles pour C (car créé dans la partie commune)\n objetsEnonce.push(segment(A, pointsPartage[ee]))\n objetsCorrection.push(segment(A, pointsPartage[ee]))\n }\n }\n E = pointSurSegment(A, pointsPartage[partageAngle], randint(50, 60) / 10, lettreDepuisChiffre(numE), posB)\n objetsEnonce.push(labelPoint(E), tracePoint(E))\n objetsCorrection.push(labelPoint(E), tracePoint(E))\n }\n\n // Part common to all cases\n objetsEnonce.push(AB, AC, AD, labelPoint(A, C, D), tracePoint(C, D))\n objetsCorrection.push(AB, AC, AD, labelPoint(A, B, C, D), tracePoint(B, C, D)) // On remplit les tableaux d'objets Mathalea2d\n\n // All special cases start here\n\n // Orange corner of all corrections '#f15929'\n if ([8, 13].indexOf(QuestionsDisponibles[i]) !== -1) {\n objetsCorrection.push(afficheMesureAngle(B, A, D, 'pink', 3, '', {\n ecart: 0.85,\n colorArc: 'pink',\n arcEpaisseur: 2,\n mesureEnGras: true\n }))\n } else if (QuestionsDisponibles[i] === 14) { // On remplit les tableaux d'objets Mathalea2d\n objetsCorrection.push(afficheMesureAngle(E, A, D, 'pink', 3, '', {\n ecart: 0.85,\n colorArc: 'pink',\n arcEpaisseur: 2,\n mesureEnGras: true\n }))\n } else { // On remplit les tableaux d'objets Mathalea2d\n objetsCorrection.push(afficheMesureAngle(C, A, D, 'pink', 3, '', {\n ecart: 0.85,\n colorArc: 'pink',\n arcEpaisseur: 2,\n mesureEnGras: true\n }))\n } // On remplit les tableaux d'objets Mathalea2d\n\n // Point B\n if (QuestionsDisponibles[i] !== 11) {\n objetsEnonce.push(labelPoint(B), tracePoint(B))\n }\n\n // Display of the known angle\n if ([1, 2, 3, 4, 5, 12, 14].indexOf(QuestionsDisponibles[i]) !== -1) {\n objetsEnonce.push(afficheMesureAngle(B, A, D, 'black', 3, '', { ecart: 0.75 }))\n }\n if ([1, 2, 3, 4, 5].indexOf(QuestionsDisponibles[i]) !== -1) {\n objetsCorrection.push(afficheMesureAngle(B, A, D, 'black', 3, '', { ecart: 0.75 }))\n } else if (QuestionsDisponibles[i] === 12) { // Affichage de l'angle connu dans une taille plus petite\n objetsCorrection.push(afficheMesureAngle(B, A, D, 'black', 1.5, '', { ecart: 0.75 }))\n }\n\n reponse = QuestionsDisponibles[i] === 14 ? choixAngD * partageAngle : [8, 13].indexOf(QuestionsDisponibles[i]) !== -1 ? -abs(angD) : QuestionsDisponibles[i] === 12 ? abs(abs(angC) + abs(angD)) : abs(abs(angC) - abs(angD)) // Correction issue du 6\n\n // Creation of the \"multiple\" angle in cases 6, 7, 9 and 10\n if ([6, 7, 9, 10].indexOf(QuestionsDisponibles[i]) !== -1) {\n objetsEnonce.push(codageAngle(D, A, sensRot * reponse, 3, '', 'pink', 0, 1, 'pink', 0.5))\n }\n\n // Creation of right angles and flat angles\n if ([1, 6, 7, 8, 12, 13, 14].indexOf(QuestionsDisponibles[i]) !== -1) { // Affichage de l'angle droit dans les cas 1, 6, 7 et 8\n objetsEnonce.push(codageAngleDroit(B, A, C, 'blue', 0.8, 2))\n objetsCorrection.push(codageAngleDroit(B, A, C, 'blue', 0.8, 2))\n } else if ([2, 3, 9, 10].indexOf(QuestionsDisponibles[i]) !== -1) { // Affichage de l'angle plat dans les cas 2, 3, 9 et 10\n if (QuestionsDisponibles[i] !== 3) {\n objetsEnonce.push(afficheMesureAngle(B, A, C, 'blue', 1.5, '', {\n ecart: 0.75,\n saillant: sensRot === -1,\n colorArc: 'blue',\n arcEpaisseur: 2\n }))\n } // On remplit les tableaux d'objets Mathalea2d\n objetsCorrection.push(afficheMesureAngle(B, A, C, 'blue', 1.5, '', {\n ecart: 0.75,\n saillant: sensRot === -1,\n colorArc: 'blue',\n arcEpaisseur: 2\n })) // On remplit les tableaux d'objets Mathalea2d\n }\n\n // Start of the instruction depending on the case\n if ([1, 2, 11, 12].indexOf(QuestionsDisponibles[i]) !== -1) texte += 'What'\n else if (QuestionsDisponibles[i] === 3) texte += `Knowing that the points $${lettreDepuisChiffre(numC)}$, $${lettreDepuisChiffre(numA)}$ and $${lettreDepuisChiffre(numB)}$ are aligned, what`\n else if ([4, 5].indexOf(QuestionsDisponibles[i]) !== -1) texte += `Knowing that the angle $\\\\widehat{${lettreDepuisChiffre(numC) + lettreDepuisChiffre(numA) + lettreDepuisChiffre(numB)}}$ measures ${abs(angC)}°, what`\n else if ([6, 7, 8, 9, 10].indexOf(QuestionsDisponibles[i]) !== -1) texte += `Knowing that the angle ${QuestionsDisponibles[i] < 9 ? 'right' : 'flat'} $\\\\widehat{${lettreDepuisChiffre(numC) + lettreDepuisChiffre(numA) + lettreDepuisChiffre(numB)}}$ is divided into ${partageAngle} equal angles, which`\n else if (QuestionsDisponibles[i] === 13) texte += `Knowing that the angle $\\\\widehat{${lettreDepuisChiffre(numE) + lettreDepuisChiffre(numA) + lettreDepuisChiffre(numD)}}$ measures ${abs(choixAngD * partageAngle)}° and is divided into ${partageAngle} equal angles, what`\n else if (QuestionsDisponibles[i] === 14) texte += `Knowing that the angle $\\\\widehat{${lettreDepuisChiffre(numE) + lettreDepuisChiffre(numA) + lettreDepuisChiffre(numD)}}$ is divided into ${partageAngle} equal angles, what`\n\n if (QuestionsDisponibles[i] !== 14) texte += ` is the measure, in degrees, of the angle $\\\\widehat{${lettreDepuisChiffre([8, 13].indexOf(QuestionsDisponibles[i]) !== -1 ? numB : numC) + lettreDepuisChiffre(numA) + lettreDepuisChiffre(numD)}}$?`\n else texte += ` is the measure, in degrees, of the angle $\\\\widehat{${lettreDepuisChiffre(numE) + lettreDepuisChiffre(numA) + lettreDepuisChiffre(numD)}}$?`\n\n texte += ajouteChampTexteMathLive(this, i, 'inline', { texteApres: ' °' })\n setReponse(this, i, abs(reponse), { digits: 3, decimals: 0, signe: false }) // abs indispensable à cause du cas 8\n\n // Correction depending on the case\n // Spaces (sp) are needed to counteract the space created by °.\n if (QuestionsDisponibles[i] < 6) texteCorr += `Knowing that the angle $\\\\widehat{${lettreDepuisChiffre(numC) + lettreDepuisChiffre(numA) + lettreDepuisChiffre(numB)}}$ measures $${abs(angC)}°$, then the angle $\\\\widehat{${lettreDepuisChiffre(numD) + lettreDepuisChiffre(numA) + lettreDepuisChiffre(numC)}}$ measures: $${abs(angC)}\\\\degree-${sp()}${abs(angD)}°=${sp()}${miseEnEvidence(reponse + '°')}$.<br>`\n else if ([6, 7, 8, 9, 10].indexOf(QuestionsDisponibles[i]) !== -1) {\n texteCorr += `Knowing that the angle ${QuestionsDisponibles[i] < 9 ? 'right' : 'flat'} $\\\\widehat{${lettreDepuisChiffre(numC) + lettreDepuisChiffre(numA) + lettreDepuisChiffre(numB)}}$ is divided into ${partageAngle} equal angles, then each of these equal angles measures $${arrondi(abs(angC) / partageAngle)}°$ (because $${abs(angC)}°\\\\div${sp()}${partageAngle}=${sp()}${arrondi(abs(angC) / partageAngle)}°$).<br>`\n if ([6, 9].indexOf(QuestionsDisponibles[i]) !== -1) {\n texteCorr += `The angle $\\\\widehat{${lettreDepuisChiffre(numD) + lettreDepuisChiffre(numA) + lettreDepuisChiffre(numC)}}$ measures: $${miseEnEvidence(reponse + '°')}$.<br>`\n } else if ([7, 8, 10].indexOf(QuestionsDisponibles[i]) !== -1) {\n texteCorr += `The angle $\\\\widehat{${lettreDepuisChiffre(numD) + lettreDepuisChiffre(numA) + lettreDepuisChiffre(QuestionsDisponibles[i] === 8 ? numB : numC)}}$ is composed of ${choixPartage} equal angles of ${arrondi(abs(angC) / partageAngle)}° each and therefore measures: $${choixPartage}\\\\times${arrondi(abs(angC) / partageAngle)}°=${sp()}${miseEnEvidence(abs(reponse) + '°')}$.<br>`\n }\n } else if (QuestionsDisponibles[i] === 11) {\n texteCorr += `The angle $\\\\widehat{${lettreDepuisChiffre(numD) + lettreDepuisChiffre(numA) + lettreDepuisChiffre(numC)}}$ measures: $`\n for (let ee = choixAngD + 1; ee < choixAngC; ee++) {\n texteCorr += `${tabAngle[ee]}°+${sp()}`\n }\n texteCorr += `${tabAngle[choixAngC]}°`\n texteCorr += `=${sp()}${miseEnEvidence(abs(reponse) + '°')}$.<br>`\n } else if (QuestionsDisponibles[i] === 12) {\n texteCorr += `The angle $\\\\widehat{${lettreDepuisChiffre(numD) + lettreDepuisChiffre(numA) + lettreDepuisChiffre(numC)}}$ measures: $90°+${sp()}${abs(angD)}°=${sp()}${miseEnEvidence(abs(reponse) + '°')}$.<br>`\n } else if (QuestionsDisponibles[i] === 13) {\n texteCorr += `Knowing that the angle $\\\\widehat{${lettreDepuisChiffre(numD) + lettreDepuisChiffre(numA) + lettreDepuisChiffre(numE)}}$ is divided into ${partageAngle} equal angles, then each of these equal angles measures $${choixAngD}°$ (because $${arrondi(choixAngD * partageAngle)}°\\\\div${sp()}${partageAngle}=${sp()}${choixAngD}°$).<br>`\n texteCorr += `Knowing that the angle $\\\\widehat{${lettreDepuisChiffre(numC) + lettreDepuisChiffre(numA) + lettreDepuisChiffre(numB)}}$ measures $${abs(angC)}°$, then the angle $\\\\widehat{${lettreDepuisChiffre(numD) + lettreDepuisChiffre(numA) + lettreDepuisChiffre(numC)}}$ measures: $${abs(angC)}°-${sp()}${abs(choixAngD)}°=${sp()}${miseEnEvidence(abs(reponse) + '°')}$.<br>`\n } else if (QuestionsDisponibles[i] === 14) {\n texteCorr += `Knowing that the angle $\\\\widehat{${lettreDepuisChiffre(numC) + lettreDepuisChiffre(numA) + lettreDepuisChiffre(numB)}}$ measures $${abs(angC)}°$, then the angle $\\\\widehat{${lettreDepuisChiffre(numD) + lettreDepuisChiffre(numA) + lettreDepuisChiffre(numC)}}$ measures: $${abs(angC)}°-${sp()}${abs(angD)}°=${sp()}${choixAngD}°$.<br>`\n texteCorr += `Knowing that the angle $\\\\widehat{${lettreDepuisChiffre(numD) + lettreDepuisChiffre(numA) + lettreDepuisChiffre(numE)}}$ is divided into ${partageAngle} equal angles of $${choixAngD}°$ and therefore measures: $${partageAngle}\\\\times${sp()}${abs(choixAngD)}°=${sp()}${miseEnEvidence(abs(reponse) + '°')}$.<br>`\n }\n\n // Mathalea2d window parameters for the statement\n // paramsStatement = { xmin: -3 + min(A.x, B1.x, C1.x, D1.x, E.x), ymin: -3 + min(A.y, B1.y, C1.y, D1.y, E.y), xmax: 3 + max(A.x, B1.x, C1.x, D1.x, E.x), ymax: 3 + max(A.y, B1.y, C1.y, D1.y, E.y), pixelsParCm : 20, scale: 1, release: false }\n paramsEnonce = Object.assign({\n pixelsParCm: 20,\n scale: context.isHtml ? 1 : 0.5,\n mainlevee: false\n }, fixeBordures(objetsEnonce))\n // We add to the text of the statement, the freehand figure and the figure of the statement.\n texte += '<br>' + mathalea2d(paramsEnonce, objetsEnonce)\n // We add to the text of the correction, the figure of the correction\n texteCorr += mathalea2d(paramsEnonce, objetsCorrection)\n\n this.listeQuestions.push(texte)\n this.listeCorrections.push(texteCorr)\n listeQuestionsToContenu(this)\n }\n }\n this.besoinFormulaireTexte = [\n 'Type of questions',\n `Nombres séparés par des tirets :\n 1 : Complément d'un angle droit\n 2 : Complément d'un angle plat avec affichage angle plat\n 3 : Complément d'un angle plat avec précision des points alignés\n 4 : Complément d'un angle aigu\n 5 : Complément d'un angle obtus\n 6 : Diviseur d'un angle droit\n 7 : Multiple (inférieur à 90) d'a divisor of'angle droit\n 8 : Multiple (supérieur à 90) d'a divisor of'angle droit\n 9 : Diviseur d'un angle plat\n 10 : Multiple d'a divisor of'angle plat\n 11 : Somme d'angles aigus (2 ou 3 selon le hasard)\n 12 : Somme d'a right angle and'un angle aigu\n 13 : Angle issu d'a division then'une différence\n 14 : Angle issu d'a difference then'une multiplication\n 15 : Mélange `\n ]\n}\n"],"names":["titre","amcReady","amcType","interactifType","interactifReady","dateDePublication","dateDeModifImportante","uuid","ref","CalculerUnAngle","Exercice","QuestionsDisponibles","gestionnaireFormulaireTexte","partagesPossiblesAngle90","combinaisonListes","i","QCas6","somAngle","choixAngD","choixAngC","numA","numB","numC","numD","numE","texte","texteCorr","tabAngle","partageAngle","pointsPartage","choixPartage","reponse","A","B","B1","C","C1","D","D1","E","AB","AC","AD","sensRot","posA","posB","posC","posD","angB","angC","angD","paramsEnonce","objetsEnonce","objetsCorrection","randint","choice","arrondi","ee","min","abs","tabPosition","angleModulo","point","lettreDepuisChiffre","rotation","pointSurSegment","segment","max","codageAngle","afficheMesureAngle","labelPoint","tracePoint","codageAngleDroit","ajouteChampTexteMathLive","setReponse","sp","miseEnEvidence","context","fixeBordures","mathalea2d","listeQuestionsToContenu"],"mappings":"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"}