File: /home/mmtprep/public_html/mathzen.mmtprep.com/assets/3G44-_mHDoKgQ.js.map
{"version":3,"file":"3G44-_mHDoKgQ.js","sources":["../../src/exercices/3e/3G44.js"],"sourcesContent":["import { tracePoint } from '../../lib/2d/points.js'\nimport { longueur, segment } from '../../lib/2d/segmentsVecteurs.js'\nimport { labelPoint } from '../../lib/2d/textes.js'\nimport { choice, shuffle } from '../../lib/outils/arrayOutils'\nimport { miseEnEvidence, texteEnCouleurEtGras } from '../../lib/outils/embellissements'\nimport { choisitLettresDifferentes } from '../../lib/outils/aleatoires'\nimport { arrondi, nombreDeChiffresDe, rangeMinMax } from '../../lib/outils/nombres.js'\nimport { sp } from '../../lib/outils/outilString.js'\nimport { texNombre } from '../../lib/outils/texNombre.js'\nimport Exercice from '../Exercice.js'\nimport { context } from '../../modules/context.js'\nimport { calculANePlusJamaisUtiliser, gestionnaireFormulaireTexte, listeQuestionsToContenu, randint } from '../../modules/outils.js'\nimport Grandeur from '../../modules/Grandeur'\nimport {\n CodageAngleDroit3D,\n cone3d,\n cube3d,\n cylindre3d,\n droite3d,\n pave3d,\n point3d,\n polygone3d,\n pyramide3d,\n rotation3d,\n sphere3d,\n translation3d,\n vecteur3d\n} from '../../modules/3d.js'\nimport { assombrirOuEclaircir, colorToLatexOrHTML, fixeBordures, mathalea2d } from '../../modules/2dGeneralites.js'\nimport { ajouteChampTexteMathLive } from '../../lib/interactif/questionMathLive.js'\nimport { RedactionPythagore } from '../4e/_pythagore.js'\nimport { setReponse } from '../../lib/interactif/gestionInteractif.js'\n\nexport const titre = 'Determining lengths in geometry in space'\nexport const amcReady = true\nexport const amcType = 'AMCHybride'\nexport const interactifReady = true\nexport const interactifType = 'mathLive'\nexport const dateDePublication = '19/12/2022'\nexport const dateDeModifImportante = '13/11/2023'\n\n/**\n * Calcul de longueurs avec Pythagore dans la géométrie dans l'espace\n * @author Eric Elter\n */\n\nexport const uuid = '57c70'\nexport const ref = '3G44'\nexport default function CalculPythagoreEspace () {\n Exercice.call(this) // Héritage de la classe Exercice()\n this.titre = titre\n this.nbQuestions = 4\n this.sup2 = 1\n this.sup = 10\n\n this.nouvelleVersion = function () {\n this.autoCorrection = []\n\n const listeTypeDeQuestions = gestionnaireFormulaireTexte({\n saisie: this.sup,\n min: 1,\n max: 9,\n defaut: 10,\n melange: 10,\n nbQuestions: this.nbQuestions\n }) // Tous les types de questions sont posées mais l'ordre diffère à chaque 'cycle'\n this.listeQuestions = [] // Liste de questions\n this.listeCorrections = [] // Liste de questions corrigées\n const listeUnites = [\n 'km',\n 'hmm',\n 'dam',\n 'm',\n 'dm',\n 'cm',\n 'mm'\n ]\n for (let i = 0, texte, texteCorr, reponse, objetsEnonce, A, B, C, D, E, BC, segmentATrouver, segmentAnnexe, solideDessine, longueurATrouver, nomSolide, segmentChoisi, choixSegments = [],\n L, p, J, K, M, JK, I, choixProfondeur, h, c, j, anglesPossibles, indiceAngleChoisi, ptBase, ptBase2, ptsBase, nbSommets, numeroSommet,\n r, r2, v, sph, cpt = 0; i < this.nbQuestions && cpt < 50;) {\n this.autoCorrection[i] = {}\n texte = ''\n texteCorr = ''\n objetsEnonce = []\n context.anglePerspective = choice([-30, -60, 30, 60])\n j = randint(0, 6) // Permet de choisir l'unité utilisée dans chaque question\n switch (listeTypeDeQuestions[i]) {\n case 1: // Diagonale de la face d'un cube\n A = point3d(0, 0, 0)\n c = randint(5, 10)\n B = point3d(c, 0, 0)\n D = point3d(0, 0, c)\n choixProfondeur = choice([c, -c])\n E = point3d(0, choixProfondeur, 0)\n\n nomSolide = choisitLettresDifferentes(8, 'OQWX').join('')\n solideDessine = pave3d(A, B, D, E, 'blue', true, nomSolide)\n\n choixSegments.push(['02', '1'], ['13', '2'])\n if (choixProfondeur > 0) {\n choixSegments.push(['16', '5'], ['25', '6']) // Ce sont les diagonales des faces visibles et le sommet qui forme un triangle rectangle\n if (context.anglePerspective > 0) choixSegments.push(['27', '3'], ['36', '2'])\n else choixSegments.push(['14', '5'], ['05', '1'])\n } else {\n choixSegments.push(['07', '3'], ['34', '0']) // Ce sont les diagonales des faces visibles et le sommet qui forme un triangle rectangle\n if (context.anglePerspective < 0) choixSegments.push(['27', '3'], ['36', '2'])\n else choixSegments.push(['14', '5'], ['05', '1'])\n }\n segmentChoisi = choice(choixSegments)\n J = nomSolide[parseInt(segmentChoisi[0][0])]\n K = nomSolide[parseInt(segmentChoisi[0][1])]\n I = nomSolide[parseInt(segmentChoisi[1])] // IJK est rectangle en I\n longueurATrouver = J + K\n texte += `Knowing that the cube $${nomSolide}$ has edges of $${c}$ ${listeUnites[j]}, calculate the length $${longueurATrouver}$, rounded to the tenth of ${listeUnites[j]}.<br>`\n segmentATrouver = segment(solideDessine.sommets[parseInt(segmentChoisi[0][0])].c2d, solideDessine.sommets[parseInt(segmentChoisi[0][1])].c2d, '#f15929')\n segmentATrouver.epaisseur = 2\n objetsEnonce.push(...solideDessine.c2d, segmentATrouver)\n texte += mathalea2d(Object.assign({}, fixeBordures(objetsEnonce), {\n scale: 0.7,\n style: 'block'\n }), objetsEnonce) + '<br>'\n objetsEnonce.push(new CodageAngleDroit3D(solideDessine.sommets[parseInt(segmentChoisi[0][0])], solideDessine.sommets[parseInt(segmentChoisi[1])], solideDessine.sommets[parseInt(segmentChoisi[0][1])], '#f15929', 2))\n texteCorr += '<br>' + mathalea2d(Object.assign({}, fixeBordures(objetsEnonce), {\n scale: 0.7,\n style: 'block'\n }), objetsEnonce) + '<br>'\n reponse = arrondi(Math.sqrt(c ** 2 + c ** 2), 1)\n texteCorr += '<br>' + RedactionPythagore(I, J, K, 1, c, c, reponse, listeUnites[j])[0]\n\n break\n case 2: // Diagonale d'un cube\n // c = new Decimal(randint(2, 10)).plus(Decimalpart1)\n c = randint(5, 10)\n nomSolide = choisitLettresDifferentes(8, 'OQWX')\n nomSolide = nomSolide.join('')\n choixSegments = [['60', '5', '05', '1'], ['71', '4', '14', '0'], ['24', '1', '41', '0'], ['35', '0', '50', '1']] // Ce sont les diagonales du cubes, le sommet qui forme un triangle rectangle, la diagonale d'une face et le sommet qui forme un triangle rectangle avec cette dernière diagonale\n segmentChoisi = choice(choixSegments)\n B = nomSolide[parseInt(segmentChoisi[0][0])]\n C = nomSolide[parseInt(segmentChoisi[0][1])]\n A = nomSolide[parseInt(segmentChoisi[1])] // ABC est rectangle en A\n D = nomSolide[parseInt(segmentChoisi[3])] // ACD est rectangle en D\n\n longueurATrouver = B + C\n texte += `Knowing that the cube $${nomSolide}$ has edges of $${c}$ ${listeUnites[j]}, calculate the length $${longueurATrouver}$, rounded to the tenth of ${listeUnites[j]}.<br>`\n solideDessine = cube3d(1, 1, 1, c, 'blue', '', '', '', false, true, nomSolide)\n segmentATrouver = segment(solideDessine.sommets[parseInt(segmentChoisi[0][0])].c2d, solideDessine.sommets[parseInt(segmentChoisi[0][1])].c2d, '#f15929')\n segmentATrouver.epaisseur = 2\n segmentATrouver.pointilles = 2\n objetsEnonce.push(...solideDessine.c2d, segmentATrouver)\n texte += mathalea2d(Object.assign({}, fixeBordures(objetsEnonce), {\n scale: 0.7,\n style: 'block'\n }), objetsEnonce) + '<br>'\n objetsEnonce.push(new CodageAngleDroit3D(solideDessine.sommets[parseInt(segmentChoisi[0][0])], solideDessine.sommets[parseInt(segmentChoisi[1])], solideDessine.sommets[parseInt(segmentChoisi[0][1])], '#f15929', 2))\n segmentAnnexe = segment(solideDessine.sommets[parseInt(segmentChoisi[1])].c2d, solideDessine.sommets[parseInt(segmentChoisi[0][1])].c2d, 'green')\n segmentAnnexe.epaisseur = 2\n segmentAnnexe.pointilles = 1\n objetsEnonce.push(segmentAnnexe)\n objetsEnonce.push(new CodageAngleDroit3D(solideDessine.sommets[parseInt(segmentChoisi[1])], solideDessine.sommets[parseInt(segmentChoisi[3])], solideDessine.sommets[parseInt(segmentChoisi[0][1])], 'green', 2))\n texteCorr += '<br>' + mathalea2d(Object.assign({}, fixeBordures(objetsEnonce), {\n scale: 0.7,\n style: 'block'\n }), objetsEnonce) + '<br>'\n texteCorr += `The triangle $${longueurATrouver + A}$ is right-angled in $${A}$ so according to the Pythagorean theorem, we have:`\n texteCorr += `$${longueurATrouver}^2=${A + B}^2+${A + C}^2$.`\n texteCorr += `<br> We cannot continue if we do not know the value of $${A + C}^2$. Let's find it.`\n texteCorr += `<br> ${sp(10)}The triangle $${C + A + D}$ is right-angled in $${D}$ so according to the Pythagorean theorem, we have:`\n texteCorr += `$${A + C}^2=${A + D}^2+${D + C}^2$.`\n\n BC = texNombre(calculANePlusJamaisUtiliser(Math.sqrt(c ** 2 + c ** 2 + c ** 2), 1))\n reponse = arrondi(Math.sqrt(c ** 2 + c ** 2 + c ** 2), 1)\n texteCorr += `<br> ${sp(10)}$${A + C}^2=${texNombre(c)}^2+${texNombre(c)}^2$`\n texteCorr += `<br> ${sp(10)}$${miseEnEvidence(A + C, 'green')}^2=${miseEnEvidence(texNombre(c ** 2 + c ** 2), 'green')}$`\n texteCorr += `<br> ${sp(10)} No need to find the value of $${A + C}$ because only its square interests us here.`\n texteCorr += `<br> Let's go back to $${longueurATrouver}^2=${A + B}^2+${A + C}^2$.`\n texteCorr += `<br> $${longueurATrouver}^2=${texNombre(c)}^2+${miseEnEvidence(texNombre(c ** 2 + c ** 2), 'green')} = ${texNombre(c ** 2 + c ** 2 + c ** 2)}$`\n texteCorr += `<br> $${longueurATrouver}=\\\\sqrt{${texNombre(c ** 2 + c ** 2 + c ** 2)}}$`\n texteCorr += `<br> $${longueurATrouver}\\\\approx${miseEnEvidence(BC)}$ ${texteEnCouleurEtGras(listeUnites[j])}`\n break\n case 3: // Diagonale de la face d'un pavé droit\n L = randint(5, 20)\n h = randint(5, 20, [L])\n p = randint(5, 20, [L, h])\n A = point3d(0, 0, 0)\n B = point3d(L, 0, 0)\n D = point3d(0, 0, h)\n choixProfondeur = choice([p, -p])\n E = point3d(0, choixProfondeur, 0)\n\n nomSolide = choisitLettresDifferentes(8, 'OQWX').join('')\n solideDessine = pave3d(A, B, D, E, 'blue', true, nomSolide)\n choixSegments = []\n choixSegments.push(['02', '1', L, h], ['13', '2', h, L])\n if (choixProfondeur > 0) {\n choixSegments.push(['16', '5', p, h], ['25', '6', p, h]) // Ce sont les diagonales des faces visibles et le sommet qui forme un triangle rectangle\n if (context.anglePerspective > 0) choixSegments.push(['27', '3', L, p], ['36', '2', L, p])\n else choixSegments.push(['14', '5', p, L], ['05', '1', L, p])\n } else {\n choixSegments.push(['07', '3', h, p], ['34', '0', p, h]) // Ce sont les diagonales des faces visibles et le sommet qui forme un triangle rectangle\n if (context.anglePerspective < 0) choixSegments.push(['27', '3', L, p], ['36', '2', L, p])\n else choixSegments.push(['14', '5', p, L], ['05', '1', L, p])\n }\n\n segmentChoisi = choice(choixSegments)\n J = nomSolide[parseInt(segmentChoisi[0][0])]\n K = nomSolide[parseInt(segmentChoisi[0][1])]\n I = nomSolide[parseInt(segmentChoisi[1])] // IJK est rectangle en I\n\n longueurATrouver = J + K\n texte += `Knowing that in the right box $${nomSolide}$, $${nomSolide[0]}${nomSolide[1]} = ${L}$ ${listeUnites[j]}, $${nomSolide[0]}${nomSolide[3]} = ${h}$ ${listeUnites[j]} and $${nomSolide[0]}${nomSolide[4]} = ${p}$ ${listeUnites[j]}, calculate the length $${longueurATrouver}$, rounded to the tenth of ${listeUnites[j]}.<br>`\n segmentATrouver = segment(solideDessine.sommets[parseInt(segmentChoisi[0][0])].c2d, solideDessine.sommets[parseInt(segmentChoisi[0][1])].c2d, '#f15929')\n segmentATrouver.epaisseur = 2\n objetsEnonce.push(...solideDessine.c2d, segmentATrouver)\n texte += mathalea2d(Object.assign({}, fixeBordures(objetsEnonce), {\n scale: context.isHtml ? 0.7 : 0.3,\n style: 'block'\n }), objetsEnonce) + '<br>'\n objetsEnonce.push(new CodageAngleDroit3D(solideDessine.sommets[parseInt(segmentChoisi[0][0])], solideDessine.sommets[parseInt(segmentChoisi[1])], solideDessine.sommets[parseInt(segmentChoisi[0][1])], '#f15929', 2))\n texteCorr += '<br>' + mathalea2d(Object.assign({}, fixeBordures(objetsEnonce), {\n scale: context.isHtml ? 0.7 : 0.3,\n style: 'block'\n }), objetsEnonce) + '<br>'\n reponse = arrondi(Math.sqrt(segmentChoisi[2] ** 2 + segmentChoisi[3] ** 2), 1)\n texteCorr += '<br>' + RedactionPythagore(I, J, K, 1, segmentChoisi[2], segmentChoisi[3], reponse, listeUnites[j])[0]\n\n break\n case 4: // Diagonale d'un pavé droit\n L = randint(5, 20)\n h = randint(5, 20, [L])\n p = randint(5, 20, [L, h])\n A = point3d(0, 0, 0)\n B = point3d(L, 0, 0)\n D = point3d(0, 0, h)\n choixProfondeur = choice([p, -p])\n E = point3d(0, choixProfondeur, 0)\n\n nomSolide = choisitLettresDifferentes(8, 'OQWX').join('')\n solideDessine = pave3d(A, B, D, E, 'blue', true, nomSolide)\n choixSegments = [['60', '5', '05', '1', p, L, h], ['71', '4', '14', '0', p, L, h],\n ['24', '1', '41', '0', L, p, h], ['35', '0', '50', '1', L, p, h]] // Ce sont les diagonales du cubes, le sommet qui forme un triangle rectangle, la diagonale d'une face et le sommet qui forme un triangle rectangle avec cette dernière diagonale\n segmentChoisi = choice(choixSegments)\n J = nomSolide[parseInt(segmentChoisi[0][0])]\n K = nomSolide[parseInt(segmentChoisi[0][1])]\n I = nomSolide[parseInt(segmentChoisi[1])] // IJK est rectangle en I\n M = nomSolide[parseInt(segmentChoisi[3])] // ACD est rectangle en\n longueurATrouver = J + K\n texte += `Knowing that in the right box $${nomSolide}$, $${nomSolide[0]}${nomSolide[1]} = ${L}$ ${listeUnites[j]}, $${nomSolide[0]}${nomSolide[3]} = ${h}$ ${listeUnites[j]} and $${nomSolide[0]}${nomSolide[4]} = ${p}$ ${listeUnites[j]}, calculate the length $${longueurATrouver}$, rounded to the tenth of ${listeUnites[j]}.<br>`\n segmentATrouver = segment(solideDessine.sommets[parseInt(segmentChoisi[0][0])].c2d, solideDessine.sommets[parseInt(segmentChoisi[0][1])].c2d, '#f15929')\n segmentATrouver.epaisseur = 2\n segmentATrouver.pointilles = 2\n objetsEnonce.push(...solideDessine.c2d, segmentATrouver)\n texte += mathalea2d(Object.assign({}, fixeBordures(objetsEnonce), {\n scale: context.isHtml ? 0.7 : 0.3,\n style: 'block'\n }), objetsEnonce) + '<br>'\n segmentAnnexe = segment(solideDessine.sommets[parseInt(segmentChoisi[1])].c2d, solideDessine.sommets[parseInt(segmentChoisi[0][1])].c2d, 'green')\n segmentAnnexe.epaisseur = 2\n segmentAnnexe.pointilles = 1\n objetsEnonce.push(segmentAnnexe)\n objetsEnonce.push(new CodageAngleDroit3D(solideDessine.sommets[parseInt(segmentChoisi[0][0])], solideDessine.sommets[parseInt(segmentChoisi[1])], solideDessine.sommets[parseInt(segmentChoisi[0][1])], '#f15929', 2))\n objetsEnonce.push(new CodageAngleDroit3D(solideDessine.sommets[parseInt(segmentChoisi[1])], solideDessine.sommets[parseInt(segmentChoisi[3])], solideDessine.sommets[parseInt(segmentChoisi[0][1])], 'green', 2))\n texteCorr += '<br>' + mathalea2d(Object.assign({}, fixeBordures(objetsEnonce), {\n scale: 0.7,\n style: 'block'\n }), objetsEnonce) + '<br>'\n texteCorr += `The triangle $${longueurATrouver + I}$ is right-angled in $${I}$ so according to the Pythagorean theorem, we have:`\n texteCorr += `$${longueurATrouver}^2=${I + J}^2+${I + K}^2$.`\n texteCorr += `<br> We cannot continue if we do not know the value of $${I + K}^2$. Let's find it.`\n texteCorr += `<br> ${sp(10)}The triangle $${K + I + M}$ is right-angled in $${M}$ so according to the Pythagorean theorem, we have:`\n texteCorr += `$${I + K}^2=${I + M}^2+${M + K}^2$.`\n\n JK = texNombre(calculANePlusJamaisUtiliser(Math.sqrt(segmentChoisi[4] ** 2 + segmentChoisi[5] ** 2 + segmentChoisi[6] ** 2), 1))\n reponse = arrondi(Math.sqrt(segmentChoisi[4] ** 2 + segmentChoisi[5] ** 2 + segmentChoisi[6] ** 2), 1)\n texteCorr += `<br> ${sp(10)}$${I + K}^2=${texNombre(segmentChoisi[4])}^2+${texNombre(segmentChoisi[5])}^2$`\n texteCorr += `<br> ${sp(10)}$${miseEnEvidence(I + K, 'green')}^2=${miseEnEvidence(texNombre(segmentChoisi[4] ** 2 + segmentChoisi[5] ** 2), 'green')}$`\n texteCorr += `<br> ${sp(10)} No need to find the value of $${I + K}$ because only its square interests us here.`\n texteCorr += `<br> Let's go back to $${longueurATrouver}^2=${I + J}^2+${I + K}^2$.`\n texteCorr += `<br> $${longueurATrouver}^2=${texNombre(segmentChoisi[6])}^2+${miseEnEvidence(texNombre(segmentChoisi[4] ** 2 + segmentChoisi[5] ** 2), 'green')} = ${texNombre(segmentChoisi[6] ** 2 + segmentChoisi[4] ** 2 + segmentChoisi[5] ** 2)}$`\n texteCorr += `<br> $${longueurATrouver}=\\\\sqrt{${texNombre(segmentChoisi[6] ** 2 + segmentChoisi[4] ** 2 + segmentChoisi[5] ** 2)}}$`\n texteCorr += `<br> $${longueurATrouver}\\\\approx${miseEnEvidence(JK)}$ ${texteEnCouleurEtGras(listeUnites[j])}`\n break\n case 5: // Dans un cylindre\n r = randint(4, 10)\n h = randint(5, 15, [r])\n A = point3d(0, 0, 0, true, choisitLettresDifferentes(1, 'OQWX')[0], 'left')\n if (choice([0, 1, 2]) === 0) {\n B = point3d(r, 0, 0)\n D = point3d(0, 0, h, true, choisitLettresDifferentes(1, 'OQWX' + A.label)[0], 'left')\n } else if (choice([0, 1]) === 0) {\n B = point3d(0, r, 0)\n D = point3d(h, 0, 0, true, choisitLettresDifferentes(1, 'OQWX' + A.label)[0], 'left')\n } else {\n B = point3d(0, 0, r)\n D = point3d(0, h, 0, true, choisitLettresDifferentes(1, 'OQWX' + A.label)[0], 'left')\n }\n v = vecteur3d(A, B)\n solideDessine = cylindre3d(A, D, v, v, 'blue', false, true, true, 'black')\n\n // To place a point on the visible base but which is not too close to the axis and the two generators.\n anglesPossibles = shuffle(rangeMinMax(2, solideDessine.pointsBase2.length - 3, [16, 17, 18, 19, 20]))\n indiceAngleChoisi = 0\n while (longueur(D.c2d, solideDessine.pointsBase2[anglesPossibles[indiceAngleChoisi]]) < longueur(D.c2d, solideDessine.pointsBase2[0]) / 2) {\n indiceAngleChoisi++\n }\n\n ptBase2 = rotation3d(translation3d(D, v), droite3d(A, vecteur3d(A, D)), solideDessine.angleDepart + 10 * anglesPossibles[indiceAngleChoisi])\n ptBase2.c2d.nom = choisitLettresDifferentes(1, 'OQWX' + A.label + D.label)[0]\n longueurATrouver = A.label + ptBase2.c2d.nom\n segmentATrouver = segment(A.c2d, ptBase2.c2d, '#f15929')\n segmentATrouver.epaisseur = 2\n segmentATrouver.pointilles = 2\n objetsEnonce.push(...solideDessine.c2d, segmentATrouver, tracePoint(ptBase2), labelPoint(A, D, ptBase2.c2d))\n texte += `In this cylinder of revolution, the radius of its bases (with respective centers $${A.label}$ and $${D.label}$) is $${r}$ ${listeUnites[j]} and its height is $${h}$ ${listeUnites[j]}. Knowing that the point $${ptBase2.c2d.nom}$ is on the base of center $${D.label}$, calculate the length $${longueurATrouver}$, rounded to the tenth of ${listeUnites[j]}.<br>`\n texte += '<br>' + mathalea2d(Object.assign({}, fixeBordures([...solideDessine.c2d]), {\n scale: context.isHtml ? 0.7 : 0.3,\n style: 'block'\n }), objetsEnonce)\n\n objetsEnonce.push(new CodageAngleDroit3D(A, D, ptBase2, 'green', 2))\n segmentAnnexe = segment(D.c2d, ptBase2.c2d, 'green')\n objetsEnonce.push(segmentAnnexe)\n segmentAnnexe = segment(D.c2d, A.c2d, 'green')\n objetsEnonce.push(segmentAnnexe)\n texteCorr += '<br>' + mathalea2d(Object.assign({}, fixeBordures(objetsEnonce), {\n scale: context.isHtml ? 0.7 : 0.3,\n style: 'block'\n }), objetsEnonce)\n reponse = arrondi(Math.sqrt(h ** 2 + r ** 2), 1)\n texteCorr += '<br>' + RedactionPythagore(D.label, A.label, ptBase2.c2d.nom, 1, h, r, reponse, listeUnites[j])[0]\n break\n case 6: // Dans une pyramide à base régulière\n r = randint(4, 10)\n h = randint(5, 15, [r])\n A = point3d(0, 0, 0, true, choisitLettresDifferentes(1, 'OQWX')[0], 'left')\n B = point3d(r, 0, 0)\n D = point3d(0, 0, h * (1), true, choisitLettresDifferentes(1, 'OQWX' + A.label)[0], 'left')\n v = vecteur3d(A, B)\n ptsBase = [B]\n nbSommets = choice([3, 5, 6, 7])\n for (let ee = 1; ee < nbSommets; ee++) {\n // pyramid with non-regular base: ptsBase.push(rotation3d(B, straight3d(A, vector3d(D, A)), ee * 360 / (nbVertices) + choice([-10, 10]) * randint(0, 2)))\n ptsBase.push(rotation3d(B, droite3d(A, vecteur3d(D, A)), ee * 360 / (nbSommets)))\n }\n p = polygone3d(ptsBase, 'blue')\n solideDessine = pyramide3d(p, D, 'blue', A, true, 'black', true)\n numeroSommet = randint(0, nbSommets - 1)\n segmentATrouver = solideDessine.aretesSommet[numeroSommet].c2d\n segmentATrouver.epaisseur = 2\n segmentATrouver.color = colorToLatexOrHTML('#f15929')\n longueurATrouver = D.label + p.listePoints2d[numeroSommet].nom\n texte += `$${solideDessine.nom}$ is a regular pyramid. The distance between $${A.label}$, the center of the base, and one of the vertices of the base is $${r}$ ${listeUnites[j]} and the height of this pyramid is $${h}$ ${listeUnites[j]}. Calculate the length $${longueurATrouver}$, rounded to the tenth of ${listeUnites[j]}.<br>`\n texte += mathalea2d(Object.assign({}, fixeBordures([...solideDessine.c2d]), {\n scale: context.isHtml ? 0.7 : 0.3,\n style: 'block'\n }), [...solideDessine.c2d, segmentATrouver])\n\n objetsEnonce.push(...solideDessine.c2d, segmentATrouver, new CodageAngleDroit3D(D, A, p.listePoints[numeroSommet], 'green', 2))\n segmentAnnexe = segment(A.c2d, p.listePoints2d[numeroSommet], 'green')\n objetsEnonce.push(segmentAnnexe)\n segmentAnnexe = segment(D.c2d, A.c2d, 'green')\n objetsEnonce.push(segmentAnnexe)\n texteCorr += '<br>' + mathalea2d(Object.assign({}, fixeBordures(objetsEnonce), {\n scale: context.isHtml ? 0.7 : 0.3,\n style: 'block'\n }), objetsEnonce)\n reponse = arrondi(Math.sqrt(h ** 2 + r ** 2), 1)\n texteCorr += '<br>' + RedactionPythagore(A.label, D.label, p.listePoints2d[numeroSommet].nom, 1, h, r, reponse, listeUnites[j])[0]\n break\n case 7: // Dans un cône\n r = randint(4, 10)\n h = randint(5, 15, [r])\n A = point3d(0, 0, 0, true, choisitLettresDifferentes(1, 'OQWX')[0], 'left')\n B = point3d(r, 0, 0)\n D = point3d(0, 0, h, true, choisitLettresDifferentes(1, 'OQWX' + A.label)[0], 'left')\n v = vecteur3d(A, B)\n ptsBase = [B]\n nbSommets = 36\n for (let ee = 1; ee < nbSommets; ee++) {\n ptsBase.push(rotation3d(B, droite3d(A, vecteur3d(D, A)), ee * 360 / (nbSommets)))\n }\n p = polygone3d(ptsBase, 'blue')\n solideDessine = cone3d(A, D, v, 'blue', true, 'black', assombrirOuEclaircir('gray', 100))\n numeroSommet = randint(1, Math.floor(nbSommets / 2) - 1)\n if (context.anglePerspective < 0) numeroSommet = (nbSommets - numeroSommet) % nbSommets\n segmentATrouver = segment(D.c2d, p.listePoints2d[numeroSommet], '#f15929')\n segmentATrouver.epaisseur = 2\n texte += `In this cone of revolution, the radius of its base is $${r}$ ${listeUnites[j]} and its height is $${h}$ ${listeUnites[j]}. Calculate the length of a generatrix of this cone, rounded to the tenth of ${listeUnites[j]}.<br>`\n texte += mathalea2d(Object.assign({}, fixeBordures([...solideDessine.c2d]), {\n scale: context.isHtml ? 0.7 : 0.3,\n style: 'block'\n }), [...solideDessine.c2d, segmentATrouver])\n\n ptBase = p.listePoints2d[numeroSommet]\n ptBase.nom = choisitLettresDifferentes(1, 'OQWX' + A.label + D.label)[0]\n ptBase.positionLabel = 'below'\n longueurATrouver = D.label + ptBase.nom\n objetsEnonce.push(...solideDessine.c2d, segmentATrouver, new CodageAngleDroit3D(D, A, p.listePoints[numeroSommet], 'green', 2))\n segmentAnnexe = segment(A.c2d, p.listePoints2d[numeroSommet], 'green')\n objetsEnonce.push(segmentAnnexe)\n segmentAnnexe = segment(D.c2d, A.c2d, 'green')\n objetsEnonce.push(segmentAnnexe)\n objetsEnonce.push(labelPoint(ptBase, D.c2d))\n texteCorr += '<br>' + mathalea2d(Object.assign({}, fixeBordures(objetsEnonce), {\n scale: context.isHtml ? 0.7 : 0.3,\n style: 'block'\n }), objetsEnonce)\n reponse = arrondi(Math.sqrt(h ** 2 + r ** 2), 1)\n texteCorr += '<br>' + RedactionPythagore(A.label, D.label, ptBase.nom, 1, h, r, reponse, listeUnites[j])[0]\n break\n case 8: // Rayon dans une sphère\n context.anglePerspective = randint(2, 6) * choice([10, -10])\n r = randint(4, 10)\n choixProfondeur = choice([1, 2, 4])\n r2 = r * Math.cos(choixProfondeur / 6 * Math.PI / 2)\n A = point3d(0, 0, 0, true, choisitLettresDifferentes(1, 'OQWX')[0], 'left')\n h = A.z + r * Math.sin(choixProfondeur / 6 * Math.PI / 2)\n B = point3d(r2, A.y, h, true)\n B = rotation3d(B, droite3d(A, vecteur3d(0, 0, 1)), context.anglePerspective < 0 ? 30 : -30)\n B.label = choisitLettresDifferentes(1, 'OQWX' + A.label)[0]\n B.c2d.nom = B.label\n B.c2d.positionLabel = 'below'\n D = point3d(0, A.y, h, true, choisitLettresDifferentes(1, 'OQWX' + A.label + B.label)[0])\n longueurATrouver = B.label + A.label\n segmentATrouver = segment(A.c2d, B.c2d, '#f15929')\n segmentATrouver.epaisseur = 2\n segmentATrouver.pointilles = 2\n segmentAnnexe = segment(D.c2d, B.c2d, 'black')\n segmentAnnexe.pointilles = 2\n h = arrondi(h, 1)\n r2 = arrondi(r2, 1)\n sph = sphere3d(A, r, 'green', 'blue', 12, 'lightgray', 0, 'black', true)\n objetsEnonce = sph.c2d\n objetsEnonce.push(segmentATrouver, segmentAnnexe, tracePoint(B, D, A), labelPoint(A, D, B), new CodageAngleDroit3D(A, D, B, 'black', 1))\n texte += `$${B.label}$ belongs to this sphere with center $${A.label}$. $${D.label}$ is a point inside the sphere, $${texNombre(h)}$ ${listeUnites[j]} from $${A.label}$ and the distance between $${B.label}$ and $${D.label}$ is $${texNombre(r2)}$ ${listeUnites[j]}. Calculate the radius of the sphere, rounded to the tenth of ${listeUnites[j]}.<br>`\n texte += mathalea2d(Object.assign({}, fixeBordures(objetsEnonce), {\n scale: context.isHtml ? 0.7 : 0.3,\n style: 'block'\n }), objetsEnonce)\n objetsEnonce = sph.c2d\n segmentAnnexe.epaisseur = 2\n segmentAnnexe.color = colorToLatexOrHTML('green')\n objetsEnonce.push(segmentATrouver, segmentAnnexe, tracePoint(B, D, A), labelPoint(A, D, B), new CodageAngleDroit3D(A, D, B, 'green', 1))\n segmentAnnexe = segment(D.c2d, A.c2d, 'green')\n segmentAnnexe.epaisseur = 2\n segmentAnnexe.pointilles = 2\n objetsEnonce.push(segmentAnnexe)\n texteCorr += '<br>' + mathalea2d(Object.assign({}, fixeBordures(objetsEnonce), {\n scale: context.isHtml ? 0.7 : 0.3,\n style: 'block'\n }), objetsEnonce)\n reponse = arrondi(Math.sqrt(h ** 2 + r2 ** 2), 1)\n texteCorr += '<br>' + RedactionPythagore(D.label, A.label, B.label, 1, h, r2, reponse, listeUnites[j])[0]\n break\n case 9: // Hauteur dans une sphère\n context.anglePerspective = randint(2, 6) * choice([10, -10])\n r = randint(4, 10)\n choixProfondeur = choice([1, 2, 4])\n r2 = r * Math.cos(choixProfondeur / 6 * Math.PI / 2)\n A = point3d(0, 0, 0, true, choisitLettresDifferentes(1, 'OQWX')[0], 'left')\n h = A.z + r * Math.sin(choixProfondeur / 6 * Math.PI / 2)\n B = point3d(r2, A.y, h, true)\n B = rotation3d(B, droite3d(A, vecteur3d(0, 0, 1)), context.anglePerspective < 0 ? 30 : -30)\n B.label = choisitLettresDifferentes(1, 'OQWX' + A.label)[0]\n B.c2d.nom = B.label\n B.c2d.positionLabel = 'below'\n D = point3d(0, A.y, h, true, choisitLettresDifferentes(1, 'OQWX' + A.label + B.label)[0])\n longueurATrouver = B.label + D.label\n segmentATrouver = segment(D.c2d, B.c2d, '#f15929')\n segmentATrouver.epaisseur = 2\n segmentATrouver.pointilles = 2\n h = arrondi(h, 1)\n sph = sphere3d(A, r, 'green', 'blue', 12, 'lightgray', 0, 'black', true)\n objetsEnonce = sph.c2d\n objetsEnonce.push(segmentATrouver, tracePoint(B, D, A), labelPoint(A, D, B), new CodageAngleDroit3D(A, D, B, 'black', 1))\n texte += `$${B.label}$ belongs to this sphere with center $${A.label}$ and radius $${texNombre(r)}$ ${listeUnites[j]}. $${D.label}$ is a point inside the sphere, at $${texNombre(h)}$ ${listeUnites[j]} of $${A.label}$. Calculate the distance between $${B.label}$ and $${D.label}$, rounded to the tenth of ${listeUnites[j]}.<br>`\n texte += mathalea2d(Object.assign({}, fixeBordures(objetsEnonce), {\n scale: context.isHtml ? 0.7 : 0.3,\n style: 'block'\n }), objetsEnonce)\n\n objetsEnonce = sph.c2d\n segmentAnnexe = segment(D.c2d, A.c2d, 'green')\n segmentAnnexe.epaisseur = 2\n segmentAnnexe.pointilles = 2\n objetsEnonce.push(segmentATrouver, segmentAnnexe, tracePoint(B, D, A), labelPoint(A, D, B), new CodageAngleDroit3D(A, D, B, 'green', 1))\n segmentAnnexe = segment(B.c2d, A.c2d, 'green')\n segmentAnnexe.epaisseur = 2\n segmentAnnexe.pointilles = 2\n objetsEnonce.push(segmentAnnexe)\n texteCorr += '<br>' + mathalea2d(Object.assign({}, fixeBordures(objetsEnonce), {\n scale: context.isHtml ? 0.7 : 0.3,\n style: 'block'\n }), objetsEnonce)\n reponse = arrondi(Math.sqrt(r ** 2 - h ** 2), 1)\n texteCorr += '<br>' + RedactionPythagore(D.label, B.label, A.label, 2, reponse, h, r, listeUnites[j])[0]\n break\n }\n setReponse(this, i, new Grandeur(reponse, listeUnites[j]), { formatInteractif: 'units' })\n if (this.interactif && context.isHtml) texte += `<br>$${longueurATrouver}\\\\approx$` + ajouteChampTexteMathLive(this, i, 'width25 inline units[lengths]')\n\n if (context.isAmc) {\n this.autoCorrection[i] = {\n enonce: texte,\n enonceAvant: this.sup2 === 2,\n options: {\n ordered: false\n }\n }\n this.autoCorrection[i].propositions = []\n if (this.sup2 === 1) {\n this.autoCorrection[i].propositions.push(\n {\n type: 'AMCNum',\n propositions: [\n {\n reponse: { // utilisé si type = 'AMCNum'\n texte,\n valeur: [reponse], // obligatoire (la réponse numérique à comparer à celle de l'élève). EE : Si une fraction est la réponse, mettre un tableau sous la forme [num,den]\n alignement: 'center', // EE : ce champ est facultatif et n'is functional only for the hybrid. It allows you to choose where the boxes are arranged on the sheet. By default, it is like the text before it. To put left, center or right, choose from ('flushleft', 'center', 'flushright').\n param: {\n digits: nombreDeChiffresDe(reponse), // obligatoire pour AMC (le nombre de chiffres dans le nombre, si digits est mis à 0, alors il sera déterminé pour coller au nombre décimal demandé)\n decimals: 1, // obligatoire pour AMC (le nombre de chiffres dans la partie décimale du nombre, si decimals est mis à 0, alors il sera déterminé pour coller au nombre décimal demandé)\n signe: false // obligatoire pour AMC (présence d'une case + ou -)\n }\n }\n }\n ]\n }\n )\n } else {\n this.autoCorrection[i].propositions.push(\n {\n type: 'AMCOpen',\n propositions: [\n {\n texte: texteCorr,\n statut: 4, // OBLIGATOIRE (ici c'is the number of lines of the frame for the answer of the'élève sur AMC)\n enonce: texte,\n sanscadre: false, // EE : ce champ est facultatif et permet (si true) de cacher le cadre et les lignes acceptant la réponse de l'élève\n pointilles: false // EE : ce champ est facultatif et permet (si false) d'enlever les pointillés sur chaque ligne.\n }\n ]\n }\n )\n }\n }\n\n if (this.questionJamaisPosee(i, nomSolide, r, h)) {\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 listeQuestionsToContenu(this)\n }\n if (context.isAmc) this.besoinFormulaire2Numerique = ['AMC exercise', 2, '1: Open question\\n2: Numerical response']\n this.besoinFormulaireTexte = ['Type of length to find', 'Numbers separated by hyphens\\n1: Diagonal of a face of a cube\\n2: Diagonal of a cube\\n3: Diagonal of a face of a straight block\\n4: Diagonal of\\n a straight block\\n5: In a cylinder\\n6: In a pyramid\\n7: In a cone\\n8: Radius of a sphere\\n9: Radius of a section of a sphere\\n10: Mixture']\n}\n"],"names":["titre","amcReady","amcType","interactifReady","interactifType","dateDePublication","dateDeModifImportante","uuid","ref","CalculPythagoreEspace","Exercice","listeTypeDeQuestions","gestionnaireFormulaireTexte","listeUnites","i","texte","texteCorr","reponse","objetsEnonce","A","B","C","D","E","BC","segmentATrouver","segmentAnnexe","solideDessine","longueurATrouver","nomSolide","segmentChoisi","choixSegments","L","J","K","M","JK","I","choixProfondeur","h","c","j","anglesPossibles","indiceAngleChoisi","ptBase","ptBase2","ptsBase","nbSommets","numeroSommet","r","r2","v","sph","cpt","context","choice","randint","point3d","choisitLettresDifferentes","pave3d","segment","mathalea2d","fixeBordures","CodageAngleDroit3D","arrondi","RedactionPythagore","cube3d","sp","texNombre","calculANePlusJamaisUtiliser","miseEnEvidence","texteEnCouleurEtGras","vecteur3d","cylindre3d","shuffle","rangeMinMax","longueur","rotation3d","translation3d","droite3d","tracePoint","labelPoint","ee","polygone3d","pyramide3d","colorToLatexOrHTML","cone3d","assombrirOuEclaircir","sphere3d","setReponse","Grandeur","ajouteChampTexteMathLive","nombreDeChiffresDe","listeQuestionsToContenu"],"mappings":"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"}