summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/metapost/repere/repere-doc.tex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2022-07-08 21:48:11 +0000
committerKarl Berry <karl@freefriends.org>2022-07-08 21:48:11 +0000
commit324268d084fb52166cce6cbb88805b4abd7fec02 (patch)
tree04e7f275111bfc747f12039d71e1dd94d3e146df /Master/texmf-dist/doc/metapost/repere/repere-doc.tex
parentf7f5adc351271f1b6c50fe1788c0a0353bf5d9b6 (diff)
repere (8jul22)
git-svn-id: svn://tug.org/texlive/trunk@63836 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/metapost/repere/repere-doc.tex')
-rw-r--r--Master/texmf-dist/doc/metapost/repere/repere-doc.tex772
1 files changed, 549 insertions, 223 deletions
diff --git a/Master/texmf-dist/doc/metapost/repere/repere-doc.tex b/Master/texmf-dist/doc/metapost/repere/repere-doc.tex
index cabbfb8bda8..931b99fa5bb 100644
--- a/Master/texmf-dist/doc/metapost/repere/repere-doc.tex
+++ b/Master/texmf-dist/doc/metapost/repere/repere-doc.tex
@@ -251,17 +251,144 @@ input geometriesyr16;
input repere;
\end{codecache}
-
+\part{Repères et géométrie}
\section{Utilisation du fichier}
-Les macros du fichier \verb+repere.mp+ ont pour but de simplifier la création de figures dans un repère du plan avec \MP{}. L'idée de départ est de coller le plus possible aux besoins de l'enseignement secondaire de mathématiques.
+
+\subsection{Généralités}
+Les macros du fichier \verb+repere.mp+ ont pour but de simplifier la création de figures dans un repère du plan avec \MP{}. L'idée de départ est de coller le plus possible aux besoins de l'enseignement secondaire français de mathématiques.
Il est possible d'utiliser \verb+repere+ et \verb+geometriesyr+ (les macros de Christophe \textsc{Poulain} pour la géométrie disponibles à l'adresse \url{http://melusine.eu.org/syracuse/poulecl/macros/}) dans une même figure comme le montre l'exemple page \pageref{exgeom}.
Le fichier \verb+repere.mp+ doit être placé dans un répertoire accessible à \MP{} (Par ex. le répertoire \verb+metapost+ du \verb+texmf+). De plus, la ligne \verb+input repere;+ doit apparaître dans le document contenant les figures.
-Les étiquettes (noms de points, de courbes, de vecteurs...) sont composées automatiquement au format \LaTeX{} avec le package \verb+latexmp.mp+. Il est donc nécessaire de compiler deux fois les documents.
+Les étiquettes (noms de points, de courbes, de vecteurs...) sont composées automatiquement au format \LaTeX{} avec le package \verb+latexmp.mp+. Il est donc nécessaire de compiler deux fois les documents. Cette double compilation n'est pas nécessaire si on utilise Lua\LaTeX{} avec le package \verb|luamplib|.
+
+\subsection{Figures dans un document avec \LaTeX}
+Chacun des documents peut être compilé avec la commande \verb|mpost| puis inclus dans un document à l'aide de la commande \verb|\includegraphics| du package \verb|graphicx|.
+
+Certains packages permettent d'écrire du code \MP{} directement dans un document \LaTeX. \verb|repere| est compatible avec, entre autres, \verb|emp| et \verb|mpgraphics|.
+
+
+%\subsection{Code embarqué dans un document \LaTeX}
+%
+%
+%\medskip
+%
+%\begin{minipage}[t]{0.45\linewidth}
+%{\centering \textbf{Utilisation du package \texttt{emp}}\par}
+%
+%
+%
+%\verb|pdflatex monfichier.tex|
+%
+%\verb|mpost monfichier.mp|
+%
+%\verb|mpost monfichier.mp|
+%
+%\verb|pdflatex monfichier.tex|
+%
+%
+%\begin{lstlisting}[frame=single,frameround=tttt,backgroundcolor=\color{LightSteelBlue},language={[LaTeX]TeX}]
+%\documentclass{article}
+%\usepackage{emp}
+%\usepackage{ifpdf}
+% \ifpdf % Pour utiliser pdflatex
+% \DeclareGraphicsRule{*}{mps}{*}{}
+% \fi
+%\begin{document}
+%\begin{empfile}
+%\begin{empcmds}
+% input repere;
+%\end{empcmds}
+%\begin{emp}(0,0)
+% repere(-3,3,1cm,-2,2,1cm);
+% draw axes(1,1);
+% fin;
+%\end{emp}
+%\end{empfile}
+%\end{document}
+%\end{lstlisting}
+%\end{minipage}
+%\hfill
+%\begin{minipage}[t]{0.45\linewidth}
+%{\centering \textbf{Utilisation du package \texttt{mpgraphics}}\par}
+%
+%
+%\verb|pdflatex -shell-escape monfichier.tex|
+%
+%\begin{lstlisting}[frame=single,frameround=tttt,backgroundcolor=\color{LightSteelBlue},language={[LaTeX]TeX}]
+%\documentclass{article}
+%\usepackage[runs=2]{mpgraphics}
+%\begin{document}
+%\begin{mpdefs}
+% input repere;
+%\end{mpdefs}
+%\begin{mpdisplay}
+% repere(-3,3,1cm,-2,2,1cm);
+% draw axes(1,1);
+% fin;
+%\end{mpdisplay}
+%\end{document}
+%\end{lstlisting}
+%\end{minipage}
+
+
+\subsection{Figures dans un document avec Lua\LaTeX}
+
+Il est aussi possible d'utiliser Lua\LaTeX{} avec le package \verb|luamplib|. Il faut alors charger les packages \verb|siunitx| et \verb|esvect| utilisés par \verb|repere|.
+
+\medskip
+\begin{minipage}[t]{0.45\linewidth}
+{\centering \textbf{Figure isolée}\par}
+
+
+\verb|lualatex mafigure.tex|
+
+\begin{lstlisting}[frame=single,frameround=tttt,backgroundcolor=\color{LightSteelBlue},language={[LaTeX]TeX}]
+\documentclass{standalone}
+\usepackage{fontspec}
+\usepackage{siunitx,esvect}
+\usepackage{luamplib}
+\mplibnumbersystem{decimal} %Si besoin
+\everymplib{input repere;}
+\begin{document}
+\begin{mplibcode}
+ repere(-3,3,1cm,-2,2,1cm);
+ draw axes(1,1);
+fin;
+\end{mplibcode}
+\end{document}
+\end{lstlisting}
+\end{minipage}
+\hfill
+\begin{minipage}[t]{0.45\linewidth}
+{\centering \textbf{Code embarqué}\par}
+
+\verb|lualatex monfichier.tex|
+
+\begin{lstlisting}[frame=single,frameround=tttt,backgroundcolor=\color{LightSteelBlue},language={[LaTeX]TeX}]
+\documentclass{article}
+\usepackage{fontspec}
+\usepackage{siunitx,esvect}
+\usepackage{luamplib}
+\mplibnumbersystem{decimal} %Si besoin
+\everymplib{verbatimtex \leavevmode etex;
+ input repere;}
+\begin{document}
+Mon texte, mon texte, mon texte
+
+\begin{mplibcode}
+ repere(-3,3,1cm,-2,2,1cm);
+ draw axes(1,1);
+fin;
+\end{mplibcode}
+
+Mon texte, mon texte, mon texte
+\end{document}
+\end{lstlisting}
+\end{minipage}
\section{Repère utilisateur}
@@ -390,6 +517,10 @@ Les axes sont dessinés, gradués et étiquetés par défaut sur toute la longue
\item[setval(xmin,xmax,ymin,ymax)] définit les valeurs minimales et maximales pour l'étiquetage.
\item[flecheaxe] booléen égal à \verb|true| par défaut qui permet de dessiner, ou non, des flèches au bout des axes.
+
+ \item[axexo.pos(grad,val), axeyo.pos(grad,val), axeso.pos(grad,val)] macros identiques aux précédentes sauf pour l'étiquette correspondant à l'intersection des axes qui est toujours dessinée.
+
+ \item[axexn.pos(grad,val), axeyn.pos(grad,val), axesn.pos(grad,val)] macros identiques aux précédentes sauf pour l'étiquette correspondant à l'intersection des axes qui n'est jamais dessinée.
\end{description}
\begin{exemple}
@@ -403,12 +534,6 @@ fin;
\end{exemple}
-\begin{description}
- \item[axexo.pos(grad,val), axeyo.pos(grad,val), axeso.pos(grad,val)] macros identiques aux précédentes sauf pour l'étiquette correspondant à l'intersection des axes qui est toujours dessinée.
-
- \item[axexn.pos(grad,val), axeyn.pos(grad,val), axesn.pos(grad,val)] macros identiques aux précédentes sauf pour l'étiquette correspondant à l'intersection des axes qui n'est jamais dessinée.
-\end{description}
-
\begin{exemple}
repere(-0.5,3,0.8cm,-0.5,2.5,1cm);
@@ -497,6 +622,12 @@ fin;
\item[setquad(xmin,xmax,ymin,ymax)] définit les valeurs minimales et maximales pour le tracé des quadrillages.\footnote{Il existe une macro \verb|settout| qui appelle successivement \verb+setaxes+, \verb+setgrad+, \verb+setval+ et \verb+setquad+.}
\item[quadrillage(x,y)] quadrillage avec un pas de \verb+x+ sur l'axe des abscisses et de \verb+y+ sur l'axe des ordonnées. L'épaisseur des traits par défaut est \verb+0.3bp+ et la couleur par défaut est \verb+0.7white+.
+
+
+\item[papiermillimetre] comme son nom l'indique... Les couleurs et les épaisseurs des traits sont stockées dans \verb+pm_coula+, \verb+pm_coulb+, \verb+pm_coulc+ et \verb+pm_epa+, \verb+pm_epb+, \verb+pm_epc+.
+
+
+\item[papierpointe(x,y)] quadrillage formé de points avec un pas de \verb+x+ sur l'axe des abscisses et de \verb+y+ sur l'axe des ordonnées. La taille des points par défaut est \verb+2bp+.
\end{description}
@@ -517,9 +648,6 @@ draw cadre;
fin;
\end{exemple}
-\begin{description}
-\item[papiermillimetre] comme son nom l'indique... Les couleurs et les épaisseurs des traits sont stockées dans \verb+pm_coula+, \verb+pm_coulb+, \verb+pm_coulc+ et \verb+pm_epa+, \verb+pm_epb+, \verb+pm_epc+.
-\end{description}
\begin{exemple}
@@ -530,11 +658,6 @@ draw axes(1,1);
fin;
\end{exemple}
-\begin{description}
-\item[papierpointe(x,y)] quadrillage formé de points avec un pas de \verb+x+ sur l'axe des abscisses et de \verb+y+ sur l'axe des ordonnées. La taille des points par défaut est \verb+2bp+.
-\end{description}
-
-
\begin{exemple}
repere(-3,3,0.8cm,-2.5,2.5,1cm);
setquad(0,3,0,2.5);
@@ -601,9 +724,17 @@ Les macros suivantes sont directement inspirées des macros similaires de \verb+
\item[pointe(A,B,C...)] permet de marquer plusieurs points.
\item[nomme.pos(A,nom)] marque le point et affiche son nom à la position \verb+pos+ (qui peut être \verb|rt|, \verb|urt|, \verb|top|, \verb|ulft|...). \verb+nom+ peut être soit une chaîne de caractères, soit une expression du type \verb+btex ... etex+, soit une autre figure. Si \verb+nom+ est omis, le nom \verb+A+ est affiché. S'il s'agit d'un élément d'un tableau de points (\verb+A1+, \verb+A2+...), le nombre est affiché en indice.
+
+\item[nomme{[a]}(A,nom)] Il est possible d'obtenir un placement plus fin des étiquettes en remplaçant la position au sens de \MP{} (\verb|rt|, \verb|urt|...) par un nombre qui représente alors la position de l'étiquette par rapport au point en degrés.
+
+\item[nommerot.pos(A,nom)(angle)] Même chose que \verb|nomme.pos(A,nom)| mais l'étiquette est tournée d'un angle \verb|angle|.
+\item[nommerot{[a]}(A,nom)(angle)] Même chose que \verb|nomme[a](A,nom)| mais l'étiquette est tournée d'un angle \verb|angle|.
+
\end{description}
+
+
\begin{exemple}[0.6]
repere(-3,3,0.9cm,-2.5,5,0.9cm);
pair A,B,C[],D,E,F;
@@ -625,11 +756,6 @@ endfor
draw cadre;
fin;
\end{exemple}
-
-\begin{description}
-\item[nomme{[a]}(A,nom)] Il est possible d'obtenir un placement plus fin des étiquettes en remplaçant la position au sens de \MP{} (\verb|rt|, \verb|urt|...) par un nombre qui représente alors la position de l'étiquette par rapport au point en degrés.
-\end{description}
-
\begin{exemple}[0.55]
repere(-3,3.5,1cm,-3,3,1cm);
pair A,B,C[];
@@ -644,37 +770,63 @@ draw cadre;
fin;
\end{exemple}
+\begin{exemple}[0.5]
+repere(-2,3,1cm,-1,3,1cm);
+ pair A,B,C;
+ A=(2,2);B=(-1,1);C=(1,0);
+ nommerot.bot(A)(60);
+ nommerot[120](B)(180);
+ nommerot[-45](C,"Nom")(40);
+ draw cadre;
+fin;
+\end{exemple}
+
+
\subsection{Vecteurs}
+%\begin{description}
+%\item[vecteur.pos(A,u,nom)] figure formée du représentant du vecteur \verb+u+ d'origine \verb+A+ ainsi que de \verb+nom+ placé à la position \verb+pos+ par rapport au milieu de la flèche. Si \verb+nom+ est une chaine de caractère, il sera affiché avec une flèche. Si \verb+nom+ est omis, \verb+u+ surmonté d'une flèche est utilisé. S'il s'agit d'un élément d'un tableau de points (\verb+u1+, \verb+u2+...), le nombre est affiché en indice.
+%\end{description}
+%
+%
+%\begin{exemple}[0.6]
+%repere(-1,5.5,0.7cm,-4,4,0.8cm);
+%pair A,B,C[],u,v,w[];
+%u=(2,2);v=(2,-1);
+%A=(1,1);B=A+u;
+%draw axes(1,0);
+%draw base(O,i,j);
+%drawoptions(withcolor cyan);
+%nomme.llft(A);nomme.top(B);
+%draw vecteur.ulft(A,u,"AB");
+%draw vecteur.urt(B,v);
+%draw vecteur.bot(A,u+v,%
+% LaTeX("$\vect{u}+\vect{v}$"));
+%drawoptions(withcolor marine);
+%for i=1 upto 3:
+% C[i]=(1,i-4);w[i]=(1.5,0.5*i-1);
+%draw vecteur.bot(C[i],w[i]);
+%endfor
+%draw cadre;
+%fin;
+%\end{exemple}
+
\begin{description}
-\item[vecteur.pos(A,u,nom)] figure formée du représentant du vecteur \verb+u+ d'origine \verb+A+ ainsi que de \verb+nom+ placé à la position \verb+pos+ par rapport au milieu de la flèche. Si \verb+nom+ est une chaine de caractère, il sera affiché avec une flèche. Si \verb+nom+ est omis, \verb+u+ surmonté d'une flèche est utilisé. S'il s'agit d'un élément d'un tableau de points (\verb+u1+, \verb+u2+...), le nombre est affiché en indice.
+\item[drawvecteur(A,u)] Trace le représentant d'origine \verb|A| du vecteur \verb|u|. C'est l'équivalent de \verb|drawarrow A--A+u|
\end{description}
-
\begin{exemple}[0.6]
-repere(-1,5.5,0.7cm,-4,4,0.8cm);
-pair A,B,C[],u,v,w[];
-u=(2,2);v=(2,-1);
-A=(1,1);B=A+u;
-draw axes(1,0);
-draw base(O,i,j);
-drawoptions(withcolor cyan);
-nomme.llft(A);nomme.top(B);
-draw vecteur.ulft(A,u,"AB");
-draw vecteur.urt(B,v);
-draw vecteur.bot(A,u+v,%
- LaTeX("$\vect{u}+\vect{v}$"));
-drawoptions(withcolor marine);
-for i=1 upto 3:
- C[i]=(1,i-4);w[i]=(1.5,0.5*i-1);
-draw vecteur.bot(C[i],w[i]);
-endfor
-draw cadre;
+repere(-1,5,1cm,-1,4,1cm);
+ pair A,u;
+ A=(1,0);u=(3,3);
+ draw quadrillage(1,1);
+ draw axes(1,1);
+ drawvecteur(A,u) couleur bleu;
+ drawvecteur((1,3),(2,-2)) epaisseur 1;
fin;
\end{exemple}
-
\section{Droites, courbes...}
\subsection{Droites}
@@ -742,6 +894,19 @@ fin;
\item[fonccourbe.p(x)] image de \verb+x+ par la fonction dont la courbe représentative est le chemin \verb+p+. La macro renvoie 0 si la fonction n'est pas définie.
\item[nomme.pos(p,x,nom)] affiche \verb+nom+ au point d'abscisse \verb+x+ de la courbe \verb+p+ à la position \verb+pos+. \verb+nom+ peut être soit une chaîne de caractères, soit une expression du type \verb+btex ... etex+, soit une autre figure. Si \verb+nom+ est omis, le nom \verb+p+ est affiché. S'il s'agit d'un élément d'un tableau de points (\verb+p1+, \verb+p2+...), le nombre est affiché en indice.
+
+
+\item[intercourbes(P,p,q)] stocke dans le tableau de points \verb+P+ les points d'intersection des chemins \verb+p+ et \verb+q+. \verb+P1+ est un des points d'intersection, \verb+P2+ un autre etc. Il faut, avant d'utiliser cette macro, déclarer le tableau \verb+P+ de la façon suivante : \verb+pair P[];+
+
+\item[ptantecedents(P,y,p)] stocke dans le tableau de points \verb+P+ les points du chemin \verb+p+ d'ordonnée \verb+y+. De même que précédemment, le tableau \verb+P+ doit être déclaré avant d'utiliser cette macro.
+
+\item[antecedents(X,y,p)] stocke dans le tableau de nombres \verb+X+ les antécédents de \verb+y+ par la fonction dont la courbe représentative est le chemin \verb+p+. De même que précédemment, le tableau \verb+X+ doit être déclaré avant d'utiliser cette macro.
+
+
+\item[marquepointcourbe(p,x1,x2,...)] marque les points de la courbe \verb+p+ d'abscisses \verb+x1+, \verb+x2+... La marque dépend de la valeur de \verb+marque_p+.
+
+\item[marquepointchemin(p,n1,n2,...)] dans le cas d'un chemin défini par \verb+A..B..C..+, marque le \verb+n1+-ième point, le \verb+n2+-ième point... La marque dépend de la valeur de \verb+marque_p+. Attention, le premier point est numéroté 0.
+
\end{description}
@@ -760,15 +925,6 @@ draw courbepoints(g)(0,4,9);
fin;
\end{exemple}
-\begin{description}
-\item[intercourbes(P,p,q)] stocke dans le tableau de points \verb+P+ les points d'intersection des chemins \verb+p+ et \verb+q+. \verb+P1+ est un des points d'intersection, \verb+P2+ un autre etc. Il faut, avant d'utiliser cette macro, déclarer le tableau \verb+P+ de la façon suivante : \verb+pair P[];+
-
-\item[ptantecedents(P,y,p)] stocke dans le tableau de points \verb+P+ les points du chemin \verb+p+ d'ordonnée \verb+y+. De même que précédemment, le tableau \verb+P+ doit être déclaré avant d'utiliser cette macro.
-
-\item[antecedents(X,y,p)] stocke dans le tableau de nombres \verb+X+ les antécédents de \verb+y+ par la fonction dont la courbe représentative est le chemin \verb+p+. De même que précédemment, le tableau \verb+X+ doit être déclaré avant d'utiliser cette macro.
-\end{description}
-
-
\begin{exemple}
repere(-2.5,4.5,1cm,-3.5,2.5,1cm);
path p,C_f;
@@ -792,14 +948,6 @@ nomme.lrt(A3);
fin;
\end{exemple}
-\begin{description}
-\item[marquepointcourbe(p,x1,x2,...)] marque les points de la courbe \verb+p+ d'abscisses \verb+x1+, \verb+x2+... La marque dépend de la valeur de \verb+marque_p+.
-
-\item[marquepointchemin(p,n1,n2,...)] dans le cas d'un chemin défini par \verb+A..B..C..+, marque le \verb+n1+-ième point, le \verb+n2+-ième point... La marque dépend de la valeur de \verb+marque_p+. Attention, le premier point est numéroté 0.
-
-\end{description}
-
-
\begin{exemple}
repere(-2.5,4.5,1cm,-3.5,2.5,1cm);
@@ -821,9 +969,9 @@ fin;
\end{exemple}
-\subsection{Nommage automatique des courbes}
+\subsection{Placement automatique du nom des courbes}
\begin{description}
-\item[nomme(p,nom)] affiche \verb|nom| au niveau d'un point d'intersection de \verb|p| et du contour de la figure. Ce point est choisi en fonction de la chaine \verb|prefnomme| qui peut prendre les valeurs \verb|"right"| (valeur par défaut), \verb|"left"|, \verb|"top"| ou \verb|"bottom"|.
+\item[nomme(p,nom)] affiche \verb|nom| au niveau d'un point d'intersection de \verb|p| et du contour de la figure. La position est choisie en fonction de la chaine \verb|prefnomme| qui peut prendre les valeurs \verb|"right"| (valeur par défaut), \verb|"left"|, \verb|"top"| ou \verb|"bottom"| et de la place restante.
\end{description}
\begin{exemple}
@@ -916,6 +1064,11 @@ fin;
\item[lagrange(A,B,C,...)(xmin,xmax)] Même courbe que précédemment mais sur l'intervalle $[xmin;xmax]$.
\item[lagrange(x1,y1,x2,y2,x3,y3...)()] Courbe passant par les points $(x_1;y_1)$, $(x_2;y_2)$, $(x_3;y_3)$... représentant le polynôme de degré maximal $n-1$ tel que $P(x_i)=y_i$ sur l'intervalle définissant le repère.
\item[lagrange(x1,y1,x2,y2,x3,y3...)(xmin,xmax)] Même courbe que précédemment mais sur l'intervalle $[xmin;xmax]$.
+
+\item[hermite((x1,y1,y'1),(x2,y2,y'2)...)()] Courbe passant par les points $(x_1;y_1)$, $(x_2;y_2)$, $(x_3;y_3)$... représentant le polynôme de degré maximal $2n-1$ tel que $P(x_i)=y_i$ et $P'(x_i)=y'_i$ sur l'intervalle définissant le repère.
+\item[hermite((x1,y1,y'1),(x2,y2,y'2)...)(xmin,xmax)] Même courbe que précédemment mais sur l'intervalle $[xmin;xmax]$.
+\item[hermite(A,y'A,B,y'B,C,y'C...)()] Courbe passant par les points $A$, $B$, $C$... représentant le polynôme de degré maximal $2n-1$ tel que $P(x_A)=y_A$ et $P'(x_A)=y'_A$... sur l'intervalle définissant le repère.
+\item[hermite(A,y'A,B,y'B,C,y'C...)(xmin,xmax)] Même courbe que précédemment mais sur l'intervalle $[xmin;xmax]$.
\end{description}
\begin{exemple}[0.55]
@@ -937,14 +1090,6 @@ endfor
fin;
\end{exemple}
-
-\begin{description}
-\item[hermite((x1,y1,y'1),(x2,y2,y'2)...)()] Courbe passant par les points $(x_1;y_1)$, $(x_2;y_2)$, $(x_3;y_3)$... représentant le polynôme de degré maximal $2n-1$ tel que $P(x_i)=y_i$ et $P'(x_i)=y'_i$ sur l'intervalle définissant le repère.
-\item[hermite((x1,y1,y'1),(x2,y2,y'2)...)(xmin,xmax)] Même courbe que précédemment mais sur l'intervalle $[xmin;xmax]$.
-\item[hermite(A,y'A,B,y'B,C,y'C...)()] Courbe passant par les points $A$, $B$, $C$... représentant le polynôme de degré maximal $2n-1$ tel que $P(x_A)=y_A$ et $P'(x_A)=y'_A$... sur l'intervalle définissant le repère.
-\item[hermite(A,y'A,B,y'B,C,y'C...)(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);
@@ -998,6 +1143,10 @@ fin;
\item[spline(A,B,C...)(xmin,xmax)] Même courbe que précédemment mais sur l'intervalle $[xmin;xmax]$.
\item[spline(xA,yA,xB,yB,xC,yC,...)()] 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[spline(xA,yA,xB,yB,xC,yC...)(xmin,xmax)] Même courbe que précédemment mais sur l'intervalle $[xmin;xmax]$.
+
+
+\item[spline(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$, $f(x_B)=y_B$... et, le cas échéant, $f'(x_A)=y'_A$, $f'(x_B)=y'_B$... sur l'intervalle définissant le repère.
+\item[spline(A,<y'A>,B,<y'B>,C,<y'C>...)(xmin,xmax)] Même courbe que précédemment mais sur l'intervalle $[xmin;xmax]$.
\end{description}
\begin{exemple}[0.55]
@@ -1019,11 +1168,6 @@ endfor
fin;
\end{exemple}
-\begin{description}
-\item[spline(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$, $f(x_B)=y_B$... et, le cas échéant, $f'(x_A)=y'_A$, $f'(x_B)=y'_B$... sur l'intervalle définissant le repère.
-\item[spline(A,<y'A>,B,<y'B>,C,<y'C>...)(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);
pair A,B,C,D;
@@ -1043,23 +1187,13 @@ nomme.llft(C);nomme.rt(D);
fin;
\end{exemple}
+Attention : lorsque la courbure est importante, l'utilisation de \verb|tangente| peut donner des résultats erronés...
\section{Suites}
\begin{description}
\item[suite(u,deb,fin)] figure formée des points $(i;u_i)$ pour $i$ variant entre \verb+deb+ et \verb+fin+.
-\end{description}
-\begin{exemple}
-repere(-0.9,7,0.8cm,-1.2,1.2,1.5cm);
-vardef u(expr n)=(-1)**n/n enddef;
-taillepoint:=4;
-draw axes(1,1);
-draw suite(u,1,6) withcolor vertfonce;
-fin;
-\end{exemple}
-
-\begin{description}
\item[suiterec(f,deb,fin,init)] ligne brisée (\og escalier \fg{} ou \og escargot \fg) permettant de visualiser les termes de la suite définie par $u_{n+1}=f(u_n)$ de premier terme $u_{deb}=init$ et de dernier terme $u_{fin}$.
\item[suiterecprojx.pos(lab,min,max)] figure formée des segments joignant les points $(u_n;u_n)$ et $(u_n;0)$ pour $n$ compris entre \verb+min+ et \verb+max+. La suite $u$ et sa valeur initiale sont définies par le dernier appel de la macro \verb+suiterec+. \verb+lab+ désigne l'étiquette au niveau de l'axe des abscisse placée à la position \verb+pos+. Si \verb+lab+ est la chaîne vide \verb+""+, rien n'est écrit ; si \verb+lab+ est une autre chaîne de caractère (par ex. \verb+"u"+), elle est utilisée comme nom de la suite (on obtiendra $u_0$, $u_1$...) ; si \verb+lab+ est un nombre, les valeurs de la suites seront affichées et arrondies à \verb+lab+ décimales. Les valeurs \verb+min+ et \verb+max+ sont facultatives et égales par défaut aux valeurs \verb+deb+ et \verb+fin+ passées à la macro \verb+suiterec+.
@@ -1069,6 +1203,16 @@ fin;
\item[suiterecproj(lab,min,max)] même chose sur les deux axes. Les positions sont \verb+bot+ sur l'axe des abscisses et \verb+lft+ sur l'axe des ordonnées.
+
+\begin{exemple}
+repere(-0.9,7,0.8cm,-1.2,1.2,1.5cm);
+vardef u(expr n)=(-1)**n/n enddef;
+taillepoint:=4;
+draw axes(1,1);
+draw suite(u,1,6) withcolor vertfonce;
+fin;
+\end{exemple}
+
\begin{exemple}[0.55]
repere(-2,4.5,1cm,-1,4,1cm);
vardef f(expr x)=sqrt(2*x+4) enddef;
@@ -1115,9 +1259,13 @@ fin;
\item[entrecourbes(p,q,xmin,xmax)] chemin fermé délimitant la zone comprise entre les courbes \verb+p+ et \verb+q+ et les droites d'équations $y=\verb+xmin+$ et $y=\verb+xmax+$. Il peut donc être dessiné, rempli...
\item[souscourbe(p,xmin,xmax)] chemin fermé délimitant la zone comprise entre la courbe \verb+p+, l'axe des abscisses et les droites d'équations $y=\verb+xmin+$ et $y=\verb+xmax+$.
+
+
+\item[rectangles.type(p,a,b,n)] figure formée de \verb+n+ rectangles s'appuyant sur la courbe \verb+p+ entre les abscisses \verb+a+ et \verb+b+. \verb+type+ peut être \verb+min+, \verb+max+, \verb+droite+ ou \verb+gauche+.
\end{description}
+
\begin{exemple}
repere(-3.5,6,0.7cm,-2.5,4.5,0.7cm);
vardef f(expr x)= -(x/4)**3+0.75x enddef;
@@ -1140,10 +1288,6 @@ draw cadre;
fin;
\end{exemple}
-\begin{description}
-\item[rectangles.type(p,a,b,n)] figure formée de \verb+n+ rectangles s'appuyant sur la courbe \verb+p+ entre les abscisses \verb+a+ et \verb+b+. \verb+type+ peut être \verb+min+, \verb+max+, \verb+droite+ ou \verb+gauche+.
-\end{description}
-
\begin{exemple}
repere(-2.5,6,0.8cm,-2,5,0.8cm);
@@ -1300,6 +1444,8 @@ fin;
\subsection{Diagrammes}
\begin{description}
\item[diagrammebatons((v1,e1),(v2,e2),...(vn,en))] Figure formée des \verb|n| segments joignant les points \verb|(v1,e1),(v2,e2),...(vn,en)| et leur projeté sur l'axe des abscisses. Les bâtons sont surmontés d'un point dont le diamètre est égal à la largeur des segments multiplié par \verb|diampointsbatons|. \verb|diampointsbatons| est égal à 5 par défaut. On peut lui donner la valeur 0 pour ne pas avoir ces points.
+
+\item[diagrammebarres((a1,h1),(a2,h2),...(an,hn))] Figure formée de \verb|n| barres rectangulaires de hauteurs \verb|h1| \dots \verb|hn| aux abscisses \verb|a1| \dots \verb|an|. La largeur de ces barres est le nombre \verb|largbarres| qui vaut \verb|20bp| par défaut.
\end{description}
\begin{exemple}[0.6]
@@ -1312,10 +1458,6 @@ fin
\end{exemple}
-\begin{description}
-\item[diagrammebarres((a1,h1),(a2,h2),...(an,hn))] Figure formée de \verb|n| barres rectangulaires de hauteurs \verb|h1| \dots \verb|hn| aux abscisses \verb|a1| \dots \verb|an|. La largeur de ces barres est le nombre \verb|largbarres| qui vaut \verb|20bp| par défaut.
-\end{description}
-
\begin{exemple}[0.6]
repere(-0.5,5,1cm,-0.5,5,1cm);
path diag;
@@ -1332,7 +1474,7 @@ fin
\subsection{Probabilités}
-Quelques fonctions mathématiques sont proposées. Pour les grandes valeurs, on dépasse rapidement les capacités de \MP. Il est dans ce cas conseillé de compiler en utilisant la ligne de commande \verb|mpost -numbersystem="decimal" <fichier>.mp|.
+Quelques fonctions mathématiques sont proposées. Pour les grandes valeurs, on dépasse rapidement les capacités de \MP. Il est dans ce cas conseillé de compiler en utilisant la ligne de commande \verb|mpost -numbersystem="decimal" <fichier>.mp| ou, avec Lua\LaTeX{} et le package \verb|luamplib|, d'utiliser \verb|\mplibnumbersystem{decimal}|.
\begin{description}
@@ -1343,9 +1485,13 @@ Quelques fonctions mathématiques sont proposées. Pour les grandes valeurs, on
\item[diagrammeuniforme(n,m)] Diagramme en bâtons de la loi uniforme discrète sur les entiers consécutifs de \verb|n| à \verb|m|.
\item[diagrammegeometrique(p)] Diagramme en bâtons de la loi géométrique de paramètre \verb|p|.
\item[diagrammepoisson(lambda)] Diagramme en bâtons de la loi de Poisson de moyenne \verb|lambda|.
+
+\item[densitenormale(mu,sigma,a,b)] Courbe représentant la densité de la loi normale de moyenne \verb|mu| et d'écart type \verb|sigma| entre \verb|a| et \verb|b|. Si \verb|a| et \verb|b| sont omis, le tracé est fait sur l'intervalle définissant le repère.
+\item[densiteexponentielle(lambda)] Courbe représentant la densité de la loi normale de paramètre \verb|lambda|.
\end{description}
+
\begin{exemple}
repere(-2,16,0.45cm,-0.1,0.25,15cm);
setall(0,16,0,0.25);
@@ -1384,11 +1530,6 @@ draw diag withcolor orange epaisseur 4;
fin;
\end{exemple}
-\begin{description}
-\item[densitenormale(mu,sigma,a,b)] Courbe représentant la densité de la loi normale de moyenne \verb|mu| et d'écart type \verb|sigma| entre \verb|a| et \verb|b|. Si \verb|a| et \verb|b| sont omis, le tracé est fait sur l'intervalle définissant le repère.
-\item[densiteexponentielle(lambda)] Courbe représentant la densité de la loi normale de paramètre \verb|lambda|.
-\end{description}
-
\begin{codecache}
prefnomme:="top";
\end{codecache}
@@ -1526,8 +1667,11 @@ Il s'agit d'un chemin fermé qui peut donc être rempli.
\item[nomme.pos(A,O,B,texte)] Place le texte à la position \verb|pos| par rapport au point central de l'arc de cercle de centre $O$ et de rayon \verb|taille_marque_a|. \verb|pos| peut être \verb|rt|, \verb|urt|, \verb|top|, etc. ou un angle donné par rapport à la direction $(Ox)$.
\item[nomme(A,O,B,texte)] Même chose que précédemment mais la position est calculée automatiquement en fonction de l'angle.
-\end{description}
+\item[marqueangledroit(A,O,B)] Chemin fermé permettant de marquer l'angle droit $\widehat{AOB}$ sous forme d'un losange (il s'agit donc d'un carré si l'angle est réellement droit). Le côté du losange est \verb|taille_marque_ad| et vaut \verb|0.3cm| par défaut.
+\item[marquesegment(A,B,n)] Figure formées de \verb|n| marques sur le segment $[AB]$. Ces marques ont une taille de \verb|taille_marque_s| (\verb|0.3cm| par défaut), forment un angle en degrés de \verb|angle_marque_s| avec le segment (\verb|60| par défaut) et sont séparées de \verb|sep_marque_s| (\verb|2| par défaut).
+\item[marquesegment(A,B,C,D,...,n)] Permet de marquer plusieurs segments simultanément.
+\end{description}
\begin{exemple}
repere(-2,12,0.4cm,-2,10,0.4cm);
@@ -1546,28 +1690,22 @@ nomme(C,B,A,"$\alpha$");
fin;
\end{exemple}
-\begin{description}
-\item[marqueangledroit(A,O,B)] Chemin fermé permettant de marquer l'angle droit $\widehat{AOB}$ sous forme d'un losange (il s'agit donc d'un carré si l'angle est réellement droit). Le côté du losange est \verb|taille_marque_ad| et vaut \verb|0.3cm| par défaut.
-\item[marquesegment(A,B,n)] Figure formées de \verb|n| marques sur le segment $[AB]$. Ces marques ont une taille de \verb|taille_marque_s| (\verb|0.3cm| par défaut), forment un angle en degrés de \verb|angle_marque_s| avec le segment (\verb|60| par défaut) et sont séparées de \verb|sep_marque_s| (\verb|2| par défaut).
-\end{description}
\begin{exemple}[0.6]
repere(-1,10,0.5cm,-1,9,0.5cm);
pair A,B,C,A',B',C',u;
A=(3,1);B=(5,2);C=(1,5);u=(3,3);
A'-A=B'-B=C'-C=u;
-draw projectionaxes(A,"$x_A$","$y_A$") dashed evenly;
draw axes(0,0);
drawoptions(withcolor pourpre);
draw triangle(A,B,C);draw triangle(A',B',C');
+nomme.llft(A);nomme.lrt(B);nomme.ulft(C);
+nomme.llft(A');nomme.lrt(B');nomme.ulft(C');
draw marqueangledroit(B,A,C);
draw marqueangledroit(B',A',C');
draw marquesegment(B,C,2);
draw marquesegment(B',C',2);
-nomme.llft(A);nomme.lrt(B);nomme.ulft(C);
-nomme.llft(A');nomme.lrt(B');nomme.ulft(C');
-drawoptions(withcolor vertfonce);
-draw vecteur.lrt(B,u);draw vecteur.lrt(C,u);
+draw marquesegment(A,C,A',C',1);
fin;
\end{exemple}
@@ -1578,15 +1716,23 @@ fin;
\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.
+
+\item[angle\_cote] Variable numérique qui fixe l'angle de rotation de l'étiquette. La valeur par défaut de $-1$ indique que l'étiquette est tournée en fonction de l'angle du segment.
+\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);
+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;
@@ -1595,24 +1741,29 @@ 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|.
+\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);
+angle_cote:=90;
+cote.top(A,B,"10");
+angle_cote:=0;
+cote(A,C,"5");
+angle_cote:=-1;
+cote(B,C,"de $B$ vers $C$") couleur rouge;
+fin;
+\end{exemple}
-\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);
+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;
@@ -1622,6 +1773,270 @@ cotefleche.top(B,C,"Avec traits");
fin;
\end{exemple}
+\subsection{Figures complètes}
+Par rapport aux polygones décrits précédemment, les macros qui suivent diffèrent dans le sens où ce ne sont pas des chemins (paths) mais des figures « complètes ».
+
+D'une part, les points sont définis (selon les données passées par l'utilisateur) puis la figure est tracée avec noms et légendes. Des macros pour ne faire que la définition des points ou que le tracé quand les points sont déjà définis sont décrites plus loin.
+
+Pour les distinguer, leur nom commence par une majuscule.
+
+\subsubsection*{Figures}
+
+\begin{description}
+\item[Segment(A,B)(longueur,ptdepart,angle)(légende)] Figure formée du segment $[AB]$, des noms des points et de la cote.
+
+Les points doivent être déclarés mais s'ils n'existent pas, il sont définis de sorte que le segment mesure \verb|longueur|, démarre à \verb|ptdepart| et fasse l'angle \verb|angle| avec l'horizontale. \verb|ptdepart| vaut \verb|(0,0)| par défaut et \verb|angle| vaut \verb|0|.
+
+Les noms des points et la cote peuvent être éventuellement modifiés dans \verb|légende|.
+
+\item[Vecteur(u,A,B)(longueur,ptdepart,angle)(légende)] Figure formée du représentant du vecteur $\vect{u}$ d'origine $A$, des noms des points et du vecteur.
+
+Les points et le vecteur doivent être déclarés mais s'ils n'existent pas, il sont définis de sorte que le vecteur ait une norme de \verb|longueur|, pour origine \verb|ptdepart| et fasse l'angle \verb|angle| avec l'horizontale. \verb|ptdepart| vaut \verb|(0,0)| par défaut et \verb|angle| vaut \verb|0|.
+
+Les noms des points et du vecteur peuvent être éventuellement modifiés dans \verb|légende|.
+
+
+\item[TriangleLLL(A,B,C)(longAB,longAC,longBC,ptdepart,angle)(points)(cotes)(angles)] Figure formée du triangle $ABC$, donné par trois longueurs, et des noms des points, cotes et angles. \verb|ptdepart| vaut \verb|(0,0)| par défaut et \verb|angle| vaut \verb|0|.
+
+Les étiquettes sont composées automatiquement mais peuvent être modifiées en passant des valeurs à \verb|(points)|, \verb|(cotes)| ou \verb|(angles)|.
+
+\item[TriangleLLA(A,B,C)(longAB,longAC,angleA,ptdepart,angle)(points)(cotes)(angles)] Figure formée du triangle $ABC$, donné par deux longueurs et un angle, et des noms des points, cotes et angles. \verb|ptdepart| vaut \verb|(0,0)| par défaut et \verb|angle| vaut \verb|0|.
+
+Les étiquettes sont composées automatiquement mais peuvent être modifiées en passant des valeurs à \verb|(points)|, \verb|(cotes)| ou \verb|(angles)|.
+
+\item[TriangleLAA(A,B,C)(longAB,angleA,angleB,ptdepart,angle)(points)(cotes)(angles)] Figure formée du triangle $ABC$, donné par une longueur et deux angles, et des noms des points, cotes et angles. \verb|ptdepart| vaut \verb|(0,0)| par défaut et \verb|angle| vaut \verb|0|.
+
+Les étiquettes sont composées automatiquement mais peuvent être modifiées en passant des valeurs à \verb|(points)|, \verb|(cotes)| ou \verb|(angles)|.
+\end{description}
+
+
+\begin{exemple}
+repere(-1,6,1cm,-1,6,1cm);
+pair A,B,C,D,E,F;
+draw quadrillage(1,1);
+draw Segment(A,B)(4,(1,5),-20)();
+draw Segment(C,D)(2.52,10)("$x$")
+ couleur bleu;
+E:=(1,2);
+draw Segment(E,F)(3)("$l$","$M$","$N$")
+ couleur rouge;
+fin;
+\end{exemple}
+
+
+\begin{exemple}[0.53]
+repere(-1,6,1cm,-1,6,1cm);
+pair A,B,C,D,E,F,u,v,w;
+draw quadrillage(1,1);
+draw Vecteur(v,B,C)(3,(1,4),10)();
+A:=(0,1);u:=(3,-1);
+draw Vecteur(u,A)()() couleur rouge
+ dashed evenly;
+D:=(1,2);
+draw Vecteur(w,D)(4)("$\vv{MN}$","$M$","$N$")
+ couleur bleu;
+fin;
+\end{exemple}
+
+
+\begin{exemple}
+repere(-1,6,1cm,-5,6,1cm);
+pair A,B,C,D,E,F,G,H,I;
+angle_cote:=0;
+draw quadrillage(1,1);
+draw TriangleLLL(A,B,C)(4,3,2,(0,4))()()()
+ couleur bleu;
+draw TriangleLLA(D,E,F)(4,3,45)
+ ()()("$\alpha$","$\beta$","$\gamma$")
+ couleur rouge;
+G:=(0,-4);
+draw TriangleLAA(G,H,I)(4,60,40,10)
+ ("$O$")("$a$","$b$","$c$")();
+fin;
+\end{exemple}
+
+
+\subsubsection*{Paramètres}
+\begin{description}
+\item[AffPoints] Booléen qui indique si les noms des points doivent être affichés. La valeur par défaut est \verb|true|. Les noms sont affichés quelle que soit la valeur de \verb|AffPoints| si le nom est donné explicitement.
+
+\item[AffCotes] Booléen qui indique si la cote des segment doit être affichée. La valeur par défaut est \verb|true|. La cote est affichée quelle que soit la valeur de \verb|AffCotes| si une cote est donnée explicitement.
+
+\item[UnitCotes] Chaine de caractère qui indique l'unité à rajouter à la cote lorsqu'elle est composée automatiquement. La valeur par défaut est la chaine vide.
+
+\item[ArrondiCotes] Valeur entière qui indique à quelle décimale la cote doit être arrondie lorsqu'elle est affichée automatiquement.
+
+\item[AffVect] Booléen qui indique si le nom du vecteur doit être affiché. La valeur par défaut est \verb|true|. Le nom sont affiché quelle que soit la valeur de \verb|AffVect| s'il est donné explicitement.
+
+\item[AffAngles] Booléen qui indique si les angles doivent être marqués et leur nom affiché. La valeur par défaut est \verb|false|. Les noms sont affichés quelle que soit la valeur de \verb|AffAngles| si le nom est donné explicitement.
+\item[ArrondiAngles] Valeur entière qui indique à quelle décimale l'angle doit être arrondi lorsqu'il est affiché automatiquement.
+\item[EchelleAngles] Valeur numérique indiquant le facteur d'échelle de l'affichage des angles. La valeur par défaut est \verb|0.8|.
+\item[AutoAngleDroit] Booléen qui indique si les angles droits doivent être marqués comme tels. La valeur par défaut est \verb|false|.
+
+\item[AffDonnees] Booléen qui permet de n'afficher que les valeurs des côtés et des angles correspondant aux données. La valeur par défaut est \verb|false|.
+\end{description}
+
+
+\begin{exemple}
+repere(-1,6,1cm,-1,6,1cm);
+pair A,B,C,D,E,F;
+draw quadrillage(1,1);
+UnitCotes:="cm";
+draw Segment(A,B)(4,(1,5),-20)();
+AffPoints:=false;
+ArrondiCotes:=1;
+draw Segment(C,D)(2.52,10)() couleur bleu;
+E:=(1,2);
+draw Segment(E,F)(3)("$l$","$M$","$N$")
+ couleur rouge;
+fin;
+\end{exemple}
+\begin{codecache}
+ArrondiCotes:=2;
+AffPoints:=true;
+UnitCotes:="";
+\end{codecache}
+
+
+\begin{exemple}[0.53]
+repere(-1,6,1cm,-1,6,1cm);
+pair A,B,C,D,u,v,w;
+draw quadrillage(1,1);
+AffVect:=false;
+draw Vecteur(v,B,C)(3,(1,4),10)();
+A:=(0,1);u:=(3,-1);
+AffVect:=true;
+AffPoints:=false;
+draw Vecteur(u,A)()() couleur rouge
+ dashed evenly;
+D:=(1,2);
+draw Vecteur(w,D)(4)("$\vv{MN}$","$M$","$N$")
+ couleur bleu;
+fin;
+\end{exemple}
+
+\begin{codecache}
+AffPoints:=true;
+\end{codecache}
+
+\begin{exemple}
+repere(-1,6,1cm,-5,6,1cm);
+pair A,B,C,D,E,F,G,H,I;
+draw quadrillage(1,1);
+angle_cote:=0;
+AffAngles:=true;
+draw TriangleLLL(A,B,C)(4,3,2,(0,4))()()()
+ couleur bleu;
+ArrondiAngles:=2;
+EchelleAngles:=0.6;
+draw TriangleLLA(D,E,F)(4,3,45)()()()
+ couleur rouge;
+G:=(0,-4);
+EchelleAngles:=0.8;
+AutoAngleDroit:=true;
+draw TriangleLAA(G,H,I)(5,60,30,10)
+ ("$O$")("$a$","$b$","$c$")();
+fin;
+\end{exemple}
+
+\begin{codecache}
+AutoAngleDroit:=false;
+ArrondiAngles:=1;
+AffAngles:=false;
+\end{codecache}
+
+\begin{exemple}
+repere(-1,6,1cm,-5,6,1cm);
+pair A,B,C,D,E,F,G,H,I;
+angle_cote:=0;
+AffDonnees:=true;
+draw quadrillage(1,1);
+draw TriangleLLL(A,B,C)(4,3,2,(0,4))()()()
+ couleur bleu;
+draw TriangleLLA(D,E,F)(4,3,45)
+ ()()("$\alpha$","$\beta$","$\gamma$")
+ couleur rouge;
+G:=(0,-4);
+draw TriangleLAA(G,H,I)(4,60,40,10)
+ ("$O$")("$a$","$b$","$c$")();
+fin;
+\end{exemple}
+\begin{codecache}
+AffDonnees:=false;
+\end{codecache}
+
+\subsubsection*{Définitions seules}
+
+\begin{description}
+\item[defSegment(A,B)(longueur,ptdepart,angle)] Macro permettant de définir les points $A$ et $B$ sans dessiner le segment.
+
+\item[defVecteur(u,A,B)(longueur,ptdepart,angle)] Macro permettant de définir les points $A$ et $B$ et le vecteur $\vect{u}$ sans les dessiner.
+
+\item[defTriangleLLL(A,B,C)(longAB,longAC,longBC,ptdepart,angle)] Macro permettant de définir les points $A$, $B$ et $C$ sans dessiner le triangle.
+
+\item[defTriangleLLA(A,B,C)(longAB,longAC,angleA,ptdepart,angle)] Macro permettant de définir les points $A$, $B$ et $C$ sans dessiner le triangle.
+
+\item[defTriangleLAA(A,B,C)(longAB,angleA,angleB,ptdepart,angle)] Macro permettant de définir les points $A$, $B$ et $C$ sans dessiner le triangle.
+\end{description}
+
+
+\begin{exemple}
+repere(0,6,1cm,0,6,1cm);
+pair A,B,C,D,E,F;
+draw quadrillage(1,1);
+A:=(1,1);
+defSegment(A,B)(4,70);
+defSegment(B,C)(3);
+draw A--B--C;
+nomme.llft(A);nomme.ulft(B);
+nomme.rt(C);
+fin;
+\end{exemple}
+
+\begin{exemple}
+repere(-1,6,1cm,0,5,1cm);
+pair A,B,C,D,E,F,u,v,w,ve;
+draw quadrillage(1,1);
+defVecteur(u,A,B)(3,(2,1),30);
+draw A--B;
+nomme.llft(A);nomme.urt(B);
+defVecteur(v)(4,70);
+C:=(0,1);
+draw C--(C+v);
+nomme.llft(C);
+fin;
+\end{exemple}
+
+\begin{exemple}
+repere(-1,5,1cm,-1,3,1cm);
+pair A,B,C;
+draw quadrillage(1,1);
+defTriangleLLL(A,B,C)(4,3,2,15);
+nomme.llft(A);nomme.rt(B);
+nomme.top(C);
+fin;
+\end{exemple}
+
+\subsubsection*{Tracé seul}
+
+Si les points sont définis, on peut utiliser la macro de tracé ci-dessous.
+
+\begin{description}
+\item[Triangle(A,B,C)(points)(cotes)(angles)] Figure formée du triangle $ABC$ et des noms des points, cotes et éventuellement des angles.
+\end{description}
+
+
+\begin{exemple}
+repere(-1,5,1cm,-1,4,1cm);
+pair D,E,F;
+angle_cote:=0;
+draw quadrillage(1,1);
+D:=(0,0);E:=(4,1);F:=(2,3);
+draw Triangle(D,E,F)()()();
+fin;
+\end{exemple}
+
+
\section{Divers}
\subsection{Composition des étiquettes}
Tous les textes et étiquettes peuvent être composés en utilisant la macro ci-dessous.
@@ -1803,98 +2218,6 @@ Si ces trois figures s'appellent \verb|mafigure.1|, \verb|mafigure.2| et \verb|m
-\subsection{Code embarqué dans un document \LaTeX}
-
-Certains packages permettent d'écrire du code \MP{} directement dans un document \LaTeX. \verb|repere| est compatible avec, entre autres, \verb|emp| et \verb|mpgraphics|.
-
-\medskip
-
-\begin{minipage}[t]{0.45\linewidth}
-{\centering \textbf{Utilisation du package \texttt{emp}}\par}
-
-
-
-\verb|pdflatex monfichier.tex|
-
-\verb|mpost monfichier.mp|
-
-\verb|mpost monfichier.mp|
-
-\verb|pdflatex monfichier.tex|
-
-
-\begin{lstlisting}[frame=single,frameround=tttt,backgroundcolor=\color{LightSteelBlue},language={[LaTeX]TeX}]
-\documentclass{article}
-\usepackage{emp}
-\usepackage{ifpdf}
- \ifpdf % Pour utiliser pdflatex
- \DeclareGraphicsRule{*}{mps}{*}{}
- \fi
-\begin{document}
-\begin{empfile}
-\begin{empcmds}
- input repere;
-\end{empcmds}
-\begin{emp}(0,0)
- repere(-3,3,1cm,-2,2,1cm);
- draw axes(1,1);
- fin;
-\end{emp}
-\end{empfile}
-\end{document}
-\end{lstlisting}
-\end{minipage}
-\hfill
-\begin{minipage}[t]{0.45\linewidth}
-{\centering \textbf{Utilisation du package \texttt{mpgraphics}}\par}
-
-
-\verb|pdflatex -shell-escape monfichier.tex|
-
-\begin{lstlisting}[frame=single,frameround=tttt,backgroundcolor=\color{LightSteelBlue},language={[LaTeX]TeX}]
-\documentclass{article}
-\usepackage[runs=2]{mpgraphics}
-\begin{document}
-\begin{mpdefs}
- input repere;
-\end{mpdefs}
-\begin{mpdisplay}
- repere(-3,3,1cm,-2,2,1cm);
- draw axes(1,1);
- fin;
-\end{mpdisplay}
-\end{document}
-\end{lstlisting}
-\end{minipage}
-
-
-Il est aussi possible d'utiliser Lua\LaTeX{} avex le package \verb|luamplib|. Il faut alors charger les packages \verb|siunitx| et \verb|esvect| utilisés par \verb|repere|.
-
-\begin{center}
-\begin{minipage}[t]{0.5\linewidth}
-{\centering \textbf{Utilisation de Lua\LaTeX}\par}
-
-
-\verb|lualatex monfichier.tex|
-
-\begin{lstlisting}[frame=single,frameround=tttt,backgroundcolor=\color{LightSteelBlue},language={[LaTeX]TeX}]
-\documentclass{article}
-\usepackage{fontspec}
-\usepackage{siunitx}
-\usepackage{esvect}
-\usepackage{luamplib}
-\mplibnumbersystem{double} % Si nécessaire
-\begin{document}
-\everymplib{input repere;}
-\begin{mplibcode}
- repere(-3,3,1cm,-2,2,1cm);
- draw axes(1,1);
-fin;
-\end{mplibcode}
-\end{document}
-\end{lstlisting}
-\end{minipage}
-\end{center}
\section{Dessin à main levée avec \texttt{geometriesyr}}
@@ -1916,9 +2239,11 @@ draw cercles(CentreCercleC(A,B,C),A);
fin;
\end{exemple}
-\section{Tableaux et grilles}
+\newpage
+\part{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.
+\section{Définition et grilles}
\subsection{Définition du tableau}
\begin{description}
@@ -1984,6 +2309,7 @@ tableau(3,3,1cm);
fin;
\end{exemple}
+\section{Repérage et cases}
\subsection{Coordonnées}
\begin{description}
@@ -2091,7 +2417,7 @@ tableau(5,5,0.8cm);
fin;
\end{exemple}
-\subsection{Quelques dessins}
+\section{Quelques dessins}
\begin{center}
@@ -2249,9 +2575,9 @@ fin;
\end{center}
-\subsection{Exemples}
+\section{Exemples}
-\subsubsection*{Mots croisés}
+\subsection{Mots croisés}
\begin{exemple}
def moth(expr ch,n,m)=
@@ -2273,7 +2599,7 @@ fin;
\end{exemple}
-\subsubsection*{Sudokus}
+\subsection{Sudokus}
\begin{exemple}
tableau(9,9,0.8cm);
@@ -2291,7 +2617,7 @@ tableau(9,9,0.8cm);
fin;
\end{exemple}
-\subsubsection*{Dames}
+\subsection{Dames}
\begin{exemple}
tableau(10,10,0.8cm);
@@ -2312,7 +2638,7 @@ tableau(10,10,0.8cm);
fin;
\end{exemple}
-\subsubsection*{Bataille navale}
+\subsection{Bataille navale}
\begin{exemplev}{1}
tableau(10,10,0.8cm);
@@ -2330,7 +2656,7 @@ tableau(10,10,0.8cm);
fin;
\end{exemplev}
-\subsubsection*{Algoréa}
+\subsection{Algoréa}
\begin{exemplev}{1}
tableau(13,5,1cm);