File: /home/mmtprep/public_html/mathzen.mmtprep.com/assets/5G13-aFAhdTnN.js.map
{"version":3,"file":"5G13-aFAhdTnN.js","sources":["../../src/exercices/5e/5G13.js"],"sourcesContent":["import { angle } from '../../lib/2d/angles.js'\nimport { afficheLongueurSegment, afficheMesureAngle } from '../../lib/2d/codages.js'\nimport { distancePointDroite, droite, droiteAvecNomLatex, droiteParPointEtParallele, positionLabelDroite } from '../../lib/2d/droites.js'\nimport { point, pointAdistance, tracePoint } from '../../lib/2d/points.js'\nimport { polygoneAvecNom } from '../../lib/2d/polygones.js'\nimport { longueur, segment, vecteur } from '../../lib/2d/segmentsVecteurs.js'\nimport { labelPoint, texteParPoint } from '../../lib/2d/textes.js'\nimport { rotation, symetrieAxiale, translation, translation2Points } from '../../lib/2d/transformations.js'\nimport { triangle2points2longueurs } from '../../lib/2d/triangle.js'\nimport { combinaisonListes } from '../../lib/outils/arrayOutils'\nimport { choisitLettresDifferentes } from '../../lib/outils/aleatoires'\nimport { texNombre } from '../../lib/outils/texNombre.js'\nimport Exercice from '../Exercice.js'\nimport { fixeBordures, mathalea2d } from '../../modules/2dGeneralites.js'\nimport { listeQuestionsToContenu, randint } from '../../modules/outils.js'\nimport { context } from '../../modules/context.js'\nexport const titre = 'Use the conservation properties of parallelism, lengths and angles'\n\nexport const dateDePublication = '05/08/2021'\nexport const dateDeModifImportante = '06/03/2023'\n\n/**\n * Compléter le symétrique d'une figure en utilisant les propriétés de conservation de la symétrie et de la translation et en justifiant ses démarches\n * @author Guillaume Valmont\n * Ajout de la translation par Guillaume Valmont le 16/05/2022\n * Les noms des points sont maintenant aléatoires par Guillaume Valmont le 06/03/2023\n*/\nexport const uuid = '07d1a'\nexport const ref = '5G13'\nexport default function ConservationTransformation () {\n Exercice.call(this)\n this.consigne = ''\n this.nbQuestions = 2\n\n this.besoinFormulaireNumerique = ['Transformations', 4, '1: Axial symmetry\\n2: Central symmetry\\n3: Axial or central symmetry\\n4: Translation'] // Je n'don't add a new mix option, it would be nice to'ajouter la rotation avant.\n this.besoinFormulaire2Numerique = ['Retained properties', 3, '1: Parallelism\\n2: Lengths and Angles\\n3: Mixture']\n this.sup = 1\n this.sup2 = 3\n this.nbCols = 1\n this.nbColsCorr = 1\n\n this.nouvelleVersion = function () {\n context.fenetreMathalea2d = [-6, -6, 6, 6]\n this.listeQuestions = []\n this.listeCorrections = []\n this.autoCorrection = []\n this.sup = Number(this.sup)\n this.sup2 = Number(this.sup2)\n let typesDeTransformationsDisponibles\n switch (this.sup) {\n case 1:\n typesDeTransformationsDisponibles = ['symmetryAxial']\n break\n case 2:\n typesDeTransformationsDisponibles = ['symmetryCentral']\n break\n case 3:\n typesDeTransformationsDisponibles = ['symmetryAxial', 'symmetryCentral']\n break\n case 4:\n typesDeTransformationsDisponibles = ['translation']\n break\n }\n const listeTypeDeTransformations = combinaisonListes(typesDeTransformationsDisponibles, this.nbQuestions)\n let typesDeQuestionsDisponibles\n switch (this.sup2) {\n case 1:\n typesDeQuestionsDisponibles = ['parallelism']\n break\n case 2:\n typesDeQuestionsDisponibles = ['length and angle']\n break\n case 3:\n typesDeQuestionsDisponibles = ['parallelism', 'length and angle']\n break\n }\n const listeTypeDeQuestions = combinaisonListes(typesDeQuestionsDisponibles, this.nbQuestions)\n let objetsEnonceEtCorr, objetsEnonceOnly, objetsCorrectionOnly, paramsEnonce\n for (let i = 0, texte, texteCorr, figure, transformation, enonceTransformation, d, d1, A, B, C, D, E, imageA, imageB, imageC, figureRetournee, O, poly, imPoly, cpt = 0; i < this.nbQuestions && cpt < 50;) {\n objetsEnonceOnly = []\n objetsCorrectionOnly = []\n objetsEnonceEtCorr = []\n const lettres = choisitLettresDifferentes(5, 'O')\n A = point(0, 0, lettres[0], 'below')\n B = pointAdistance(A, randint(30, 60) / 10, randint(0, 45), lettres[1])\n C = triangle2points2longueurs(A, B, randint(40, 60) / 10, randint(30, 50) / 10).listePoints[2]\n C.nom = lettres[2]\n D = point(0, 0)\n E = point(0, 0)\n d1 = droiteParPointEtParallele(C, droite(A, B))\n poly = polygoneAvecNom(A, B, C) // pour bien placer les labels\n objetsEnonceEtCorr.push(segment(A, B), afficheLongueurSegment(B, A), poly[1])\n // We prepare the transformation\n switch (listeTypeDeTransformations[i]) {\n case 'symmetryAxial':\n transformation = 'axial symmetry'\n enonceTransformation = 'by the axis symmetry $(d)$'\n d = droite(translation(A, vecteur(-randint(30, 40) / 10, 0)), translation(C, vecteur(-randint(30, 40) / 10, 0)))\n d.angleAvecHorizontale = d.angleAvecHorizontale + randint(-10, 10)\n objetsEnonceEtCorr.push(d)\n imageA = symetrieAxiale(A, d, `${A.nom}'`)\n imageB = symetrieAxiale(B, d, `${B.nom}'`)\n imageC = symetrieAxiale(C, d, `${C.nom}'`)\n if (listeTypeDeQuestions[i] === 'parallelism') {\n objetsCorrectionOnly.push(...droiteAvecNomLatex(droite(symetrieAxiale(point(d1.x1, d1.y1), d), symetrieAxiale(point(d1.x2, d1.y2), d), '', '#f15929'), '$(d_1\\')$'))\n }\n figureRetournee = false\n break\n case 'symmetryCentral':\n transformation = 'central symmetry'\n enonceTransformation = 'by the symmetry of center $O$'\n do {\n O = point(randint(25, 45) / 10, randint(35, 65) / 10, 'O')\n imageA = rotation(A, O, 180, `${A.nom}'`)\n imageB = rotation(B, O, 180, `${B.nom}'`)\n imageC = rotation(C, O, 180, `${C.nom}'`)\n } while (distancePointDroite(O, d1) < 1 || longueur(O, B) < 1 || Math.abs(Math.round(angle(B, A, imageC)) - 90) > 85)\n objetsEnonceEtCorr.push(tracePoint(O), labelPoint(O))\n if (listeTypeDeQuestions[i] === 'parallelism') {\n objetsCorrectionOnly.push(droite(rotation(point(d1.x1, d1.y1), O, 180), rotation(point(d1.x2, d1.y2), O, 180), '#f15929'))\n }\n figureRetournee = true\n break\n case 'translation':\n transformation = 'translation'\n D = point(B.x + 1, B.y + 8 + randint(-10, 10) / 10, lettres[3])\n E = point(B.x + 8, B.y + 8 + randint(-20, 20) / 10, lettres[4])\n enonceTransformation = `by the translation which transforms $${D.nom}$ into $${E.nom}$`\n imageA = translation2Points(A, D, E, `${A.nom}'`)\n imageB = translation2Points(B, D, E, `${B.nom}'`)\n imageC = translation2Points(C, D, E, `${C.nom}'`)\n objetsEnonceEtCorr.push(vecteur(D, E).representant(D), tracePoint(D, E), labelPoint(D, E))\n if (listeTypeDeQuestions[i] === 'parallelism') {\n objetsCorrectionOnly.push(droite(translation2Points(point(d1.x1, d1.y1), D, E), translation2Points(point(d1.x2, d1.y2), D, E), '#f15929'))\n }\n break\n }\n switch (listeTypeDeQuestions[i]) {\n case 'parallelism':\n objetsEnonceEtCorr.push(tracePoint(A, B, C))\n objetsEnonceEtCorr.push(d1)\n texte = `The points $${A.nom}'$, $${B.nom}'$ and $${C.nom}'$ are the respective images of $${A.nom}$, $${B.nom}$ and $${C.nom}$ ${enonceTransformation}.<br>`\n texte += `The line $(d_1)$ is parallel to the segment [$${A.nom + B.nom}$] and passes through the point $${C.nom}$.<br>`\n figure = 'from the right $(d_1)$'\n texteCorr = texte\n texteCorr += `However, the ${transformation} preserves parallelism.<br>`\n texteCorr += `So the line $(d_1')$ is parallel to the segment [$${A.nom}'${B.nom}'$] and passes through the point $${C.nom}'$.<br>`\n break\n case 'length and angle':\n objetsEnonceEtCorr.push(segment(A, C), segment(B, C))\n objetsEnonceEtCorr.push(afficheLongueurSegment(C, B))\n objetsEnonceEtCorr.push(afficheMesureAngle(A, B, C, 'black', 1, Math.round(angle(A, B, C)) + '°'))\n texte = `The points $${A.nom}'$ and $${B.nom}'$ are the respective images of $${A.nom}$ and $${B.nom}$ ${enonceTransformation}.<br>`\n texte += `The angle $\\\\widehat{${A.nom + B.nom + C.nom}}$ measures $${texNombre(Math.round(angle(A, B, C)))}$ °.<br>`\n figure = `of the triangle $${A.nom + B.nom + C.nom}$`\n texteCorr = texte\n texteCorr += `However, ${transformation} preserves the angles.<br>`\n texteCorr += `So the angle $\\\\widehat{${A.nom}'${B.nom}'${C.nom}'}$ also measures $${texNombre(Math.round(angle(A, B, C)))}$ °.<br><br>`\n texteCorr += `The [$${B.nom + C.nom}$] segment measures $${texNombre(longueur(B, C, 1))}$ cm.<br>`\n texteCorr += `However, the ${transformation} preserves the lengths.<br>`\n texteCorr += `So the segment [$${B.nom}'${C.nom}'$] also measures $${texNombre(longueur(B, C, 1))}$ cm.<br>`\n break\n }\n texte += `Complete the ${figure} ${enonceTransformation} image using the conservation properties of the ${transformation} and justifying your actions.<br>`\n // We apply the transformation\n imPoly = polygoneAvecNom(imageA, imageB, imageC)\n const imPolyEnonce = polygoneAvecNom(imageA, imageB)\n objetsCorrectionOnly.push(imPoly[1])\n objetsEnonceEtCorr.push(segment(imageA, imageB))\n objetsEnonceOnly.push(tracePoint(imageA, imageB), imPolyEnonce[1])\n if (figureRetournee) {\n objetsEnonceOnly.push(afficheLongueurSegment(imageA, imageB))\n objetsCorrectionOnly.push(afficheLongueurSegment(imageB, imageA))\n } else {\n objetsEnonceOnly.push(afficheLongueurSegment(imageB, imageA))\n objetsCorrectionOnly.push(afficheLongueurSegment(imageA, imageB))\n }\n if (listeTypeDeQuestions[i] === 'length and angle') {\n objetsCorrectionOnly.push(segment(imageA, imageC, '#f15929'), segment(imageB, imageC, '#f15929'))\n objetsCorrectionOnly.push(afficheMesureAngle(imageA, imageB, imageC, '#f15929', 1, Math.round(angle(A, B, C)) + '°', { colorArc: '#f15929' }))\n if (figureRetournee) {\n objetsCorrectionOnly.push(afficheLongueurSegment(imageC, imageB, '#f15929'))\n } else {\n objetsCorrectionOnly.push(afficheLongueurSegment(imageB, imageC, '#f15929'))\n }\n } else if (listeTypeDeQuestions[i] === 'parallelism') {\n objetsEnonceEtCorr.push(tracePoint(imageC))\n objetsEnonceOnly.push(labelPoint(imageC))\n // objectsCorrectionOnly.push(tracePoint(imageA, imageB))\n }\n const xmin = Math.min(A.x, B.x, C.x, D.x, E.x, imageA.x, imageB.x, imageC.x) - 2\n const xmax = Math.max(A.x, B.x, C.x, D.x, E.x, imageA.x, imageB.x, imageC.x) + 2\n const ymin = Math.min(A.y, B.y, C.y, D.x, E.x, imageA.y, imageB.y, imageC.y) - 2\n const ymax = Math.max(A.y, B.y, C.y, D.x, E.x, imageA.y, imageB.y, imageC.y) + 2\n // Mathalea2d window parameters for normal statement\n paramsEnonce = { xmin, ymin, xmax, ymax, pixelsParCm: 20, scale: 1 }\n // We add the names of the lines if necessary\n if (listeTypeDeTransformations[i] === 'symmetryAxial') objetsEnonceEtCorr.push(texteParPoint('$(d)$', positionLabelDroite(d, paramsEnonce), 'medium', 'black', 1, 'middle', true))\n if (listeTypeDeQuestions[i] === 'parallelism') objetsEnonceEtCorr.push(texteParPoint('$(d_1)$', positionLabelDroite(d1, paramsEnonce), 'medium', 'black', 1, 'middle', true))\n // We add to the text of the statement, the freehand figure and the figure of the statement.\n texte += mathalea2d(Object.assign({}, fixeBordures([objetsEnonceOnly, objetsEnonceEtCorr])), objetsEnonceOnly, objetsEnonceEtCorr)\n\n // We add to the text of the correction, the figure of the correction\n texteCorr += mathalea2d(Object.assign({}, fixeBordures([objetsCorrectionOnly, objetsEnonceEtCorr])), objetsCorrectionOnly, objetsEnonceEtCorr)\n if (this.questionJamaisPosee(i, texte)) { // <- laisser le i et ajouter toutes les variables qui rendent les exercices différents (par exemple a, b, c et d)\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","uuid","ref","ConservationTransformation","Exercice","context","typesDeTransformationsDisponibles","listeTypeDeTransformations","combinaisonListes","typesDeQuestionsDisponibles","listeTypeDeQuestions","objetsEnonceEtCorr","objetsEnonceOnly","objetsCorrectionOnly","paramsEnonce","i","texte","texteCorr","figure","transformation","enonceTransformation","d","d1","A","B","C","D","E","imageA","imageB","imageC","figureRetournee","O","poly","imPoly","cpt","lettres","choisitLettresDifferentes","point","pointAdistance","randint","triangle2points2longueurs","droiteParPointEtParallele","droite","polygoneAvecNom","segment","afficheLongueurSegment","translation","vecteur","symetrieAxiale","droiteAvecNomLatex","rotation","distancePointDroite","longueur","angle","tracePoint","labelPoint","translation2Points","afficheMesureAngle","texNombre","imPolyEnonce","xmin","xmax","ymin","ymax","texteParPoint","positionLabelDroite","mathalea2d","fixeBordures","listeQuestionsToContenu"],"mappings":"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"}