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/5G40-GOkFQDMv.js.map
{"version":3,"file":"5G40-GOkFQDMv.js","sources":["../../src/exercices/5e/5G40.js"],"sourcesContent":["import { cercle, cercleCentrePoint, traceCompas } from '../../lib/2d/cercle.js'\nimport { cibleCarree, dansLaCibleCarree } from '../../lib/2d/cibles.js'\nimport { codageSegments } from '../../lib/2d/codages.js'\nimport { droite } from '../../lib/2d/droites.js'\nimport { point, pointAdistance, pointIntersectionCC, tracePoint } from '../../lib/2d/points.js'\nimport { polygoneAvecNom } from '../../lib/2d/polygones.js'\nimport { segment } from '../../lib/2d/segmentsVecteurs.js'\nimport { labelPoint, texteParPoint } from '../../lib/2d/textes.js'\nimport { rotation, similitude } from '../../lib/2d/transformations.js'\nimport { choice, combinaisonListes } from '../../lib/outils/arrayOutils'\nimport { choisitLettresDifferentes } from '../../lib/outils/aleatoires'\nimport { lettreDepuisChiffre } from '../../lib/outils/outilString.js'\nimport Exercice from '../deprecatedExercice.js'\nimport { mathalea2d } from '../../modules/2dGeneralites.js'\nimport { listeQuestionsToContenu, randint, calculANePlusJamaisUtiliser } from '../../modules/outils.js'\nimport Alea2iep from '../../modules/Alea2iep.js'\n\nexport const titre = 'Build parallelograms with self-correction device'\nexport const dateDeModifImportante = '08/05/2022'\n\n/**\n * Terminer la construction d'un parallélogramme\n * Ref 5G40\n * @author Jean-Claude Lhote (exercice) et Rémi Angot (animations)\n * Ajout de la possibilité de choisir le nombre de questions par Guillaume Valmont le 08/05/2022\n * Publié le 30/11/2020\n */\nexport const uuid = 'b611a'\nexport const ref = '5G40'\nexport default function ConstructionsParallelogrammes () {\n  Exercice.call(this) // Héritage de la classe Exercice()\n  this.titre = titre\n  this.consigne = ''\n  this.nbQuestions = 1\n  this.nbCols = 1\n  this.nbColsCorr = 1\n  this.sup = 5\n  this.correctionDetaillee = false\n  this.correctionDetailleeDisponible = true\n  this.typeExercice = 'IEP'\n  this.nouvelleVersion = function () {\n    this.listeQuestions = [] // Liste de questions\n    this.listeCorrections = [] // Liste de questions corrigées\n    this.autoCorrection = [] // Tous les types de questions sont posés mais l'ordre diffère à chaque 'cycle'\n    let typeQuestionsDisponibles = [1, 2, 3, 4]\n    if (this.sup < 5) typeQuestionsDisponibles = [parseInt(this.sup)]\n\n    const listeTypeQuestions = combinaisonListes(typeQuestionsDisponibles, this.nbQuestions)\n    for (let i = 0, texte, texteCorr, cpt = 0; i < this.nbQuestions && cpt < 50;) {\n      const celluleAlea = function (rang) {\n        const lettre = lettreDepuisChiffre(randint(1, rang))\n        const chiffre = Number(randint(1, rang)).toString()\n        return lettre + chiffre\n      }\n      // We prepare the figure...\n      const noms = choisitLettresDifferentes(5, 'OQ', true) // on choisit 5 lettres, les 4 premières sont les sommets, la 5e est le centre\n      const nom = `${noms[0] + noms[1] + noms[2] + noms[3]}`\n      const objetsEnonce = []\n      const objetsCorrection = []\n      // Preparation of the random figure and useful 2d objects\n      const O = point(0, 0, noms[4])\n      const A = rotation(pointAdistance(O, calculANePlusJamaisUtiliser(randint(50, 70) / 10)), O, randint(0, 179) * choice([-1, 1]), noms[0])\n      const C = rotation(A, O, 180, noms[2])\n      const B = similitude(A, O, randint(40, 80) * choice([-1, 1]), randint(4, 7, 5) * choice([-1, 1]) / 5, noms[1])\n      const D = rotation(B, O, 180, noms[3])\n      const p = polygoneAvecNom(A, B, C, D)\n      const d1 = segment(O, A)\n      const d2 = segment(O, B)\n      const d3 = segment(O, C)\n      const d4 = segment(O, D)\n      const c1 = segment(A, B)\n      const c4 = segment(D, A)\n      const dd1 = droite(A, B)\n      const dd2 = droite(A, D)\n      const dd3 = droite(C, D)\n      const dd4 = droite(C, B)\n      const cellule = celluleAlea(5)\n      const cellule2 = celluleAlea(5)\n      const cellule3 = celluleAlea(5)\n\n      const result = dansLaCibleCarree(C.x, C.y, 5, 0.5, cellule)\n      const result2 = dansLaCibleCarree(D.x, D.y, 5, 0.5, cellule2)\n      const result3 = dansLaCibleCarree(B.x, B.y, 5, 0.5, cellule3)\n\n      const cible = cibleCarree({ x: result[0], y: result[1], rang: 5, num: 1, taille: 0.5, color: 'gray' })\n      cible.opacite = 0.7\n      const cible2 = cibleCarree({ x: result2[0], y: result2[1], rang: 5, num: 2, taille: 0.5, color: 'gray' })\n      cible2.opacite = 0.7\n      const cible3 = cibleCarree({ x: result3[0], y: result3[1], rang: 5, num: 3, taille: 0.5, color: 'gray' })\n      cible3.opacite = 0.7\n      const xMin = Math.min(A.x, B.x, C.x, D.x) - 3\n      const yMin = Math.min(A.y, B.y, C.y, D.y) - 3\n      const xMax = Math.max(A.x, B.x, C.x, D.x) + 3\n      const yMax = Math.max(A.y, B.y, C.y, D.y) + 3\n\n      let P\n      const animIEP = new Alea2iep()\n      animIEP.recadre(xMin, yMax) // Il faut recadrer en première étape pour bien calculer les coordonnées des points\n\n      switch (listeTypeQuestions[i]) {\n        case 1: // deux côtés consécutifs\n          this.consigne = `Construct the parallelogram $${nom}$.`\n          texteCorr = 'Several constructions are possible:<br>'\n          if (this.correctionDetaillee) {\n            texteCorr += `- Using the equality of lengths: $${noms[0] + noms[1]}=${noms[3] + noms[2]}$ and $${noms[2] + noms[1]}=${noms[3] + noms[0]}$.<br>`\n            texteCorr += `- By drawing the parallel to $(${noms[0] + noms[1]})$ passing through $${noms[3]}$ and the parallel to $(${noms[3] + noms[0]})$ passing through $${noms[1]}$.<br>`\n            texteCorr += '- By using the property of diagonals which intersect in the middle.<br>'\n            texteCorr += 'We have chosen the first method which seems to us to be the most effective here.<br>'\n          } else {\n            texteCorr += `Here is one using the equality of lengths: $${noms[0] + noms[1]}=${noms[3] + noms[2]}$ and $${noms[2] + noms[1]}=${noms[3] + noms[0]}$.<br>`\n          }\n          texteCorr += `The $${noms[2]}$ point is in the target's ${cellule} box.<br>`\n\n          c1.styleExtremites = '-|'\n          c4.styleExtremites = '|-'\n          P = polygoneAvecNom(D, A, B)\n          objetsEnonce.push(c1, c4, P[1], cible)\n          objetsCorrection.push(p[0], p[1], cible, traceCompas(D, C, 30), traceCompas(B, C, 30), codageSegments('||', 'red', A, B, D, C), codageSegments('///', 'blue', A, D, B, C))\n          animIEP.parallelogramme3sommetsConsecutifs(D, A, B, C.nom)\n          break\n        case 2: // trois sommets consécutifs\n          this.consigne = `Construct the parallelogram $${nom}$.`\n          texteCorr = 'Several constructions are possible:<br>'\n          if (this.correctionDetaillee) {\n            texteCorr += `- Using the equality of lengths: $${noms[0] + noms[1]}=${noms[3] + noms[2]}$ and $${noms[2] + noms[1]}=${noms[3] + noms[0]}$.<br>`\n            texteCorr += `- By drawing the parallel to $(${noms[0] + noms[1]})$ passing through $${noms[3]}$ and the parallel to $(${noms[3] + noms[0]})$ passing through $${noms[1]}$.<br>`\n            texteCorr += '- By using the property of diagonals which intersect in the middle.<br>'\n            texteCorr += 'We have chosen the first method which seems to us to be the most effective here.<br>'\n          } else {\n            texteCorr += `Here is one using the equality of lengths: $${noms[0] + noms[1]}=${noms[3] + noms[2]}$ and $${noms[2] + noms[1]}=${noms[3] + noms[0]}$.<br>`\n          }\n          texteCorr += `The $${noms[2]}$ point is in the target's ${cellule} box.<br>`\n          P = polygoneAvecNom(D, A, B)\n          animIEP.pointCreer(D, D.nom, 0)\n          animIEP.pointCreer(A, A.nom, 0)\n          animIEP.pointCreer(B, B.nom, 0)\n          animIEP.regleSegment(D, A)\n          animIEP.regleSegment(A, B)\n          animIEP.regleMasquer(0)\n          animIEP.crayonMasquer(0)\n          animIEP.parallelogramme3sommetsConsecutifs(D, A, B, C.nom)\n          objetsEnonce.push(tracePoint(A, B, D), P[1], cible)\n          objetsCorrection.push(p[0], p[1], cible, traceCompas(D, C, 30), traceCompas(B, C, 30), codageSegments('||', 'red', A, B, D, C), codageSegments('///', 'blue', A, D, B, C))\n\n          break\n        case 3: // deux sommets consécutifs plus le centre\n          this.consigne = `Construct the parallelogram $${nom}$ with center $${noms[4]}$.`\n          texteCorr += `O is the center of symmetry of the parallelogram $${nom}$.<br>`\n          if (this.correctionDetaillee) {\n            texteCorr += `The point $${noms[3]}$ is the symmetric of the point $${noms[1]}$ with respect to $${noms[4]}$.<br>`\n            texteCorr += `The point $${noms[2]}$ is the symmetric of the point $${noms[0]}$ with respect to $${noms[4]}$.<br>`\n          }\n          texteCorr += `The $${noms[2]}$ point is in the ${cellule} box of target 1.<br>`\n          texteCorr += `The $${noms[3]}$ point is in the ${cellule2} box of target 2.<br>`\n          P = polygoneAvecNom(O, A, B)\n          animIEP.parallelogramme2sommetsConsecutifsCentre(A, B, O)\n          objetsEnonce.push(tracePoint(A, B, O), P[1], cible, cible2)\n          objetsCorrection.push(p[0], p[1], labelPoint(O), cible, cible2, d1, d2, d3, d4, codageSegments('||', 'red', A, O, O, C), codageSegments('|||', 'blue', B, O, O, D))\n\n          break\n        case 4: // Un angle formé par deux demi-droites et le centre\n          this.consigne = `Construct the parallelogram $${nom}$ with center ${noms[4]}.`\n          texte += `The point $${noms[3]}$ is on the half-line $[${noms[0]}x)$ and the point $${noms[1]}$ is on the half-line $[${noms[0]}y)$.<br>`\n          if (this.correctionDetaillee) {\n            texteCorr += `The point $${noms[2]}$ is the symmetric of the point $${noms[0]}$ with respect to $${noms[4]}$.<br>`\n            texteCorr += `The symmetry of the line $(${noms[0] + noms[1]})$ with respect to $${noms[4]}$ is the line passing through $${noms[2]}$ parallel to $(${noms[0] + noms[1]})$.<br>`\n            texteCorr += `The symmetry of the line $(${noms[0] + noms[3]})$ with respect to $${noms[4]}$ is the line passing through $${noms[2]}$ parallel to $(${noms[0] + noms[3]})$.<br>`\n          }\n          texteCorr += `The $${noms[2]}$ point is in the ${cellule} box of target 1.<br>`\n          texteCorr += `The $${noms[3]}$ point is in the ${cellule2} box of target 2.<br>`\n          animIEP.regleZoom(200)\n          animIEP.equerreZoom(200)\n          animIEP.parallelogrammeAngleCentre(D, A, B, O)\n          objetsEnonce.push(dd1, dd2, tracePoint(O), labelPoint(O, A), texteParPoint('x', pointIntersectionCC(cercleCentrePoint(A, D), cercle(D, 0.5), 1)), texteParPoint('y', similitude(B, A, 4, 1.3)), cible, cible2, cible3)\n          objetsCorrection.push(dd1, dd2, dd3, dd4, p[0], p[1], tracePoint(O), labelPoint(O), cible, cible2, cible3, d1, d3, codageSegments('||', 'red', A, O, O, C))\n\n          break\n      }\n      texte = mathalea2d({ xmin: xMin, ymin: yMin, xmax: xMax, ymax: yMax, pixelsParCm: 20, scale: 0.5 }, objetsEnonce)\n      texteCorr = mathalea2d({ xmin: xMin, ymin: yMin, xmax: xMax, ymax: yMax, pixelsParCm: 20, scale: 0.5 }, objetsCorrection)\n      texteCorr += animIEP.htmlBouton(this.umeroExercice)\n      // If the question has never been asked, we save it\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        // Delete b, c and d in the line above and replace them with NumberAAdd!\n        this.listeQuestions.push(texte)\n        this.listeCorrections.push(texteCorr)\n        i++\n      }\n      cpt++\n    }\n    listeQuestionsToContenu(this)\n  }\n  this.besoinFormulaireNumerique = ['Type of questions', 5, '1: Two consecutive sides\\n2: Three consecutive vertices\\n3: Two consecutive vertices and the center\\n4: One angle and the center\\n5: One of the random configurations']\n  // this.needFormular2BoxCheck = [\"With points on both sides\"];\n}\n"],"names":["titre","dateDeModifImportante","uuid","ref","ConstructionsParallelogrammes","Exercice","typeQuestionsDisponibles","listeTypeQuestions","combinaisonListes","i","texte","texteCorr","cpt","celluleAlea","rang","lettre","lettreDepuisChiffre","randint","chiffre","noms","choisitLettresDifferentes","nom","objetsEnonce","objetsCorrection","O","point","A","rotation","pointAdistance","calculANePlusJamaisUtiliser","choice","C","B","similitude","D","p","polygoneAvecNom","d1","segment","d2","d3","d4","c1","c4","dd1","droite","dd2","dd3","dd4","cellule","cellule2","cellule3","result","dansLaCibleCarree","result2","result3","cible","cibleCarree","cible2","cible3","xMin","yMin","xMax","yMax","P","animIEP","Alea2iep","traceCompas","codageSegments","tracePoint","labelPoint","texteParPoint","pointIntersectionCC","cercleCentrePoint","cercle","mathalea2d","listeQuestionsToContenu"],"mappings":"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"}