diff options
Diffstat (limited to 'Master/texmf-dist/doc/metapost')
-rw-r--r-- | Master/texmf-dist/doc/metapost/repere/README.md | 13 | ||||
-rw-r--r-- | Master/texmf-dist/doc/metapost/repere/repere-doc.pdf | bin | 479044 -> 1599982 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/metapost/repere/repere-doc.tex | 590 |
3 files changed, 563 insertions, 40 deletions
diff --git a/Master/texmf-dist/doc/metapost/repere/README.md b/Master/texmf-dist/doc/metapost/repere/README.md index 9759657f6ae..fa92a7a1648 100644 --- a/Master/texmf-dist/doc/metapost/repere/README.md +++ b/Master/texmf-dist/doc/metapost/repere/README.md @@ -1,4 +1,6 @@ -Package repere - Version 19.06 - June 11, 2019 +Package repere - Version 21.11 - November 4, 2021 + +--- This package provides MetaPost macros for drawing secondary school mathematics figures in a coordinate system : - axis, grids @@ -6,8 +8,15 @@ This package provides MetaPost macros for drawing secondary school mathema - functions (curves, tangents, integrals, sequences) - statistic diagrams - plane geometry (polygons, circles) +- arrays and game boards The doc is in french... -License LPPL 1.3 +--- + +Author : Olivier Péault +E-mail : o.peault@posteo.net + +Licence : Released under the LaTeX Project Public License v1.3c or later, see http://www.latex-project.org/lppl.txt + diff --git a/Master/texmf-dist/doc/metapost/repere/repere-doc.pdf b/Master/texmf-dist/doc/metapost/repere/repere-doc.pdf Binary files differindex 2ba3e22bec9..85e2c6a1999 100644 --- a/Master/texmf-dist/doc/metapost/repere/repere-doc.pdf +++ b/Master/texmf-dist/doc/metapost/repere/repere-doc.pdf diff --git a/Master/texmf-dist/doc/metapost/repere/repere-doc.tex b/Master/texmf-dist/doc/metapost/repere/repere-doc.tex index b13edafcd68..cabbfb8bda8 100644 --- a/Master/texmf-dist/doc/metapost/repere/repere-doc.tex +++ b/Master/texmf-dist/doc/metapost/repere/repere-doc.tex @@ -49,10 +49,17 @@ \usepackage{array} \usepackage{tabularx} \renewcommand{\tabularxcolumn}[1]{>{\arraybackslash}m{#1}} + \newcolumntype{M}[1]{>{\arraybackslash}m{#1}} + \usepackage{longtable} \usepackage{tcolorbox} \tcbset{colframe=black,boxsep=0pt,left=3pt,right=3pt,top=0pt,bottom=0pt,boxrule=0.4pt,colback=LightGoldenrod} + + + \usepackage{babel} + \frenchbsetup{og=«,fg=»} + \usepackage{listings} \lstset{columns=flexible,% language=MetaPost,% @@ -60,12 +67,8 @@ basicstyle=\ttfamily, literate={é}{{\'e}}1} - - \usepackage{babel} \usepackage[colorlinks=true,urlcolor=blue]{hyperref} - - %%%%%%%%%%%%%%%%%%% moreverb.sty \makeatletter \newwrite\verbatim@out @@ -148,7 +151,8 @@ \inscode \IfFileExists{\jobname.\thenumfig}% {\begin{minipage}[c]{\largeurfig} - \centering \includegraphics{\jobname.\thenumfig}\par + \centering \includegraphics{\jobname-\thenumfig.pdf}\par +% \centering \includegraphics{\jobname.\thenumfig}\par % \centering a\includegraphics{reperedocfig2.mps}a\par \end{minipage}}{} \par} @@ -173,7 +177,8 @@ \whiledo{\value{numfig}<\value{reptmp}} {\refstepcounter{numfig} \IfFileExists{\jobname.\thenumfig}% - {\includegraphics{\jobname.\thenumfig} + {\includegraphics{\jobname-\thenumfig.pdf} +% {\includegraphics{\jobname.\thenumfig} \qquad}{} } \par} @@ -212,12 +217,13 @@ \par\vspace{2ex}} \newenvironment{figreperedoc}% - {\refstepcounter{numfig} + {\refstepcounter{numfig}% \verbatimwrite}% {% \endverbatimwrite% \IfFileExists{\jobname.\thenumfig}% - {\includegraphics{\jobname.\thenumfig}}{} + {\includegraphics{\jobname-\thenumfig.pdf}}{} +% {\includegraphics{\jobname.\thenumfig}}{} } @@ -960,32 +966,32 @@ fin; \subsubsection*{Interpolation à l'aide de splines cubiques} -\begin{description} -\item[splineder(A,y'A,B,y'B,C,y'C...)()] Courbe passant par les points $A$, $B$, $C$ représentant une fonction cubique par morceaux telle que $f(x_A)=y_A$ et $f'(x_A)=y'_A$ sur l'intervalle définissant le repère. -\item[splineder(A,y'A,B,y'B,C,y'C...)(xmin,xmax)] Même courbe que précédemment mais sur l'intervalle $[xmin;xmax]$. -\item[splineder(xA,yA,y'A,xB,yB,y'B,...)()] Même courbe que précédemment (sur l'intervalle définissant le repère) mais les valeurs sont données sous forme de liste. -\item[splineder(xA,yA,y'A,xB,yB,y'B,...)(xmin,xmax)] Même courbe que précédemment mais sur l'intervalle $[xmin;xmax]$. -\end{description} - -\begin{exemple}[0.55] -repere.orth(-1,10,7cm,-1,10); -draw quadrillage(1,1); -draw axes(1,1); -path H;H=splineder(1,2,0.5,4,8,0,8,2,2)(); -draw H epaisseur 1 couleur bleu; -draw tangente.double(H,1) couleur bleu; -draw tangente.double(H,4) couleur bleu; -draw tangente.double(H,8) couleur bleu; -pair A,B,C; A:=(1,8);B:=(4,4);C:=(7,6); -path I;I=splineder(A,-1,B,0.5,C,2)(0,7.5); -draw I epaisseur 1 couleur rouge; -draw tangente.double(I,1) couleur rouge; -draw tangente.double(I,4) couleur rouge; -draw tangente.double(I,7) couleur rouge; -fin; -\end{exemple} - - +%\begin{description} +%\item[splineder(A,y'A,B,y'B,C,y'C...)()] Courbe passant par les points $A$, $B$, $C$ représentant une fonction cubique par morceaux telle que $f(x_A)=y_A$ et $f'(x_A)=y'_A$ sur l'intervalle définissant le repère. +%\item[splineder(A,y'A,B,y'B,C,y'C...)(xmin,xmax)] Même courbe que précédemment mais sur l'intervalle $[xmin;xmax]$. +%\item[splineder(xA,yA,y'A,xB,yB,y'B,...)()] Même courbe que précédemment (sur l'intervalle définissant le repère) mais les valeurs sont données sous forme de liste. +%\item[splineder(xA,yA,y'A,xB,yB,y'B,...)(xmin,xmax)] Même courbe que précédemment mais sur l'intervalle $[xmin;xmax]$. +%\end{description} +% +%\begin{exemple}[0.55] +%repere.orth(-1,10,7cm,-1,10); +%draw quadrillage(1,1); +%draw axes(1,1); +%path H;H=splineder(1,2,0.5,4,8,0,8,2,2)(); +%draw H epaisseur 1 couleur bleu; +%draw tangente.double(H,1) couleur bleu; +%draw tangente.double(H,4) couleur bleu; +%draw tangente.double(H,8) couleur bleu; +%pair A,B,C; A:=(1,8);B:=(4,4);C:=(7,6); +%path I;I=splineder(A,-1,B,0.5,C,2)(0,7.5); +%draw I epaisseur 1 couleur rouge; +%draw tangente.double(I,1) couleur rouge; +%draw tangente.double(I,4) couleur rouge; +%draw tangente.double(I,7) couleur rouge; +%fin; +%\end{exemple} +% +% \begin{description} \item[spline(A,B,C...)()] Courbe passant par les points $A$, $B$, $C$ représentant une fonction cubique par morceaux telle que $f(x_A)=y_A$, $f(x_B)=y_B$... sur l'intervalle définissant le repère. @@ -1285,7 +1291,8 @@ repere(-1,11,0.8cm,-1,5,0.7cm); draw projboitemoustache.bot(1) dashed evenly; drawoptions(withcolor blue); draw boitemoustache(0,3.14,6,8,10,2cm,0.7cm); - draw projboitemoustache.bot(0.0456,"$\pi$","$\num{2x3}$","$x$","Max") dashed evenly; + draw projboitemoustache.bot(0.0456,"$\pi$","$\numproduct{2x3}$","$x$","Max") + dashed evenly; fin; \end{exemplev} @@ -1564,11 +1571,62 @@ draw vecteur.lrt(B,u);draw vecteur.lrt(C,u); fin; \end{exemple} + +\subsection{Cotes} + +\begin{description} +\item[cote(A,B,texte)] Figure formée du texte orienté dans la direction du segment $[AB]$, placé au niveau du milieu et situé « sous » le segment. + +\item[cote.top(A,B,texte)] Même chose mais le texte est placé au-dessus du segment. +\end{description} + +\begin{exemple} +repere(0,6,1cm,0,6,1cm); +pair A,B,C; +A=(1,1);B=(2,5);C=(5,2); +nomme.llft(A); +nomme.top(B); +nomme.lrt(C); +draw triangle(A,B,C); +cote(A,C,"\SI{5}{cm}"); +cote(B,C,"de $B$ vers $C$") couleur rouge; +cote(C,B,"de $C$ vers $B$") couleur bleu; +cote.top(A,B,"au-dessus"); +fin; +\end{exemple} + +\begin{description} +\item[cotefleche(A,B,texte)] Figure formée d'une double flèche et du texte orienté dans la direction du segment $[AB]$, placés au niveau du milieu et situés « sous » le segment. + +\item[cotefleche.top(A,B,texte)] Même chose mais la double flèche et le texte sont placés au-dessus du segment. + +\item[dec\_cote] Variable numérique qui indique le décalage entre le segment et la double flèche. La valeur par défaut est \SI{4}{mm}. + +\item[traits\_cote] Variable booléenne qui indique si des traits délimitant la double flèche doivent être tracés. La valeur par défaut est \verb|false|. + +\end{description} + +\begin{exemple} +repere(0,6,1cm,0,6,1cm); +pair A,B,C; +A=(1,1);B=(2,5);C=(5,2); +nomme.llft(A); +nomme.top(B); +nomme.lrt(C); +draw triangle(A,B,C); +cotefleche(A,C,"\SI{5}{cm}"); +cotefleche.top(A,B,"Texte") couleur rouge; +traits_cote:=true; +dec_cote:=8mm; +cotefleche.top(B,C,"Avec traits"); +fin; +\end{exemple} + \section{Divers} \subsection{Composition des étiquettes} Tous les textes et étiquettes peuvent être composés en utilisant la macro ci-dessous. \begin{description} - \item[LaTeX(ch)] \label{latex} Figure formée de la chaîne \verb+ch+ composée avec \LaTeX{} et mise à l'échelle \verb|defaultscale|. Cette macro utilise la commande \verb|textext| de \verb|luamplib| dans le cas de l'utilsation de Lua\LaTeX{} et \verb|textext| de \verb|latexmp| dans le cas d'une compilation \MP{} \og standard \fg. Ce dernier cas nécessite alors deux compilations. + \item[LaTeX(ch)] \label{latex} Figure formée de la chaîne \verb+ch+ composée avec \LaTeX{} et mise à l'échelle \verb|defaultscale|. Cette macro utilise la commande \verb|textext| de \verb|luamplib| dans le cas de l'utilisation de Lua\LaTeX{} et \verb|textext| de \verb|latexmp| dans le cas d'une compilation \MP{} \og standard \fg. Ce dernier cas nécessite alors deux compilations. \end{description} @@ -1858,6 +1916,438 @@ draw cercles(CentreCercleC(A,B,C),A); fin; \end{exemple} +\section{Tableaux et grilles} +Il est possible d'utiliser \verb|repere| pour représenter des tableaux ou « damiers » et placer des objets dans chacune des cases. La figure devra alors débuter par une commande \verb|tableau| au lieu de la commande \verb|repere| et la numérotation sera automatique. + +\subsection{Définition du tableau} + +\begin{description} +\item[tableau(n,m,u)] débute une figure et définit un tableau de $n$ colonnes et $m$ lignes. La largeur des colonnes est égale à la hauteur des lignes et vaut \verb|u|. +\item[tableau(n,m,ux,uy)] débute une figure et définit un tableau de $n$ colonnes et $m$ lignes. La largeur des colonnes vaut \verb|ux| et la hauteur des lignes vaut \verb|uy|. +\item[fin] termine la figure. +\end{description} + +\subsection{Grille} + +\begin{description} +\item[grille(x,y)] quadrillage avec un pas de x sur les colonnes et de y sur les lignes. +\end{description} +La couleur et l'épaisseur des lignes peuvent être modifiées localement mais on peut aussi les changer globalement : +\begin{description} +\item[coullignes] variable contenant la couleur des lignes de la grille. La valeur par défaut est \verb|black|. +\item[eplignes] variable contenant l'épaisseur des lignes de la grille. La valeur par défaut est \verb|0.7bp|. + \end{description} + + +\begin{exemple} +tableau(8,8,0.7cm); +coullignes:=olive; +draw grille(1,1); +draw grille(2,2) epaisseur 2; +fin; +\end{exemple} + +\begin{description} +\item[damier(x,y)] figure formée de la grille et des cases coloriées alternativement. +\item[coultableau{[]}] variables qui contiennent les couleurs des cases. + +Les valeurs par défaut sont \verb|coultableau[1]=0.45white| et \verb|coultableau[2]:=0.9white|. + +\end{description} + +\begin{exemple} +tableau(5,5,1cm); + coultableau[1]:=jaune; + coultableau[2]:=0.7rouge; + draw damier(1,1); +fin; +\end{exemple} + +\subsection{Grille partielle} + +\begin{description} +\item[lignesh(<suite de 0 et 1>)] Figure qui décrit les lignes horizontales qui doivent être tracées. De gauche à droite et de haut en bas. +\item[lignesv(<suite de 0 et 1>)] Figure qui décrit les lignes verticales qui doivent être tracées. De gauche à droite et de haut en bas. +\end{description} + +\begin{exemple} +tableau(3,3,1cm); + draw grille(1,1); + draw coord; + draw lignesh(1,1,1, + 1,0,1, + 0,1,0, + 1,1,1) epaisseur 3; + draw lignesv(1,0,0,1, + 1,1,1,1, + 1,0,1,1) epaisseur 3; +fin; +\end{exemple} + +\subsection{Coordonnées} + +\begin{description} +\item[coordx] figure formée des numéros de colonnes placée par défaut en bas. +\item[coordy] figure formée des numéros de lignes placée par défaut à gauche. +\item[coord] figure formée des deux figures précédentes. +\end{description} + +\begin{exemple} +tableau(5,5,1cm); + draw grille(1,1); + draw coord; +fin; +\end{exemple} + +\begin{description} +\item[style\_coord\_x] variable de type \verb|string| qui indique comment doivent être composées les coordonnées des colonnes. La valeur par défaut est \verb|"1"|. Les autres valeurs possibles sont \verb|"a"| (lettres minuscules), \verb|"A"| (lettres majuscules), \verb|"i"| (chiffres romains minuscules) et \verb|"I"| (chiffres romains majuscules). +\item[style\_coord\_y] même chose pour les lignes. +\item[deb\_coord\_x] variable de type \verb|numeric| qui indique la première valeur des colonnes. La valeur par défaut est \verb|1|. +\item[deb\_coord\_y] même chose pour les lignes. +\item[align\_coord\_y] variable de type \verb|string| qui indique comment doivent être alignés les numéros de lignes. La valeur par défaut est \verb|"c"| (centré). Les valeurs possibles sont \verb|"g"| ou \verb|"l"| (gauche) et \verb|"d"| ou \verb|"r"| (droite). +\item[place\_coord] variable de type \verb|string| qui indique où les coordonnées doivent être affichées. La valeur par défaut est \verb|"bg"| (en bas à gauche). On peut utiliser une combinaison des lettres \verb|"b"| (en bas), \verb|"h"| (en haut), \verb|"g"| (à gauche) et \verb|"d"| (à droite). +\item[inverse\_coord\_x] variable de type \verb|boolean| si le sens par défaut dans lequel les numéros de colonnes doivent être écrits (de gauche à droite) doit être inversé. La valeur par défaut est \verb|false|. +\item[inverse\_coord\_y] variable de type \verb|boolean| si le sens par défaut dans lequel les numéros de lignes doivent être écrits (de bas en haut) doit être inversé. La valeur par défaut est \verb|false|. +\end{description} + +\begin{exemple} +tableau(5,5,1cm); + draw grille(1,1); + style_coord_x:="a"; + style_coord_y:="I"; + deb_coord_x:=5; + deb_coord_y:=3; + draw coord; +fin; +\end{exemple} + +\begin{exemple} +tableau(5,5,1cm); + draw grille(1,1); + style_coord_x:="A"; + style_coord_y:="I"; + place_coord:="hg"; + inverse_coord_y:=true; + align_coord_y:="r"; + draw coord; +fin; +\end{exemple} + + +\begin{description} +\item[numerotationdames] description +\end{description} + +\subsection{Placements d'objets dans les cases} + +\begin{description} +\item[case(x,y)] figure formée de la case de coordonnées \verb|(x,y)| remplie et de son contour dessiné avec l'épaisseur et la couleur de la grille. +\item[cases((x1,y1),(x2,y2),...)] toutes les cases \verb|(x1,y1)|, \verb|(x2,y2)|... sont coloriées. +\end{description} + +\begin{codecache} +def couleur= withcolor enddef; +\end{codecache} + +\begin{exemple}[0.6] +tableau(5,5,1cm); + draw damier(1,1); + draw coord; + draw case(2,4) couleur rouge; + draw cases((1,2),(3,3),(5,1)) couleur bleu; +fin; +\end{exemple} + +On peut utiliser une variante de \verb|label| pour placer des objets dans les cases : + +\begin{description} +\item[tablabel(obj,x,y)] Place l'objet \verb|obj| dans la case de coordonnées \verb|(x,y)|. L'objet peut être une chaine de caractère, un chemin ou une figure. +\item[tablabels(obj)((x1,y1),(x2,y2)...)] Place l'objet \verb|obj| dans toutes les cases indiquées. +\end{description} + +\begin{exemple}[0.6] +tableau(8,8,0.6cm); + draw grille(1,1); + draw coord; + tablabel(fullcircle scaled 0.8,5,3); + tablabels("X")((3,4),(6,1),(2,2)) couleur vert; + for i=5 upto 8: + for j=5 upto 8: + tablabel(decimal(i*j),i,j) couleur bleu; + endfor + endfor +fin; +\end{exemple} + +\begin{exemple} +tableau(5,5,0.8cm); + draw grille(1,1); + inverse_coord_x:=true; + inverse_coord_y:=true; + deb_coord_x:=3; + deb_coord_y:=4; + draw coord; + tablabels("X")((3,4),(6,7),(4,8)); +fin; +\end{exemple} + +\subsection{Quelques dessins} + + +\begin{center} +\renewcommand{\arraystretch}{1.2} +\begin{longtable}{|m{5cm}|m{5cm}|>{\noindent\centering \rule{0pt}{0pt}\\ \arraybackslash}m{4cm}|}\hline +\centering \bfseries Syntaxe & \centering \bfseries Exemples &\multicolumn{1}{c|}{\bfseries Résultat} \\\endhead \hline +\verb|Pion(v)(coul1,coul2)| & \verb|Pion(1)(noir,0.85blanc)|&%\rule{0pt}{1.8cm}% +\begin{figreperedoc} +tableau(1,1,2cm); + tablabel(Pion(1)(noir,0.85blanc),1,1); +fin; +\end{figreperedoc} +\\ \hline + & \verb|Pion(1)(0.9blanc,noir)|& +\begin{figreperedoc} +tableau(1,1,2cm); + tablabel(Pion(1)(0.9blanc,noir),1,1); +fin; +\end{figreperedoc} +\\ \hline + & \verb|Pion(2)(noir,0.85blanc)|& +\begin{figreperedoc} +tableau(1,1,2cm); + tablabel(Pion(2)(noir,0.85blanc),1,1); + fin; +\end{figreperedoc} + \\ \hline + & \verb|Pion(2)(0.9blanc,noir)|& +\begin{figreperedoc} +tableau(1,1,2cm); + tablabel(Pion(2)(0.9blanc,noir),1,1); +fin; +\end{figreperedoc} +\\ \hline +\verb|Dame(v)(coul1,coul2)| & \verb|Dame(1)(noir,0.85blanc)|& +\begin{figreperedoc} +tableau(1,1,2cm); + tablabel(Dame(1)(noir,0.85blanc),1,1); +fin; +\end{figreperedoc} +\\ \hline + & \verb|Dame(1)(0.9blanc,noir)|& +\begin{figreperedoc} +tableau(1,1,2cm); + tablabel(Dame(1)(0.9blanc,noir),1,1); +fin; +\end{figreperedoc} +\\ \hline + & \verb|Dame(2)(noir,0.85blanc)|& +\begin{figreperedoc} +tableau(1,1,2cm); + tablabel(Dame(2)(noir,0.85blanc),1,1); + fin; +\end{figreperedoc} + \\ \hline + & \verb|Dame(2)(0.9blanc,noir)|& +\begin{figreperedoc} +tableau(1,1,2cm); + tablabel(Dame(2)(0.9blanc,noir),1,1); +fin; +\end{figreperedoc} +\\ \hline +\verb|Croix| & & +\begin{figreperedoc} +tableau(1,1,1.5cm); + tablabel(Croix,1,1); +fin; +\end{figreperedoc} +\\ \hline +\verb|Trou| & & +\begin{figreperedoc} +tableau(1,1,2cm); + tablabel(Trou,1,1); +fin; +\end{figreperedoc} +\\ \hline +\verb|Marque(v)(coul)| &\verb|Marque(1)((0.9,0.7,0.7))| & +\begin{figreperedoc} +tableau(1,1,2cm); + tablabel(Marque(1)((0.9,0.7,0.7)),1,1); +fin; +\end{figreperedoc} +\\ \hline + &\verb|Marque(2)((0.8,0.65,0.5))| & +\begin{figreperedoc} +tableau(1,1,2cm); + tablabel(Marque(2)((0.8,0.65,0.5)),1,1); +fin; +\end{figreperedoc} +\\ \hline +\verb|Mur(coul1,coul2)| &\verb|Mur(rouge,noir)| & +\begin{figreperedoc} +tableau(1,1,2cm); + tablabel(Mur(rouge,noir),1,1); +fin; +\end{figreperedoc} +\\ \hline +\verb|Plot(coul1,coul2)| &\verb|Plot(0.7rouge,0.5rouge)| & +\begin{figreperedoc} +tableau(1,1,2cm); + tablabel(Plot(0.7rouge,0.5rouge),1,1); +fin; +\end{figreperedoc} +\\ \hline +\verb|Caisse(coul1,coul2)| &\verb|Caisse(orange,marron)| & +\begin{figreperedoc} +tableau(1,1,2cm); + tablabel(Caisse(orange,marron),1,1); +fin; +\end{figreperedoc} +\\ \hline +\verb|Robotdroite(coul1,coul2)| &\verb|Robotdroite(noir,0.6vert)| & +\begin{figreperedoc} +tableau(1,1,2cm); + tablabel(Robotdroite(noir,0.6vert),1,1); +fin; +\end{figreperedoc} +\\ \hline +\verb|Robotgauche(coul1,coul2)| &\verb|Robotgauche(marine,0.6rouge)| & +\begin{figreperedoc} +tableau(1,1,2cm); + tablabel(Robotgauche(marine,0.6rouge),1,1); +fin; +\end{figreperedoc} +\\ \hline +\verb|Bateau(numcases,coul)| &\verb|Bateau(1,violet)| & +\begin{figreperedoc} +tableau(1,1,2cm); + tablabel(Bateau(1,violet),1,1); +fin; +\end{figreperedoc} +\\ \hline + &\verb|Bateau(2,marron)| & +\begin{figreperedoc} +tableau(1,1,2cm); + tablabel(Bateau(2,marron),1,1); +fin; +\end{figreperedoc} +\\ \hline +\verb|Eau(coul)| &\verb|Eau(marine)| & +\begin{figreperedoc} +tableau(1,1,2cm); + tablabel(Eau(marine),1,1); +fin; +\end{figreperedoc} +\\ \hline +\verb|Fleche(coul1,coul2)| &\verb|Fleche(jaune,marine)| & +\begin{figreperedoc} +tableau(1,1,2cm); + tablabel(Fleche(jaune,marine),1,1); +fin; +\end{figreperedoc} +\\ \hline +\end{longtable} +\end{center} + + +\subsection{Exemples} + +\subsubsection*{Mots croisés} + +\begin{exemple} +def moth(expr ch,n,m)= + for i=1 upto length ch: + tablabel(substring(i-1,i) of ch,n+i-1,m); + endfor +enddef; + +tableau(8,8,0.8cm); + draw grille(1,1); + inverse_coord_y:=true; + style_coord_y:="I"; + place_coord:="hg"; + draw coord; + draw cases((3,3),(3,5),(2,7),(6,6),(7,4)); + moth("OMELETTE",1,2); + moth("AMIES",4,3); +fin; + +\end{exemple} + +\subsubsection*{Sudokus} + +\begin{exemple} +tableau(9,9,0.8cm); + draw grille(1,1); + draw grille(3,3) epaisseur 2; + tablabels("1",(1,4),(4,8),(6,5),(7,3)); + tablabels("2",(3,9),(5,6),(6,2)); + tablabels("3",(1,1),(4,2),(9,6)); + tablabels("4",(3,8),(8,7)); + tablabels("5",(2,7),(4,9),(6,6),(7,1)); + tablabels("6",(2,4),(5,8)); + tablabels("7",(6,3),(7,2),(8,9),(9,5)); + tablabels("8",(1,3),(3,7),(5,5),(8,8)); + tablabels("9",(3,2)); +fin; +\end{exemple} + +\subsubsection*{Dames} + +\begin{exemple} +tableau(10,10,0.8cm); + picture pionblanc,pionnoir,dameblanche; + picture fleche; + pionblanc:=Pion(2)(0.9blanc,noir); + pionnoir:=Pion(2)(noir,0.85blanc); + dameblanche:=Dame(2)(0.9blanc,noir); + coultableau[1]:=0.7marron+0.3blanc; + coultableau[2]:=beige; + fleche:=Fleche(rouge,noir) rotated 135; + draw damier(1,1); + draw numerotationdames; + tablabels(pionblanc,31,36,39); + tablabels(pionnoir,3,7,16,19,23,30); + tablabels(dameblanche,15); + tablabel(fleche,5.5,5.5); +fin; +\end{exemple} + +\subsubsection*{Bataille navale} + +\begin{exemplev}{1} +tableau(10,10,0.8cm); + draw grille(1,1); + inverse_coord_y:=true; + style_coord_x:="A"; + place_coord:="hg"; + draw coord; + tablabel(Bateau(4,marron),5.5,3); + tablabel(Bateau(3,0.5vert),7,8); + tablabel(Bateau(3,0.5vert) rotated 90,2,9); + tablabels(Bateau(1,violet),(4,10),(3,5),(8,1),(9,4)); + tablabels(Eau(marine),(2,7),(3,7),(4,9),(4,2),(5,2)); + tablabels(Croix,(5,3),(8,8)); +fin; +\end{exemplev} + +\subsubsection*{Algoréa} + +\begin{exemplev}{1} +tableau(13,5,1cm); + coultableau[1]:=(1,0.9,0.7); + coultableau[2]:=(1,0.9,0.7); + draw damier(1,1); + tablabels(Mur(0.8rouge,noir),(1,2),(1,3),(1,4),(13,2),(13,3),(13,4)); + for i=1 upto 13: + tablabels(Mur(0.8rouge,noir),(i,1),(i,5)); + endfor + tablabel(Robotdroite(noir,0.7vert),2,2); + for i=4,6,7,10,12: + tablabel(Caisse(orange,marron),i,3); + tablabel(Marque(2)((0.8,0.65,0.5)),i,4); + endfor +fin; +\end{exemplev} \begin{codecache} @@ -1870,6 +2360,32 @@ end \end{document} + + + + + + + + + + + + + + + + + + + + + + + + + + \vspace{2em} @@ -1935,8 +2451,6 @@ fin; - - \begin{codecache} end \end{codecache} |