HEX
Server: Apache
System: Linux vps.mmtprep.com 4.18.0-477.21.1.el8_8.x86_64 #1 SMP Thu Aug 10 13:51:50 EDT 2023 x86_64
User: mmtprep (1001)
PHP: 8.1.34
Disabled: exec,passthru,shell_exec,system
Upload Files
File: /home/mmtprep/public_html/mathzen.mmtprep.com/assets/_Transformations-XkjJqMTJ.js.map
{"version":3,"file":"_Transformations-XkjJqMTJ.js","sources":["../../src/exercices/6e/_Transformations.js"],"sourcesContent":["import { codageAngleDroit } from '../../lib/2d/angles.js'\nimport { afficheMesureAngle, codageSegments } from '../../lib/2d/codages.js'\nimport { droiteHorizontaleParPoint, droiteParPointEtPente, droiteVerticaleParPoint } from '../../lib/2d/droites.js'\nimport { milieu, point, pointSurDroite, tracePoint } from '../../lib/2d/points.js'\nimport { segment, vecteur } from '../../lib/2d/segmentsVecteurs.js'\nimport { labelLatexPoint, latexParCoordonnees, texteParPositionEchelle } from '../../lib/2d/textes.js'\nimport { translation } from '../../lib/2d/transformations.js'\nimport {\n  choice,\n  combinaisonListes,\n  compteOccurences,\n  enleveElementBis,\n  enleveElementNo\n} from '../../lib/outils/arrayOutils'\nimport { miseEnCouleur, miseEnEvidence } from '../../lib/outils/embellissements'\nimport { texFractionReduite } from '../../lib/outils/deprecatedFractions.js'\nimport { arrondi, rangeMinMax } from '../../lib/outils/nombres.js'\nimport { lettreDepuisChiffre, numAlpha } from '../../lib/outils/outilString.js'\nimport { texNombre } from '../../lib/outils/texNombre.js'\nimport { imagePointParTransformation } from '../../modules/imagePointParTransformation.js'\nimport Exercice from '../Exercice.js'\nimport { assombrirOuEclaircir, colorToLatexOrHTML, mathalea2d } from '../../modules/2dGeneralites.js'\nimport { context } from '../../modules/context.js'\nimport { egal, gestionnaireFormulaireTexte, listeQuestionsToContenu, randint } from '../../modules/outils.js'\nimport { ajouteChampTexteMathLive } from '../../lib/interactif/questionMathLive.js'\nimport { setReponse } from '../../lib/interactif/gestionInteractif.js'\n\nexport const interactifReady = true\nexport const interactifType = 'mathLive'\nexport const amcReady = true\nexport const amcType = 'AMCHybride'\n\n/**\n * Transformations : trouver un point numéroté par une des transformations du plan. Fonction générale utilisée sur tous les niveaux\n * @author Jean-Claude Lhote\n *\n * Relecture : Novembre 2021 par EE\n */\nexport default function Transformations () {\n  Exercice.call(this) // Héritage de la classe Exercice()\n  this.can = false\n  this.consigne = ''\n  this.nbQuestions = 1\n  this.nbCols = 1\n  this.nbColsCorr = 1\n  this.sup = 1\n\n  this.nouvelleVersion = function () {\n    let nbImages\n\n    const choixTransformation = gestionnaireFormulaireTexte({\n      max: 10,\n      defaut: randint(1, 10),\n      nbQuestions: 3,\n      saisie: this.sup\n    })\n\n    if (this.can) {\n      nbImages = 1\n    } else nbImages = 3\n\n    const O = point(0, 0, 'O', 'above right')\n    const d1 = droiteParPointEtPente(O, 1)\n    const d3 = droiteHorizontaleParPoint(O)\n    const d2 = droiteParPointEtPente(O, -1)\n    const d4 = droiteVerticaleParPoint(O)\n    d1.isVisible = true\n    d2.isVisible = true\n    d3.isVisible = true\n    d4.isVisible = true\n    d1.epaisseur = 2\n    d2.epaisseur = 2\n    d3.epaisseur = 2\n    d4.epaisseur = 2\n    d1.opacite = 0.5\n    d2.opacite = 0.5\n    d3.opacite = 0.5\n    d4.opacite = 0.5\n    const couleurs = ['brown', 'green', 'blue']\n    this.listeQuestions = []\n    this.listeCorrections = [] // Liste de questions corrigées\n    const xO = 4\n    const yO = 4\n    const xuPossibles = combinaisonListes(rangeMinMax(-3, 3), 1)\n    const yuPossibles = combinaisonListes(rangeMinMax(-3, 3), 1)\n\n    for (let ee = 0, texte, texteCorr, xu, yu, pointMLettre, pointM, pointN, numPointN, croix, aEviter, mauvaisAntecedents, longueurBoucle, objetsEnonce, objetsCorrection, cpt = 0; ee < this.nbQuestions && cpt < 50;) {\n      texte = ''\n      texteCorr = ''\n      objetsEnonce = []\n      objetsCorrection = []\n      const antecedents = [0, 0, 0]\n      const images = [0, 0, 0]\n      const k = [1, 1, 1]\n      const punto = [[]]\n      const n = [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1]\n      const M = []\n      const N = []\n      // Below, we avoid the point $O$ as a point and as a point name.\n      const nomPointsTranslationDejaUtilises = [15]\n      const pointsDejaUtilises = [44]\n      aEviter = [44]\n      mauvaisAntecedents = []\n      for (let i = 0; i < 10; i++) {\n        for (let j = 0; j < 10; j++) {\n          croix = tracePoint(point(j - 4, i - 4), 'gray')\n          croix.taille = 2\n          croix.style = 'x'\n          croix.opacite = 1\n          objetsEnonce.push(croix)\n          objetsCorrection.push(tracePoint(point(j - 4, i - 4), assombrirOuEclaircir('gray', 50)))\n          objetsEnonce.push(texteParPositionEchelle(Number(j + 10 * i).toString(), j - 4.2, i - 4.2, 'medium', 'black', 0.8, 'middle', false, 0.8))\n          objetsCorrection.push(texteParPositionEchelle(Number(j + 10 * i).toString(), j - 4.2, i - 4.2, 'medium', assombrirOuEclaircir('gray', 50), 0.8, 'middle', false, 0.8))\n        }\n      }\n      let puntoReseau // k : rapports d'homothéties, (xO,yO) point de rencontre des droites et centre, les composantes du vecteur de translation : (xu,yu)\n      for (let j = 0; j < nbImages; j++) {\n        xu = xuPossibles[j]\n        if (xu === 0) {\n          if (yuPossibles[j] === 0) {\n            enleveElementNo(yuPossibles, j)\n          }\n        }\n        yu = yuPossibles[j]\n        if (choixTransformation[j] === 10) {\n          k[j] = choice([2, 3, 4]) * randint(-1, 1, [0]) // rapport d'homothétie < 1 ( 0.5 ou 0.25 )\n        } else if (choixTransformation[j] === 9) {\n          k[j] = choice([1, 1.5, 2, 2.5, 3, 4, 5]) * randint(-1, 1, [0]) // rapport d'homothétie >=1 (1,2 ou 3)\n        }\n        mauvaisAntecedents = []\n        antecedents[j] = randint(0, 99, pointsDejaUtilises)\n        punto[j] = imagePointParTransformation(\n          choixTransformation[j],\n          [antecedents[j] % 10, Math.floor(antecedents[j] / 10)],\n          [xO, yO],\n          [xu, yu],\n          k[j]\n        )\n        images[j] = punto[j][0] + punto[j][1] * 10\n        // Limitation of invariant points\n        if (choixTransformation[j] === 1 && images[j] % 11 === 0) {\n          punto[j][0] = -1\n        } // Point impossible sur (d1) pour sa symétrie\n        if (choixTransformation[j] === 3 && Math.floor(images[j] / 10 === 4)) {\n          punto[j][0] = -1\n        } // Point impossible sur (d3) pour sa symétrie\n        if (choixTransformation[j] === 4 && images[j] % 10 === 4) {\n          punto[j][0] = -1\n        } // Point impossible sur (d4) pour sa symétrie\n\n        // to avoid points outside the nails in scale with ratio 1/k\n        puntoReseau = egal(punto[j][0], Math.floor(punto[j][0]), 0.001) &&\n                    egal(punto[j][1], Math.floor(punto[j][1]), 0.001)\n        // We check that the image is indeed a point in the network, otherwise, we change.\n        mauvaisAntecedents = combinaisonListes(pointsDejaUtilises, 1)\n        while (punto[j][0] < 0 ||\n                punto[j][0] > 9 ||\n                punto[j][1] < 0 ||\n                punto[j][1] > 9 ||\n                puntoReseau === false) {\n          mauvaisAntecedents.push(antecedents[j])\n          antecedents[j] = randint(0, 99, mauvaisAntecedents)\n          punto[j] = imagePointParTransformation(\n            choixTransformation[j],\n            [antecedents[j] % 10, Math.floor(antecedents[j] / 10)],\n            [xO, yO],\n            [xu, yu],\n            k[j]\n          )\n          images[j] = arrondi(punto[j][0] + punto[j][1] * 10, 0)\n          // Limitation of invariant points\n          if (choixTransformation[j] === 1 && images[j] % 11 === 0) {\n            punto[j][0] = -1\n          } // Point impossible sur (d1) pour sa symétrie\n          if (choixTransformation[j] === 3 && Math.floor(images[j] / 10 === 4)) {\n            punto[j][0] = -1\n          } // Point impossible sur (d3) pour sa symétrie\n          if (choixTransformation[j] === 4 && images[j] % 10 === 4) {\n            punto[j][0] = -1\n          } // Point impossible sur  (d4) pour sa symétrie\n\n          // to avoid points outside the nails in scale with ratio 1/k\n          if (egal(punto[j][0], Math.floor(punto[j][0]), 0.001) &&\n                        egal(punto[j][1], Math.floor(punto[j][1]), 0.001)) {\n            puntoReseau = true\n          } else {\n            puntoReseau = false\n          }\n        }\n        N[j] = point(arrondi(punto[j][0] - 4, 0), arrondi(punto[j][1] - 4, 0), 'above left')\n        M[j] = point(antecedents[j] % 10 - 4, Math.floor(antecedents[j] / 10 - 4), 'above left')\n        pointsDejaUtilises.push(antecedents[j])\n        pointsDejaUtilises.push(arrondi(punto[j][0] + 10 * punto[j][1], 0))\n      }\n      // n[i] is an array containing -1 for the transformation of index i if it is not used, and containing the number of the point concerned if the transformation i is used for this point.\n      // I use it to show the correction linked to the point and the transformation.\n      for (let j = 0; j < nbImages; j++) {\n        n[choixTransformation[j] - 1] = antecedents[j]\n      }\n      const questionsAMC = [0, 0, 0]\n\n      for (let i = 0, labO, labM, labN, traceAnt, traceIm, traceO, traceM, traceN; i < nbImages; i++) {\n        xu = xuPossibles[i]\n        yu = yuPossibles[i]\n        traceAnt = tracePoint(M[i])\n        traceIm = tracePoint(N[i])\n        traceAnt.epaisseur = 2\n        traceAnt.opacite = 1\n        traceIm.opacite = 1\n        traceIm.epaisseur = 2\n        traceIm.color = colorToLatexOrHTML('#f15929')\n        traceO = tracePoint(O)\n        traceO.epaisseur = 2\n        traceO.opacite = 1\n        labO = labelLatexPoint({ points: [O], color: 'red', taille: 10 })\n        labO.taille = 12\n        switch (choixTransformation[i]) {\n          case 1:\n            d1.color = colorToLatexOrHTML(context.isHtml ? couleurs[i] : 'black')\n            questionsAMC[i] = numAlpha(i) +\n                            ` Give the number of the symmetric of the point $${antecedents[i]}$ with respect to the line $(d_1)$.`\n            texte +=\n                            (i === 0 ? numAlpha(i) : '<br>' + numAlpha(i)) +\n                            ` Give the number of the symmetric of the point $${antecedents[i]}$ with respect to the line $${miseEnCouleur('(d_1)', d1.color)}$.<br>`\n            texteCorr +=\n                            (i === 0 ? numAlpha(i) : '<br>' + numAlpha(i)) +\n                            ` The symmetric of the point $${antecedents[i]}$ with respect to $${miseEnCouleur('(d_1)', d1.color)}$ is the point $${miseEnEvidence(images[i])}$.<br>`\n            objetsEnonce.push(d1, traceAnt, latexParCoordonnees('(d_1)', 4.8, 4.2, d1.color, 20, 10, '', 12))\n\n            objetsCorrection.push(d1, traceAnt, traceIm, latexParCoordonnees('(d_1)', 4.8, 4.2, d1.color, 20, 10, '', 12),\n              segment(M[i], N[i], d1.color), codageSegments('O', d1.color, M[i], milieu(M[i], N[i]), milieu(M[i], N[i]), N[i]),\n              codageAngleDroit(M[i], milieu(M[i], N[i]), pointSurDroite(d1, 1), d1.color, 0.4, 1))\n            objetsCorrection.push(texteParPositionEchelle(Number(punto[i][0] + 10 * punto[i][1]).toString(), punto[i][0] - 4.2, punto[i][1] - 4.2, 'medium', '#f15929', 1, 'middle', false, 0.8))\n            objetsCorrection.push(texteParPositionEchelle(antecedents[i].toString(), antecedents[i] % 10 - 4.2, Math.floor(antecedents[i] / 10) - 4.2, 'medium', d1.color, 1, 'middle', false, 0.8))\n            break\n\n          case 2:\n            d2.color = colorToLatexOrHTML(context.isHtml ? couleurs[i] : 'black')\n            questionsAMC[i] = numAlpha(i) +\n                            ` Give the number of the symmetric of the point $${antecedents[i]}$ with respect to the line $(d_2)$.`\n            texte +=\n                            (i === 0 ? numAlpha(i) : '<br>' + numAlpha(i)) +\n                            ` Give the number of the symmetric of the point $${antecedents[i]}$ with respect to the line $${miseEnCouleur('(d_2)', d2.color)}$.<br>`\n            texteCorr +=\n                            (i === 0 ? numAlpha(i) : '<br>' + numAlpha(i)) +\n                            ` The symmetric of the point $${antecedents[i]}$ with respect to $${miseEnCouleur('(d_2)', d2.color)}$ is the point $${miseEnEvidence(images[i])}$.<br>`\n            objetsEnonce.push(d2, traceAnt, latexParCoordonnees('(d_2)', 4.3, -3.7, d2.color, 20, 10, '', 12))\n            objetsCorrection.push(d2, traceAnt, traceIm, latexParCoordonnees('(d_2)', 4.3, -3.7, d2.color, 15, 10, '', 12),\n              segment(M[i], N[i], d2.color), codageSegments('||', d2.color, M[i], milieu(M[i], N[i]), milieu(M[i], N[i]), N[i]),\n              codageAngleDroit(M[i], milieu(M[i], N[i]), pointSurDroite(d2, 1), d2.color, 0.4, 1))\n            objetsCorrection.push(texteParPositionEchelle(Number(punto[i][0] + 10 * punto[i][1]).toString(), punto[i][0] - 4.2, punto[i][1] - 4.2, 'medium', '#f15929', 1, 'middle', false, 0.8))\n            objetsCorrection.push(texteParPositionEchelle(antecedents[i].toString(), antecedents[i] % 10 - 4.2, Math.floor(antecedents[i] / 10) - 4.2, 'medium', d2.color, 1, 'middle', false, 0.8))\n            break\n\n          case 3:\n            d3.color = colorToLatexOrHTML(context.isHtml ? couleurs[i] : 'black')\n            questionsAMC[i] = numAlpha(i) +\n                            ` Give the number of the symmetric of the point $${antecedents[i]}$ with respect to the line $(d_3)$.`\n            texte +=\n                            (i === 0 ? numAlpha(i) : '<br>' + numAlpha(i)) +\n                            ` Give the number of the symmetric of the point $${antecedents[i]}$ with respect to the line $${miseEnCouleur('(d_3)', d3.color)}$.<br>`\n            texteCorr +=\n                            (i === 0 ? numAlpha(i) : '<br>' + numAlpha(i)) +\n                            ` The symmetric of the point $${antecedents[i]}$ with respect to $${miseEnCouleur('(d_3)', d3.color)}$ is the point $${miseEnEvidence(images[i])}$.<br>`\n            objetsEnonce.push(d3, traceAnt, latexParCoordonnees('(d_3)', -4.2, 0.3, d3.color, 20, 10, '', 12))\n            objetsCorrection.push(d3, traceAnt, traceIm, latexParCoordonnees('(d_3)', -4.2, 0.3, d3.color, 15, 10, '', 12),\n              segment(M[i], N[i], d3.color), codageSegments('///', d3.color, M[i], milieu(M[i], N[i]), milieu(M[i], N[i]), N[i]),\n              codageAngleDroit(M[i], milieu(M[i], N[i]), pointSurDroite(d3, 1), d3.color, 0.4, 1))\n            objetsCorrection.push(texteParPositionEchelle(Number(punto[i][0] + 10 * punto[i][1]).toString(), punto[i][0] - 4.2, punto[i][1] - 4.2, 'medium', '#f15929', 1, 'middle', false, 0.8))\n            objetsCorrection.push(texteParPositionEchelle(antecedents[i].toString(), antecedents[i] % 10 - 4.2, Math.floor(antecedents[i] / 10) - 4.2, 'medium', d3.color, 1, 'middle', false, 0.8))\n            break\n\n          case 4:\n            d4.color = colorToLatexOrHTML(context.isHtml ? couleurs[i] : 'black')\n            questionsAMC[i] = numAlpha(i) +\n                            ` Give the number of the symmetric of the point $${antecedents[i]}$ with respect to the line $(d_4)$.`\n            texte +=\n                            (i === 0 ? numAlpha(i) : '<br>' + numAlpha(i)) +\n                            ` Give the number of the symmetric of the point $${antecedents[i]}$ with respect to the line $${miseEnCouleur('(d_4)', d4.color)}$.<br>`\n            texteCorr +=\n                            (i === 0 ? numAlpha(i) : '<br>' + numAlpha(i)) +\n                            ` The symmetric of the point $${antecedents[i]}$ with respect to $${miseEnCouleur('(d_4)', d4.color)}$ is the point $${miseEnEvidence(images[i])}$.<br>`\n            objetsEnonce.push(d4, traceAnt, latexParCoordonnees('(d_4)', 0.2, 4.5, d4.color, 15, 10, '', 12))\n            objetsCorrection.push(d4, traceAnt, traceIm, latexParCoordonnees('(d_4)', 0.2, 4.5, d4.color, 20, 10, '', 12),\n              segment(M[i], N[i], d4.color), codageSegments('OO', d4.color, M[i], milieu(M[i], N[i]), milieu(M[i], N[i]), N[i]),\n              codageAngleDroit(M[i], milieu(M[i], N[i]), pointSurDroite(d4, 1), '#f15929', 0.4, 1))\n            objetsCorrection.push(texteParPositionEchelle(Number(punto[i][0] + 10 * punto[i][1]).toString(), punto[i][0] - 4.2, punto[i][1] - 4.2, 'medium', '#f15929', 1, 'middle', false, 0.8))\n            objetsCorrection.push(texteParPositionEchelle(antecedents[i].toString(), antecedents[i] % 10 - 4.2, Math.floor(antecedents[i] / 10) - 4.2, 'medium', d4.color, 1, 'middle', false, 0.8))\n            break\n\n          case 5:\n            questionsAMC[i] = numAlpha(i) + ` Give the number of the image of the point $${antecedents[i]}$ by the rotation of center $O$ and angle 90° counterclockwise.`\n            texte +=\n                            (i === 0 ? numAlpha(i) : '<br>' + numAlpha(i)) +\n                            ` Give the number of the image of the point $${antecedents[i]}$ by the rotation of center $O$ and angle 90° counterclockwise.<br>`\n            texteCorr +=\n                            (i === 0 ? numAlpha(i) : '<br>' + numAlpha(i)) +\n                            ` The image of the point $${antecedents[i]}$ by the rotation of center $O$ and angle 90° counterclockwise is the point $${miseEnEvidence(images[i])}$.<br>`\n            objetsEnonce.push(traceAnt, traceO, labO)\n            objetsCorrection.push(traceAnt, traceIm, traceO, labO, segment(M[i], O, couleurs[i]), segment(N[i], O, couleurs[i]), codageSegments('|||', couleurs[i], M[i], O, O, N[i]), afficheMesureAngle(M[i], O, N[i]),\n              codageAngleDroit(M[i], O, N[i], couleurs[i], 0.4, 1))\n            objetsCorrection.push(texteParPositionEchelle(Number(punto[i][0] + 10 * punto[i][1]).toString(), punto[i][0] - 4.2, punto[i][1] - 4.2, 'medium', '#f15929', 1, 'middle', false, 0.8))\n            objetsCorrection.push(texteParPositionEchelle(antecedents[i].toString(), antecedents[i] % 10 - 4.2, Math.floor(antecedents[i] / 10) - 4.2, 'medium', couleurs[i], 1, 'middle', false, 0.8))\n            break\n\n          case 6:\n            questionsAMC[i] = numAlpha(i) + ` Give the number of the image of the point $${antecedents[i]}$ by the rotation of center $O$ and angle 90° clockwise.`\n            texte +=\n                            (i === 0 ? numAlpha(i) : '<br>' + numAlpha(i)) +\n                            ` Give the number of the image of the point $${antecedents[i]}$ by the rotation of center $O$ and angle 90° clockwise.<br>`\n            texteCorr +=\n                            (i === 0 ? numAlpha(i) : '<br>' + numAlpha(i)) +\n                            ` The image of the point $${antecedents[i]}$ by the rotation of center $O$ and angle 90° clockwise is the point $${miseEnEvidence(images[i])}$.<br>`\n            objetsEnonce.push(traceAnt, traceO, labO)\n            objetsCorrection.push(traceAnt, traceIm, traceO, labO, segment(M[i], O, couleurs[i]), segment(N[i], O, couleurs[i]), codageSegments('////', 'red', M[i], O, O, N[i]), afficheMesureAngle(M[i], O, N[i]),\n              codageAngleDroit(M[i], O, N[i], couleurs[i], 0.8, 1))\n            objetsCorrection.push(texteParPositionEchelle(Number(punto[i][0] + 10 * punto[i][1]).toString(), punto[i][0] - 4.2, punto[i][1] - 4.2, 'medium', '#f15929', 1, 'middle', false, 0.8))\n            objetsCorrection.push(texteParPositionEchelle(antecedents[i].toString(), antecedents[i] % 10 - 4.2, Math.floor(antecedents[i] / 10) - 4.2, 'medium', couleurs[i], 1, 'middle', false, 0.8))\n            break\n\n          case 7:\n            questionsAMC[i] = numAlpha(i) + ` Give the number of the image of the point $${antecedents[i]}$ by the symmetry of center O.`\n            texte +=\n                            (i === 0 ? numAlpha(i) : '<br>' + numAlpha(i)) +\n                            ` Give the number of the image of the point $${antecedents[i]}$ by the symmetry of center O.<br>`\n            texteCorr +=\n                            (i === 0 ? numAlpha(i) : '<br>' + numAlpha(i)) +\n                            ` The image of the point $${antecedents[i]}$ by the symmetry of center $O$ is the point $${miseEnEvidence(images[i])}$.<br>`\n            objetsEnonce.push(traceAnt, traceO, labO)\n            objetsCorrection.push(traceAnt, traceIm, traceO, labO, segment(M[i], O, couleurs[i]), segment(N[i], O, couleurs[i]), codageSegments('OOO', couleurs[i], M[i], O, O, N[i]))\n            objetsCorrection.push(texteParPositionEchelle(Number(punto[i][0] + 10 * punto[i][1]).toString(), punto[i][0] - 4.2, punto[i][1] - 4.2, 'medium', '#f15929', 1, 'middle', false, 0.8))\n            objetsCorrection.push(texteParPositionEchelle(antecedents[i].toString(), antecedents[i] % 10 - 4.2, Math.floor(antecedents[i] / 10) - 4.2, 'medium', couleurs[i], 1, 'middle', false, 0.8))\n            break\n\n          case 8:\n            pointMLettre = randint(1, 26, nomPointsTranslationDejaUtilises)\n            nomPointsTranslationDejaUtilises.push(pointMLettre)\n            numPointN = randint(1, 26, nomPointsTranslationDejaUtilises)\n            nomPointsTranslationDejaUtilises.push(numPointN)\n            questionsAMC[i] = numAlpha(i) + ` Give the number of the image of the point $${antecedents[i]}$ by the translation which transforms ${lettreDepuisChiffre(pointMLettre)} into ${lettreDepuisChiffre(numPointN)}.`\n            texte +=\n                            (i === 0 ? numAlpha(i) : '<br>' + numAlpha(i)) +\n                            ` Give the number of the image of the point $${antecedents[i]}$ by the translation which transforms ${lettreDepuisChiffre(pointMLettre)} into ${lettreDepuisChiffre(numPointN)}.<br>`\n            texteCorr +=\n                            (i === 0 ? numAlpha(i) : '<br>' + numAlpha(i)) +\n                            ` The image of the point $${antecedents[i]}$ by the translation which transforms ${lettreDepuisChiffre(pointMLettre)} into ${lettreDepuisChiffre(numPointN)} is the point $${miseEnEvidence(images[i])}$.<br>`\n            aEviter = enleveElementBis(pointsDejaUtilises)\n            longueurBoucle = pointsDejaUtilises.length\n            for (let kk = 0; kk < longueurBoucle; kk++) {\n              aEviter.push(pointsDejaUtilises[kk] - xu - 10 * yu)\n            }\n            pointM = point(randint(-1, 2, [M[i].x, 0]), randint(-1, 2, [M[i].y, 0]), lettreDepuisChiffre(pointMLettre), 'above right')\n            while (compteOccurences(aEviter, 44 + pointM.x + 10 * pointM.y) !== 0) {\n              pointM = point(randint(-1, 2, [M[i].x, 0]), randint(-1, 2, [M[i].y, 0]), lettreDepuisChiffre(pointMLettre), 'above right')\n            }\n            pointN = translation(pointM, vecteur(xu, yu), lettreDepuisChiffre(numPointN), 'above right')\n            traceM = tracePoint(pointM)\n            traceN = tracePoint(pointN)\n            traceM.epaisseur = 1\n            traceN.epaisseur = 1\n            labM = labelLatexPoint({ points: [pointM], color: couleurs[i], taille: 10 })\n            labN = labelLatexPoint({ points: [pointN], color: couleurs[i], taille: 10 })\n            labM.taille = 8\n            labN.taille = 8\n            pointsDejaUtilises.push(44 + pointM.x + 10 * pointM.y)\n            pointsDejaUtilises.push(44 + pointN.x + 10 * pointN.y)\n            objetsEnonce.push(traceAnt, traceM, traceN, labM, labN)\n            objetsCorrection.push(vecteur(M[i], N[i]).representant(M[i], couleurs[i]), vecteur(M[i], N[i]).representant(pointM, couleurs[i]), traceAnt, traceIm, traceM, traceN, labM, labN)\n            objetsCorrection.push(texteParPositionEchelle(Number(punto[i][0] + 10 * punto[i][1]).toString(), punto[i][0] - 4.2, punto[i][1] - 4.2, 'medium', '#f15929', 1, 'middle', false, 0.8))\n            objetsCorrection.push(texteParPositionEchelle(antecedents[i].toString(), antecedents[i] % 10 - 4.2, Math.floor(antecedents[i] / 10) - 4.2, 'medium', couleurs[i], 1, 'middle', false, 0.8))\n            break\n\n          case 9:\n            questionsAMC[i] = numAlpha(i) + ` Give the number of the image of the point $${antecedents[i]}$ by the homothety of center $O$ and ratio $${texNombre(k[i])}$.`\n            texte +=\n                            (i === 0 ? numAlpha(i) : '<br>' + numAlpha(i)) +\n                            ` Give the number of the image of the point $${antecedents[i]}$ by the homothety of center $O$ and ratio $${texNombre(k[i])}$.<br>`\n            texteCorr +=\n                            (i === 0 ? numAlpha(i) : '<br>' + numAlpha(i)) +\n                            ` The image of the point $${antecedents[i]}$ by the homothety of center $O$ and ratio $${texNombre(k[i])}$ is the point $${miseEnEvidence(images[i])}$.<br>`\n            objetsEnonce.push(traceAnt, traceO, labO)\n            objetsCorrection.push(traceAnt, traceIm, traceO, labO, segment(M[i], O, couleurs[i]), segment(N[i], O, couleurs[i]))\n            objetsCorrection.push(texteParPositionEchelle(Number(punto[i][0] + 10 * punto[i][1]).toString(), punto[i][0] - 4.2, punto[i][1] - 4.2, 'medium', '#f15929', 1, 'middle', false, 0.8))\n            objetsCorrection.push(texteParPositionEchelle(antecedents[i].toString(), antecedents[i] % 10 - 4.2, Math.floor(antecedents[i] / 10) - 4.2, 'medium', couleurs[i], 1, 'middle', false, 0.8))\n            break\n\n          case 10:\n            questionsAMC[i] = numAlpha(i) +\n                            ` Donner le numéro de l'image of point $${antecedents[i]}$ by l'homothétie de centre $O$ et de rapport $${texFractionReduite(\n                                1,\n                                k[i]\n                            )}$.`\n            texte +=\n                            (i === 0 ? numAlpha(i) : '<br>' + numAlpha(i)) +\n                            ` Donner le numéro de l'image of point $${antecedents[i]}$ by l'homothétie de centre $O$ et de rapport $${texFractionReduite(\n                                1,\n                                k[i]\n                            )}$.<br>`\n            texteCorr +=\n                            (i === 0 ? numAlpha(i) : '<br>' + numAlpha(i)) +\n                            ` L'image of point $${antecedents[i]}$ by l'homothétie de centre $O$ et de rapport $${texFractionReduite(\n                                1,\n                                k[i]\n                            )}$ est le point $${miseEnEvidence(images[i])}$.<br>`\n            objetsEnonce.push(traceAnt, traceO, labO)\n            objetsCorrection.push(traceAnt, traceIm, traceO, labO, segment(M[i], O, couleurs[i]), segment(N[i], O, couleurs[i]))\n            objetsCorrection.push(texteParPositionEchelle(Number(punto[i][0] + 10 * punto[i][1]).toString(), punto[i][0] - 4.2, punto[i][1] - 4.2, 'medium', '#f15929', 1, 'middle', false, 0.8))\n            objetsCorrection.push(texteParPositionEchelle(antecedents[i].toString(), antecedents[i] % 10 - 4.2, Math.floor(antecedents[i] / 10) - 4.2, 'medium', couleurs[i], 1, 'middle', false, 0.8))\n            break\n\n          case 11:\n            questionsAMC[i] = numAlpha(i) + ` Give the number of the image of the point $${antecedents[i]}$ by the rotation of center $O$ and angle 60° counterclockwise.`\n            texte +=\n                            (i === 0 ? numAlpha(i) : '<br>' + numAlpha(i)) +\n                            ` Give the number of the image of the point $${antecedents[i]}$ by the rotation of center $O$ and angle 60° counterclockwise.<br>`\n            texteCorr +=\n                            (i === 0 ? numAlpha(i) : '<br>' + numAlpha(i)) +\n                            ` The image of the point $${antecedents[i]}$ by the rotation of center $O$ and angle 60° counterclockwise is the point $${miseEnEvidence(images[i])}$.<br>`\n            objetsEnonce.push(traceAnt, traceO, labO)\n            objetsCorrection.push(traceAnt, traceIm, traceO, labO, segment(M[i], O, 'blue'), segment(N[i], O, 'blue'), codageSegments('||', 'red', M[i], O, O, N[i]), afficheMesureAngle(M[i], O, N[i]))\n            break\n\n          case 12:\n            questionsAMC[i] = numAlpha(i) + ` Give the number of the image of the point $${antecedents[i]}$ by the rotation of center $O$ and angle 60° clockwise.`\n            texte +=\n                            (i === 0 ? numAlpha(i) : '<br>' + numAlpha(i)) +\n                            ` Give the number of the image of the point $${antecedents[i]}$ by the rotation of center $O$ and angle 60° clockwise.<br>`\n            texteCorr +=\n                            (i === 0 ? numAlpha(i) : '<br>' + numAlpha(i)) +\n                            ` The image of the point $${antecedents[i]}$ by the rotation of center $O$ and angle 60° clockwise is the point $${miseEnEvidence(images[i])}$.<br>`\n            objetsEnonce.push(traceAnt, traceO, labO)\n            objetsCorrection.push(traceAnt, traceIm, traceO, labO, segment(M[i], O, 'blue'), segment(N[i], O, 'blue'), codageSegments('||', 'red', M[i], O, O, N[i]), afficheMesureAngle(M[i], O, N[i]))\n            break\n\n          case 13:\n            questionsAMC[i] = numAlpha(i) + ` Give the number of the image of the point $${antecedents[i]}$ by the rotation of center $O$ and angle 120° counterclockwise.`\n            texte +=\n                            (i === 0 ? numAlpha(i) : '<br>' + numAlpha(i)) +\n                            ` Give the number of the image of the point $${antecedents[i]}$ by the rotation of center $O$ and angle 120° counterclockwise.<br>`\n            texteCorr +=\n                            (i === 0 ? numAlpha(i) : '<br>' + numAlpha(i)) +\n                            ` The image of the point $${antecedents[i]}$ by the rotation of center $O$ and angle 120° counterclockwise is the point $${miseEnEvidence(images[i])}$.<br>`\n            objetsEnonce.push(traceAnt, traceO, labO)\n            objetsCorrection.push(traceAnt, traceIm, traceO, labO, segment(M[i], O, 'blue'), segment(N[i], O, 'blue'), codageSegments('||', 'red', M[i], O, O, N[i]), afficheMesureAngle(M[i], O, N[i]))\n            break\n\n          case 14:\n            questionsAMC[i] = numAlpha(i) + ` Give the number of the image of the point $${antecedents[i]}$ by the rotation of center $O$ and angle 120° clockwise.`\n            texte +=\n                            (i === 0 ? numAlpha(i) : '<br>' + numAlpha(i)) +\n                            ` Give the number of the image of the point $${antecedents[i]}$ by the rotation of center $O$ and angle 120° clockwise.<br>`\n            texteCorr +=\n                            (i === 0 ? numAlpha(i) : '<br>' + numAlpha(i)) +\n                            ` The image of the point $${antecedents[i]}$ by the rotation of center $O$ and angle 120° clockwise is the point $${miseEnEvidence(images[i])}$.<br>`\n            objetsEnonce.push(traceAnt, traceO, labO)\n            objetsCorrection.push(traceAnt, traceIm, traceO, labO, segment(M[i], O, 'blue'), segment(N[i], O, 'blue'), codageSegments('||', 'red', M[i], O, O, N[i]), afficheMesureAngle(M[i], O, N[i]))\n            break\n        }\n\n        setReponse(this, i, images[i])\n        texte += ajouteChampTexteMathLive(this, i, 'width10 inline')\n      }\n      const graphique = mathalea2d({\n        xmin: -4.5,\n        ymin: -4.5,\n        xmax: 5.8,\n        ymax: 5.3,\n        pixelsParCm: 40,\n        scale: 0.8,\n        optionsTikz: ['every node/.style={scale=0.6}'],\n        mainlevee: false\n      }, objetsEnonce)\n      texte += '<br>' + graphique\n      texteCorr += '<br>' + mathalea2d({\n        xmin: -4.5,\n        ymin: -4.5,\n        xmax: 5.8,\n        ymax: 5.3,\n        pixelsParCm: 40,\n        scale: 0.8,\n        optionsTikz: ['every node/.style={scale=0.6}'],\n        mainlevee: false\n      }, objetsCorrection)\n\n      if (context.isAmc) {\n        if (this.can) {\n          this.autoCorrection[0] = {\n            enonce: texte,\n            enonceAGauche: [0.5, 0.5],\n            propositions: [\n              {\n                type: 'AMCNum',\n                propositions: [{\n                  texte: texteCorr,\n                  statut: '',\n                  reponse: {\n                    texte: numAlpha(0),\n                    valeur: images[0],\n                    param: {\n                      digits: 2,\n                      decimals: 0,\n                      signe: false,\n                      approx: 0\n                    }\n                  }\n                }]\n              }]\n\n          }\n        } else {\n          this.autoCorrection[0] = {\n            enonce: '<br>\\\\begin{center}' + graphique + '\\\\end{center}',\n            enonceAvant: false,\n            enonceApresNumQuestion: true,\n            options: { barreseparation: true },\n            propositions: [\n              {\n                type: 'AMCNum',\n                propositions: [{\n                  texte: texteCorr,\n                  statut: '',\n                  multicolsBegin: true,\n                  reponse: {\n                    texte: questionsAMC[0],\n                    valeur: images[0],\n                    alignement: 'center',\n                    param: {\n                      digits: 2,\n                      decimals: 0,\n                      signe: false,\n                      approx: 0\n                    }\n                  }\n                }]\n              },\n              {\n                type: 'AMCNum',\n                propositions: [{\n                  texte: '',\n                  statut: '',\n                  reponse: {\n                    texte: questionsAMC[1],\n                    valeur: images[1],\n                    alignement: 'center',\n                    param: {\n                      digits: 2,\n                      decimals: 0,\n                      signe: false,\n                      approx: 0\n                    }\n                  }\n                }]\n              },\n              {\n                type: 'AMCNum',\n                propositions: [{\n                  texte: '',\n                  statut: '',\n                  multicolsEnd: true,\n                  reponse: {\n                    texte: questionsAMC[2],\n                    valeur: images[2],\n                    alignement: 'center',\n                    param: {\n                      digits: 2,\n                      decimals: 0,\n                      signe: false,\n                      approx: 0\n                    }\n                  }\n                }]\n              }]\n          }\n        }\n      }\n\n      if (this.questionJamaisPosee(ee, antecedents)) {\n        this.listeQuestions.push(texte)\n        this.listeCorrections.push(texteCorr)\n        if (!context.isHtml) {\n          this.canEnonce = this.listeQuestions[0]\n          this.correction = this.listeCorrections[0]\n          this.canReponseACompleter = ''\n        }\n        ee++\n      }\n      cpt++\n    }\n    listeQuestionsToContenu(this)\n  }\n  this.besoinFormulaireTexte = [\n    'Choice of transformations',\n    'Choose 3 numbers maximum, separated by hyphens: \\n 1 & 2: Oblique symmetries\\n 3 & 4: Horizontal or vertical symmetries\\n 5 & 6: Rotations of 90°\\n 7: Central symmetry\\n 8: Translation\\n n 9: Homotheties k>1\\n 10: Homotheties k<1'\n  ]\n}\n"],"names":["interactifReady","interactifType","amcReady","amcType","Transformations","Exercice","nbImages","choixTransformation","gestionnaireFormulaireTexte","randint","O","point","d1","droiteParPointEtPente","d3","droiteHorizontaleParPoint","d2","d4","droiteVerticaleParPoint","couleurs","xO","yO","xuPossibles","combinaisonListes","rangeMinMax","yuPossibles","ee","texte","texteCorr","xu","yu","pointMLettre","pointM","pointN","numPointN","croix","aEviter","mauvaisAntecedents","longueurBoucle","objetsEnonce","objetsCorrection","cpt","antecedents","images","k","punto","n","M","N","nomPointsTranslationDejaUtilises","pointsDejaUtilises","i","j","tracePoint","assombrirOuEclaircir","texteParPositionEchelle","puntoReseau","enleveElementNo","choice","imagePointParTransformation","egal","arrondi","questionsAMC","labO","labM","labN","traceAnt","traceIm","traceO","traceM","traceN","colorToLatexOrHTML","labelLatexPoint","context","numAlpha","miseEnCouleur","miseEnEvidence","latexParCoordonnees","segment","codageSegments","milieu","codageAngleDroit","pointSurDroite","afficheMesureAngle","lettreDepuisChiffre","enleveElementBis","kk","compteOccurences","translation","vecteur","texNombre","texFractionReduite","setReponse","ajouteChampTexteMathLive","graphique","mathalea2d","listeQuestionsToContenu"],"mappings":"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"}