File: /home/mmtprep/public_html/mathzen.mmtprep.com/assets/4G10-2-4OInPuFX.js.map
{"version":3,"file":"4G10-2-4OInPuFX.js","sources":["../../src/exercices/4e/4G10-2.js"],"sourcesContent":["import { codageAngleDroit } from '../../lib/2d/angles.js'\nimport { afficheLongueurSegment } from '../../lib/2d/codages.js'\nimport { droite, droiteParPointEtPerpendiculaire } from '../../lib/2d/droites.js'\nimport { point, pointAdistance, pointIntersectionDD, pointSurDroite } from '../../lib/2d/points.js'\nimport { polygoneAvecNom } from '../../lib/2d/polygones.js'\nimport { segment, vecteur } from '../../lib/2d/segmentsVecteurs.js'\nimport { labelPoint } from '../../lib/2d/textes.js'\nimport { translation2Points } from '../../lib/2d/transformations.js'\nimport { triangle2points2longueurs } from '../../lib/2d/triangle.js'\nimport { choisitLettresDifferentes } from '../../lib/outils/aleatoires'\nimport Exercice from '../Exercice'\nimport { mathalea2d } from '../../modules/2dGeneralites.js'\nimport { randint, listeQuestionsToContenu } from '../../modules/outils.js'\nimport Alea2iep from '../../modules/Alea2iep.js'\nexport const titre = 'Transform a figure by translation'\n\nexport const dateDePublication = '16/05/2022'\n\n/**\n * @author Guillaume Valmont\n * Référence 4G10-2\n*/\nexport const uuid = '6a2dd'\nexport const ref = '4G10-2'\n\nfunction segmente (point, image) {\n const segmentAA = segment(point, image, 'red')\n segmentAA.styleExtremites = '|->'\n segmentAA.pointilles = 2\n return segmentAA\n}\nexport default class nomExercice extends Exercice {\n constructor () {\n super()\n this.nbQuestions = 1\n }\n\n nouvelleVersion () {\n this.listeQuestions = []\n this.listeCorrections = []\n this.autoCorrection = []\n\n let objetsEnonceEtCorr, objetsEnonceOnly, objetsCorrectionOnly, paramsEnonce, paramsCorrection\n for (let i = 0, texte, texteCorr, cpt = 0; i < this.nbQuestions && cpt < 50;) {\n objetsEnonceOnly = []\n objetsCorrectionOnly = []\n objetsEnonceEtCorr = []\n\n const lettres = choisitLettresDifferentes(5)\n\n // Initial figure\n const A = point(0, -8, lettres[0], 'below')\n const B = pointAdistance(A, randint(30, 60) / 10, randint(0, 45), lettres[1])\n const C = triangle2points2longueurs(A, B, randint(40, 60) / 10, randint(30, 50) / 10).listePoints[2]\n C.nom = lettres[2]\n const poly = polygoneAvecNom(A, B, C)\n objetsEnonceEtCorr.push(poly[0], poly[1], afficheLongueurSegment(B, A), afficheLongueurSegment(A, C), afficheLongueurSegment(C, B))\n\n // Vector and image by translation\n const D = point(B.x - 1, B.y + 7 + randint(-10, 10) / 10, lettres[3])\n const E = point(B.x - 10, B.y + 7 + randint(-20, 20) / 10, lettres[4])\n const imageA = translation2Points(A, D, E, `${lettres[0]}'`)\n const imageB = translation2Points(B, D, E, `${lettres[1]}'`)\n const imageC = translation2Points(C, D, E, `${lettres[2]}'`)\n const imagePoly = polygoneAvecNom(imageA, imageB, imageC)\n\n objetsEnonceEtCorr.push(vecteur(D, E).representant(D), afficheLongueurSegment(D, E), labelPoint(D, E))\n objetsCorrectionOnly.push(imagePoly[0], imagePoly[1])\n objetsCorrectionOnly.push(afficheLongueurSegment(imageB, imageA), afficheLongueurSegment(imageA, imageC), afficheLongueurSegment(imageC, imageB))\n objetsCorrectionOnly.push(segmente(A, imageA), segmente(B, imageB), segmente(C, imageC))\n objetsCorrectionOnly.push(afficheLongueurSegment(A, imageA, 'red'), afficheLongueurSegment(B, imageB, 'red'), afficheLongueurSegment(C, imageC, 'red'))\n\n // Perpendicular\n const min = Math.max(A.x, B.x, C.x, D.x)\n const max = Math.min(imageA.x, imageB.x, imageC.x, E.x)\n const DE = droite(D, E)\n const pied = pointSurDroite(DE, (min + max) / 2)\n const perpendiculaire = droiteParPointEtPerpendiculaire(pied, DE, '', 'red')\n perpendiculaire.pointilles = 2\n const pied2 = pointSurDroite(perpendiculaire, (min + max) / 2 + 0.1)\n const AA = pointIntersectionDD(droite(A, imageA), perpendiculaire)\n const AA2 = pointSurDroite(perpendiculaire, AA.x - 0.1)\n const BB = pointIntersectionDD(droite(B, imageB), perpendiculaire)\n const CC = pointIntersectionDD(droite(C, imageC), perpendiculaire)\n objetsCorrectionOnly.push(perpendiculaire, codageAngleDroit(D, pied, pied2, 'red'))\n objetsCorrectionOnly.push(codageAngleDroit(A, AA, pied, 'red'), codageAngleDroit(B, BB, pied, 'red'), codageAngleDroit(C, CC, pied, 'red'))\n\n // Window settings\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 paramsEnonce = { xmin, ymin, xmax, ymax, pixelsParCm: 20, scale: 1 }\n paramsCorrection = paramsEnonce\n\n // Animation\n const anim = new Alea2iep()\n anim.recadre(xmin, ymax)\n // Initial situation\n anim.tempo = 0.001\n anim.couleur = 'black'\n anim.pointCreer(A)\n anim.pointCreer(B)\n anim.pointCreer(C)\n anim.pointCreer(D)\n anim.pointCreer(E)\n anim.traitRapide(D, E)\n anim.traitRapide(A, B)\n anim.traitRapide(A, C)\n anim.traitRapide(B, C)\n // Perpendicular\n anim.tempo = 0.5\n anim.couleur = 'red'\n anim.pointilles = 5\n anim.equerreDeplacer(pied)\n anim.equerreMontrer()\n anim.equerreRotation(AA)\n anim.regleDeplacer(pied)\n anim.regleMontrer()\n anim.regleRotation(AA)\n anim.regleDeplacer(pied2)\n anim.equerreMasquer()\n anim.crayonDeplacer(AA2)\n anim.crayonMontrer()\n anim.crayonDeplacer(pied2)\n anim.traitRapide(AA2, pied2)\n anim.codageAngleDroit(D, pied, pied2)\n // Parallels right side\n anim.crayonMasquer()\n anim.equerreMontrer()\n anim.equerreDeplacer(CC)\n anim.crayonMontrer()\n anim.crayonDeplacer(CC)\n anim.crayonDeplacer(C)\n anim.traitRapide(C, CC)\n anim.codageAngleDroit(C, CC, pied)\n\n anim.crayonMasquer()\n anim.equerreMontrer()\n anim.equerreDeplacer(BB)\n anim.crayonMontrer()\n anim.crayonDeplacer(BB)\n anim.crayonDeplacer(B)\n anim.traitRapide(B, BB)\n anim.codageAngleDroit(B, BB, pied)\n\n anim.crayonMasquer()\n anim.equerreMontrer()\n anim.equerreDeplacer(AA)\n anim.crayonMontrer()\n anim.crayonDeplacer(AA)\n anim.crayonDeplacer(A)\n anim.traitRapide(A, AA)\n anim.codageAngleDroit(A, AA, pied)\n // Parallels left side\n anim.equerreMasquer()\n anim.regleProlongerSegment(C, CC, { longueur: 10 })\n anim.regleProlongerSegment(B, BB, { longueur: 10 })\n anim.regleProlongerSegment(A, AA, { longueur: 10 })\n anim.regleMasquer()\n // Compass\n anim.compasMontrer()\n anim.compasEcarter2Points(D, E)\n anim.compasTracerArcCentrePoint(C, imageC)\n anim.compasTracerArcCentrePoint(B, imageB)\n anim.compasTracerArcCentrePoint(A, imageA)\n anim.compasMasquer()\n // Trace image\n anim.couleur = 'black'\n anim.pointilles = false\n anim.pointCreer(imageC)\n anim.pointCreer(imageB)\n anim.pointCreer(imageA)\n anim.regleMontrer()\n anim.regleSegment(imageC, imageB)\n anim.regleSegment(imageB, imageA)\n anim.regleSegment(imageA, imageC)\n anim.regleMasquer()\n anim.crayonMasquer()\n\n // Statement and correction\n texte = `Trace the image of the triangle $${lettres[0]}${lettres[1]}${lettres[2]}$ by the translation which transforms $${lettres[3]}$ into $${lettres[4]}$.<br>`\n texte += mathalea2d(paramsEnonce, objetsEnonceOnly, objetsEnonceEtCorr)\n texteCorr = mathalea2d(paramsCorrection, objetsCorrectionOnly, objetsEnonceEtCorr)\n texteCorr += anim.htmlBouton()\n if (this.questionJamaisPosee(i, B.x, B.y, C.x, C.y)) {\n this.listeQuestions.push(texte)\n this.listeCorrections.push(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","uuid","ref","segmente","point","image","segmentAA","segment","nomExercice","Exercice","objetsEnonceEtCorr","objetsEnonceOnly","objetsCorrectionOnly","paramsEnonce","paramsCorrection","i","texte","texteCorr","cpt","lettres","choisitLettresDifferentes","A","B","pointAdistance","randint","C","triangle2points2longueurs","poly","polygoneAvecNom","afficheLongueurSegment","D","E","imageA","translation2Points","imageB","imageC","imagePoly","vecteur","labelPoint","min","max","DE","droite","pied","pointSurDroite","perpendiculaire","droiteParPointEtPerpendiculaire","pied2","AA","pointIntersectionDD","AA2","BB","CC","codageAngleDroit","xmin","xmax","ymin","ymax","anim","Alea2iep","mathalea2d","listeQuestionsToContenu"],"mappings":"wSAcY,MAACA,GAAQ,oCAERC,GAAoB,aAMpBC,GAAO,QACPC,GAAM,SAEnB,SAASC,EAAUC,EAAOC,EAAO,CAC/B,MAAMC,EAAYC,GAAQH,EAAOC,EAAO,KAAK,EAC7C,OAAAC,EAAU,gBAAkB,MAC5BA,EAAU,WAAa,EAChBA,CACT,CACe,MAAME,WAAoBC,EAAS,CAChD,aAAe,CACb,MAAO,EACP,KAAK,YAAc,CACpB,CAED,iBAAmB,CACjB,KAAK,eAAiB,CAAE,EACxB,KAAK,iBAAmB,CAAE,EAC1B,KAAK,eAAiB,CAAE,EAExB,IAAIC,EAAoBC,EAAkBC,EAAsBC,EAAcC,EAC9E,QAASC,EAAI,EAAGC,EAAOC,EAAWC,EAAM,EAAGH,EAAI,KAAK,aAAeG,EAAM,IAAK,CAC5EP,EAAmB,CAAE,EACrBC,EAAuB,CAAE,EACzBF,EAAqB,CAAE,EAEvB,MAAMS,EAAUC,GAA0B,CAAC,EAGrCC,EAAIjB,EAAM,EAAG,GAAIe,EAAQ,CAAC,EAAG,OAAO,EACpCG,EAAIC,EAAeF,EAAGG,EAAQ,GAAI,EAAE,EAAI,GAAIA,EAAQ,EAAG,EAAE,EAAGL,EAAQ,CAAC,CAAC,EACtEM,EAAIC,EAA0BL,EAAGC,EAAGE,EAAQ,GAAI,EAAE,EAAI,GAAIA,EAAQ,GAAI,EAAE,EAAI,EAAE,EAAE,YAAY,CAAC,EACnGC,EAAE,IAAMN,EAAQ,CAAC,EACjB,MAAMQ,EAAOC,EAAgBP,EAAGC,EAAGG,CAAC,EACpCf,EAAmB,KAAKiB,EAAK,CAAC,EAAGA,EAAK,CAAC,EAAGE,EAAuBP,EAAGD,CAAC,EAAGQ,EAAuBR,EAAGI,CAAC,EAAGI,EAAuBJ,EAAGH,CAAC,CAAC,EAGlI,MAAMQ,EAAI1B,EAAMkB,EAAE,EAAI,EAAGA,EAAE,EAAI,EAAIE,EAAQ,IAAK,EAAE,EAAI,GAAIL,EAAQ,CAAC,CAAC,EAC9DY,EAAI3B,EAAMkB,EAAE,EAAI,GAAIA,EAAE,EAAI,EAAIE,EAAQ,IAAK,EAAE,EAAI,GAAIL,EAAQ,CAAC,CAAC,EAC/Da,EAASC,EAAmBZ,EAAGS,EAAGC,EAAG,GAAGZ,EAAQ,CAAC,CAAC,GAAG,EACrDe,EAASD,EAAmBX,EAAGQ,EAAGC,EAAG,GAAGZ,EAAQ,CAAC,CAAC,GAAG,EACrDgB,EAASF,EAAmBR,EAAGK,EAAGC,EAAG,GAAGZ,EAAQ,CAAC,CAAC,GAAG,EACrDiB,EAAYR,EAAgBI,EAAQE,EAAQC,CAAM,EAExDzB,EAAmB,KAAK2B,EAAQP,EAAGC,CAAC,EAAE,aAAaD,CAAC,EAAGD,EAAuBC,EAAGC,CAAC,EAAGO,EAAWR,EAAGC,CAAC,CAAC,EACrGnB,EAAqB,KAAKwB,EAAU,CAAC,EAAGA,EAAU,CAAC,CAAC,EACpDxB,EAAqB,KAAKiB,EAAuBK,EAAQF,CAAM,EAAGH,EAAuBG,EAAQG,CAAM,EAAGN,EAAuBM,EAAQD,CAAM,CAAC,EAChJtB,EAAqB,KAAKT,EAASkB,EAAGW,CAAM,EAAG7B,EAASmB,EAAGY,CAAM,EAAG/B,EAASsB,EAAGU,CAAM,CAAC,EACvFvB,EAAqB,KAAKiB,EAAuBR,EAAGW,EAAQ,KAAK,EAAGH,EAAuBP,EAAGY,EAAQ,KAAK,EAAGL,EAAuBJ,EAAGU,EAAQ,KAAK,CAAC,EAGtJ,MAAMI,EAAM,KAAK,IAAIlB,EAAE,EAAGC,EAAE,EAAGG,EAAE,EAAGK,EAAE,CAAC,EACjCU,EAAM,KAAK,IAAIR,EAAO,EAAGE,EAAO,EAAGC,EAAO,EAAGJ,EAAE,CAAC,EAChDU,EAAKC,EAAOZ,EAAGC,CAAC,EAChBY,EAAOC,EAAeH,GAAKF,EAAMC,GAAO,CAAC,EACzCK,EAAkBC,EAAgCH,EAAMF,EAAI,GAAI,KAAK,EAC3EI,EAAgB,WAAa,EAC7B,MAAME,EAAQH,EAAeC,GAAkBN,EAAMC,GAAO,EAAI,EAAG,EAC7DQ,EAAKC,EAAoBP,EAAOrB,EAAGW,CAAM,EAAGa,CAAe,EAC3DK,EAAMN,EAAeC,EAAiBG,EAAG,EAAI,EAAG,EAChDG,EAAKF,EAAoBP,EAAOpB,EAAGY,CAAM,EAAGW,CAAe,EAC3DO,EAAKH,EAAoBP,EAAOjB,EAAGU,CAAM,EAAGU,CAAe,EACjEjC,EAAqB,KAAKiC,EAAiBQ,EAAiBvB,EAAGa,EAAMI,EAAO,KAAK,CAAC,EAClFnC,EAAqB,KAAKyC,EAAiBhC,EAAG2B,EAAIL,EAAM,KAAK,EAAGU,EAAiB/B,EAAG6B,EAAIR,EAAM,KAAK,EAAGU,EAAiB5B,EAAG2B,EAAIT,EAAM,KAAK,CAAC,EAG1I,MAAMW,EAAO,KAAK,IAAIjC,EAAE,EAAGC,EAAE,EAAGG,EAAE,EAAGK,EAAE,EAAGC,EAAE,EAAGC,EAAO,EAAGE,EAAO,EAAGC,EAAO,CAAC,EAAI,EACzEoB,EAAO,KAAK,IAAIlC,EAAE,EAAGC,EAAE,EAAGG,EAAE,EAAGK,EAAE,EAAGC,EAAE,EAAGC,EAAO,EAAGE,EAAO,EAAGC,EAAO,CAAC,EAAI,EACzEqB,EAAO,KAAK,IAAInC,EAAE,EAAGC,EAAE,EAAGG,EAAE,EAAGK,EAAE,EAAGC,EAAE,EAAGC,EAAO,EAAGE,EAAO,EAAGC,EAAO,CAAC,EAAI,EACzEsB,EAAO,KAAK,IAAIpC,EAAE,EAAGC,EAAE,EAAGG,EAAE,EAAGK,EAAE,EAAGC,EAAE,EAAGC,EAAO,EAAGE,EAAO,EAAGC,EAAO,CAAC,EAAI,EAC/EtB,EAAe,CAAE,KAAAyC,EAAM,KAAAE,EAAM,KAAAD,EAAM,KAAAE,EAAM,YAAa,GAAI,MAAO,CAAG,EACpE3C,EAAmBD,EAGnB,MAAM6C,EAAO,IAAIC,EACjBD,EAAK,QAAQJ,EAAMG,CAAI,EAEvBC,EAAK,MAAQ,KACbA,EAAK,QAAU,QACfA,EAAK,WAAWrC,CAAC,EACjBqC,EAAK,WAAWpC,CAAC,EACjBoC,EAAK,WAAWjC,CAAC,EACjBiC,EAAK,WAAW5B,CAAC,EACjB4B,EAAK,WAAW3B,CAAC,EACjB2B,EAAK,YAAY5B,EAAGC,CAAC,EACrB2B,EAAK,YAAYrC,EAAGC,CAAC,EACrBoC,EAAK,YAAYrC,EAAGI,CAAC,EACrBiC,EAAK,YAAYpC,EAAGG,CAAC,EAErBiC,EAAK,MAAQ,GACbA,EAAK,QAAU,MACfA,EAAK,WAAa,EAClBA,EAAK,gBAAgBf,CAAI,EACzBe,EAAK,eAAgB,EACrBA,EAAK,gBAAgBV,CAAE,EACvBU,EAAK,cAAcf,CAAI,EACvBe,EAAK,aAAc,EACnBA,EAAK,cAAcV,CAAE,EACrBU,EAAK,cAAcX,CAAK,EACxBW,EAAK,eAAgB,EACrBA,EAAK,eAAeR,CAAG,EACvBQ,EAAK,cAAe,EACpBA,EAAK,eAAeX,CAAK,EACzBW,EAAK,YAAYR,EAAKH,CAAK,EAC3BW,EAAK,iBAAiB5B,EAAGa,EAAMI,CAAK,EAEpCW,EAAK,cAAe,EACpBA,EAAK,eAAgB,EACrBA,EAAK,gBAAgBN,CAAE,EACvBM,EAAK,cAAe,EACpBA,EAAK,eAAeN,CAAE,EACtBM,EAAK,eAAejC,CAAC,EACrBiC,EAAK,YAAYjC,EAAG2B,CAAE,EACtBM,EAAK,iBAAiBjC,EAAG2B,EAAIT,CAAI,EAEjCe,EAAK,cAAe,EACpBA,EAAK,eAAgB,EACrBA,EAAK,gBAAgBP,CAAE,EACvBO,EAAK,cAAe,EACpBA,EAAK,eAAeP,CAAE,EACtBO,EAAK,eAAepC,CAAC,EACrBoC,EAAK,YAAYpC,EAAG6B,CAAE,EACtBO,EAAK,iBAAiBpC,EAAG6B,EAAIR,CAAI,EAEjCe,EAAK,cAAe,EACpBA,EAAK,eAAgB,EACrBA,EAAK,gBAAgBV,CAAE,EACvBU,EAAK,cAAe,EACpBA,EAAK,eAAeV,CAAE,EACtBU,EAAK,eAAerC,CAAC,EACrBqC,EAAK,YAAYrC,EAAG2B,CAAE,EACtBU,EAAK,iBAAiBrC,EAAG2B,EAAIL,CAAI,EAEjCe,EAAK,eAAgB,EACrBA,EAAK,sBAAsBjC,EAAG2B,EAAI,CAAE,SAAU,GAAI,EAClDM,EAAK,sBAAsBpC,EAAG6B,EAAI,CAAE,SAAU,GAAI,EAClDO,EAAK,sBAAsBrC,EAAG2B,EAAI,CAAE,SAAU,GAAI,EAClDU,EAAK,aAAc,EAEnBA,EAAK,cAAe,EACpBA,EAAK,qBAAqB5B,EAAGC,CAAC,EAC9B2B,EAAK,2BAA2BjC,EAAGU,CAAM,EACzCuB,EAAK,2BAA2BpC,EAAGY,CAAM,EACzCwB,EAAK,2BAA2BrC,EAAGW,CAAM,EACzC0B,EAAK,cAAe,EAEpBA,EAAK,QAAU,QACfA,EAAK,WAAa,GAClBA,EAAK,WAAWvB,CAAM,EACtBuB,EAAK,WAAWxB,CAAM,EACtBwB,EAAK,WAAW1B,CAAM,EACtB0B,EAAK,aAAc,EACnBA,EAAK,aAAavB,EAAQD,CAAM,EAChCwB,EAAK,aAAaxB,EAAQF,CAAM,EAChC0B,EAAK,aAAa1B,EAAQG,CAAM,EAChCuB,EAAK,aAAc,EACnBA,EAAK,cAAe,EAGpB1C,EAAQ,oCAAoCG,EAAQ,CAAC,CAAC,GAAGA,EAAQ,CAAC,CAAC,GAAGA,EAAQ,CAAC,CAAC,0CAA0CA,EAAQ,CAAC,CAAC,WAAWA,EAAQ,CAAC,CAAC,SACzJH,GAAS4C,EAAW/C,EAAcF,EAAkBD,CAAkB,EACtEO,EAAY2C,EAAW9C,EAAkBF,EAAsBF,CAAkB,EACjFO,GAAayC,EAAK,WAAY,EAC1B,KAAK,oBAAoB3C,EAAGO,EAAE,EAAGA,EAAE,EAAGG,EAAE,EAAGA,EAAE,CAAC,IAChD,KAAK,eAAe,KAAKT,CAAK,EAC9B,KAAK,iBAAiB,KAAKC,CAAS,EACpCF,KAEFG,GACD,CACD2C,EAAwB,IAAI,CAC7B,CACH"}