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/P015-bD55qIH0.js.map
{"version":3,"file":"P015-bD55qIH0.js","sources":["../../src/exercices/profs/P015.js"],"sourcesContent":["import { point } from '../../lib/2d/points.js'\nimport { infoMessage } from '../../lib/format/message.js'\nimport { texteGras } from '../../lib/format/style'\nimport Exercice from '../deprecatedExercice.js'\nimport { context } from '../../modules/context.js'\nimport Alea2iep from '../../modules/Alea2iep.js'\nimport { randint, enumerate, enumerateSansPuceSansNumero } from '../../modules/outils.js'\n\n// Les exports suivants sont optionnels mais au moins la date de publication semble essentielle\nexport const dateDePublication = '14/03/2022' // La date de publication initiale au format 'jj/mm/aaaa' pour affichage temporaire d'un tag\n\nexport const titre = 'Puzzles géométriques avec animation'\nexport const ref = 'P015'\nexport const uuid = '085ed'\n\n/**\n * Proposisiton des étapes de construction du puzzles géométriques type tangram, œuf magique ...\n * @author Sébastien LOZANO\n * Référence P015\n */\n\nexport default function PuzzlesGeometriques () {\n  Exercice.call(this)\n  this.titre = titre\n  this.nbQuestions = 1 // Ici le nombre de questions\n  this.nbQuestionsModifiable = false // Active le formulaire nombre de questions\n  // this.pasDeVersionLatex = true // mettre à true si on ne veut pas de l'exercice dans le générateur LaTeX\n  this.pas_de_version_HMTL = false // mettre à true si on ne veut pas de l'exercice en ligne\n  this.sup = 1\n  this.sup2 = true\n  this.typeExercice = 'IEP'\n  this.listePackages = ['bclogo', 'yhmath']\n\n  this.nouvelleVersion = function () {\n    const type = parseInt(this.sup)\n    const anim = new Alea2iep()\n    // anim.taille(1200, 1200)\n    anim.translationX = 4\n    anim.translationY = 20\n    // vitesse pour l'anim\n    anim.vitesse = 50 // 1000\n    anim.xMax = 20\n    anim.yMax = 20\n    let texte\n    texte = texteGras('PROGRAMME DE CONSTRUCTION')\n    // On factorise\n    /**\n     *\n     * @param {number} nbPieces nombre de pieces du puzzle\n     * @param {string} type type parmi oiseau, tangram, samLoyd\n     * @param {number} nbFig numero de la sihlouette tiré au hasard\n     * @returns un string\n     */\n    const texteMessage = (nbPieces, type) => {\n      let nbFig\n      switch (type) {\n        case 'oiseau':\n        case 'tangram':\n          nbFig = randint(1, 12)\n          break\n        case 'samLoyd':\n          nbFig = randint(1, 5)\n          break\n      }\n      let sortie = enumerateSansPuceSansNumero([\n        `Découper les ${nbPieces} pièces délimitées par les lignes rouges.`,\n        'Construire la silhouette proposée.'\n      ], 1.5)\n      if (context.isHtml) {\n        sortie += `<img class=\"ui middle aligned image\" src=\"assets/puzzlesGeom/img/${type}${nbFig}.png\"/>`\n      } else {\n        sortie += ` \\\\href{https://coopmaths.fr/assets/puzzlesGeom/img/${type}${nbFig}.png}{Cliquer pour la voir en ligne}`\n      }\n      return sortie\n    }\n\n    /**\n     *\n     * @param {string} version v1 ou v2\n     */\n    const samLoyd = (version) => {\n      // Adaptation de la taille de la fenêtre\n      anim.taille(600, 600)\n      anim.image('assets/puzzlesGeom/img/samLoydQuadrillage.png', point(-4, 19))\n      // Les points\n      let A, B, C, D, E, E1, F, F1, G, G1, H, H1, I\n      switch (version) {\n        case 'v1':\n          A = point(-2.35, 15.70, 'A')\n          B = point(1, 17.35, 'B')\n          C = point(6.01, 7.35, 'C')\n          D = point(-2.35, 7.35, 'D')\n          E = point(-2.35, 10.7, 'E')\n          F = point(-2.35, 14, 'F')\n          G = point(1, 14, 'G')\n          H = point(1, 9, 'H')\n          I = point(4.31, 10.7, 'I')\n          break\n        case 'v2':\n          // Les points aux intersections du quadrillage\n          A = point(2.7, 17.35, 'A')\n          B = point(6.01, 17.35, 'B')\n          C = point(6.01, 7.35, 'C')\n          D = point(-0.7, 10.7, 'D')\n          E1 = point(-0.7, 14, 'E_1')\n          F1 = point(-0.7, 17.35, 'F_1')\n          G1 = point(6.01, 14, 'G_1')\n          H1 = point(1, 7.35, 'H_1')\n          // Les points aux intersections de lignes tracées\n          E = point(0.65, 13.3, 'E')\n          F = point(2, 16, 'F')\n          G = point(4.65, 14.7, 'G')\n          H = point(2.7, 10.7, 'H')\n          I = point(6.01, 10.7, 'I')\n          break\n      }\n      // On place les points\n      anim.pointCreer(A, { dx: -0.7, dy: 0.7 })\n      anim.pointCreer(B, { dy: 0.7 })\n      anim.pointCreer(C, { dy: -0.2 })\n      version === 'v1' ? anim.pointCreer(D, { dy: -0.2 }) : anim.pointCreer(D, { dx: -0.4, dy: -0.2 })\n      if (version === 'v1') {\n        anim.pointCreer(E, { dx: -0.7, dy: 0.7 })\n        anim.pointCreer(F, { dx: -0.7, dy: 0.7 })\n        anim.pointCreer(G, { dy: 0.7 })\n        anim.pointCreer(H, { dy: 0.7 })\n      }\n      if (version === 'v2') {\n        anim.pointCreer(E1, { dx: -0.7, dy: 0.7 })\n        anim.pointCreer(F1, { dx: -0.7, dy: 0.8 })\n        anim.pointCreer(G1, { dx: 0.2, dy: 0.7 })\n        anim.pointCreer(H1, { dx: -0.7, dy: 0.7 })\n      }\n      anim.pointCreer(I, { dy: 0.7 })\n      // On trace les segments\n      anim.regleMasquerGraduations()\n      anim.regleSegment(A, B, { couleur: 'red', epaisseur: 4 })\n      anim.regleSegment(B, C, { couleur: 'red', epaisseur: 4 })\n      anim.regleSegment(C, D, { couleur: 'red', epaisseur: 4 })\n      anim.regleSegment(D, A, { couleur: 'red', epaisseur: 4 })\n      anim.regleSegment(D, I, { couleur: 'red', epaisseur: 4 })\n      if (version === 'v2') {\n        anim.regleSegment(F1, G1, { pointilles: 'tiret', couleur: 'gray', epaisseur: 1 })\n        anim.regleSegment(E1, I, { pointilles: 'tiret', couleur: 'gray', epaisseur: 1 })\n        anim.regleSegment(B, H1, { pointilles: 'tiret', couleur: 'gray', epaisseur: 1 })\n        anim.regleMasquer()\n        anim.pointCreer(E, { dx: -0.7, dy: 0.7 })\n        anim.pointCreer(F, { dx: -0.7, dy: 0.7 })\n        anim.pointCreer(G, { dx: -0.4, dy: 0.8 })\n        anim.pointCreer(H, { dx: -0.4, dy: 0.7 })\n        anim.regleMontrer()\n      }\n      anim.regleSegment(F, G, { couleur: 'red', epaisseur: 4 })\n      anim.regleSegment(B, H, { couleur: 'red', epaisseur: 4 })\n      anim.regleSegment(E, I, { couleur: 'red', epaisseur: 4 })\n\n      anim.regleMasquer()\n      anim.crayonMasquer()\n\n      if (version === 'v1') {\n        texte += enumerate([\n          'Placer les points $A$, $B$, $C$, $D$, $E$, $F$, $G$, $H$ et $I$.',\n          'Tracer en rouge les segments $[AB]$, $[BC]$, $[CD]$, $[DA]$, $[FG]$, $[GH]$, $[DI]$, $[EI]$.'\n        ], 1)\n      }\n      if (version === 'v2') {\n        texte += enumerate([\n          'Placer les points $A$, $B$, $C$, $D$, $E_1$, $F_1$, $G_1$, $H_1$ et $I$.',\n          'Tracer en rouge les segments $[AB]$, $[BC]$, $[CD]$, $[DA]$ et $[DI]$.',\n          'Tracer en pointillés, au crayon de papier, les segments $[F_1G_1]$, $[E_1I]$ et $[BH_1]$.',\n          'Placer $E$ à l\\'intersection de $[AD]$ et de $[E_1I]$',\n          'Placer $F$ à l\\'intersection de $[AD]$ et de $[F_1G_1]$',\n          'Placer $G$ à l\\'intersection de $[F_1G_1]$ et de $[BH_1]$',\n          'Placer $H$ à l\\'intersection de $[DI]$ et de $[BH_1]$',\n          'Tracer en rouge les segments $[FG]$, $[BH]$ et $[EI]$.'\n        ], 1)\n      }\n      if (context.isHtml) {\n        texte += `<img class=\"ui middle aligned image\" src=\"assets/puzzlesGeom/img/samLoydQuadrillageEtPoints${version}.png\"/>`\n      } else {\n        texte += `\\\\href{https://coopmaths.fr/assets/puzzlesGeom/img/samLoydQuadrillageEtPoints${version}.png}{Cliquer pour la voir en ligne}`\n      }\n      texte += infoMessage({\n        titre: `Sam Loyd ${version} !`,\n        texte: texteMessage(5, 'samLoyd'),\n        couleur: 'nombres'\n      })\n    }\n\n    switch (type) {\n      case 1: {\n        // Adaptation de la taille de la fenêtre\n        anim.taille(1200, 1200)\n        // Les points\n        const A1 = point(-3, 4)\n        const A = point(-2, 4, 'A')\n        const O = point(5, 4, 'O')\n        const C1 = point(13, 4)\n        const C = point(12, 4, 'C')\n        const B1 = point(5, 17, '(\\\\Delta \\')')\n        const B = point(5, 11, 'B')\n        const D = point(5, -3, 'D')\n        const D1 = point(5, -4)\n        // On trace les perpendiculaires delta et delta'\n        anim.regleModifierLongueur()\n        anim.regleDroite(A1, C1, { longueur: 16 })\n        anim.regleMasquer()\n        anim.crayonMasquer()\n        anim.textePoint('$(\\\\Delta)$', C1)\n        anim.pointCreer(O, { dx: 0.2, dy: -0.2 })\n        anim.equerreMontrer()\n        anim.equerreDeplacer(O)\n        anim.equerreRotation(180)\n        anim.regleMontrer()\n        anim.regleDeplacer(D1)\n        anim.regleRotation(90)\n        anim.equerreMasquer()\n        anim.regleDroite(D1, B1, { longueur: 20 })\n        anim.regleMasquer()\n        anim.crayonMasquer()\n        anim.textePoint('$(\\\\Delta \\')$', B1)\n        // On trace le cerlce\n        anim.compasEcarterAvecRegle(7)\n        anim.regleMasquer()\n        anim.compasCercleCentrePoint(O, C)\n        anim.compasMasquer()\n        anim.pointCreer(A, { dx: 0.2, dy: -0.2 })\n        anim.pointCreer(B, { dx: 0.2, dy: -0.2 })\n        anim.pointCreer(C, { dx: 0.2, dy: -0.2 })\n        anim.pointCreer(D, { dx: 0.2, dy: -0.2 })\n        // On trace les demi droite d'arrêt\n        anim.regleDemiDroiteOriginePoint(A, B, { longueur: 16 })\n        anim.regleDemiDroiteOriginePoint(C, B, { longueur: 16 })\n        anim.regleMasquer()\n        anim.compasEcarter2Points(A, C)\n        anim.compasTracerArc2Angles(0, 45, { couleur: 'red', epaisseur: 4 })\n        const F = point(7.9, 13.9, 'F')\n        anim.pointCreer(F, { dx: -0.2, dy: -0.5 })\n        anim.compasEcarter2Points(C, A)\n        anim.compasTracerArc2Angles(180, 135, { couleur: 'red', epaisseur: 4 })\n        const E = point(2.1, 13.9, 'E')\n        anim.pointCreer(E, { dx: -0.2, dy: -0.5 })\n        anim.compasEcarter2Points(B, F)\n        anim.compasTracerArc2Angles(45, 135, { couleur: 'red', epaisseur: 4 })\n        const H = point(5, 15.1, 'H')\n        anim.pointCreer(H, { dx: 0.2, dy: -0.5 })\n        anim.compasDeplacer(D)\n        anim.compasTracerArc2Angles(85, 95)\n        const G = point(5, 1.1, 'G')\n        anim.pointCreer(G, { dx: 0.2, dy: -0.2 })\n        anim.compasDeplacer(G)\n        anim.compasTracerArc2Angles(40, 140)\n        anim.compasMasquer()\n        const L = point(2.1, 4, 'L')\n        anim.pointCreer(L, { dx: -0.2, dy: -0.2 })\n        const K = point(7.9, 4, 'K')\n        anim.pointCreer(K, { dx: 0.2, dy: -0.2 })\n        anim.regleSegment(A, C, { couleur: 'red', epaisseur: 4 })\n        anim.regleSegment(L, G, { couleur: 'red', epaisseur: 4 })\n        anim.regleSegment(G, K, { couleur: 'red', epaisseur: 4 })\n        anim.regleSegment(G, D, { couleur: 'red', epaisseur: 4 })\n        anim.regleSegment(O, H, { couleur: 'red', epaisseur: 4 })\n        anim.regleSegment(A, F, { couleur: 'red', epaisseur: 4 })\n        anim.regleSegment(C, E, { couleur: 'red', epaisseur: 4 })\n        anim.regleMasquer()\n        anim.crayonMasquer()\n        anim.compasDeplacer(O)\n        anim.compasEcarter2Points(O, A)\n        anim.compasTracerArc2Angles(180, 360, { couleur: 'red', epaisseur: 4 })\n        anim.compasMasquer()\n        let myArcCommand\n        context.isHtml === true ? myArcCommand = '\\\\overgroup' : myArcCommand = '\\\\wideparen'\n        texte += enumerate([\n          'Tracer deux droites perpendiculaires $(\\\\Delta)$ et $(\\\\Delta \\')$, elles se coupent en $O$.',\n          'Tracer le cercle de centre $O$ et de rayon 7 cm.',\n          'Ce cercle coupe $(\\\\Delta)$ en $A$, à gauche de $O$, et $C$.',\n          'Ce cercle coupe $(\\\\Delta \\')$ en $B$, au dessus de $O$, et $D$.',\n          'Tracer les demi-droites $[AB)$ et $[CB)$',\n          `Le cercle de centre $A$ et de rayon $AC$ coupe $[AB)$ en $F$, tracer en rouge l'arc $${myArcCommand}{FC}$.`,\n          `Le cercle de centre $C$ et de rayon $AC$ coupe $[CB)$ en $E$, tracer en rouge l'arc $${myArcCommand}{EA}$.`,\n          `Tracer en rouge l'arc $${myArcCommand}{EF}$ de centre $B$ et de rayon $BE$. Il coupe $(\\\\Delta ')$ en $H$.`,\n          'Le cercle de centre $D$ et de rayon $BE$ coupe le segment $[BD]$ en $G$.',\n          'Le cercle de centre $G$ et de rayon $BE$ coupe le segment $[AC]$ en $L$ et $K$.<br> L est à gauche de $O$.',\n          'Effacer $[OG]$ et le noms des points.',\n          `Tracer en rouge $[AC]$, $[LG]$, $[GK]$, $[GD]$, $[OH]$, $[AF]$, $[CE]$ et l'arc $${myArcCommand}{AC}$ de centre $O$ situé sous le point $O$.`\n        ], 1)\n        texte += infoMessage({\n          titre: 'Les oiseaux sortent de l\\'œuf, c\\'est bien connu !',\n          texte: texteMessage(9, 'oiseau'),\n          couleur: 'nombres'\n        })\n      }\n        break\n      case 2: {\n        // Adaptation de la taille de la fenêtre\n        anim.taille(1200, 1200)\n        // Les points\n        const A = point(-2, 11, 'A')\n        const B = point(12, 11, 'B')\n        const C = point(12, -3, 'C')\n        const D = point(-2, -3, 'D')\n        anim.regleModifierLongueur()\n        // [AB]\n        anim.pointCreer(A, { dx: -0.8 })\n        anim.regleDroite(A, B, { longueur: 14 })\n        anim.regleMasquer()\n        anim.pointCreer(B)\n        // [AD]\n        anim.equerreMontrer()\n        anim.equerreDeplacer(A)\n        anim.equerreRotation(270)\n        anim.regleMontrer()\n        anim.regleDeplacer(A)\n        anim.regleRotation(270)\n        anim.equerreMasquer()\n        anim.regleDroite(A, D, { longueur: 14 })\n        anim.regleMasquer()\n        anim.pointCreer(D, { dx: -0.8 })\n        // [DC]\n        anim.equerreMontrer()\n        anim.equerreDeplacer(D)\n        anim.equerreRotation(0)\n        anim.regleMontrer()\n        anim.regleDeplacer(D)\n        anim.regleRotation(0)\n        anim.equerreMasquer()\n        anim.regleDroite(D, C, { longueur: 14 })\n        anim.regleMasquer()\n        anim.pointCreer(C)\n        // [CB]\n        anim.regleMontrer()\n        anim.regleDeplacer(C)\n        anim.regleRotation(90)\n        anim.regleDroite(C, B, { longueur: 14 })\n        anim.regleMasquer()\n        // Diagonale [BD]\n        anim.regleDroite(D, B)\n        // les points E,F,G\n        const E = point(1.5, 0.5, 'E')\n        const F = point(5, 4, 'F')\n        const G = point(8.5, 7.5, 'G')\n        anim.crayonDeplacer(E)\n        anim.pointCreer(E, { dx: -0.8, dy: 0.8 })\n        anim.crayonDeplacer(F)\n        anim.pointCreer(F, { dx: -0.8, dy: 0.2 })\n        anim.crayonDeplacer(G)\n        anim.pointCreer(G, { dx: -0.8, dy: 0.8 })\n        // Les points H et J\n        const H = point(5, -3, 'H')\n        const J = point(12, 4, 'J')\n        anim.regleMontrer()\n        anim.regleRotation(0)\n        anim.crayonMontrer()\n        anim.crayonDeplacer(H)\n        anim.regleMasquer()\n        anim.pointCreer(H, { dy: -0.2 })\n        anim.regleDeplacer(C)\n        anim.regleRotation(90)\n        anim.regleMontrer()\n        anim.crayonDeplacer(J)\n        anim.regleMasquer()\n        anim.pointCreer(J)\n        anim.regleDeplacer(H)\n        anim.regleRotation(45)\n        anim.regleSegment(H, J)\n        anim.regleMasquer()\n        // le point I\n        anim.regleDeplacer(A)\n        anim.regleRotation(-45)\n        const I = point(8.5, 0.5, 'I')\n        anim.regleMontrer()\n        anim.crayonMontrer()\n        anim.crayonDeplacer(I)\n        anim.pointCreer(I)\n        anim.regleMasquer()\n        anim.regleSegment(A, B, { couleur: 'red', epaisseur: 4 })\n        anim.regleSegment(B, C, { couleur: 'red', epaisseur: 4 })\n        anim.regleSegment(C, D, { couleur: 'red', epaisseur: 4 })\n        anim.regleSegment(D, A, { couleur: 'red', epaisseur: 4 })\n        anim.regleSegment(D, B, { couleur: 'red', epaisseur: 4 })\n        anim.regleSegment(A, I, { couleur: 'red', epaisseur: 4 })\n        anim.regleSegment(H, J, { couleur: 'red', epaisseur: 4 })\n        anim.regleSegment(E, H, { couleur: 'red', epaisseur: 4 })\n        anim.regleSegment(G, I, { couleur: 'red', epaisseur: 4 })\n        anim.regleMasquer()\n        anim.crayonMasquer()\n        texte += enumerate([\n          'Tracer un carré ABCD de 14 cm de côté.',\n          'Placer $E$, $F$ et $G$ sur $[DB]$ tels que $DE=EF=FG=GB$.',\n          'Placer $H$ au milieu de $[CD]$.',\n          'Placer $J$ au milieu de $[BC]$.',\n          'La diagonale $[AC]$ coupe $[HJ]$ en $I$',\n          'Tracer en rouge $[AB]$, $[BC]$, $[CD]$, $[DA]$, $[DB]$, $[AI]$, $[HJ]$, $[EH]$, $[GI]$.'\n        ], 1)\n        texte += infoMessage({\n          titre: 'Toute sorte de personnage peut sortir de ce drôle de carré, c\\'est bien connu !',\n          texte: texteMessage(7, 'tangram'),\n          couleur: 'nombres'\n        })\n      }\n        break\n      case 3:\n        samLoyd('v1')\n        break\n      case 4:\n        samLoyd('v2')\n        break\n    }\n\n    if (this.sup2) {\n      texte += anim.htmlBouton(this.numeroExercice)\n    }\n    this.contenu = texte\n    this.listeQuestions[0] = this.contenu\n  }\n  this.besoinFormulaireNumerique = ['Type de puzzle', 4, '1 : Oeuf magique\\n 2 : Tangram\\n 3 : Sam Loyd \\n 4 : Sam Loyd bis']\n  this.besoinFormulaire2CaseACocher = ['Animation disponible']\n}\n"],"names":["dateDePublication","titre","ref","uuid","PuzzlesGeometriques","Exercice","type","anim","Alea2iep","texte","texteGras","texteMessage","nbPieces","nbFig","randint","sortie","enumerateSansPuceSansNumero","context","samLoyd","version","point","A","B","C","D","E","E1","F","F1","G","G1","H","H1","I","enumerate","infoMessage","A1","O","C1","B1","D1","L","K","myArcCommand","J"],"mappings":"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"}