function exporterTex(){ let txt; let nomFichier; let nom = prompt("Veuillez entrer le nom du schéma", "Schéma1"); if (nom == null || nom == "") { txt = "Schéma1"; } let TeX = ''; let i; TeX = TeX.concat('\\', 'begin{figure}\n'); TeX = TeX.concat('\\', 'begin{center}\n'); TeX = TeX.concat('\\', 'resizebox{.48\\linewidth}{!}{\n'); TeX = TeX.concat('\\', 'begin{tikzpicture}\n'); TeX = TeX.concat('\n\n', '%%%Zone d\'action'); if(zone.length != 0) { TeX = TeX.concat('\n','\\fill[color=gray!20] '); for (i = 0; i < zone.length; i++) { TeX = TeX.concat('', '('); TeX = TeX.concat(findY(zone[i].y), ','); TeX = TeX.concat(findX(zone[i].x), ') -- '); } TeX = TeX.concat('','cycle;'); } TeX = TeX.concat('\n\n', '%%%Terrain'); TeX = TeX.concat('\n', '\\draw (0,0) -- (0,28);'); TeX = TeX.concat('\n', '\\draw (15,0) -- (15,28);'); TeX = TeX.concat('\n', '\\draw (0,28) -- (15,28);'); TeX = TeX.concat('\n', '\\draw (0,0) -- (15,0);'); TeX = TeX.concat('\n', '\\draw (15,14) -- (0,14);'); TeX = TeX.concat('\n', '\\draw (7.5,14) circle [radius=2.4];;'); TeX = TeX.concat('\n', '\\draw (7.5,1.776) circle [radius=0.2];;'); TeX = TeX.concat('\n', '\\draw (6.5,1.575) -- (8.5,1.575);'); TeX = TeX.concat('\n', '\\draw (7.5,26.2) circle [radius=0.2];;'); TeX = TeX.concat('\n', '\\draw (6.5,26.425) -- (8.5,26.425);'); TeX = TeX.concat('\n', '\\draw (5,0) -- (5,5.8);'); TeX = TeX.concat('\n', '\\draw (10,0) -- (10,5.8);'); TeX = TeX.concat('\n', '\\draw (10,5.8) -- (5,5.8);;'); TeX = TeX.concat('\n', '\\draw (9.3,5.8) arc [radius=1.8, start angle=0, end angle= 180];'); TeX = TeX.concat('\n', '\\draw (10,28) -- (10,22.2);'); TeX = TeX.concat('\n', '\\draw (5,28) -- (5,22.2);'); TeX = TeX.concat('\n', '\\draw (5,22.2) -- (10,22.2);'); TeX = TeX.concat('\n', '\\draw (5.6,22.2) arc [radius=1.8, start angle=180, end angle= 360]; '); TeX = TeX.concat('\n', '\\draw (14.1,1.7) arc [radius=6.6, start angle=0, end angle= 180];'); TeX = TeX.concat('\n', '\\draw (.9,0) -- (.9,1.7);'); TeX = TeX.concat('\n', '\\draw (14.1,0) -- (14.1,1.7);'); TeX = TeX.concat('\n', '\\draw (0.9,26.3) arc [radius=6.6, start angle=180, end angle= 360];'); TeX = TeX.concat('\n', '\\draw (.9,28) -- (.9,26.2);'); TeX = TeX.concat('\n', '\\draw (14.1,28) -- (14.1,26.2);'); TeX = TeX.concat('\n\n', '%%%Joueurs\n'); for (i = 0; i < joueurs.length; i++) { let z = joueurs[i]; TeX = TeX.concat('\\','node[draw, circle] ('); TeX = TeX.concat('', z.nom); TeX = TeX.concat('', ') at '); TeX = TeX.concat('(', findY(z.y)); TeX = TeX.concat(', ', findX(z.x)); TeX = TeX.concat(') {\\LARGE ', i+1); TeX = TeX.concat('', '};\n'); } TeX = TeX.concat('\n', '%%%Adversaires\n'); for (i = 0; i < adversaire.length; i++) { let r = adversaire[i]; let tx = r.a + r.rayon*Math.cos(r.angle); let ty = r.b+ r.rayon *Math.sin(r.angle); let px = r.a + r.rayon*Math.cos(r.inverse); let py = r.b+ r.rayon *Math.sin(r.inverse); let rx = tx + r.rretour *Math.cos(r.rangle); let ry = ty+ r.rretour *Math.sin(r.rangle); let ox = px + r.rretour*Math.cos(r.rangle); let oy = py + r.rretour *Math.sin(r.rangle); TeX = TeX.concat('\n', '\\draw ('); TeX = TeX.concat(findY(ty), ','); TeX = TeX.concat(findX(tx), ') -- ('); TeX = TeX.concat(findY(ry), ','); TeX = TeX.concat(findX(rx), ');'); TeX = TeX.concat('\n', '\\draw ('); TeX = TeX.concat(findY(py), ','); TeX = TeX.concat(findX(px), ') -- ('); TeX = TeX.concat(findY(oy), ','); TeX = TeX.concat(findX(ox), ');'); TeX = TeX.concat('\n', '\\draw ('); TeX = TeX.concat(findY(ty), ','); TeX = TeX.concat(findX(tx), ') -- ('); TeX = TeX.concat(findY(py), ','); TeX = TeX.concat(findX(px), ');\n'); } TeX = TeX.concat('\n', '%%%Passes\n'); for (i = 0; i < passes.length; i++) { TeX = TeX.concat('\\', 'draw[thick,dashed] [-latex] ('); TeX = TeX.concat(passes[i].x.nom, ') -- ('); TeX = TeX.concat(passes[i].x2.nom, ');'); TeX = TeX.concat('', '\n'); } TeX = TeX.concat('\n', '%%%Déplacements/Écrans\n'); for (i = 0; i < deple.length/4; i++) { let r = deple[3+i*4]; if (r.ec == true){ TeX = TeX.concat('\\', 'draw[thick] [-[] (' ); } else { TeX = TeX.concat('\\', 'draw[thick] [-latex] (' ); } TeX = TeX.concat(deple[0+i*4].jbase + 1, ') .. controls ('); TeX = TeX.concat(findY(deple[1+i*4].y),', '); TeX = TeX.concat(findX(deple[1+i*4].x),') and '); TeX = TeX.concat('(', ''); TeX = TeX.concat(findY(deple[2+i*4].y), ', '); TeX = TeX.concat(findX(deple[2+i*4].x), ') .. ('); TeX = TeX.concat(findY(deple[3+i*4].y), ', '); TeX = TeX.concat(findX(deple[3+i*4].x), ');\n'); } TeX = TeX.concat('\n', '%%%Dribbles\n'); for (i = 0; i < dribblement.length/4; i++) { TeX = TeX.concat('\\', '\draw[thick, decoration = {zigzag}, decorate] [-latex] (' ); TeX = TeX.concat(dribblement[0+i*4].dbase + 1, ') .. controls ('); TeX = TeX.concat(findY(dribblement[1+i*4].y),', '); TeX = TeX.concat(findX(dribblement[1+i*4].x),') and '); TeX = TeX.concat('(', ''); TeX = TeX.concat(findY(dribblement[2+i*4].y), ', '); TeX = TeX.concat(findX(dribblement[2+i*4].x), ') .. ('); TeX = TeX.concat(findY(dribblement[3+i*4].y), ', '); TeX = TeX.concat(findX(dribblement[3+i*4].x), ');\n'); } TeX = TeX.concat('\n', '%%%Tir\n'); let t; for (i = 0; i < joueurs.length; i++) { let r = joueurs[i]; if (r.tiring == true) { t = r; TeX = TeX.concat('\\', '\draw[thick, dashed] [-latex] (' ); TeX = TeX.concat(findY(t.y),','); TeX = TeX.concat(findX(t.x),') -- ('); TeX = TeX.concat(findY(ht/2),','); TeX = TeX.concat(findX(lt-lt*0.072),');\n'); } } TeX = TeX.concat('\n', '%%%Dribbles\n'); TeX = TeX.concat('','\n'); TeX = TeX.concat('\\', 'end{tikzpicture}\n}\n'); TeX = TeX.concat('\\', 'end{center}\n'); TeX = TeX.concat('\\', 'caption{'); TeX = TeX.concat(nom, '}\n'); TeX = TeX.concat('\\', 'end{figure}'); nomFichier = nom + ".tex"; download(nomFichier, TeX); } //Permet de trouver la position en longueur du terrain (vertical) en LaTeX + questions décimales function findX(dim) { let longueur = 28; return Math.round((dim*longueur/lt)*100)/100; } //Permet de trouver la position en largeur du terrain (vertical) en LaTeX function findY(dim) { let largeur = 15; return Math.round((dim*largeur/ht)*100)/100; } function download(filename, text) { var element = document.createElement('a'); element.setAttribute('href', 'data:application/x-tex;charset=utf-8,' + encodeURIComponent(text)); element.setAttribute('download', filename); element.style.display = 'none'; document.body.appendChild(element); element.click(); document.body.removeChild(element); }