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/4G52-YoNF55Bb.js.map
{"version":3,"file":"4G52-YoNF55Bb.js","sources":["../../src/exercices/4e/4G52.js"],"sourcesContent":["import { tracePoint } from '../../lib/2d/points.js'\nimport { labelPoint } from '../../lib/2d/textes.js'\nimport { degSin, radians } from '../../lib/mathFonctions/trigo.js'\nimport { combinaisonListes } from '../../lib/outils/arrayOutils'\nimport { miseEnEvidence } from '../../lib/outils/embellissements'\nimport { lettreDepuisChiffre } from '../../lib/outils/outilString.js'\nimport { mathalea2d } from '../../modules/2dGeneralites.js'\nimport { arete3d, point3d } from '../../modules/3d.js'\nimport { context } from '../../modules/context.js'\nimport { listeQuestionsToContenu, randint } from '../../modules/outils.js'\nimport Exercice from '../Exercice.js'\n\nexport const titre = 'Spotting exercise in a straight block'\n\nexport const dateDeModifImportante = '03/05/2023'\n\n/**\n * Un point est situé dans un pavé découpé suivant les trois axes, on doit donner ses coordonnées\n * @author Arnaud Durand et Jean-Claude Lhote\n * Référence 4G52\n * publié 9/06/2021\n * Ajout d'un paramètre permettant de choisir entre placer un point et lire ses coordonnées\n */\nexport const uuid = '9c916'\nexport const ref = '4G52'\nexport default function ReperagePaveDroit () {\n  Exercice.call(this) // Héritage de la classe Exercice()\n  this.titre = titre\n  this.consigne = 'In the mark $(A;I;J;K)$:'\n  this.nbQuestions = 3\n  this.tailleDiaporama = 2\n\n  this.besoinFormulaireNumerique = ['Perspective angle', 3, '1: 30°\\n2: 45°\\n3: 60°']\n  this.sup = 1\n\n  this.besoinFormulaire2Numerique = ['Type of questions', 3, '1: Place a point\\n2: Read the coordinates\\n3: Mix']\n  this.sup2 = 1\n\n  this.nouvelleVersion = function () { // c'est ici que les données sont relatives\n    this.listeQuestions = [] // Liste de questions\n    this.listeCorrections = [] // Liste de questions corrigées\n    this.introduction = '' // consigne avant les question y mettre le dessin + texte\n\n    const hauteur = 12\n    const largeur = 12\n    const profondeur = 12\n    if (parseInt(this.sup) === 3) {\n      context.anglePerspective = 60\n      context.coeffPerspective = 0.4\n    } else if (parseInt(this.sup) === 2) {\n      context.anglePerspective = 45\n      context.coeffPerspective = 0.3\n    } else if (parseInt(this.sup) === 1) {\n      context.anglePerspective = 30\n      context.coeffPerspective = 0.4\n    }\n    const A = point3d(0, 0, 0, true, 'A', 'below left')\n    const B = point3d(largeur, 0, 0, true, 'B', 'below right')\n    const C = point3d(largeur, profondeur, 0, true, 'C', 'above right')\n    const D = point3d(0, profondeur, 0, true, 'D', 'above left')\n    const E = point3d(0, 0, hauteur, true, 'E', 'above left')\n    const F = point3d(largeur, 0, hauteur, true, 'F', 'above right')\n    const G = point3d(largeur, profondeur, hauteur, true, 'G', 'above right')\n    const H = point3d(0, profondeur, hauteur, true, 'H', 'above left')\n\n    const objetsAtracer = []\n    let nbgraduationx = randint(2, 4)\n    let nbgraduationy = randint(2, 3)\n    let nbgraduationz = randint(2, 4)\n    while ((nbgraduationx >= 3) && (nbgraduationy >= 3)) {\n      nbgraduationx = randint(2, 5)\n      nbgraduationy = randint(2, 3, nbgraduationx)\n      nbgraduationz = randint(2, 5, [nbgraduationx, nbgraduationy])\n    }\n    const deltax = largeur / nbgraduationx\n    const deltay = profondeur / nbgraduationy\n    const deltaz = hauteur / nbgraduationz\n    const I = point3d(deltax, 0, 0, true, 'I', 'below right')\n    const J = point3d(0, deltay, 0, false, 'J', 'above left')\n    const K = point3d(0, 0, deltaz, true, 'K', 'left')\n\n    objetsAtracer.push(labelPoint(A, B, C, D, E, F, G, H, I, J, K))\n\n    for (let i = 0; i <= nbgraduationy; i++) {\n      for (let j = 0, M, N, s; j <= nbgraduationz; j++) {\n        M = point3d(0, i * deltay, j * deltaz)\n        N = point3d(largeur, i * deltay, j * deltaz)\n\n        if ((i === 0) || (j === nbgraduationz)) {\n          s = arete3d(M, N, 'black', true)\n        } else {\n          s = arete3d(M, N, 'black', false)\n        }\n        objetsAtracer.push(s.c2d)\n      }\n    }\n    for (let i = 0; i <= nbgraduationx; i++) {\n      for (let j = 0, M, N, s; j <= nbgraduationz; j++) {\n        M = point3d(i * deltax, 0, j * deltaz)\n        N = point3d(i * deltax, profondeur, j * deltaz)\n        if ((i === nbgraduationx) || (j === nbgraduationz)) {\n          s = arete3d(M, N, 'black', true)\n        } else {\n          s = arete3d(M, N, 'black', false)\n        }\n        objetsAtracer.push(s.c2d)\n      }\n    }\n\n    for (let i = 0, M, N, s; i <= nbgraduationx; i++) {\n      M = point3d(i * deltax, 0, 0)\n      N = point3d(i * deltax, 0, hauteur)\n      s = arete3d(M, N, 'black', true)\n      objetsAtracer.push(s.c2d)\n      M = point3d(i * deltax, profondeur, 0)\n      N = point3d(i * deltax, profondeur, hauteur)\n      if (i < nbgraduationx) {\n        s = arete3d(M, N, 'black', false)\n      } else {\n        s = arete3d(M, N, 'black', true)\n      }\n      objetsAtracer.push(s.c2d)\n    }\n    for (let i = 1, M, N, s; i < nbgraduationy; i++) {\n      M = point3d(0, i * deltay, 0)\n      N = point3d(0, i * deltay, hauteur)\n      s = arete3d(M, N, 'black', false)\n      objetsAtracer.push(s.c2d)\n      M = point3d(largeur, i * deltay, 0)\n      N = point3d(largeur, i * deltay, hauteur)\n      s = arete3d(M, N, 'black', true)\n      objetsAtracer.push(s.c2d)\n    }\n\n    let typesDeQuestionsDisponibles = ['to place', 'read']\n    if (this.sup2 === 1) typesDeQuestionsDisponibles = ['to place']\n    if (this.sup2 === 2) typesDeQuestionsDisponibles = ['read']\n    const listeTypesDeQuestions = combinaisonListes(typesDeQuestionsDisponibles, this.nbQuestions)\n\n    for (let i = 0, texte, texteCorr, cpt = 0, pointCoord, s1, s2, s3, x, y, z, t, pointAplacer, objetsAtracerCorr; i < this.nbQuestions && cpt < 50;) {\n      // Main loop where i+1 corresponds to the question number\n      x = 0\n      y = 0\n      z = 0\n      while ((x === 0 && y === 0 && z === 0) || (x + y + y === 1)) {\n        x = randint(0, nbgraduationx)\n        y = randint(0, nbgraduationy)\n        z = randint(0, nbgraduationz)\n      }\n      pointCoord = [x, y, z]\n      pointAplacer = point3d(pointCoord[0] * deltax, pointCoord[1] * deltay, pointCoord[2] * deltaz, lettreDepuisChiffre(i + 12), `${lettreDepuisChiffre(i + 12)}`, 'below right')\n      s1 = arete3d(A, point3d(pointAplacer.x, 0, 0), 'blue', true)\n      s2 = arete3d(point3d(pointAplacer.x, 0, 0), point3d(pointAplacer.x, pointAplacer.y, 0), 'green', true)\n      s3 = arete3d(point3d(pointAplacer.x, pointAplacer.y, 0), pointAplacer, 'red', true)\n      s1.c2d.epaisseur = 3\n      s2.c2d.epaisseur = 3\n      s3.c2d.epaisseur = 3\n      t = tracePoint(pointAplacer, 'red')\n      t.epaisseur = 2\n      t.taille = 6\n      objetsAtracerCorr = [s1.c2d, s2.c2d, s3.c2d, t, labelPoint(pointAplacer)].concat(objetsAtracer)\n      if (listeTypesDeQuestions[i] === 'to place') {\n        texte = `Place the point $${lettreDepuisChiffre(i + 12)}$ with coordinates $(${pointCoord[0]};${pointCoord[1]};${pointCoord[2]})$.`\n        texteCorr = mathalea2d({\n          xmin: -1,\n          xmax: 1 + largeur + profondeur * Math.cos(radians(context.anglePerspective)),\n          ymin: -1,\n          ymax: 1 + hauteur + profondeur * context.coeffPerspective * degSin(context.anglePerspective),\n          scale: 0.6,\n          style: 'display:block; margin-top:20px;'\n        }, objetsAtracerCorr)\n        texteCorr += `<br>Point $${lettreDepuisChiffre(i + 12)}$ $(${miseEnEvidence(pointCoord[0], 'blue')};${miseEnEvidence(pointCoord[1], 'green')};${miseEnEvidence(pointCoord[2], 'red')})$.<br>`\n      } else {\n        texte = `Give the coordinates of the point $${lettreDepuisChiffre(i + 12)}$`\n        objetsAtracer.push(tracePoint(pointAplacer, 'blue'), labelPoint(pointAplacer))\n        texteCorr = mathalea2d({\n          xmin: -1,\n          xmax: 1 + largeur + profondeur * Math.cos(radians(context.anglePerspective)),\n          ymin: -1,\n          ymax: 1 + hauteur + profondeur * context.coeffPerspective * degSin(context.anglePerspective),\n          scale: 0.6,\n          style: 'display:block; margin-top:20px;'\n        }, objetsAtracerCorr)\n        texteCorr += `<br>The point $${lettreDepuisChiffre(i + 12)}$ has coordinates $(${miseEnEvidence(pointCoord[0], 'blue')};${miseEnEvidence(pointCoord[1], 'green')};${miseEnEvidence(pointCoord[2], 'red')})$.`\n      }\n\n      if (this.listeQuestions.indexOf(texte) === -1) {\n        // If the question has never been asked, we create another one\n        this.listeQuestions.push(texte)\n        this.listeCorrections.push(texteCorr)\n        i++\n      }\n      cpt++\n    }\n    this.introduction = (context.vue === 'slide' ? '<center>' : '') + mathalea2d({\n      xmin: -1,\n      xmax: 1 + largeur + (profondeur * context.coeffPerspective) * Math.cos(radians(context.anglePerspective)),\n      ymin: -1,\n      ymax: 1 + hauteur + profondeur * context.coeffPerspective * degSin(context.anglePerspective),\n      scale: 0.6,\n      style: 'display:block; margin-top:20px;'\n    }, objetsAtracer) + (context.vue === 'slide' ? '</center>' : '')\n    listeQuestionsToContenu(this)\n  }\n}\n"],"names":["titre","dateDeModifImportante","uuid","ref","ReperagePaveDroit","Exercice","hauteur","largeur","profondeur","context","A","point3d","B","C","D","E","F","G","H","objetsAtracer","nbgraduationx","randint","nbgraduationy","nbgraduationz","deltax","deltay","deltaz","I","J","K","labelPoint","i","j","M","N","s","arete3d","typesDeQuestionsDisponibles","listeTypesDeQuestions","combinaisonListes","texte","texteCorr","cpt","pointCoord","s1","s2","s3","x","y","z","t","pointAplacer","objetsAtracerCorr","lettreDepuisChiffre","tracePoint","mathalea2d","radians","degSin","miseEnEvidence","listeQuestionsToContenu"],"mappings":"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"}