File: /home/mmtprep/public_html/mathzen.mmtprep.com/assets/_RelationDeThales-DGafyaOD.js.map
{"version":3,"file":"_RelationDeThales-DGafyaOD.js","sources":["../../src/exercices/4e/_RelationDeThales.js"],"sourcesContent":["import { angle, angleOriente } from '../../lib/2d/angles.js'\nimport { point, pointAdistance, pointSurSegment } from '../../lib/2d/points.js'\nimport { polygone } from '../../lib/2d/polygones.js'\nimport { longueur } from '../../lib/2d/segmentsVecteurs.js'\nimport { texteParPoint } from '../../lib/2d/textes.js'\nimport { homothetie, similitude } from '../../lib/2d/transformations.js'\nimport { triangle2points2longueurs } from '../../lib/2d/triangle.js'\nimport { creerBoutonMathalea2d } from '../../lib/outils/modales.js'\nimport { texteGras } from '../../lib/format/style'\nimport { creerNomDePolygone } from '../../lib/outils/outilString.js'\nimport Exercice from '../Exercice.js'\nimport { mathalea2d } from '../../modules/2dGeneralites.js'\nimport { context } from '../../modules/context.js'\nimport { listeQuestionsToContenu, randint, calculANePlusJamaisUtiliser } from '../../modules/outils.js'\n\nexport const titre = 'Write a Thales relation'\n\n/**\n * Relation de Thalès\n * @author Sébastien LOZANO\n*/\nexport default function RelationDeThales () {\n Exercice.call(this) // Héritage de la classe Exercice()\n\n this.consigne = ''\n this.nbQuestions = 1\n this.nbCols = 1\n this.nbColsCorr = 1\n this.sup = 1 // Triangles imbriqués / configuration papillon / les 2\n\n this.nouvelleVersion = function (numeroExercice) {\n this.listeQuestions = [] // Liste de questions\n this.listeCorrections = [] // Liste de questions corrigées\n let listeDeNomsDePolygones = []\n this.autoCorrection = []\n if (this.level === 4) {\n this.sup = 1\n }\n const premiereQuestionPapillon = randint(0, 1) // Pour alterner les configurations et savoir par laquelle on commence\n\n for (let i = 0, texte = '', texteCorr = '', cpt = 0; i < this.nbQuestions && cpt < 50;) {\n // this.autoCorrection[i] = {}\n if (i % 3 === 0) { // Toutes les 3 questions, on repart à zéro sur les noms des polygones\n listeDeNomsDePolygones = ['Q.D.']\n }\n const nomDesPoints = creerNomDePolygone(5, listeDeNomsDePolygones)\n listeDeNomsDePolygones.push(nomDesPoints)\n const nomA = nomDesPoints[0]\n const nomB = nomDesPoints[1]\n const nomC = nomDesPoints[2]\n const nomM = nomDesPoints[3]\n const nomN = nomDesPoints[4]\n const ab = randint(5, 10)\n const ac = randint(5, 10, ab)\n const bc = randint(Math.max(ab - ac, ac - ab) + 1, ab + ac - 1, [ab, ac]) // Pas de triangle isocèle ou équilatéral\n const A = point(0, 0, nomA)\n const B = pointAdistance(A, ab, nomB)\n const ABC = triangle2points2longueurs(A, B, ac, bc)\n ABC.id = `M2D_${numeroExercice}_${i}_1`\n const C = ABC.listePoints[2]\n C.nom = nomC\n let k = calculANePlusJamaisUtiliser(randint(3, 8, 5) / 10)\n if (parseInt(this.sup) === 2) {\n k *= -1\n }\n if (parseInt(this.sup) === 3 && ((i + premiereQuestionPapillon) % 2 === 0)) {\n k *= -1\n }\n const M = homothetie(A, C, k)\n const N = homothetie(B, C, k)\n const MNC = polygone(M, N, C)\n MNC.id = `M2D_${numeroExercice}_${i}_2`\n const m = pointSurSegment(M, N, -0.5)\n const n = pointSurSegment(N, M, -0.5)\n const marqueNomM = texteParPoint(nomM, m, 'medium', 'black', 1, 'middle', true)\n const marqueNomN = texteParPoint(nomN, n, 'medium', 'black', 1, 'middle', true)\n const a = pointSurSegment(A, B, -0.5)\n const b = pointSurSegment(B, A, -0.5)\n const marqueNomA = texteParPoint(nomA, a, 'medium', 'black', 1, 'middle', true)\n const marqueNomB = texteParPoint(nomB, b, 'medium', 'black', 1, 'middle', true)\n let c\n if (k < 0) {\n if (angle(A, C, N) < angle(N, C, A)) {\n c = similitude(A, C, -angleOriente(A, C, N) / 2, 1 / longueur(A, C))\n } else {\n c = similitude(A, C, -angleOriente(N, C, A) / 2, 1 / longueur(A, C) * 0.5)\n }\n } else {\n c = similitude(A, C, -180 + angleOriente(A, C, B) / 2, 1 / longueur(A, C) * 0.5)\n }\n const marqueNomC = texteParPoint(nomC, c, 'medium', 'black', 1, 'middle', true)\n\n texte = 'In the following figure:'\n if (k > 0) {\n texte += `\n <br> $\\\\leadsto ${nomM}$ is on $${'[' + nomC + nomA + ']'}$,\n <br> $\\\\leadsto ${nomN}$ is on $${'[' + nomC + nomB + ']'}$,`\n } else {\n texte += `<br> $\\\\leadsto$ the lines $(${nomA + nomM})$ and $(${nomB + nomN})$ are secant in $${nomC}$,`\n }\n\n texte += `<br> $\\\\leadsto$ the lines $(${nomA + nomB})$ and $(${nomM + nomN})$ are parallel.<br>Write a Thales relation.<br>`\n\n texte += mathalea2d({\n xmin: Math.min(A.x, B.x, C.x, M.x, N.x) - 1.5,\n ymin: Math.min(A.y, B.y, C.y, M.y, N.y) - 0.8,\n xmax: Math.max(A.x, B.x, C.x, M.x, N.x) + 1.5,\n ymax: Math.max(A.y, B.y, C.y, M.y, N.y) + 0.8,\n scale: 0.5\n },\n\n ABC, MNC, marqueNomA, marqueNomB, marqueNomC, marqueNomM, marqueNomN\n )\n\n const epaisseurTriangle = (k < 0) ? 2 : 6 // En cas de configuration papillon il est inutile de changer l'épaisseur\n const boutonAideMathalea2d = creerBoutonMathalea2d(numeroExercice + '_' + i,\n `if (!document.getElementById('M2D_${numeroExercice}_${i}_1').dataset.colorie == true || (document.getElementById('M2D_${numeroExercice}_${i}_1').dataset.colorie == 'false')){\n document.getElementById('M2D_${numeroExercice}_${i}_1').style.stroke = 'blue';\n document.getElementById('M2D_${numeroExercice}_${i}_2').style.stroke = 'red';\n document.getElementById('M2D_${numeroExercice}_${i}_1').style.opacity = .5;\n document.getElementById('M2D_${numeroExercice}_${i}_1').style.strokeWidth = ${epaisseurTriangle};\n document.getElementById('M2D_${numeroExercice}_${i}_2').style.opacity = 1;\n document.getElementById('M2D_${numeroExercice}_${i}_2').style.strokeWidth = 2;\n document.getElementById('M2D_${numeroExercice}_${i}_1').dataset.colorie = true;\n document.getElementById('btnMathALEA2d_${numeroExercice}_${i}').classList.add('active');\n } else {\n document.getElementById('M2D_${numeroExercice}_${i}_1').style.stroke = 'black';\n document.getElementById('M2D_${numeroExercice}_${i}_2').style.stroke = 'black';\n document.getElementById('M2D_${numeroExercice}_${i}_1').style.opacity = 1;\n document.getElementById('M2D_${numeroExercice}_${i}_1').style.strokeWidth = 1;\n document.getElementById('M2D_${numeroExercice}_${i}_2').style.opacity = 1;\n document.getElementById('M2D_${numeroExercice}_${i}_2').style.strokeWidth = 1;\n document.getElementById('M2D_${numeroExercice}_${i}_1').dataset.colorie = false;\n document.getElementById('btnMathALEA2d_${numeroExercice}_${i}').classList.remove('active');\n \n }\n `,\n 'Color the 2 triangles')\n\n if (k > 0) {\n texteCorr = `In the $${nomA + nomB + nomC}$ triangle:<br> $\\\\leadsto$ $${nomM}\\\\in${'[' + nomC + nomA + ']'}$,<br> $\\\\leadsto$ $${nomN}\\\\in${'[' + nomC + nomB + ']'}$,<br> $\\\\leadsto$ $(${nomA + nomB})/ /(${nomM + nomN})$,<br> therefore according to Thales' theorem, the triangles $${nomA + nomB + nomC}$ and $${nomM + nomN + nomC}$ have proportional lengths.`\n } else {\n texteCorr = `$\\\\leadsto$ The lines $(${nomA + nomM})$ and $(${nomB + nomN})$ are intersecting in $${nomC}$,<br> $\\\\leadsto$ the lines $(${nomA + nomB})$ and $(${nomM + nomN})$ are parallel,<br>so according to Thales' theorem, the triangles $${nomA + nomB + nomC}$ and $${nomM + nomN + nomC}$ have proportional lengths.`\n }\n texteCorr += '<br><br>'\n if (context.isHtml) {\n texteCorr += `$\\\\dfrac{\\\\color{red}${nomC + nomM}}{\\\\color{blue}${nomC + nomA}}=\\\\dfrac{\\\\color{red}${nomC + nomN}}{\\\\color{blue}${nomC + nomB}}=\\\\dfrac{\\\\color{red}${nomM + nomN}}{\\\\color{blue}${nomA + nomB}}$`\n } else {\n texteCorr += `$\\\\dfrac{${nomC + nomM}}{${nomC + nomA}}=\\\\dfrac{${nomC + nomN}}{${nomC + nomB}}=\\\\dfrac{${nomM + nomN}}{${nomA + nomB}}$`\n }\n\n texteCorr += context.isHtml ? '<br>' : '\\\\medskip'\n texteCorr += `<br>${texteGras('To note:')}<br>We could also write:`\n if (context.isHtml) {\n texteCorr += `$\\\\dfrac{\\\\color{blue}${nomC + nomA}}{\\\\color{red}${nomC + nomM}}=\\\\dfrac{\\\\color{blue}${nomC + nomB}}{\\\\color{red}${nomC + nomN}}=\\\\dfrac{\\\\color{blue}${nomA + nomB}}{\\\\color{red}${nomM + nomN}}$`\n } else {\n texteCorr += `$\\\\dfrac{${nomC + nomA}}{${nomC + nomM}}=\\\\dfrac{${nomC + nomB}}{${nomC + nomN}}=\\\\dfrac{${nomA + nomB}}{${nomM + nomN}}$`\n }\n\n if (context.isHtml) {\n texte += `<br><div style=\"display: inline-block;margin-top:20px;\">${boutonAideMathalea2d}</div>`\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 listeQuestionsToContenu(this)\n }\n this.besoinFormulaireNumerique = ['Configuration', 3, '1: Interlocking triangles\\n2: Butterfly\\n3: Mixture']\n}\n"],"names":["titre","RelationDeThales","Exercice","numeroExercice","listeDeNomsDePolygones","premiereQuestionPapillon","randint","i","texte","texteCorr","cpt","nomDesPoints","creerNomDePolygone","nomA","nomB","nomC","nomM","nomN","ab","ac","bc","A","point","B","pointAdistance","ABC","triangle2points2longueurs","C","k","calculANePlusJamaisUtiliser","M","homothetie","N","MNC","polygone","m","pointSurSegment","n","marqueNomM","texteParPoint","marqueNomN","a","b","marqueNomA","marqueNomB","c","angle","similitude","angleOriente","longueur","marqueNomC","mathalea2d","epaisseurTriangle","boutonAideMathalea2d","creerBoutonMathalea2d","context","texteGras","listeQuestionsToContenu"],"mappings":"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"}