File: /home/mmtprep/public_html/mathzen.mmtprep.com/assets/6M21-uFDNdCJW.js.map
{"version":3,"file":"6M21-uFDNdCJW.js","sources":["../../src/exercices/6e/6M21.js"],"sourcesContent":["import { arc } from '../../lib/2d/cercle.js'\nimport { codageSegment } from '../../lib/2d/codages.js'\nimport { droite, droiteParPointEtPente } from '../../lib/2d/droites.js'\nimport { milieu, point, pointIntersectionDD, pointSurSegment } from '../../lib/2d/points.js'\nimport { polygone } from '../../lib/2d/polygones.js'\nimport { longueur, segment, vecteur } from '../../lib/2d/segmentsVecteurs.js'\nimport { homothetie, projectionOrtho, rotation, translation } from '../../lib/2d/transformations.js'\nimport { choice, combinaisonListes } from '../../lib/outils/arrayOutils'\nimport { arrondi } from '../../lib/outils/nombres'\nimport { numAlpha } from '../../lib/outils/outilString.js'\nimport Exercice from '../deprecatedExercice.js'\nimport { mathalea2d, colorToLatexOrHTML, ObjetMathalea2D } from '../../modules/2dGeneralites.js'\nimport { listeQuestionsToContenu, randint, entreDeux, gestionnaireFormulaireTexte } from '../../modules/outils.js'\nimport { min, max } from 'mathjs'\nimport { propositionsQcm } from '../../lib/interactif/qcm.js'\nimport { context } from '../../modules/context.js'\nimport { afficherTempo, cacherTempo } from '../../modules/2dAnimation.js'\nexport const dateDePublication = '08/06/2022'\nexport const titre = 'Compare perimeters and/or areas of figures'\nexport const interactifReady = true\nexport const interactifType = 'qcm'\n\n/**\n * Comparer aires et/ou périmètres de figures avec ceux d'un rectangle référence\n * Ref 6M21\n * @author Eric Elter\n * Publié le 08/06/2022\n */\nfunction TranslationPuisRotationAnimee (numId, figure1, v, figure2, O, angle, t1 = 5, t2 = 2) {\n ObjetMathalea2D.call(this, { })\n this.svg = function (coeff) {\n afficherTempo(figure2, t1, t1 + t2, 1)\n let code = '<g> '\n // Translation de figure1 de vecteur v\n if (Array.isArray(figure1)) { // Si la figure1 est constituée d'une liste d'éléments\n for (const objet of figure1) {\n code += '\\n' + objet.svg(coeff)\n }\n } else { // Si la figure1 n'est constituée que d'un élément\n code += '\\n' + figure1.svg(coeff)\n }\n code += `<animateTransform\n attributeName=\"transform\"\n attributeType=\"XML\"\n type=\"translate\"\n from=\"0 0\"\n to=\"${arrondi(v.xSVG(coeff), 0)} ${arrondi(v.ySVG(coeff), 0)}\"\n begin=\"0s\" dur=\"${t1}s\" fill=\"freeze\" repeatCount=\"1\" id=\"translat${numId}\"\n /></path></g>`\n\n cacherTempo(figure1, t1, 0, 1)\n\n // Rotation de figure2 de centre O et de angle angle\n code += '<g>'\n if (Array.isArray(figure2)) { // Si la figure2 est constituée d'une liste d'éléments\n for (const objet of figure2) {\n code += '\\n' + objet.svg(coeff)\n }\n } else { // Si la figure2 n'est constituée que d'un élément\n code += '\\n' + figure2.svg(coeff)\n }\n code += `<animateTransform\n attributeName=\"transform\"\n type=\"rotate\"\n from=\"0 ${O.xSVG(coeff)} ${O.ySVG(coeff)}\"\n to=\"${-angle} ${O.xSVG(coeff)} ${O.ySVG(coeff)}\"\n begin=\"translat${numId}.end\" dur=\"${t2}s\" fill=\"freeze\" repeatCount=\"1\" id=\"rotat-${numId}\"\n /></path>`\n\n code += '</g>'\n return code\n }\n}\nfunction translationPuisRotationAnimees (...args) {\n return new TranslationPuisRotationAnimee(...args)\n}\n\nexport const uuid = '95313'\nexport const ref = '6M21'\nexport default function CompareAireEtPerimetreAvecRectangle () {\n Exercice.call(this)\n this.titre = titre\n this.consigne = ''\n this.nbQuestions = 3\n this.nbCols = 1\n this.nbColsCorr = 1\n this.spacingCorr = 1\n this.sup = 13\n this.sup2 = 3\n\n this.nouvelleVersion = function () {\n this.listeQuestions = [] // tableau contenant la liste des questions\n this.listeCorrections = []\n this.autoCorrection = []\n /*\n let typesDeProblemes = []\n const nbQuestionsDifferentes = 13\n if (typeof this.sup === 'number') {\n // If it is a number then there is only one choice for the number of steps\n typesDeProblemes[0] = contraindreValeur(1, nbQuestionsDifferentes, this.sup, nbQuestionsDifferentes)\n } else {\n typesDeProblemes = this.sup.split('-') // Sinon on crée un tableau à partir des valeurs séparées par des -\n for (let i = 0; i < typesDeProblemes.length; i++) {\n typesDeProblemes[i] = contraindreValeur(1, nbQuestionsDifferentes, parseInt(typesDeProblemes[i]), nbQuestionsDifferentes)\n }\n }\n if (compteOccurences(typesDeProblemes, 13) > 0) typesDeProblemes = rangeMinMax(1, 12) // Teste si l'utilisateur a choisi tout\n\n typesDeProblemes = combinaisonListes(typesDeProblemes, this.nbQuestions)\n */\n const typesDeProblemes = gestionnaireFormulaireTexte({\n max: 12,\n defaut: 13,\n melange: 13,\n nbQuestions: this.nbQuestions,\n saisie: this.sup\n })\n\n const color = combinaisonListes(['red', 'blue', 'green', 'gray', 'pink', '#f15929'], this.nbQuestions)\n\n let aireOuPerimetre = 'Both'\n if (this.sup2 === 1) aireOuPerimetre = 'Perimeter'\n else if (this.sup2 === 2) aireOuPerimetre = 'Area'\n\n let compteurInteractif = 0\n for (let q = 0, cpt = 0, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T,\n rayonOuCote, pt1, pt2, figAire1, figAire2, figAireCorr, figAireCorr2, figAire2Corr, choixFig, choixFig2, choixFigAire2, angleCorr,\n aleaAngle, aleaLongueur, aleaRayon, aleaDemiDisque, aleaPente, aleaRapportHomothetie, d1, d2, d3, d4, poly, rect,\n objets, texte, texteCorr, paramsEnonce, monQcmPerimetre, monQcmAire, hauteur,\n reponsePerimetre1, reponsePerimetre2, reponsePerimetre3, reponseAire1, reponseAire2, reponseAire3;\n q < this.nbQuestions && cpt < 50;) {\n objets = []\n A = point(0, 0)\n B = point(randint(5, 10), 0)\n C = point(B.x, randint(5, 10, B.x))\n D = point(0, C.y)\n rect = polygone([A, B, C, D])\n rect.hachures = true\n rect.pointilles = 2\n reponsePerimetre1 = false\n reponsePerimetre2 = false\n reponsePerimetre3 = false\n reponseAire1 = false\n reponseAire2 = false\n reponseAire3 = false\n\n if (this.sup2 === 4) aireOuPerimetre = choice(['Area', 'Perimeter'])\n\n switch (typesDeProblemes[q]) {\n case 1 : // Polygone inscrit dans rectangle\n E = A\n G = point(entreDeux((A.x + B.x) / 2, B.x), A.y)\n F = point(entreDeux(E.x, G.x), entreDeux(A.y, A.y + (D.y + A.y) / 2))\n H = point(entreDeux(G.x, B.x), entreDeux(A.y, A.y + (D.y + A.y) / 2))\n I = B\n J = point(entreDeux(H.x, B.x), entreDeux(H.y, C.y))\n K = point(B.x, entreDeux(J.y, C.y))\n L = point(entreDeux(A.x + (A.x + B.x) / 2, B.x), entreDeux(K.y, C.y))\n M = C\n N = point(entreDeux(A.x + (A.x + B.x) / 2, L.x), entreDeux(L.y, D.y))\n O = point(entreDeux(D.x, N.x), D.y)\n P = point(entreDeux(D.x, O.x), entreDeux(D.y, A.y + (D.y + A.y) / 2))\n Q = D\n R = point(entreDeux(A.x, P.x), entreDeux(P.y, A.y + (D.y + A.y) / 2))\n T = point(entreDeux(A.x, F.x), entreDeux(F.y, A.y + (D.y + A.y) / 2))\n S = point(A.x, entreDeux(R.y, T.y))\n\n poly = polygone(E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T)\n poly.couleurDeRemplissage = colorToLatexOrHTML(color[q])\n poly.opaciteDeRemplissage = 0.5\n objets.push(poly, rect)\n // objects.push(rect)\n paramsEnonce = { xmin: -0.5, ymin: -0.5, xmax: B.x + 0.5, ymax: C.y + 0.5, pixelsParCm: 30, scale: 0.7, mainlevee: false }\n texte = mathalea2d(paramsEnonce, objets)\n // Correction\n texteCorr = (this.sup2 === 3) ? numAlpha(0) : ''\n texteCorr += (this.sup2 === 1 || this.sup2 === 3 || aireOuPerimetre !== 'Area') ? 'You have to cover more ground to go around the colored figure than around the hatched rectangle. Therefore, the colored figure has a larger perimeter than that of the hatched rectangle.' : ''\n texteCorr += (this.sup2 === 3) ? '<br>' + numAlpha(1) : ''\n texteCorr += (this.sup2 === 2 || this.sup2 === 3 || aireOuPerimetre !== 'Perimeter') ? 'The hatched rectangle covers more area than the colored figure. Therefore, the hatched rectangle has an area greater than that of the colored figure.' : ''\n // Interactive MCQ\n if (this.interactif) {\n reponsePerimetre2 = true\n reponseAire1 = true\n }\n break\n case 2: // Rectangle inscrit dans polygone\n E = A\n G = point(entreDeux((A.x + B.x) / 2, B.x), A.y)\n F = point(entreDeux(E.x, G.x), entreDeux(A.y, A.y - (D.y + A.y) / 2))\n H = point(entreDeux(G.x, B.x), entreDeux(A.y, A.y - (D.y + A.y) / 2))\n I = B\n J = point(entreDeux(B.x, B.x + (A.x + B.x) / 2), entreDeux(I.y, (I.y + C.y) / 2))\n K = point(B.x, entreDeux(B.y, C.y))\n L = point(entreDeux(B.x, J.x), C.y)\n N = point(entreDeux(D.x, (C.x + D.x) / 2), C.y)\n M = point(entreDeux(N.x, L.x), entreDeux(D.y, D.y + (D.y + A.y) / 2))\n O = point(entreDeux(D.x, N.x), entreDeux(D.y, D.y + (D.y + A.y) / 2))\n P = point(entreDeux(A.x - (A.x + B.x) / 2, A.x), D.y)\n Q = point(A.x, entreDeux(A.y, D.y))\n R = point(entreDeux(A.x - (A.x + B.x) / 2, A.x), entreDeux(Q.y, A.y))\n poly = polygone(E, F, G, H, I, J, K, L, M, N, O, P, Q, R)\n poly.couleurDeRemplissage = colorToLatexOrHTML(color[q])\n poly.opaciteDeRemplissage = 0.5\n objets.push(poly, rect)\n paramsEnonce = { xmin: min(P.x, R.x) - 0.5, ymin: min(F.y, H.y) - 0.5, xmax: max(J.x, L.x) + 0.5, ymax: max(M.y, O.y) + 0.5, pixelsParCm: 30, scale: 0.7, mainlevee: false }\n texte = mathalea2d(paramsEnonce, objets)\n // Correction\n texteCorr = (this.sup2 === 3) ? numAlpha(0) : ''\n texteCorr += (this.sup2 === 1 || this.sup2 === 3 || aireOuPerimetre !== 'Area') ? 'You have to cover more ground to go around the colored figure than around the hatched rectangle. Therefore, the colored figure has a larger perimeter than that of the hatched rectangle.' : ''\n texteCorr += (this.sup2 === 3) ? '<br>' + numAlpha(1) : ''\n texteCorr += (this.sup2 === 2 || this.sup2 === 3 || aireOuPerimetre !== 'Perimeter') ? 'The hatched rectangle covers less area than the colored figure. Therefore, the colored figure has an area greater than that of the hatched rectangle.' : ''\n // Interactive MCQ\n if (this.interactif) {\n reponsePerimetre2 = true\n reponseAire2 = true\n }\n break\n case 3: // Deux demi-disques alternés qui s'emboîtent\n E = point(entreDeux(A.x, A.x + (B.x - A.x) / 3), A.y)\n F = point(entreDeux(B.x, A.x + 2 * (B.x - A.x) / 3), A.y)\n G = point(B.x, entreDeux(B.y, B.y + (C.y - B.y) / 3))\n H = point(B.x, entreDeux(C.y, B.y + 2 * (C.y - B.y) / 3))\n I = point(entreDeux(B.x, A.x + 2 * (B.x - A.x) / 3), D.y)\n J = point(entreDeux(A.x, A.x + (B.x - A.x) / 3), D.y)\n K = point(A.x, entreDeux(C.y, B.y + 2 * (C.y - B.y) / 3))\n L = point(A.x, entreDeux(B.y, B.y + (C.y - B.y) / 3))\n poly = polygone(A, B, C, D)\n poly.couleurDeRemplissage = colorToLatexOrHTML(color[q])\n poly.opaciteDeRemplissage = 0.5\n poly.color = 'none'\n objets.push(poly)\n rayonOuCote = arrondi((min(longueur(E, F), longueur(G, H), longueur(I, J), longueur(K, L))) / 2)\n M = translation(E, vecteur(rayonOuCote, 0))\n N = translation(G, vecteur(0, rayonOuCote))\n O = translation(I, vecteur(-rayonOuCote, 0))\n P = translation(K, vecteur(0, -rayonOuCote))\n paramsEnonce = { xmin: -0.5, ymin: -0.5, xmax: B.x + 0.5, ymax: C.y + 0.5, pixelsParCm: 30, scale: 0.7, mainlevee: false }\n choixFig = randint(0, 3)\n switch (choixFig) {\n case 0:\n pt1 = M\n pt2 = E\n paramsEnonce.ymin = -0.5 - rayonOuCote\n break\n case 1:\n pt1 = N\n pt2 = G\n paramsEnonce.xmax = rayonOuCote + B.x + 0.5\n break\n case 2:\n pt1 = O\n pt2 = I\n paramsEnonce.ymax = rayonOuCote + C.y + 0.5\n break\n case 3:\n pt1 = P\n pt2 = K\n paramsEnonce.xmin = -0.5 - rayonOuCote\n break\n }\n\n figAire1 = arc(pt2, pt1, 180, false, color[q], 'black', 0.5)\n choixFig2 = randint(0, 3, [choixFig])\n choixFigAire2 = [\n [E, M],\n [G, N],\n [I, O],\n [K, P]\n ]\n if (choixFig2 === 1) paramsEnonce.xmax = rayonOuCote + B.x + 0.5\n if (choixFig2 === 3) paramsEnonce.xmin = -0.5 - rayonOuCote\n\n figAire2 = arc(choixFigAire2[choixFig2][0], choixFigAire2[choixFig2][1], -180, false, 'white', 'black', 1.1)\n M = rotation(pt2, pt1, 60)\n N = segment(M, pt1, 'black')\n N.epaisseur = 2\n O = rotation(choixFigAire2[choixFig2][0], choixFigAire2[choixFig2][1], -60)\n P = segment(O, choixFigAire2[choixFig2][1], 'black')\n P.epaisseur = 2\n objets.push(figAire1, figAire2, N, codageSegment(M, pt1, '|||'), P, codageSegment(O, choixFigAire2[choixFig2][1], '|||'), rect)\n texte = mathalea2d(paramsEnonce, objets)\n // Correction\n texteCorr = (this.sup2 === 3) ? numAlpha(0) : ''\n texteCorr += (this.sup2 === 1 || this.sup2 === 3 || aireOuPerimetre !== 'Area') ? 'You have to cover more ground to go around the colored figure than around the hatched rectangle. Therefore, the colored figure has a larger perimeter than that of the hatched rectangle.' : ''\n texteCorr += (this.sup2 === 3) ? '<br>' + numAlpha(1) : ''\n texteCorr += (this.sup2 === 2 || this.sup2 === 3 || aireOuPerimetre !== 'Perimeter') ? 'The hatched rectangle covers as much surface as the colored figure. Therefore, the colored figure has an area equal to that of the hatched rectangle.' : ''\n if ((this.sup2 === 2 || this.sup2 === 3 || aireOuPerimetre !== 'Perimeter')) {\n objets = []\n figAire1 = arc(pt2, pt1, 180, false, 'white', 'black', 1.1)\n figAireCorr = arc(pt2, pt1, 180, false, color[q], 'black', 0.5)\n angleCorr = choixFig2 - choixFig < 0 ? choixFig2 - choixFig + 4 : choixFig2 - choixFig\n angleCorr = angleCorr === 1 ? 90 : angleCorr === 2 ? 0 : -90\n figAireCorr2 = arc(rotation(choixFigAire2[choixFig2][0], choixFigAire2[choixFig2][1], angleCorr), choixFigAire2[choixFig2][1], -180, false, color[q], 'black', 0.5)\n objets.push(poly, figAire1, figAire2, N, codageSegment(M, pt1, '|||'), P, codageSegment(O, choixFigAire2[choixFig2][1], '|||'), rect)\n objets.push(translationPuisRotationAnimees(q, figAireCorr, vecteur(pt1, choixFigAire2[choixFig2][1]), figAireCorr2, choixFigAire2[choixFig2][1], -angleCorr))\n paramsEnonce.ymin = choixFig2 === 0 ? -0.5 - rayonOuCote : paramsEnonce.ymin\n paramsEnonce.ymax = choixFig2 === 2 ? rayonOuCote + C.y + 0.5 : paramsEnonce.ymax\n texteCorr += '<br>' + mathalea2d(paramsEnonce, objets)\n if (context.isHtml) {\n texteCorr += `<br><button class='btn ui labeled icon button' style='margin:10px' onclick=\"document.getElementById('${figAireCorr.id}').style.visibility = 'visible',document.getElementById('${figAireCorr2.id}').style.visibility = 'hidden',\n setTimeout(function() {document.getElementById('${figAireCorr.id}').style.visibility = 'hidden'}, 5000),\n setTimeout(function() {document.getElementById('${figAireCorr2.id}').style.visibility = \"visible'}, 5000),document.getElementById('translat${q}\").beginElement()\"><i class=\"redo circle icon\"></i>Restart area comparison animation </button>`\n }\n }\n // Interactive MCQ\n if (this.interactif) {\n reponsePerimetre2 = true\n reponseAire3 = true\n }\n break\n case 4: // Deux demi-disques alternés qui ne s'emboîtent pas\n E = point(entreDeux(A.x, A.x + (B.x - A.x) / 3), A.y)\n F = point(entreDeux(B.x, A.x + 2 * (B.x - A.x) / 3), A.y)\n G = point(B.x, entreDeux(B.y, B.y + (C.y - B.y) / 3))\n H = point(B.x, entreDeux(C.y, B.y + 2 * (C.y - B.y) / 3))\n I = point(entreDeux(B.x, A.x + 2 * (B.x - A.x) / 3), D.y)\n J = point(entreDeux(A.x, A.x + (B.x - A.x) / 3), D.y)\n K = point(A.x, entreDeux(C.y, B.y + 2 * (C.y - B.y) / 3))\n L = point(A.x, entreDeux(B.y, B.y + (C.y - B.y) / 3))\n poly = polygone(A, B, C, D)\n poly.couleurDeRemplissage = colorToLatexOrHTML(color[q])\n poly.opaciteDeRemplissage = 0.5\n poly.color = 'none'\n objets.push(poly)\n aleaDemiDisque = choice([true, false])\n aleaRayon = randint(2, 3)\n rayonOuCote = arrondi((min(longueur(E, F), longueur(G, H), longueur(I, J), longueur(K, L))) / 2)\n rayonOuCote = aleaDemiDisque ? rayonOuCote : rayonOuCote / aleaRayon\n M = translation(E, vecteur(rayonOuCote, 0))\n N = translation(G, vecteur(0, rayonOuCote))\n O = translation(I, vecteur(-rayonOuCote, 0))\n P = translation(K, vecteur(0, -rayonOuCote))\n paramsEnonce = { xmin: -0.5, ymin: -0.5, xmax: B.x + 0.5, ymax: C.y + 0.5, pixelsParCm: 30, scale: 0.7, mainlevee: false }\n choixFig = randint(0, 3)\n switch (choixFig) {\n case 0:\n pt1 = M\n pt2 = E\n paramsEnonce.ymin = -0.5 - rayonOuCote\n break\n case 1:\n pt1 = N\n pt2 = G\n paramsEnonce.xmax = rayonOuCote + B.x + 0.5\n break\n case 2:\n pt1 = O\n pt2 = I\n paramsEnonce.ymax = rayonOuCote + C.y + 0.5\n break\n case 3:\n pt1 = P\n pt2 = K\n paramsEnonce.xmin = -0.5 - rayonOuCote\n break\n }\n figAire1 = arc(pt2, pt1, 180, false, color[q], 'black', 0.5)\n choixFig2 = randint(0, 3, [choixFig])\n choixFigAire2 = [\n [E, M],\n [G, N],\n [I, O],\n [K, P]\n ]\n paramsEnonce.xmax = choixFig2 === 1 ? rayonOuCote + B.x + 0.5 : paramsEnonce.xmax\n paramsEnonce.xmin = choixFig2 === 3 ? -0.5 - rayonOuCote : paramsEnonce.xmin\n figAire2 = arc(aleaDemiDisque ? homothetie(choixFigAire2[choixFig2][1], choixFigAire2[choixFig2][0], 1 / aleaRayon) : choixFigAire2[choixFig2][0], aleaDemiDisque ? choixFigAire2[choixFig2][1] : homothetie(choixFigAire2[choixFig2][1], choixFigAire2[choixFig2][0], aleaRayon), -180, false, 'white', 'black', 1.1)\n objets.push(figAire1, figAire2, rect)\n texte = mathalea2d(paramsEnonce, objets)\n // Correction\n texteCorr = (this.sup2 === 3) ? numAlpha(0) : ''\n texteCorr += (this.sup2 === 1 || this.sup2 === 3 || aireOuPerimetre !== 'Area') ? 'You have to cover more ground to go around the colored figure than around the hatched rectangle. Therefore, the colored figure has a larger perimeter than that of the hatched rectangle.' : ''\n texteCorr += (this.sup2 === 3) ? '<br>' + numAlpha(1) : ''\n texteCorr += aleaDemiDisque\n ? ((this.sup2 === 2 || this.sup2 === 3 || aireOuPerimetre !== 'Perimeter') ? 'The hatched rectangle covers less area than the colored figure. Therefore, the colored figure has an area greater than that of the hatched rectangle.' : '')\n : ((this.sup2 === 2 || this.sup2 === 3 || aireOuPerimetre !== 'Perimeter') ? 'The hatched rectangle covers more area than the colored figure. Therefore, the hatched rectangle has an area greater than that of the colored figure.' : '')\n if ((this.sup2 === 2 || this.sup2 === 3 || aireOuPerimetre !== 'Perimeter')) {\n objets = []\n figAire1 = arc(pt2, pt1, 180, false, 'white', 'black', 1.1)\n figAireCorr = arc(pt2, pt1, 180, false, color[q], 'black', 0.5)\n angleCorr = choixFig2 - choixFig < 0 ? choixFig2 - choixFig + 4 : choixFig2 - choixFig\n angleCorr = angleCorr === 1 ? 90 : angleCorr === 2 ? 0 : -90\n figAireCorr2 = arc(rotation(choixFigAire2[choixFig2][0], choixFigAire2[choixFig2][1], angleCorr), choixFigAire2[choixFig2][1], -180, false, color[q], 'black', 0.5)\n objets.push(poly, figAire1, figAire2, rect)\n objets.push(translationPuisRotationAnimees(q, figAireCorr, vecteur(pt1, choixFigAire2[choixFig2][1]), figAireCorr2, choixFigAire2[choixFig2][1], -angleCorr))\n paramsEnonce.ymin = choixFig2 === 0 ? -0.5 - rayonOuCote : paramsEnonce.ymin\n paramsEnonce.ymax = choixFig2 === 2 ? rayonOuCote + C.y + 0.5 : paramsEnonce.ymax\n texteCorr += '<br>' + mathalea2d(paramsEnonce, objets)\n if (context.isHtml) {\n texteCorr += `<br><button class='btn ui labeled icon button' style='margin:10px' onclick=\"document.getElementById('${figAireCorr.id}').style.visibility = 'visible',document.getElementById('${figAireCorr2.id}').style.visibility = 'hidden',\n setTimeout(function() {document.getElementById('${figAireCorr.id}').style.visibility = 'hidden'}, 5000),\n setTimeout(function() {document.getElementById('${figAireCorr2.id}').style.visibility = \"visible'}, 5000),document.getElementById('translat${q}\").beginElement()\"><i class=\"redo circle icon\"></i>Restart area comparison animation </button>`\n }\n }\n // Interactive MCQ\n if (this.interactif) {\n reponsePerimetre2 = true\n reponseAire1 = !aleaDemiDisque\n reponseAire2 = aleaDemiDisque\n }\n break\n case 5: // Deux demi-disques en plus\n E = point(entreDeux(A.x, A.x + (B.x - A.x) / 3), A.y)\n F = point(entreDeux(B.x, A.x + 2 * (B.x - A.x) / 3), A.y)\n G = point(B.x, entreDeux(B.y, B.y + (C.y - B.y) / 3))\n H = point(B.x, entreDeux(C.y, B.y + 2 * (C.y - B.y) / 3))\n I = point(entreDeux(B.x, A.x + 2 * (B.x - A.x) / 3), D.y)\n J = point(entreDeux(A.x, A.x + (B.x - A.x) / 3), D.y)\n K = point(A.x, entreDeux(C.y, B.y + 2 * (C.y - B.y) / 3))\n L = point(A.x, entreDeux(B.y, B.y + (C.y - B.y) / 3))\n poly = polygone(A, B, C, D)\n poly.couleurDeRemplissage = colorToLatexOrHTML(color[q])\n poly.opaciteDeRemplissage = 0.5\n poly.color = 'none'\n objets.push(poly)\n rayonOuCote = arrondi((min(longueur(E, F), longueur(G, H), longueur(I, J), longueur(K, L))) / 2)\n M = translation(E, vecteur(rayonOuCote, 0))\n N = translation(G, vecteur(0, rayonOuCote))\n O = translation(I, vecteur(-rayonOuCote, 0))\n P = translation(K, vecteur(0, -rayonOuCote))\n paramsEnonce = { xmin: -0.5, ymin: -0.5, xmax: B.x + 0.5, ymax: C.y + 0.5, pixelsParCm: 30, scale: 0.7, mainlevee: false }\n choixFig = randint(0, 3)\n switch (choixFig) {\n case 0:\n pt1 = M\n pt2 = E\n paramsEnonce.ymin = -0.5 - rayonOuCote\n break\n case 1:\n pt1 = N\n pt2 = G\n paramsEnonce.xmax = rayonOuCote + B.x + 0.5\n break\n case 2:\n pt1 = O\n pt2 = I\n paramsEnonce.ymax = rayonOuCote + C.y + 0.5\n break\n case 3:\n pt1 = P\n pt2 = K\n paramsEnonce.xmin = -0.5 - rayonOuCote\n break\n }\n figAire1 = arc(pt2, pt1, 180, false, color[q], 'black', 0.5)\n choixFig2 = randint(0, 3, [choixFig])\n choixFigAire2 = [\n [E, M],\n [G, N],\n [I, O],\n [K, P]\n ]\n paramsEnonce.ymin = choixFig2 === 0 ? -0.5 - rayonOuCote : paramsEnonce.ymin\n paramsEnonce.xmax = choixFig2 === 1 ? rayonOuCote + B.x + 0.5 : paramsEnonce.xmax\n paramsEnonce.ymax = choixFig2 === 2 ? rayonOuCote + C.y + 0.5 : paramsEnonce.ymax\n paramsEnonce.xmin = choixFig2 === 3 ? -0.5 - rayonOuCote : paramsEnonce.xmin\n\n figAire2 = arc(choixFigAire2[choixFig2][0], choixFigAire2[choixFig2][1], 180, false, color[q], 'black', 0.5)\n M = rotation(pt2, pt1, 60)\n N = segment(M, pt1, 'black')\n N.epaisseur = 2\n O = rotation(choixFigAire2[choixFig2][0], choixFigAire2[choixFig2][1], 60)\n P = segment(O, choixFigAire2[choixFig2][1], 'black')\n P.epaisseur = 2\n objets.push(figAire1, figAire2, N, codageSegment(M, pt1, '|||'), P, codageSegment(O, choixFigAire2[choixFig2][1], '|||'), rect)\n texte = mathalea2d(paramsEnonce, objets)\n // Correction\n texteCorr = (this.sup2 === 3) ? numAlpha(0) : ''\n texteCorr += (this.sup2 === 1 || this.sup2 === 3 || aireOuPerimetre !== 'Area') ? 'You have to cover more ground to go around the colored figure than around the hatched rectangle. Therefore, the colored figure has a larger perimeter than that of the hatched rectangle.' : ''\n texteCorr += (this.sup2 === 3) ? '<br>' + numAlpha(1) : ''\n texteCorr += (this.sup2 === 2 || this.sup2 === 3 || aireOuPerimetre !== 'Perimeter') ? 'The hatched rectangle covers less area than the colored figure. Therefore, the colored figure has an area greater than that of the hatched rectangle.' : ''\n // Interactive MCQ\n if (this.interactif) {\n reponsePerimetre2 = true\n reponseAire2 = true\n }\n break\n case 6: // Deux demi-disques en moins\n E = point(entreDeux(A.x, A.x + (B.x - A.x) / 3), A.y)\n F = point(entreDeux(B.x, A.x + 2 * (B.x - A.x) / 3), A.y)\n G = point(B.x, entreDeux(B.y, B.y + (C.y - B.y) / 3))\n H = point(B.x, entreDeux(C.y, B.y + 2 * (C.y - B.y) / 3))\n I = point(entreDeux(B.x, A.x + 2 * (B.x - A.x) / 3), D.y)\n J = point(entreDeux(A.x, A.x + (B.x - A.x) / 3), D.y)\n K = point(A.x, entreDeux(C.y, B.y + 2 * (C.y - B.y) / 3))\n L = point(A.x, entreDeux(B.y, B.y + (C.y - B.y) / 3))\n poly = polygone(A, B, C, D)\n poly.couleurDeRemplissage = colorToLatexOrHTML(color[q])\n poly.opaciteDeRemplissage = 0.5\n poly.color = 'none'\n objets.push(poly)\n rayonOuCote = arrondi((min(longueur(E, F), longueur(G, H), longueur(I, J), longueur(K, L))) / 2)\n M = translation(E, vecteur(rayonOuCote, 0))\n N = translation(G, vecteur(0, rayonOuCote))\n O = translation(I, vecteur(-rayonOuCote, 0))\n P = translation(K, vecteur(0, -rayonOuCote))\n paramsEnonce = { xmin: -0.5, ymin: -0.5, xmax: B.x + 0.5, ymax: C.y + 0.5, pixelsParCm: 30, scale: 0.7, mainlevee: false }\n choixFig = randint(0, 3)\n switch (choixFig) {\n case 0:\n pt1 = M\n pt2 = E\n paramsEnonce.ymin = -0.5 - rayonOuCote\n break\n case 1:\n pt1 = N\n pt2 = G\n paramsEnonce.xmax = rayonOuCote + B.x + 0.5\n break\n case 2:\n pt1 = O\n pt2 = I\n paramsEnonce.ymax = rayonOuCote + C.y + 0.5\n break\n case 3:\n pt1 = P\n pt2 = K\n paramsEnonce.xmin = -0.5 - rayonOuCote\n break\n }\n figAire1 = arc(pt2, pt1, -180, false, 'white', 'black', 1.1)\n choixFig2 = randint(0, 3, [choixFig])\n choixFigAire2 = [\n [E, M],\n [G, N],\n [I, O],\n [K, P]\n ]\n paramsEnonce.ymin = choixFig2 === 0 ? -0.5 - rayonOuCote : paramsEnonce.ymin\n paramsEnonce.xmax = choixFig2 === 1 ? rayonOuCote + B.x + 0.5 : paramsEnonce.xmax\n paramsEnonce.ymax = choixFig2 === 2 ? rayonOuCote + C.y + 0.5 : paramsEnonce.ymax\n paramsEnonce.xmin = choixFig2 === 3 ? -0.5 - rayonOuCote : paramsEnonce.xmin\n\n figAire2 = arc(choixFigAire2[choixFig2][0], choixFigAire2[choixFig2][1], -180, false, 'white', 'black', 1.1)\n M = rotation(pt2, pt1, -60)\n N = segment(M, pt1, 'black')\n N.epaisseur = 2\n O = rotation(choixFigAire2[choixFig2][0], choixFigAire2[choixFig2][1], -60)\n P = segment(O, choixFigAire2[choixFig2][1], 'black')\n P.epaisseur = 2\n objets.push(figAire1, figAire2, N, codageSegment(M, pt1, '|||'), P, codageSegment(O, choixFigAire2[choixFig2][1], '|||'), rect)\n texte = mathalea2d(paramsEnonce, objets)\n // Correction\n texteCorr = (this.sup2 === 3) ? numAlpha(0) : ''\n texteCorr += (this.sup2 === 1 || this.sup2 === 3 || aireOuPerimetre !== 'Area') ? 'You have to cover more ground to go around the colored figure than around the hatched rectangle. Therefore, the colored figure has a larger perimeter than that of the hatched rectangle.' : ''\n texteCorr += (this.sup2 === 3) ? '<br>' + numAlpha(1) : ''\n texteCorr += (this.sup2 === 2 || this.sup2 === 3 || aireOuPerimetre !== 'Perimeter') ? 'The hatched rectangle covers more area than the colored figure. Therefore, the hatched rectangle has an area greater than that of the colored figure.' : ''\n // Interactive MCQ\n if (this.interactif) {\n reponsePerimetre2 = true\n reponseAire1 = true\n }\n break\n case 7: // Un quadrilatère inscrit dans le rectangle\n E = point(entreDeux(A.x, B.x), A.y)\n F = point(B.x, entreDeux(B.y, C.y))\n G = point(entreDeux(A.x, B.x), C.y)\n H = point(A.x, entreDeux(B.y, C.y))\n poly = polygone(E, F, G, H)\n poly.couleurDeRemplissage = colorToLatexOrHTML(color[q])\n poly.opaciteDeRemplissage = 0.5\n objets.push(poly, rect)\n paramsEnonce = { xmin: -0.5, ymin: -0.5, xmax: B.x + 0.5, ymax: C.y + 0.5, pixelsParCm: 30, scale: 0.7, mainlevee: false }\n texte = mathalea2d(paramsEnonce, objets)\n // Correction\n texteCorr = (this.sup2 === 3) ? numAlpha(0) : ''\n texteCorr += (this.sup2 === 1 || this.sup2 === 3 || aireOuPerimetre !== 'Area') ? 'You have to cover less distance to go around the colored figure than around the hatched rectangle. Therefore, the hatched rectangle has a larger perimeter than that of the colored figure.' : ''\n texteCorr += (this.sup2 === 3) ? '<br>' + numAlpha(1) : ''\n texteCorr += (this.sup2 === 2 || this.sup2 === 3 || aireOuPerimetre !== 'Perimeter') ? 'The hatched rectangle covers more area than the colored figure. Therefore, the hatched rectangle has an area greater than that of the colored figure.' : ''\n // Interactive MCQ\n if (this.interactif) {\n reponsePerimetre1 = true\n reponseAire1 = true\n }\n break\n case 8: // Le rectangle inscrit dans un quadrilatère\n aleaPente = choice([0, 0.5])\n d1 = droiteParPointEtPente(A, -(aleaPente + randint(10, 50) / 100))\n d2 = droiteParPointEtPente(B, -(aleaPente - randint(50, 90) / 100))\n d3 = droiteParPointEtPente(C, -(aleaPente + randint(10, 50) / 100))\n d4 = droiteParPointEtPente(D, -(aleaPente - randint(50, 90) / 100))\n E = pointIntersectionDD(d1, d2)\n F = pointIntersectionDD(d2, d3)\n G = pointIntersectionDD(d3, d4)\n H = pointIntersectionDD(d4, d1)\n poly = polygone(E, F, G, H)\n poly.couleurDeRemplissage = colorToLatexOrHTML(color[q])\n poly.opaciteDeRemplissage = 0.5\n objets.push(poly, rect)\n paramsEnonce = { xmin: H.x - 0.5, ymin: E.y - 0.5, xmax: F.x + 0.5, ymax: G.y + 0.5, pixelsParCm: 30, scale: 0.7, mainlevee: false }\n texte = mathalea2d(paramsEnonce, objets)\n // Correction\n texteCorr = (this.sup2 === 3) ? numAlpha(0) : ''\n texteCorr += (this.sup2 === 1 || this.sup2 === 3 || aireOuPerimetre !== 'Area') ? 'You have to cover more ground to go around the colored figure than around the hatched rectangle. Therefore, the colored figure has a larger perimeter than that of the hatched rectangle.' : ''\n texteCorr += (this.sup2 === 3) ? '<br>' + numAlpha(1) : ''\n texteCorr += (this.sup2 === 2 || this.sup2 === 3 || aireOuPerimetre !== 'Perimeter') ? 'The hatched rectangle covers less area than the colored figure. Therefore, the colored figure has an area greater than that of the hatched rectangle.' : ''\n // Interactive MCQ\n if (this.interactif) {\n reponsePerimetre2 = true\n reponseAire2 = true\n }\n break\n case 9: // Deux triangles alternés qui s'emboîtent\n E = point(entreDeux(A.x, A.x + (B.x - A.x) / 3), A.y)\n F = point(entreDeux(B.x, A.x + 2 * (B.x - A.x) / 3), A.y)\n G = point(B.x, entreDeux(B.y, B.y + (C.y - B.y) / 3))\n H = point(B.x, entreDeux(C.y, B.y + 2 * (C.y - B.y) / 3))\n I = point(entreDeux(B.x, A.x + 2 * (B.x - A.x) / 3), D.y)\n J = point(entreDeux(A.x, A.x + (B.x - A.x) / 3), D.y)\n K = point(A.x, entreDeux(C.y, B.y + 2 * (C.y - B.y) / 3))\n L = point(A.x, entreDeux(B.y, B.y + (C.y - B.y) / 3))\n poly = polygone(A, B, C, D)\n poly.couleurDeRemplissage = colorToLatexOrHTML(color[q])\n poly.opaciteDeRemplissage = 0.5\n poly.color = 'none'\n objets.push(poly)\n rayonOuCote = (min(longueur(E, F), longueur(G, H), longueur(I, J), longueur(K, L)))\n M = translation(E, vecteur(rayonOuCote, 0))\n N = translation(G, vecteur(0, rayonOuCote))\n O = translation(I, vecteur(-rayonOuCote, 0))\n P = translation(K, vecteur(0, -rayonOuCote))\n paramsEnonce = { xmin: -0.5, ymin: -0.5, xmax: B.x + 0.5, ymax: C.y + 0.5, pixelsParCm: 30, scale: 0.7, mainlevee: false }\n aleaLongueur = choice([-1, 1])\n choixFig = randint(0, 3)\n switch (choixFig) {\n case 0:\n pt1 = M\n pt2 = E\n paramsEnonce.ymin = -0.5 - rayonOuCote - aleaLongueur\n break\n case 1:\n pt1 = N\n pt2 = G\n paramsEnonce.xmax = rayonOuCote + aleaLongueur + B.x + 0.5\n break\n case 2:\n pt1 = O\n pt2 = I\n paramsEnonce.ymax = rayonOuCote + aleaLongueur + C.y + 0.5\n break\n case 3:\n pt1 = P\n pt2 = K\n paramsEnonce.xmin = -0.5 - rayonOuCote - aleaLongueur\n break\n }\n aleaAngle = choice([40, 50, 70, 80])\n Q = pointSurSegment(pt2, pt1, rayonOuCote + aleaLongueur)\n R = rotation(Q, pt2, -aleaAngle)\n figAire1 = polygone(pt2, pt1, R)\n figAire1.color = 'none'\n figAire1.couleurDeRemplissage = colorToLatexOrHTML(color[q])\n figAire1.opaciteDeRemplissage = 0.5\n choixFig2 = randint(0, 3, [choixFig])\n choixFigAire2 = [\n [E, M],\n [G, N],\n [I, O],\n [K, P]\n ]\n paramsEnonce.xmax = choixFig2 === 1 ? rayonOuCote + B.x + 0.5 : paramsEnonce.xmax\n paramsEnonce.xmin = choixFig2 === 3 ? -0.5 - rayonOuCote : paramsEnonce.xmin\n S = pointSurSegment(choixFigAire2[choixFig2][1], choixFigAire2[choixFig2][0], rayonOuCote + aleaLongueur)\n T = rotation(S, choixFigAire2[choixFig2][1], -aleaAngle)\n figAire2 = polygone(choixFigAire2[choixFig2][0], choixFigAire2[choixFig2][1], T)\n figAire2.color = 'none'\n figAire2.couleurDeRemplissage = colorToLatexOrHTML('white')\n figAire2.opaciteDeRemplissage = 1.1\n objets.push(figAire1, figAire2, segment(pt2, R), segment(pt1, R), codageSegment(pt2, R, '|||'), codageSegment(pt2, pt1, 'OO'), codageSegment(pt1, R, 'XX'), rect)\n objets.push(segment(choixFigAire2[choixFig2][0], T), segment(choixFigAire2[choixFig2][1], T), codageSegment(choixFigAire2[choixFig2][1], T, '|||'), codageSegment(choixFigAire2[choixFig2][1], choixFigAire2[choixFig2][0], 'OO'), codageSegment(choixFigAire2[choixFig2][0], T, 'XX'))\n texte = mathalea2d(paramsEnonce, objets)\n // Correction\n texteCorr = (this.sup2 === 3) ? numAlpha(0) : ''\n texteCorr += (this.sup2 === 1 || this.sup2 === 3 || aireOuPerimetre !== 'Area') ? 'You have to cover more ground to go around the colored figure than around the hatched rectangle. Therefore, the colored figure has a larger perimeter than that of the hatched rectangle.' : ''\n texteCorr += (this.sup2 === 3) ? '<br>' + numAlpha(1) : ''\n texteCorr += (this.sup2 === 2 || this.sup2 === 3 || aireOuPerimetre !== 'Perimeter') ? 'The hatched rectangle covers as much surface as the colored figure. Therefore, the colored figure has an area equal to that of the hatched rectangle.' : ''\n objets = []\n if ((this.sup2 === 2 || this.sup2 === 3 || aireOuPerimetre !== 'Perimeter')) {\n figAire1 = polygone(pt2, pt1, R)\n figAire1.color = 'none'\n figAire1.couleurDeRemplissage = colorToLatexOrHTML('white')\n figAire1.opaciteDeRemplissage = 1.1\n figAireCorr = polygone(pt2, pt1, R)\n figAireCorr.couleurDeRemplissage = colorToLatexOrHTML(color[q])\n figAireCorr.opaciteDeRemplissage = 0.5\n angleCorr = choixFig2 - choixFig < 0 ? choixFig2 - choixFig + 4 : choixFig2 - choixFig\n angleCorr = angleCorr === 1 ? 90 : angleCorr === 2 ? 0 : -90\n figAireCorr2 = rotation(figAire2, choixFigAire2[choixFig2][0], angleCorr)\n figAireCorr2.couleurDeRemplissage = colorToLatexOrHTML(color[q])\n figAireCorr2.opaciteDeRemplissage = 0.5\n objets.push(poly, figAire1, figAire2, segment(pt2, R), segment(pt1, R), codageSegment(pt2, R, '|||'), codageSegment(pt2, pt1, 'OO'), codageSegment(pt1, R, 'XX'), rect)\n objets.push(segment(choixFigAire2[choixFig2][0], T), segment(choixFigAire2[choixFig2][1], T), codageSegment(choixFigAire2[choixFig2][1], T, '|||'), codageSegment(choixFigAire2[choixFig2][1], choixFigAire2[choixFig2][0], 'OO'), codageSegment(choixFigAire2[choixFig2][0], T, 'XX'))\n objets.push(translationPuisRotationAnimees(q, figAireCorr, vecteur(pt1, choixFigAire2[choixFig2][0]), figAireCorr2, choixFigAire2[choixFig2][0], -angleCorr))\n paramsEnonce.ymin = choixFig2 === 0 ? -0.5 - rayonOuCote : paramsEnonce.ymin\n paramsEnonce.ymax = choixFig2 === 2 ? rayonOuCote + C.y + 0.5 : paramsEnonce.ymax\n texteCorr += '<br>' + mathalea2d(paramsEnonce, objets)\n if (context.isHtml) {\n texteCorr += `<br><button class='btn ui labeled icon button' style='margin:10px' onclick=\"document.getElementById('${figAireCorr.id}').style.visibility = 'visible',document.getElementById('${figAireCorr2.id}').style.visibility = 'hidden',\n setTimeout(function() {document.getElementById('${figAireCorr.id}').style.visibility = 'hidden'}, 5000),\n setTimeout(function() {document.getElementById('${figAireCorr2.id}').style.visibility = \"visible'}, 5000),document.getElementById('translat${q}\").beginElement()\"><i class=\"redo circle icon\"></i>Restart area comparison animation </button>`\n }\n }\n // Interactive MCQ\n if (this.interactif) {\n reponsePerimetre2 = true\n reponseAire3 = true\n }\n break\n case 10: // Deux triangles alternés qui ne s'emboîtent pas\n E = point(entreDeux(A.x, A.x + (B.x - A.x) / 3), A.y)\n F = point(entreDeux(B.x, A.x + 2 * (B.x - A.x) / 3), A.y)\n G = point(B.x, entreDeux(B.y, B.y + (C.y - B.y) / 3))\n H = point(B.x, entreDeux(C.y, B.y + 2 * (C.y - B.y) / 3))\n I = point(entreDeux(B.x, A.x + 2 * (B.x - A.x) / 3), D.y)\n J = point(entreDeux(A.x, A.x + (B.x - A.x) / 3), D.y)\n K = point(A.x, entreDeux(C.y, B.y + 2 * (C.y - B.y) / 3))\n L = point(A.x, entreDeux(B.y, B.y + (C.y - B.y) / 3))\n poly = polygone(A, B, C, D)\n poly.couleurDeRemplissage = colorToLatexOrHTML(color[q])\n poly.opaciteDeRemplissage = 0.5\n poly.color = 'none'\n objets.push(poly)\n rayonOuCote = (min(longueur(E, F), longueur(G, H), longueur(I, J), longueur(K, L)))\n M = translation(E, vecteur(rayonOuCote, 0))\n N = translation(G, vecteur(0, rayonOuCote))\n O = translation(I, vecteur(-rayonOuCote, 0))\n P = translation(K, vecteur(0, -rayonOuCote))\n paramsEnonce = { xmin: -0.5, ymin: -0.5, xmax: B.x + 0.5, ymax: C.y + 0.5, pixelsParCm: 30, scale: 0.7, mainlevee: false }\n aleaLongueur = choice([-1, 1])\n choixFig = randint(0, 3)\n switch (choixFig) {\n case 0:\n pt1 = M\n pt2 = E\n paramsEnonce.ymin = -0.5 - rayonOuCote - aleaLongueur\n break\n case 1:\n pt1 = N\n pt2 = G\n paramsEnonce.xmax = rayonOuCote + aleaLongueur + B.x + 0.5\n break\n case 2:\n pt1 = O\n pt2 = I\n paramsEnonce.ymax = rayonOuCote + aleaLongueur + C.y + 0.5\n break\n case 3:\n pt1 = P\n pt2 = K\n paramsEnonce.xmin = -0.5 - rayonOuCote - aleaLongueur\n break\n }\n aleaAngle = choice([40, 50, 70, 80])\n Q = pointSurSegment(pt2, pt1, rayonOuCote + aleaLongueur)\n R = rotation(Q, pt2, -aleaAngle)\n figAire1 = polygone(pt2, pt1, R)\n figAire1.color = 'none'\n figAire1.couleurDeRemplissage = colorToLatexOrHTML(color[q])\n figAire1.opaciteDeRemplissage = 0.5\n choixFig2 = randint(0, 3, [choixFig])\n hauteur = longueur(R, projectionOrtho(R, droite(pt1, pt2))) // Longueur de la hauteur issue de R dans figAire1\n choixFigAire2 = [\n [E, M, arrondi(min(hauteur / longueur(B, C), longueur(E, B) / longueur(E, M)))], // Le dernier nombre est le rapport homothétique maximal pour ne pas que le triangle sorte du triangle.\n [G, N, arrondi(min(hauteur / longueur(A, B), longueur(G, C) / longueur(G, N)))],\n [I, O, arrondi(min(hauteur / longueur(B, C), longueur(I, D) / longueur(I, O)))],\n [K, P, arrondi(min(hauteur / longueur(A, B), longueur(K, A) / longueur(K, P)))]\n ]\n if (choixFig2 === 1) paramsEnonce.xmax = rayonOuCote + B.x + 0.5\n if (choixFig2 === 3) paramsEnonce.xmin = -0.5 - rayonOuCote\n S = pointSurSegment(choixFigAire2[choixFig2][1], choixFigAire2[choixFig2][0], rayonOuCote + aleaLongueur)\n T = rotation(S, choixFigAire2[choixFig2][1], -aleaAngle)\n figAire2 = polygone(choixFigAire2[choixFig2][0], choixFigAire2[choixFig2][1], T)\n aleaRapportHomothetie = choice([0.7, 0.8, arrondi(min(1.2, choixFigAire2[choixFig2][2] - 0.01)), min(1.3, arrondi(choixFigAire2[choixFig2][2] - 0.01))])\n figAire2 = homothetie(figAire2, choixFigAire2[choixFig2][0], aleaRapportHomothetie)\n figAire2.color = 'none'\n figAire2.couleurDeRemplissage = colorToLatexOrHTML('white')\n figAire2.opaciteDeRemplissage = 1.1\n objets.push(figAire1, figAire2, segment(pt2, R), segment(pt1, R), rect)\n objets.push(homothetie(segment(choixFigAire2[choixFig2][0], T), choixFigAire2[choixFig2][0], aleaRapportHomothetie), homothetie(segment(choixFigAire2[choixFig2][1], T), choixFigAire2[choixFig2][0], aleaRapportHomothetie))\n texte = mathalea2d(paramsEnonce, objets)\n // Correction\n texteCorr = (this.sup2 === 3) ? numAlpha(0) : ''\n texteCorr += (this.sup2 === 1 || this.sup2 === 3 || aireOuPerimetre !== 'Area') ? 'You have to cover more ground to go around the colored figure than around the hatched rectangle. Therefore, the colored figure has a larger perimeter than that of the hatched rectangle.' : ''\n texteCorr += (this.sup2 === 3) ? '<br>' + numAlpha(1) : ''\n texteCorr += aleaRapportHomothetie < 1\n ? ((this.sup2 === 2 || this.sup2 === 3 || aireOuPerimetre !== 'Perimeter') ? 'The hatched rectangle covers less area than the colored figure. Therefore, the colored figure has an area greater than that of the hatched rectangle.' : '')\n : ((this.sup2 === 2 || this.sup2 === 3 || aireOuPerimetre !== 'Perimeter') ? 'The hatched rectangle covers more area than the colored figure. Therefore, the hatched rectangle has an area greater than that of the colored figure.' : '')\n if ((this.sup2 === 2 || this.sup2 === 3 || aireOuPerimetre !== 'Perimeter')) {\n objets = []\n figAire1 = polygone(pt2, pt1, R)\n figAire1.color = 'none'\n figAire1.couleurDeRemplissage = colorToLatexOrHTML('white')\n figAire1.opaciteDeRemplissage = 1.1\n figAireCorr = polygone(pt2, pt1, R)\n figAireCorr.couleurDeRemplissage = colorToLatexOrHTML(color[q])\n figAireCorr.opaciteDeRemplissage = 0.5\n figAire2Corr = homothetie(figAire2, choixFigAire2[choixFig2][0], 1 / aleaRapportHomothetie)\n angleCorr = choixFig2 - choixFig < 0 ? choixFig2 - choixFig + 4 : choixFig2 - choixFig\n angleCorr = angleCorr === 1 ? 90 : angleCorr === 2 ? 0 : -90\n figAireCorr2 = rotation(figAire2Corr, choixFigAire2[choixFig2][0], angleCorr)\n figAireCorr2.couleurDeRemplissage = colorToLatexOrHTML(color[q])\n figAireCorr2.opaciteDeRemplissage = 0.5\n objets.push(poly, figAire1, figAire2, segment(pt2, R), segment(pt1, R), rect)\n objets.push(homothetie(segment(choixFigAire2[choixFig2][0], T), choixFigAire2[choixFig2][0], aleaRapportHomothetie), homothetie(segment(choixFigAire2[choixFig2][1], T), choixFigAire2[choixFig2][0], aleaRapportHomothetie))\n objets.push(translationPuisRotationAnimees(q, figAireCorr, vecteur(pt1, choixFigAire2[choixFig2][0]), figAireCorr2, choixFigAire2[choixFig2][0], -angleCorr))\n paramsEnonce.ymin = choixFig2 === 0 ? -0.5 - rayonOuCote : paramsEnonce.ymin\n paramsEnonce.ymax = choixFig2 === 2 ? rayonOuCote + C.y + 0.5 : paramsEnonce.ymax\n texteCorr += '<br>' + mathalea2d(paramsEnonce, objets)\n if (context.isHtml) {\n texteCorr += `<br><button class='btn ui labeled icon button' style='margin:10px' onclick=\"document.getElementById('${figAireCorr.id}').style.visibility = 'visible',document.getElementById('${figAireCorr2.id}').style.visibility = 'hidden',\n setTimeout(function() {document.getElementById('${figAireCorr.id}').style.visibility = 'hidden'}, 5000),\n setTimeout(function() {document.getElementById('${figAireCorr2.id}').style.visibility = \"visible'}, 5000),document.getElementById('translat${q}\").beginElement()\"><i class=\"redo circle icon\"></i>Restart area comparison animation </button>`\n }\n }\n // Interactive MCQ\n if (this.interactif) {\n reponsePerimetre2 = true\n reponseAire1 = !(aleaRapportHomothetie < 1)\n reponseAire2 = aleaRapportHomothetie < 1\n }\n break\n case 11: // Deux triangles en plus\n E = point(entreDeux(A.x, A.x + (B.x - A.x) / 3), A.y)\n F = point(entreDeux(B.x, A.x + 2 * (B.x - A.x) / 3), A.y)\n G = point(B.x, entreDeux(B.y, B.y + (C.y - B.y) / 3))\n H = point(B.x, entreDeux(C.y, B.y + 2 * (C.y - B.y) / 3))\n I = point(entreDeux(B.x, A.x + 2 * (B.x - A.x) / 3), D.y)\n J = point(entreDeux(A.x, A.x + (B.x - A.x) / 3), D.y)\n K = point(A.x, entreDeux(C.y, B.y + 2 * (C.y - B.y) / 3))\n L = point(A.x, entreDeux(B.y, B.y + (C.y - B.y) / 3))\n poly = polygone(A, B, C, D)\n poly.couleurDeRemplissage = colorToLatexOrHTML(color[q])\n poly.opaciteDeRemplissage = 0.5\n poly.color = 'none'\n objets.push(poly)\n rayonOuCote = (min(longueur(E, F), longueur(G, H), longueur(I, J), longueur(K, L)))\n M = translation(E, vecteur(rayonOuCote, 0))\n N = translation(G, vecteur(0, rayonOuCote))\n O = translation(I, vecteur(-rayonOuCote, 0))\n P = translation(K, vecteur(0, -rayonOuCote))\n paramsEnonce = { xmin: -0.5, ymin: -0.5, xmax: B.x + 0.5, ymax: C.y + 0.5, pixelsParCm: 30, scale: 0.7, mainlevee: false }\n aleaLongueur = choice([-1, 1])\n choixFig = randint(0, 3)\n switch (choixFig) {\n case 0:\n pt1 = M\n pt2 = E\n paramsEnonce.ymin = -0.5 - rayonOuCote - aleaLongueur\n break\n case 1:\n pt1 = N\n pt2 = G\n paramsEnonce.xmax = rayonOuCote + aleaLongueur + B.x + 0.5\n break\n case 2:\n pt1 = O\n pt2 = I\n paramsEnonce.ymax = rayonOuCote + aleaLongueur + C.y + 0.5\n break\n case 3:\n pt1 = P\n pt2 = K\n paramsEnonce.xmin = -0.5 - rayonOuCote - aleaLongueur\n break\n }\n aleaAngle = choice([40, 50, 70, 80, 100, 110])\n Q = pointSurSegment(pt2, pt1, rayonOuCote + aleaLongueur)\n R = rotation(Q, pt2, -aleaAngle)\n switch (choixFig) {\n case 0:\n case 2:\n paramsEnonce.xmin = -0.5 + min(A.x, R.x)\n paramsEnonce.xmax = 0.5 + max(B.x, R.x)\n break\n case 1 :\n case 3 :\n paramsEnonce.ymin = -0.5 + min(A.y, R.y)\n paramsEnonce.ymax = 0.5 + max(D.y, R.y)\n break\n }\n figAire1 = polygone(pt2, pt1, R)\n figAire1.color = 'none'\n figAire1.couleurDeRemplissage = colorToLatexOrHTML(color[q])\n figAire1.opaciteDeRemplissage = 0.5\n choixFig2 = randint(0, 3, [choixFig])\n choixFigAire2 = [\n [E, M],\n [G, N],\n [I, O],\n [K, P]\n ]\n S = pointSurSegment(choixFigAire2[choixFig2][1], choixFigAire2[choixFig2][0], rayonOuCote + aleaLongueur)\n T = rotation(S, choixFigAire2[choixFig2][1], aleaAngle)\n switch (choixFig2) {\n case 0 :\n paramsEnonce.xmin = -0.5 + min(A.x, T.x, R.x)\n paramsEnonce.xmax = 0.5 + max(B.x, T.x, R.x)\n paramsEnonce.ymin = -0.5 - rayonOuCote - aleaLongueur\n break\n case 1 :\n paramsEnonce.ymin = -0.5 + min(A.y, T.y, R.y)\n paramsEnonce.ymax = 0.5 + max(D.y, T.y, R.y)\n paramsEnonce.xmax = rayonOuCote + aleaLongueur + B.x + 0.5\n break\n case 2 :\n paramsEnonce.xmin = -0.5 + min(A.x, T.x, R.x)\n paramsEnonce.xmax = 0.5 + max(B.x, T.x, R.x)\n paramsEnonce.ymax = rayonOuCote + aleaLongueur + C.y + 0.5\n break\n case 3 :\n paramsEnonce.ymin = -0.5 + min(A.y, T.y, R.y)\n paramsEnonce.ymax = 0.5 + max(D.y, T.y, R.y)\n paramsEnonce.xmin = -0.5 - rayonOuCote - aleaLongueur\n break\n }\n figAire2 = polygone(choixFigAire2[choixFig2][0], choixFigAire2[choixFig2][1], T)\n figAire2.color = 'none'\n figAire2.couleurDeRemplissage = colorToLatexOrHTML(color[q])\n figAire2.opaciteDeRemplissage = 0.5\n objets.push(figAire1, figAire2, segment(pt2, R), segment(pt1, R), codageSegment(pt2, R, '|||'), codageSegment(pt2, pt1, 'OO'), codageSegment(pt1, R, 'XX'), rect)\n objets.push(segment(choixFigAire2[choixFig2][0], T), segment(choixFigAire2[choixFig2][1], T), codageSegment(choixFigAire2[choixFig2][1], T, '|||'), codageSegment(choixFigAire2[choixFig2][1], choixFigAire2[choixFig2][0], 'OO'), codageSegment(choixFigAire2[choixFig2][0], T, 'XX'))\n texte = mathalea2d(paramsEnonce, objets)\n // Correction\n texteCorr = (this.sup2 === 3) ? numAlpha(0) : ''\n texteCorr += (this.sup2 === 1 || this.sup2 === 3 || aireOuPerimetre !== 'Area') ? 'You have to cover more ground to go around the colored figure than around the hatched rectangle. Therefore, the colored figure has a larger perimeter than that of the hatched rectangle.' : ''\n texteCorr += (this.sup2 === 3) ? '<br>' + numAlpha(1) : ''\n texteCorr += (this.sup2 === 2 || this.sup2 === 3 || aireOuPerimetre !== 'Perimeter') ? 'The hatched rectangle covers less area than the colored figure. Therefore, the colored figure has an area greater than that of the hatched rectangle.' : ''\n // Interactive MCQ\n if (this.interactif) {\n reponsePerimetre2 = true\n reponseAire2 = true\n }\n break\n case 12: // Deux triangles en moins\n E = point(entreDeux(A.x, A.x + (B.x - A.x) / 3), A.y)\n F = point(entreDeux(B.x, A.x + 2 * (B.x - A.x) / 3), A.y)\n G = point(B.x, entreDeux(B.y, B.y + (C.y - B.y) / 3))\n H = point(B.x, entreDeux(C.y, B.y + 2 * (C.y - B.y) / 3))\n I = point(entreDeux(B.x, A.x + 2 * (B.x - A.x) / 3), D.y)\n J = point(entreDeux(A.x, A.x + (B.x - A.x) / 3), D.y)\n K = point(A.x, entreDeux(C.y, B.y + 2 * (C.y - B.y) / 3))\n L = point(A.x, entreDeux(B.y, B.y + (C.y - B.y) / 3))\n poly = polygone(A, B, C, D)\n poly.couleurDeRemplissage = colorToLatexOrHTML(color[q])\n poly.opaciteDeRemplissage = 1.1\n poly.color = 'none'\n objets.push(poly)\n rayonOuCote = (min(longueur(E, F), longueur(G, H), longueur(I, J), longueur(K, L)))\n M = translation(E, vecteur(rayonOuCote, 0))\n N = translation(G, vecteur(0, rayonOuCote))\n O = translation(I, vecteur(-rayonOuCote, 0))\n P = translation(K, vecteur(0, -rayonOuCote))\n paramsEnonce = { xmin: -0.5, ymin: -0.5, xmax: B.x + 0.5, ymax: C.y + 0.5, pixelsParCm: 30, scale: 0.7, mainlevee: false }\n aleaLongueur = -1\n choixFig = randint(0, 3)\n switch (choixFig) {\n case 0:\n pt1 = M\n pt2 = E\n break\n case 1:\n pt1 = N\n pt2 = G\n break\n case 2:\n pt1 = O\n pt2 = I\n break\n case 3:\n pt1 = P\n pt2 = K\n break\n }\n aleaAngle = choice([40, 50, 70, 80, 100, 110])\n Q = pointSurSegment(pt2, pt1, rayonOuCote + aleaLongueur)\n R = rotation(Q, pt2, aleaAngle)\n if (!R.estDansQuadrilatere(A, B, C, D)) {\n aleaAngle = 180 - aleaAngle\n R = rotation(Q, pt2, aleaAngle)\n }\n figAire1 = polygone(pt2, pt1, R)\n figAire1.color = 'none'\n figAire1.couleurDeRemplissage = colorToLatexOrHTML('white')\n figAire1.opaciteDeRemplissage = 1.1\n choixFig2 = randint(0, 3, [choixFig])\n choixFigAire2 = [\n [E, M],\n [G, N],\n [I, O],\n [K, P]\n ]\n S = pointSurSegment(choixFigAire2[choixFig2][0], choixFigAire2[choixFig2][1], rayonOuCote + aleaLongueur)\n T = rotation(S, choixFigAire2[choixFig2][0], aleaAngle)\n if (!T.estDansQuadrilatere(A, B, C, D) || T.estDansTriangle(pt2, pt1, R) || R.estDansTriangle(choixFigAire2[choixFig2][0], choixFigAire2[choixFig2][1], T)) {\n // If the triangles intersect, we create the symmetry of the first with respect to the center of the rectangle.\n S = milieu(A, C)\n choixFigAire2[choixFig2][1] = homothetie(pt1, S, -1)\n choixFigAire2[choixFig2][0] = homothetie(pt2, S, -1)\n T = homothetie(R, S, -1)\n }\n figAire2 = polygone(choixFigAire2[choixFig2][0], choixFigAire2[choixFig2][1], T)\n figAire2.color = 'none'\n figAire2.couleurDeRemplissage = colorToLatexOrHTML('white')\n figAire2.opaciteDeRemplissage = 1.1\n objets.push(figAire1, figAire2, segment(pt2, R), segment(pt1, R), codageSegment(pt2, R, '|||'), codageSegment(pt2, pt1, 'OO'), codageSegment(pt1, R, 'XX'), rect)\n objets.push(segment(choixFigAire2[choixFig2][0], T), segment(choixFigAire2[choixFig2][1], T), codageSegment(choixFigAire2[choixFig2][1], T, 'XX'), codageSegment(choixFigAire2[choixFig2][1], choixFigAire2[choixFig2][0], 'OO'), codageSegment(choixFigAire2[choixFig2][0], T, '|||'))\n texte = mathalea2d(paramsEnonce, objets)\n // Correction\n texteCorr = (this.sup2 === 3) ? numAlpha(0) : ''\n texteCorr += (this.sup2 === 1 || this.sup2 === 3 || aireOuPerimetre !== 'Area') ? 'You have to cover more ground to go around the colored figure than around the hatched rectangle. Therefore, the colored figure has a larger perimeter than that of the hatched rectangle.' : ''\n texteCorr += (this.sup2 === 3) ? '<br>' + numAlpha(1) : ''\n texteCorr += (this.sup2 === 2 || this.sup2 === 3 || aireOuPerimetre !== 'Perimeter') ? 'The hatched rectangle covers more area than the colored figure. Therefore, the hatched rectangle has an area greater than that of the colored figure.' : ''\n // Interactive MCQ\n if (this.interactif) {\n reponsePerimetre2 = true\n reponseAire1 = true\n }\n break\n }\n // Management of interactive multiple choice questions\n if (this.interactif) {\n if (this.sup2 === 1 || this.sup2 === 3 || aireOuPerimetre !== 'Area') {\n this.autoCorrection[compteurInteractif] = {\n enonce: 'Never mind',\n propositions: [\n {\n texte: 'The hatched rectangle',\n statut: reponsePerimetre1, // true ou false pour indiquer si c'est une bonne réponse (true)\n feedback: ''\n },\n {\n texte: 'The colored figure',\n statut: reponsePerimetre2, // true ou false pour indiquer si c'est une bonne réponse (true)\n feedback: ''\n },\n {\n texte: 'As much as one as the other',\n statut: reponsePerimetre3, // true ou false pour indiquer si c'est une bonne réponse (true)\n feedback: ''\n }\n ]\n }\n monQcmPerimetre = propositionsQcm(this, compteurInteractif)\n compteurInteractif++\n }\n if (this.sup2 === 2 || this.sup2 === 3 || aireOuPerimetre !== 'Perimeter') {\n this.autoCorrection[compteurInteractif] = {\n enonce: 'Never mind',\n propositions: [\n {\n texte: 'The hatched rectangle',\n statut: reponseAire1, // true ou false pour indiquer si c'est une bonne réponse (true)\n feedback: ''\n },\n {\n texte: 'The colored figure',\n statut: reponseAire2, // true ou false pour indiquer si c'est une bonne réponse (true)\n feedback: ''\n },\n {\n texte: 'As much as one as the other',\n statut: reponseAire3, // true ou false pour indiquer si c'est une bonne réponse (true)\n feedback: ''\n }\n ]\n }\n monQcmAire = propositionsQcm(this, compteurInteractif)\n compteurInteractif++\n }\n }\n // Management of statements\n texte += '<br>'\n if (this.sup2 === 3) texte += numAlpha(0)\n if (this.sup2 === 1 || this.sup2 === 3 || aireOuPerimetre !== 'Area') {\n texte += 'Between the hatched rectangle and the colored figure, which has the largest perimeter?'\n if (this.interactif) {\n texte += monQcmPerimetre.texte\n }\n }\n if (this.sup2 === 3) texte += '<br>' + numAlpha(1)\n if (this.sup2 === 2 || this.sup2 === 3 || aireOuPerimetre !== 'Perimeter') {\n texte += 'Between the hatched rectangle and the colored figure, which has the largest area?'\n if (this.interactif) {\n texte += monQcmAire.texte\n }\n }\n if (this.questionJamaisPosee(q, texte)) {\n this.listeQuestions.push(texte)\n this.listeCorrections.push(texteCorr)\n q++\n }\n cpt++\n }\n listeQuestionsToContenu(this) // On envoie l'exercice à la fonction de mise en page\n }\n\n this.besoinFormulaireTexte = ['Type of figures',\n `Nombres séparés par des tirets :\n 1 : Polygone inscrit dans un rectangle\n 2 : Rectangle inscrit dans un polygone\n 3 : Rectangle avec deux demi-disques alternés qui s'emboitent\n 4 : Rectangle avec deux demi-disques alternés qui ne s'emboitent pas\n 5 : Rectangle avec deux demi-disques en plus\n 6 : Rectangle avec deux demi-disques en moins\n 7 : Quadrilatère inscrit dans un rectangle\n 8 : Rectangle inscrit dans un quadrilatère\n 9 : Rectangle avec deux triangles alternés qui s'emboîtent\n 10 : Rectangle avec deux triangles alternés qui ne s'emboîtent pas\n 11 : Rectangle avec deux triangles en plus\n 12 : Rectangle avec deux triangles en moins\n 13 : Mélange `]\n this.besoinFormulaire2Numerique = ['Perimeters and/or areas', 4, '1: Only perimeters\\n2: Only areas\\n3: Both\\n4: One or the other at random questions']\n}\n"],"names":["dateDePublication","titre","interactifReady","interactifType","TranslationPuisRotationAnimee","numId","figure1","v","figure2","O","angle","t1","t2","ObjetMathalea2D","coeff","afficherTempo","code","objet","arrondi","cacherTempo","translationPuisRotationAnimees","args","uuid","ref","CompareAireEtPerimetreAvecRectangle","Exercice","typesDeProblemes","gestionnaireFormulaireTexte","color","combinaisonListes","aireOuPerimetre","compteurInteractif","q","cpt","A","B","C","D","E","F","G","H","I","J","K","L","M","N","P","Q","R","S","T","rayonOuCote","pt1","pt2","figAire1","figAire2","figAireCorr","figAireCorr2","figAire2Corr","choixFig","choixFig2","choixFigAire2","angleCorr","aleaAngle","aleaLongueur","aleaRayon","aleaDemiDisque","aleaPente","aleaRapportHomothetie","d1","d2","d3","d4","poly","rect","objets","texte","texteCorr","paramsEnonce","monQcmPerimetre","monQcmAire","hauteur","reponsePerimetre1","reponsePerimetre2","reponsePerimetre3","reponseAire1","reponseAire2","reponseAire3","point","randint","polygone","choice","entreDeux","colorToLatexOrHTML","mathalea2d","numAlpha","min","max","longueur","translation","vecteur","arc","rotation","segment","codageSegment","context","homothetie","droiteParPointEtPente","pointIntersectionDD","pointSurSegment","projectionOrtho","droite","milieu","propositionsQcm","listeQuestionsToContenu"],"mappings":"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"}