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/3G13-YXOCRO5I.js.map
{"version":3,"file":"3G13-YXOCRO5I.js","sources":["../../src/exercices/3e/3G13.js"],"sourcesContent":["import Algebrite from 'algebrite'\nimport { abs, divide, evaluate, format, fraction, isInteger, max, multiply, pow, round, subtract } from 'mathjs'\nimport { arcPointPointAngle } from '../../lib/2d/cercle.js'\nimport { texteSurArc, texteSurSegment } from '../../lib/2d/codages.js'\nimport { point } from '../../lib/2d/points.js'\nimport { segmentAvecExtremites } from '../../lib/2d/segmentsVecteurs.js'\nimport { labelPoint } from '../../lib/2d/textes.js'\nimport { homothetie, rotation } from '../../lib/2d/transformations.js'\nimport { choice, combinaisonListes } from '../../lib/outils/arrayOutils'\nimport { choisitLettresDifferentes } from '../../lib/outils/aleatoires.js'\nimport { deprecatedTexFraction } from '../../lib/outils/deprecatedFractions.js'\nimport { texNombre } from '../../lib/outils/texNombre.js'\nimport { fixeBordures, mathalea2d } from '../../modules/2dGeneralites.js'\nimport { context } from '../../modules/context.js'\nimport {\n  gestionnaireFormulaireTexte,\n  listeQuestionsToContenu,\n  randint\n} from '../../modules/outils.js'\nimport Exercice from '../Exercice.js'\n\nexport const titre = 'Homothétie (calculs)'\n// eslint-disable-next-line no-debugger\n// debugger\n// Les exports suivants sont optionnels mais au moins la date de publication semble essentielle\nexport const dateDePublication = '28/11/2021' // La date de publication initiale au format 'jj/mm/aaaa' pour affichage temporaire d'un tag\nexport const dateDeModifImportante = '29/01/2023' //  Par EE\n\n/**\n * Calculs dans une homothétie : longueurs, aires.\n * @author Frédéric PIOU\n*/\nexport const uuid = '6f383'\nexport const ref = '3G13'\n\n/**\n * Formattage pour une sortie LaTeX entre $$\n * formatFraction = false : si l'expression est un objet fraction du module mathjs alors elle peut donner l'écriture fractionnaire\n * Pour une fraction négative la sortie est -\\dfrac{6}{7} au lieu de \\dfrac{-6}{7}\n * @author Frédéric PIOU\n */\n\nexport function texNum (expression, formatFraction = false) {\n  if (typeof expression === 'object') {\n    const signe = expression.s === 1 ? '' : '-'\n    if (formatFraction) {\n      expression = expression.d !== 1 ? signe + deprecatedTexFraction(expression.n, expression.d) : signe + expression.n\n      expression = expression.replace(',', '{,}').replace('{{,}}', '{,}')\n    } else {\n      expression = texNombre(evaluate(format(expression)))\n    }\n    //  expression = expression.replace(',', '{,}').replace('{{,}}', '{,}') // Supprimé par EE car non fonctionnel dans le else qui précède.\n  } else {\n    expression = texNombre(parseFloat(Algebrite.eval(expression)))\n  }\n  return expression\n}\n\nexport default function CalculsHomothetie () {\n  Exercice.call(this) // Héritage de la classe Exercice()\n  this.consigne = ''\n  this.nbQuestions = 4 // Nombre de questions par défaut\n  this.nbCols = 0 // Uniquement pour la sortie LaTeX\n  this.nbColsCorr = 0 // Uniquement pour la sortie LaTeX\n  this.tailleDiaporama = 1 // Pour les exercices chronométrés. 50 par défaut pour les exercices avec du texte\n  this.video = '' // Id YouTube ou url\n  this.correctionDetailleeDisponible = true\n  this.correctionDetaillee = true\n  context.isHtml ? (this.spacing = 1.5) : (this.spacing = 0)\n  context.isHtml ? (this.spacingCorr = 1.5) : (this.spacingCorr = 0)\n  this.sup = 12 // Type d'exercice\n  this.sup2 = 3 // 1 : Homothéties de rapport positif, 2: de rapport négatif 3 : mélange\n  this.sup3 = 1 // Choix des valeurs\n  this.sup4 = true // Affichage des figures facultatives dans l'énoncé (en projet)\n\n  this.besoinFormulaireTexte = [\n    'Type de questions', [\n      'Nombres séparés par des tirets',\n      '1 : Calculer le rapport',\n      '2 : Calculer une longueur image',\n      '3 : Calculer une longueur antécédent',\n      '4 : Calculer une longueur image (deux étapes)',\n      '5 : Calculer une longueur antécédent (deux étapes)',\n      '6 : Calculer une aire image',\n      '7 : Calculer une aire antécédent',\n      '8 : Calculer le rapport à partir des aires',\n      '9 : Calculer le rapport connaissant OA et AA\\'',\n      '10 : Encadrer le rapport k',\n      '11 : Encadrer le rapport k connaissant OA et AA\\'',\n      '12 : Mélange'\n    ].join('\\n')\n  ]\n  this.besoinFormulaire2Numerique = [\n    'Signe du rapport',\n    3,\n    '1 : positif\\n2 : négatif\\n3 : mélange'\n  ]\n  this.besoinFormulaire3Numerique = [\n    'Choix des valeurs',\n    3,\n    '1 : k est décimal (0.1 < k < 4) \\n2 : k est une fraction k = a/b avec (a,b) in [1;9]\\n3 : k est une fraction et les mesures sont des entiers'\n  ]\n  this.besoinFormulaire4CaseACocher = ['Figure dans l`énoncé (1-5,9-11)', false]\n  this.nouvelleVersion = function () {\n    this.listeQuestions = [] // Liste de questions\n    this.listeCorrections = [] // Liste de questions corrigées\n\n    const typeQuestionsDisponibles = ['rapport', 'image', 'antécédent', 'image2etapes', 'antecendent2etapes', 'aireImage', 'aireAntécédent', 'aireRapport', 'rapport2', 'encadrerk', 'encadrerk2']\n    const listeTypeQuestions = gestionnaireFormulaireTexte({ saisie: this.sup, min: 1, max: 11, melange: 12, defaut: 12, nbQuestions: this.nbQuestions, listeOfCase: typeQuestionsDisponibles })\n    const kEstEntier = this.sup3 > 1\n    const valeursSimples = this.sup3 === 3\n    for (let i = 0, approx, environ, melange, donnee1, donnee2, donnee3, donnees, texte, texteCorr, cpt = 0; i < this.nbQuestions && cpt < 50;) { // Boucle principale où i+1 correspond au numéro de la question\n      const lettres = choisitLettresDifferentes(5, ['P', 'Q', 'U', 'V', 'W', 'X', 'Y', 'Z'])\n      const A = lettres[0]; const hA = lettres[1]; const O = lettres[2]; const B = lettres[3]; const hB = lettres[4]\n      const ks = fraction(choice([[1], [-1], [-1, 1]][this.sup2 - 1]))\n      let k = fraction(1, 1)\n      while (abs(k).toString() === '1') {\n        k = kEstEntier ? multiply(fraction(randint(1, 9), randint(1, 9)), ks) : multiply(fraction(choice([randint(15, 40) / 10, randint(1, 9) / 10])), ks)\n      }\n      let absk = abs(k)\n      const agrandissement = evaluate(absk > 1)\n      const kpositif = evaluate(k > 0)\n      const longueurEntiere = valeursSimples ? fraction(randint(1, 19)) : fraction(randint(11, 99))\n      let OA = multiply(agrandissement ? divide(longueurEntiere, 10) : longueurEntiere, 10 ** (valeursSimples) * absk.d ** (kEstEntier))\n      let OhA = multiply(k, OA)\n      let OB = multiply(divide(randint(10, 99, [parseInt(longueurEntiere.toString())]), fraction(10)), 10 ** (valeursSimples) * absk.d ** (kEstEntier))\n      let OhB = multiply(k, OB)\n      let AhA = subtract(OhA, OA)\n      let kAire = fraction(choice([randint(1, 4) + 0.5 + choice([0, 0.5]), randint(1, 9) / 10]))\n      let Aire = valeursSimples ? fraction(randint(10, 99)) : fraction(randint(100, 999) / 10)\n      let hAire = multiply(pow(kAire, 2), Aire)\n      let hAireArrondie = round(hAire, 2)\n      const plusgrandque = agrandissement ? '>' : '<'\n      const unAgrandissement = agrandissement ? 'un agrandissement' : 'une réduction'\n      const intervallek = agrandissement ? (kpositif ? '$k > 1$' : '$k < -1$') : (kpositif ? '$0 < k < 1$' : '$-1 < k < 0$')\n      const positif = kpositif ? 'positif' : 'négatif'\n      const signek = kpositif ? '' : '-'\n      const lopposede = kpositif ? '' : 'l\\'opposé de '\n      const lopposedu = kpositif ? 'le' : 'l\\'opposé du '\n      const derapportpositifet = this.sup4 ? '' : `de rapport ${positif} et `\n      const inNotin = kpositif ? '\\\\in' : '\\\\notin'\n      const illustrerParUneFigureAMainLevee = this.sup4 ? '' : 'Illustrer la situation par une figure à main levée.<br>'\n      let kinverse = abs(divide(1, k))\n      const OhAdivkInversed = texNum(abs(divide(OhA, kinverse.d)))\n      const OhBdivkInversed = texNum(abs(divide(OhB, kinverse.d)))\n      const largeurFigure = divide(10, max(abs(OA), abs(OhA), abs(AhA)))\n      let testFigureCorrigee = true\n      let correctionOhA = OhA\n      let correctionOA = OA\n      if (evaluate(abs(k) < 0.3)) {\n        correctionOhA = multiply(multiply(fraction(3, 10), OA), (-1) ** evaluate(k < 0))\n      } else if (evaluate(abs(k) < 1 && abs(k) > 0.7)) {\n        correctionOhA = multiply(multiply(fraction(7, 10), OA), (-1) ** evaluate(k < 0))\n      } else if (evaluate(abs(k) > 1 && abs(k) < 1.3)) {\n        correctionOhA = multiply(multiply(fraction(13, 10), OA), (-1) ** evaluate(k < 0))\n      } else if (evaluate(abs(k) > 4)) {\n        correctionOA = multiply(fraction(2, 1), OA)\n      } else {\n        testFigureCorrigee = false\n      }\n      const figurealechelle = !(testFigureCorrigee && this.sup4) || [4, 5, 6, 7, 8].includes(listeTypeQuestions[i]) ? '' : '(La figure n\\'est pas à l\\'échelle.)'\n      const figurealechelle2 = !(this.sup4) ? '' : '(La figure n\\'est pas à l\\'échelle.)'\n      let figure = {\n        O: point(0, 0, `${O}`),\n        A: point(multiply(correctionOA, largeurFigure).valueOf(), 0, `${A}`, 'below'),\n        hA: point(multiply(correctionOhA, largeurFigure).valueOf(), 0, `${hA}`, kpositif ? 'below' : 'above')\n      }\n      figure = Object.assign({}, figure, {\n        B: homothetie(rotation(figure.A, figure.O, 40), figure.O, 1.2, `${B}`),\n        hB: homothetie(rotation(figure.hA, figure.O, 40), figure.O, 1.2, `${hB}`, kpositif ? 'above' : 'below')\n      })\n      kinverse = { tex: texNum(kinverse, kEstEntier), n: kinverse.n, d: kinverse.d }\n      OhA = texNum(abs(OhA))\n      const OhAtimeskinverse = (valeursSimples && !isInteger(absk)) ? `=${OhA}\\\\times ${kinverse.tex}` + (kinverse.d !== 1 ? `=\\\\dfrac{${OhA}}{${kinverse.d}}\\\\times ${kinverse.n}=${OhAdivkInversed}\\\\times ${kinverse.n}` : '') : ''\n      OhB = texNum(abs(OhB))\n      const OhBtimeskinverse = (valeursSimples && !isInteger(absk)) ? `=${OhB}\\\\times ${kinverse.tex}` + (kinverse.d !== 1 ? `=\\\\dfrac{${OhB}}{${kinverse.d}}\\\\times ${kinverse.n}=${OhBdivkInversed}\\\\times ${kinverse.n}` : '') : ''\n      hAire = texNum(hAire)\n      hAireArrondie = texNum(hAireArrondie)\n      k = texNum(k, kEstEntier)\n      kAire = texNum(kAire, kEstEntier)\n      const parentheseskAire = (absk.d === 1 || this.sup3 === 1) && kpositif ? signek + kAire : String.raw`\\left(${signek}${kAire}\\right)`\n      absk = texNum(absk, kEstEntier)\n      OA = texNum(OA)\n      AhA = texNum(abs(AhA))\n      OB = texNum(OB)\n      Aire = texNum(Aire)\n      const calculsOhA = !kpositif ? `${hA}${A} - ${O}${A} = ${AhA} - ${OA}` : agrandissement ? `${O}${A} + ${A}${hA} = ${OA} + ${AhA} ` : `${O}${A} - ${A}${hA} = ${OA} - ${AhA}`\n      figure = Object.assign({}, figure, {\n        segmentOA: segmentAvecExtremites(figure.O, figure.A),\n        segmentOhA: segmentAvecExtremites(figure.O, figure.hA),\n        segmentOB: segmentAvecExtremites(figure.O, figure.B),\n        segmentOhB: segmentAvecExtremites(figure.O, figure.hB)\n      })\n      figure = Object.assign({}, figure, {\n        arcOA: agrandissement || !kpositif ? figure.A : arcPointPointAngle(figure.O, figure.A, 60, false),\n        arcOhA: !agrandissement || !kpositif ? figure.hA : arcPointPointAngle(figure.O, figure.hA, 60, false),\n        arcOB: agrandissement || !kpositif ? figure.B : arcPointPointAngle(figure.B, figure.O, 60, false),\n        arcOhB: !agrandissement || !kpositif ? figure.hB : arcPointPointAngle(figure.hB, figure.O, 60, false),\n        arcAhA: kpositif ? figure.A : arcPointPointAngle(figure.hA, figure.A, 60, false),\n        legendeOA: agrandissement || !kpositif ? texteSurSegment(`${OA.replace('{,}', ',')} cm`, figure.A, figure.O, 'black', 0.30) : texteSurArc(`${OA.replace('{,}', ',')} cm`, figure.O, figure.A, 60, 'black', 0.30),\n        legendeOhA: !agrandissement || !kpositif ? texteSurSegment(`${OhA.replace('{,}', ',')} cm`, figure.hA, figure.O, 'black', 0.30) : texteSurArc(`${OhA.replace('{,}', ',')} cm`, figure.O, figure.hA, 60, 'black', 0.30),\n        legendeOB: agrandissement || !kpositif ? texteSurSegment(`${OB.replace('{,}', ',')} cm`, figure.O, figure.B, 'black', 0.30) : texteSurArc(`${OB.replace('{,}', ',')} cm`, figure.B, figure.O, 60, 'black', 0.30),\n        legendeOhB: !agrandissement || !kpositif ? texteSurSegment(`${OhB.replace('{,}', ',')} cm`, figure.O, figure.hB, 'black', 0.30) : texteSurArc(`${OhB.replace('{,}', ',')} cm`, figure.hB, figure.O, 60, 'black', 0.30),\n        legendeAhA: kpositif ? texteSurSegment(`${AhA.replace('{,}', ',')} cm`, figure.hA, figure.A, 'black', 0.30) : texteSurArc(`${AhA.replace('{,}', ',')} cm`, figure.hA, figure.A, 60, 'black', 0.30)\n      })\n      figure = Object.assign({}, figure, {\n        legendeOAi: agrandissement || !kpositif ? texteSurSegment('?', figure.O, figure.A, 'black', 0.30) : texteSurArc('?', figure.O, figure.A, 60, 'black', 0.30),\n        legendeOhAi: !agrandissement || !kpositif ? texteSurSegment('?', figure.O, figure.hA, 'black', 0.30) : texteSurArc('?', figure.O, figure.hA, 60, 'black', 0.30),\n        legendeOBi: agrandissement || !kpositif ? texteSurSegment('?', figure.O, figure.B, 'black', 0.30) : texteSurArc('?', figure.B, figure.O, 60, 'black', 0.30),\n        legendeOhBi: !agrandissement || !kpositif ? texteSurSegment('?', figure.O, figure.hB, 'black', 0.30) : texteSurArc('?', figure.hB, figure.O, 60, 'black', 0.30)\n      })\n      figure.arcOA.pointilles = 5\n      figure.arcOhA.pointilles = 5\n      figure.arcOB.pointilles = 5\n      figure.arcOhB.pointilles = 5\n      figure.arcAhA.pointilles = 5\n      // const fscale = context.isHtml ? kpositif ? 1 : 0.7 : kpositif ? 0.7 : 0.5\n      let objetsEnonce = []\n      const fscale = context.isHtml ? 1 : kpositif ? 0.7 : 0.6\n\n      const flabelsRapport = labelPoint(figure.O, figure.A, figure.hA)\n      objetsEnonce = [figure.segmentOA, figure.segmentOhA, figure.legendeOA, figure.legendeOhA]\n      if (figure.arcOA.typeObjet !== 'point') objetsEnonce.push(figure.arcOA)\n      if (figure.arcOhA.typeObjet !== 'point') objetsEnonce.push(figure.arcOhA)\n      let frapport = mathalea2d(Object.assign({}, fixeBordures(objetsEnonce), { style: 'inline', scale: fscale }), objetsEnonce, flabelsRapport)\n      frapport = { enonce: (this.sup4 ? '<br>' + frapport : ''), solution: frapport }\n\n      const flabelsImage = labelPoint(figure.O, figure.A, figure.hA)\n      objetsEnonce = [figure.segmentOA, figure.segmentOhA, figure.legendeOA, figure.legendeOhAi]\n      if (figure.arcOA.typeObjet !== 'point') objetsEnonce.push(figure.arcOA)\n      if (figure.arcOhA.typeObjet !== 'point') objetsEnonce.push(figure.arcOhA)\n      let fImage = mathalea2d(Object.assign({}, fixeBordures(objetsEnonce), { style: 'inline', scale: fscale }), objetsEnonce, flabelsImage)\n      fImage = { enonce: (this.sup4 ? fImage : ''), solution: fImage }\n\n      const flabelsAntecedent = labelPoint(figure.O, figure.A, figure.hA)\n      objetsEnonce = [figure.segmentOA, figure.segmentOhA, figure.legendeOhA]\n      if (figure.A.typeObjet !== 'point') objetsEnonce.push(figure.A)\n      if (figure.O.typeObjet !== 'point') objetsEnonce.push(figure.O)\n      if (figure.hA.typeObjet !== 'point') objetsEnonce.push(figure.hA)\n      if (figure.arcOhA.typeObjet !== 'point') objetsEnonce.push(figure.arcOhA)\n      let fAntecedent = mathalea2d(Object.assign({}, fixeBordures(objetsEnonce), { style: 'inline', scale: fscale }), objetsEnonce, flabelsAntecedent)\n      fAntecedent = { enonce: (this.sup4 ? fAntecedent : ''), solution: fAntecedent }\n\n      const flabelsImage2etapes = labelPoint(figure.O, figure.A, figure.hA, figure.B, figure.hB)\n      objetsEnonce = [figure.segmentOA, figure.segmentOhA, figure.segmentOB, figure.segmentOhB, figure.legendeOA, figure.legendeOhA, figure.legendeOB]\n      if (figure.A.typeObjet !== 'point') objetsEnonce.push(figure.A)\n      if (figure.O.typeObjet !== 'point') objetsEnonce.push(figure.O)\n      if (figure.hA.typeObjet !== 'point') objetsEnonce.push(figure.hA)\n      if (figure.B.typeObjet !== 'point') objetsEnonce.push(figure.B)\n      if (figure.hB.typeObjet !== 'point') objetsEnonce.push(figure.hB)\n      if (figure.arcOA.typeObjet !== 'point') objetsEnonce.push(figure.arcOA)\n      if (figure.arcOB.typeObjet !== 'point') objetsEnonce.push(figure.arcOB)\n      if (figure.arcOhA.typeObjet !== 'point') objetsEnonce.push(figure.arcOhA)\n      if (figure.arcOhB.typeObjet !== 'point') objetsEnonce.push(figure.arcOhB)\n      let fImage2etapes = mathalea2d(Object.assign({}, fixeBordures(objetsEnonce), { style: 'inline', scale: fscale }), objetsEnonce, flabelsImage2etapes)\n      fImage2etapes = { enonce: (this.sup4 ? fImage2etapes : ''), solution: fImage2etapes }\n\n      const flabelsAntecedent2etapes = labelPoint(figure.O, figure.A, figure.hA, figure.B, figure.hB)\n      objetsEnonce = [figure.segmentOA, figure.segmentOhA, figure.segmentOB, figure.segmentOhB, figure.legendeOBi, figure.legendeOhB, figure.legendeOA, figure.legendeOhA]\n      if (figure.arcOA.typeObjet !== 'point') objetsEnonce.push(figure.arcOA)\n      if (figure.arcOhA.typeObjet !== 'point') objetsEnonce.push(figure.arcOhA)\n      if (figure.arcOB.typeObjet !== 'point') objetsEnonce.push(figure.arcOB)\n      if (figure.arcOhB.typeObjet !== 'point') objetsEnonce.push(figure.arcOhB)\n      let fAntecedent2etapes = mathalea2d(Object.assign({}, fixeBordures(objetsEnonce), { style: 'inline', scale: fscale }), objetsEnonce, flabelsAntecedent2etapes)\n      fAntecedent2etapes = { enonce: (this.sup4 ? fAntecedent2etapes : ''), solution: fAntecedent2etapes }\n\n      objetsEnonce = [figure.segmentOA, figure.segmentOhA, figure.legendeOA, figure.legendeOhA, figure.legendeAhA]\n      if (figure.arcOA.typeObjet !== 'point') objetsEnonce.push(figure.arcOA)\n      if (figure.arcOhA.typeObjet !== 'point') objetsEnonce.push(figure.arcOhA)\n      if (figure.arcAhA.typeObjet !== 'point') objetsEnonce.push(figure.arcAhA)\n      let frapport2 = mathalea2d(Object.assign({}, fixeBordures(objetsEnonce), { style: 'inline', scale: fscale }), objetsEnonce, flabelsRapport)\n      frapport2 = { enonce: (this.sup4 ? '<br>' + frapport2 : ''), solution: frapport2 }\n      switch (listeTypeQuestions[i]) {\n        case 'rapport': // cas 1\n          donnees = [String.raw`${O}${hA}=${OhA}\\text{ cm}`, String.raw`${O}${A}=${OA}\\text{ cm}`]\n          melange = combinaisonListes([0, 1])\n          donnee1 = donnees[melange[0]]\n          donnee2 = donnees[melange[1]]\n          texte = String.raw`$${hA}$ est l'image de $${A}$\npar une homothétie ${derapportpositifet}\nde centre $${O}$ tel que $ {${donnee1}}$ et $ {${donnee2}}$.\n<br>\n${illustrerParUneFigureAMainLevee}\nCalculer le rapport $k$ de cette homothétie ${figurealechelle}.\n${frapport.enonce}\n`\n          texteCorr = String.raw`\n                $k=${signek}\\dfrac{${O}${hA}}{${O}${A}}=${signek}\\dfrac{${OhA}}{${OA}}=${k}$.\n                `\n          if (this.correctionDetaillee) {\n            texteCorr = String.raw`$[${O}${hA}]$ est l'image de $[${O}${A}]$\net $${O} ${hA} ${plusgrandque} ${O} ${A}$\ndonc c'est ${unAgrandissement} et on a ${intervallek}.\n<br> ${frapport.solution}\n`\n            texteCorr += String.raw`<br>\nLe rapport de cette homothétie est ${lopposedu} quotient\nde la longueur d'un segment \"à l'arrivée\"\npar sa longueur \"au départ\".\n<br>\nSoit $k=${signek}\\dfrac{${O}${hA}}{${O}${A}}=${signek}\\dfrac{${OhA}}{${OA}}=${k}$.\n`\n          }\n          break\n        case 'image': // cas 2\n          texte = String.raw`$${hA}$ est l'image de $${A}$ par une homothétie\nde centre $${O}$ et de rapport $k=${k}$\ntel que $ {${O}${A}=${OA}\\text{ cm}}$.\n<br>\n${illustrerParUneFigureAMainLevee}\nCalculer $${O}${hA}$  ${figurealechelle}.\n<br>${fImage.enonce}\n`\n          texteCorr = String.raw`\n                $${O}${hA}= ${absk} \\times ${OA} =  ${OhA}~\\text{cm}$.\n                `\n          if (this.correctionDetaillee) {\n            texteCorr = String.raw`\n                ${intervallek} donc $[${O}${hA}]$ est ${unAgrandissement} de $[${O}${A}]$.\n                <br>${fImage.solution}\n                `\n            texteCorr += String.raw`<br>\nUne homothétie de rapport ${positif} est\nune transformation qui multiplie\ntoutes les longueurs par ${lopposede} son rapport.\n<br>\nSoit $${O}${hA}=${signek}k \\times ${O}${A}$.\n<br>\nDonc $${O}${hA}= ${absk} \\times ${OA} =  ${OhA}~\\text{cm}$.\n`\n          }\n          break\n        case 'antécédent': // cas 3\n          texte = String.raw`$${hA}$ est l'image de $${A}$ par une\nhomothétie de centre $${O}$ et de rapport\n$k=${k}$ tel que $ {${O}${hA}=${OhA}\\text{ cm}}$.\n<br>\n${illustrerParUneFigureAMainLevee}\nCalculer $${O}${A}$  ${figurealechelle}.\n<br>${fAntecedent.enonce}\n`\n          texteCorr = String.raw`$${O}${A}=\\dfrac{${O}${hA}}{${absk}}=\\dfrac{${OhA}}{${absk}} = ${OA}~\\text{cm}$.`\n          if (this.correctionDetaillee) {\n            texteCorr = String.raw`\n                ${intervallek} donc $[${O}${hA}]$ est ${unAgrandissement} de $[${O}${A}]$.\n                <br>${fAntecedent.solution}\n                `\n            texteCorr += String.raw`<br>\nUne homothétie de rapport ${positif} est\nune transformation qui multiplie\ntoutes les longueurs par ${lopposede} son rapport.\n<br>\nSoit $${O}${hA}=${signek}k \\times  ${O}${A}$.\n<br>\nDonc $${O}${A}=\\dfrac{${O}${hA}}{${signek}k}=\\dfrac{${OhA}}{${absk}} ${OhAtimeskinverse} = ${OA}~\\text{cm}$.\n`\n          }\n          break\n        case 'image2etapes': // cas 4\n          donnees = [String.raw`${O}${B}=${OB}\\text{ cm}`, String.raw`${O}${hA}=${OhA}\\text{ cm}`, String.raw`${O}${A}=${OA}\\text{ cm}`]\n          melange = combinaisonListes([0, 1, 2])\n          donnee1 = donnees[melange[0]]\n          donnee2 = donnees[melange[1]]\n          donnee3 = donnees[melange[2]]\n          texte = String.raw`$${hA}$ et $${hB}$ sont les images respectives\nde $${A}$ et $${B}$ par une homothétie\n${derapportpositifet} de centre $${O}$ tel que\n$ {${donnee1}}$, $ {${donnee2}}$ et $ {${donnee3}}$.\n<br>\n${illustrerParUneFigureAMainLevee}\nCalculer $${O}${hB}$ ${figurealechelle2}.\n<br>${fImage2etapes.enonce}\n`\n          texteCorr = String.raw`\n                    $k=${signek}\\dfrac{${O}${hA}}{${O}${A}}=${signek}\\dfrac{${OhA}}{${OA}}=${k}$ et $${O}${hB}= ${absk} \\times ${OB} = ${OhB}~\\text{cm}$.\n                    `\n          if (this.correctionDetaillee) {\n            texteCorr = String.raw`$[${O}${hA}]$ est l'image de $[${O}${A}]$\net $${O} ${hA} ${plusgrandque} ${O} ${A}$\ndonc c'est ${unAgrandissement} et on a ${intervallek}.\n<br>${fImage2etapes.solution}\n`\n            texteCorr += String.raw`<br>\nLe rapport de cette homothétie est\n${lopposedu} quotient de la longueur d'un segment\n\"à l'arrivée\" par sa longueur \"au départ\".\n<br>\nSoit $k=${signek}\\dfrac{${O}${hA}}{${O}${A}}=${signek}\\dfrac{${OhA}}{${OA}}=${k}$.\n<br>\n$[${O}${hB}]$ est l'image de $[${O}${B}]$.\n<br>\nOr une homothétie de rapport ${positif}\nest une transformation qui multiplie\ntoutes les longueurs par ${lopposede} son rapport.\n<br>\nSoit $${O}${hB}= ${signek}k \\times ${O}${B}$.\n<br>\nDonc $${O}${hB}= ${absk} \\times ${OB} = ${OhB}~\\text{cm}$.\n`\n          }\n          break\n        case 'antecendent2etapes': // cas 5\n          donnees = [String.raw`${O}${hB}=${OhB}\\text{ cm}`, String.raw`${O}${hA}=${OhA}\\text{ cm}`, String.raw`${O}${A}=${OA}\\text{ cm}`]\n          melange = combinaisonListes([0, 1, 2])\n          donnee1 = donnees[melange[0]]\n          donnee2 = donnees[melange[1]]\n          donnee3 = donnees[melange[2]]\n          texte = String.raw`$${hA}$ et $${hB}$ sont les images respectives\nde $${A}$ et $${B}$ par une homothétie ${derapportpositifet}\nde centre $${O}$ tel que\n$ {${donnee1}}$, $ {${donnee2}}$ et $ {${donnee3}}$.\n<br>\n${illustrerParUneFigureAMainLevee}\nCalculer $${O}${B}$ ${figurealechelle2}.\n<br>${fAntecedent2etapes.enonce}\n`\n          texteCorr = String.raw`$k=${signek}\\dfrac{${O}${hA}}{${O}${A}}=${signek}\\dfrac{${OhA}}{${OA}}=${k}$\net $${O}${B}=\\dfrac{${O}${hB}}{${absk}}=\\dfrac{${OhB}}{${absk}} = ${OB}~\\text{cm}$.`\n          if (this.correctionDetaillee) {\n            texteCorr = String.raw`$[${O}${hA}]$ est l'image de $[${O}${A}]$\net $${O} ${hA} ${plusgrandque} ${O} ${A}$\ndonc c'est ${unAgrandissement} et on a ${intervallek}.\n<br>${fAntecedent2etapes.solution}\n`\n            texteCorr += String.raw`<br>\nLe rapport de cette homothétie est ${lopposedu} quotient\nde la longueur d'un segment \"à l'arrivée\" par sa longueur \"au départ\".\n<br>\nSoit $k=${signek}\\dfrac{${O}${hA}}{${O}${A}}=${signek}\\dfrac{${OhA}}{${OA}}=${k}$.\n<br>\n$[${O}${hB}]$ est l'image de $[${O}${B}]$.\n<br>\nOr une homothétie de rapport ${positif} est\nune transformation qui multiplie\ntoutes les longueurs par ${lopposede} son rapport.\n<br>\nSoit $${O}${hB}=${signek}k \\times ${O}${B}$.\n<br>\nDonc $${O}${B}=\\dfrac{${O}${hB}}{${signek}k}=\\dfrac{${OhB}}{${absk}} ${OhBtimeskinverse} = ${OB}~\\text{cm}$.\n`\n          }\n          break\n        case 'aireImage': // cas 6\n          environ = (hAire === hAireArrondie) ? '' : 'environ'\n          approx = (environ === 'environ') ? '\\\\approx' : '='\n          texte = String.raw`Une figure a pour aire $ {${Aire}\\text{ cm}^2}$.\n<br>\nCalculer l'aire de son image par une homothétie de rapport $${signek}${kAire}$ (arrondir au $ {\\text{mm}^2}$ près si besoin).\n`\n          texteCorr = String.raw`\n                $ {${parentheseskAire}^2 \\times ${Aire} ${approx} ${hAireArrondie}~\\text{cm}^2}$\n                `\n          if (this.correctionDetaillee) {\n            texteCorr = String.raw`Une homothétie de rapport ${positif} est une transformation qui multiplie toutes les aires par le carré de son rapport.\n<br>\n$${parentheseskAire}^2 \\times ${Aire} = ${hAire}$\n<br>\nDonc l'aire de l'image de cette figure est ${environ} $ {${hAireArrondie}~\\text{cm}^2}$.\n`\n          }\n          break\n        case 'aireAntécédent': // cas 7\n          texte = String.raw`L'image d'une figure par une homothétie de rapport $${signek}${kAire}$ a pour aire $ {${hAire}\\text{ cm}^2}$.\n<br>\nCalculer l'aire de la figure de départ.\n`\n          texteCorr = String.raw`$ {\\dfrac{${hAire}}{${parentheseskAire}^2} = ${Aire}~\\text{cm}^2}$\n`\n          if (this.correctionDetaillee) {\n            texteCorr = String.raw`Une homothétie de rapport ${positif} est une transformation qui multiplie toutes les aires par le carré de son rapport.\n<br>\nNotons $\\mathscr{A}$ l'aire de la figure de départ.\n<br>\nD'où $${parentheseskAire}^2 \\times \\mathscr{A} = ${hAire}$.\n<br>\nPuis $\\mathscr{A}=\\dfrac{${hAire}}{${parentheseskAire}^2}=${Aire}$.\n<br>\nDonc l'aire de la figure de départ est $ {${Aire}~\\text{cm}^2}$.\n`\n          }\n          break\n        case 'aireRapport': // cas 8\n          texte = String.raw`Une figure et son image par une homothétie de rapport ${positif} ont respectivement pour aires $ {${Aire}\\text{ cm}^2}$ et $ {${hAire}\\text{ cm}^2}$.\n<br>\nCalculer le rapport de l'homothétie.\n`\n          texteCorr = String.raw`$ {k=${signek}\\sqrt{\\dfrac{${hAire}}{${Aire}}} = ${signek}${kAire}}$`\n          if (this.correctionDetaillee) {\n            texteCorr = String.raw`Une homothétie de rapport ${positif} est une transformation qui\nmultiplie toutes les aires par le carré de son rapport.\n<br>\nNotons $k$ le rapport de cette homothétie.\nOn a donc $k^2 \\times ${Aire} = ${hAire}$,\nou encore $k^2=\\dfrac{${hAire}}{${Aire}}$.\n<br>\nD'où $ {k=${signek}\\sqrt{\\dfrac{${hAire}}{${Aire}}} = ${signek}${kAire}}$.\n`\n          }\n          break\n        case 'rapport2': // cas 9\n          donnees = [String.raw`${A}${hA}=${AhA}\\text{ cm}`, String.raw`${O}${A}=${OA}\\text{ cm}`]\n          melange = combinaisonListes([0, 1])\n          donnee1 = donnees[melange[0]]\n          donnee2 = donnees[melange[1]]\n          texte = String.raw`$${hA}$ est l'image de $${A}$\npar une homothétie ${derapportpositifet}\nde centre $${O}$ tel que $ {${donnee1}}$ et $ {${donnee2}}$.\n<br>\n${illustrerParUneFigureAMainLevee}\nCalculer le rapport $k$ de cette homothétie ${figurealechelle}.\n${frapport2.enonce}\n`\n          texteCorr = String.raw`\n                $k=${signek}\\dfrac{${O}${hA}}{${O}${A}}=${signek}\\dfrac{${OhA}}{${OA}}=${k}$.\n                `\n          if (this.correctionDetaillee) {\n            texteCorr = String.raw`$${O}${hA} = ${calculsOhA} = ${OhA}\\text{ cm}$\n<br>\n$[${O}${hA}]$ est l'image de $[${O}${A}]$\net $${O} ${hA} ${plusgrandque} ${O} ${A}$\ndonc c'est ${unAgrandissement} et on a ${intervallek}.\n<br> ${frapport.solution}\n`\n            texteCorr += String.raw`<br>\nLe rapport de cette homothétie est ${lopposedu} quotient\nde la longueur d'un segment \"à l'arrivée\"\npar sa longueur \"au départ\".\n<br>\nSoit $k=${signek}\\dfrac{${O}${hA}}{${O}${A}}=${signek}\\dfrac{${OhA}}{${OA}}=${k}$.\n`\n          }\n          break\n        case 'encadrerk': // cas 10\n          donnees = [String.raw`${O}${hA}=${OhA}\\text{ cm}`, String.raw`${O}${A}=${OA}\\text{ cm}`]\n          melange = combinaisonListes([0, 1])\n          donnee1 = donnees[melange[0]]\n          donnee2 = donnees[melange[1]]\n          texte = String.raw`$${hA}$ est l'image de $${A}$\npar une homothétie ${derapportpositifet}\nde centre $${O}$ tel que $ {${donnee1}}$ et $ {${donnee2}}$.\n<br>\n${illustrerParUneFigureAMainLevee}\nSans effectuer de calculs, que peut-on dire du rapport $k$ de cette homothétie ?\n(choisir la bonne réponse)\n<br>\n$\\square\\hphantom{a} k<-1 \\hspace{1cm} \\square\\hphantom{a} -1 < k < 0 \\hspace{1cm} \\square\\hphantom{a} 0 < k < 1 \\hspace{1cm} \\square\\hphantom{a} k > 1$.\n<br>\n${figurealechelle}\n${frapport.enonce}\n`\n          texteCorr = String.raw`\n                $${intervallek}$.\n                `\n          if (this.correctionDetaillee) {\n            texteCorr = String.raw`$[${O}${hA}]$ est l'image de $[${O}${A}]$\net $${O} ${hA} ${plusgrandque} ${O} ${A}$\ndonc c'est ${unAgrandissement}.\n<br>\nDe plus $${hA}${inNotin}[${O};${A})$ donc ${intervallek}.\n<br> ${frapport.solution}\n`\n          }\n          break\n        case 'encadrerk2': // cas 11\n          donnees = [String.raw`${A}${hA}=${AhA}\\text{ cm}`, String.raw`${O}${A}=${OA}\\text{ cm}`]\n          melange = combinaisonListes([0, 1])\n          donnee1 = donnees[melange[0]]\n          donnee2 = donnees[melange[1]]\n          texte = String.raw`$${hA}$ est l'image de $${A}$\npar une homothétie ${derapportpositifet}\nde centre $${O}$ tel que $ {${donnee1}}$ et $ {${donnee2}}$.\n<br>\n${illustrerParUneFigureAMainLevee}\nSans effectuer de calculs, que peut-on dire du rapport $k$ de cette homothétie ?\n(choisir la bonne réponse)\n<br>\n$\\square\\hphantom{a} k<-1 \\hspace{1cm} \\square\\hphantom{a} -1 < k < 0 \\hspace{1cm} \\square\\hphantom{a} 0 < k < 1 \\hspace{1cm} \\square\\hphantom{a} k > 1$.\n<br>\n${figurealechelle}\n${frapport2.enonce}`\n          texteCorr = String.raw`$${intervallek}$.`\n          if (this.correctionDetaillee) {\n            texteCorr = String.raw`$${O}${hA} = ${calculsOhA} = ${OhA}\\text{ cm}$\n<br>\n$[${O}${hA}]$ est l'image de $[${O}${A}]$\net $${O} ${hA} ${plusgrandque} ${O} ${A}$\ndonc c'est ${unAgrandissement}.\n<br>\nDe plus $${hA}${inNotin}[${O};${A})$ donc ${intervallek}.\n<br> ${frapport.solution}`\n          }\n          break\n      }\n      if (this.questionJamaisPosee(i, k)) {\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","dateDeModifImportante","uuid","ref","texNum","expression","formatFraction","signe","deprecatedTexFraction","texNombre","evaluate","format","Algebrite","CalculsHomothetie","Exercice","context","typeQuestionsDisponibles","listeTypeQuestions","gestionnaireFormulaireTexte","kEstEntier","valeursSimples","i","approx","environ","melange","donnee1","donnee2","donnee3","donnees","texte","texteCorr","cpt","lettres","choisitLettresDifferentes","A","hA","O","B","hB","ks","fraction","choice","k","abs","multiply","randint","absk","agrandissement","kpositif","longueurEntiere","OA","divide","OhA","OB","OhB","AhA","subtract","kAire","Aire","hAire","pow","hAireArrondie","round","plusgrandque","unAgrandissement","intervallek","positif","signek","lopposede","lopposedu","derapportpositifet","inNotin","illustrerParUneFigureAMainLevee","kinverse","OhAdivkInversed","OhBdivkInversed","largeurFigure","max","testFigureCorrigee","correctionOhA","correctionOA","figurealechelle","figurealechelle2","figure","point","homothetie","rotation","OhAtimeskinverse","isInteger","OhBtimeskinverse","parentheseskAire","calculsOhA","segmentAvecExtremites","arcPointPointAngle","texteSurSegment","texteSurArc","objetsEnonce","fscale","flabelsRapport","labelPoint","frapport","mathalea2d","fixeBordures","flabelsImage","fImage","flabelsAntecedent","fAntecedent","flabelsImage2etapes","fImage2etapes","flabelsAntecedent2etapes","fAntecedent2etapes","frapport2","combinaisonListes","listeQuestionsToContenu"],"mappings":"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"}