diff options
author | Karl Berry <karl@freefriends.org> | 2016-06-21 21:24:54 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2016-06-21 21:24:54 +0000 |
commit | c83263c0db8d6eb3405f292769f552707219383e (patch) | |
tree | 34182c683d981c4f863fa04f10e5762b8c5c0873 /Master/texmf-dist/doc/metapost | |
parent | 4db63e6af3cfba060d6736542b3d5e9d69650280 (diff) |
repere (21jun16)
git-svn-id: svn://tug.org/texlive/trunk@41513 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/metapost')
-rw-r--r-- | Master/texmf-dist/doc/metapost/repere/README | 12 | ||||
-rw-r--r-- | Master/texmf-dist/doc/metapost/repere/README.md | 11 | ||||
-rw-r--r-- | Master/texmf-dist/doc/metapost/repere/repere-doc.pdf | bin | 621123 -> 653215 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/metapost/repere/repere-doc.tex | 526 |
4 files changed, 408 insertions, 141 deletions
diff --git a/Master/texmf-dist/doc/metapost/repere/README b/Master/texmf-dist/doc/metapost/repere/README deleted file mode 100644 index b4fe5d2ceb0..00000000000 --- a/Master/texmf-dist/doc/metapost/repere/README +++ /dev/null @@ -1,12 +0,0 @@ -repere.mp - -This package provides MetaPost macros for drawing in a coordinate system : -- axis, grids -- points, vectors -- functions (curves, tangents, integrals, sequences) -- statistic diagrams - -The doc is in french, sorry for that - -License LPPL - diff --git a/Master/texmf-dist/doc/metapost/repere/README.md b/Master/texmf-dist/doc/metapost/repere/README.md new file mode 100644 index 00000000000..abb5bde1d9f --- /dev/null +++ b/Master/texmf-dist/doc/metapost/repere/README.md @@ -0,0 +1,11 @@ +This package provides MetaPost macros for drawing secondary school mathematics figures in a coordinate system : +- axis, grids +- points, vectors +- functions (curves, tangents, integrals, sequences) +- statistic diagrams +- plane geometry (polygons, circles) + +The doc is in french... + +License LPPL + 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 4ebe22e1ee5..ae6f4c21c21 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 b51602fd4f9..840b870c565 100644 --- a/Master/texmf-dist/doc/metapost/repere/repere-doc.tex +++ b/Master/texmf-dist/doc/metapost/repere/repere-doc.tex @@ -1,5 +1,8 @@ \documentclass[11pt,a4paper,french]{article} -% to compile this doc (needs geometriesyr16.mp http://melusine.eu.org/syracuse/poulecl/macros/): +% Needs geometriesyr16.mp +%http://melusine.eu.org/syracuse/poulecl/geometriesyr16/distrib/geometriesyr16-050408.tgz + +% To compile: % (pdf)latex repere-doc.tex % mpost repere-doc.mp % mpost repere-doc.mp @@ -11,9 +14,12 @@ \usepackage[T1]{fontenc} \usepackage{lmodern} \usepackage{textcomp} + \usepackage{mathtools} \usepackage{geometry} \geometry{twoside,hmargin=2cm,vmargin={1.5cm,1.8cm},includefoot} + + \usepackage[bottom]{footmisc} \usepackage{mflogo} @@ -51,7 +57,8 @@ \lstset{columns=flexible,% language=MetaPost,% showstringspaces=false,% - basicstyle=\ttfamily} + basicstyle=\ttfamily, + literate={é}{{\'e}}1} \usepackage{babel} @@ -219,7 +226,7 @@ \title{Documentation de \texttt{repere.mp}} \date{\today} \author{Olivier \textsc{Péault}% -\footnote{E-mail : \href{mailto:o.peault@gmail.com}{\texttt{o.peault@gmail.com}}}} +\footnote{E-mail : \href{mailto:o.peault@openmailbox.org}{\texttt{o.peault@openmailbox.org}}}} \maketitle \setcounter{tocdepth}{2} @@ -233,7 +240,6 @@ \begin{codecache} input geometriesyr16; -input latexmp; input repere; \end{codecache} @@ -241,12 +247,12 @@ input repere; \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 possibles aux besoins de l'enseignement secondaire 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 montrent les exemples page \pageref{exgeom}. +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+ local). De plus, la ligne \verb+input repere;+ doit apparaître dans le document contenant les figures. +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. -Certaines des étiquettes (noms de points, de courbes, de vecteurs...) sont composées automatiquement au format \LaTeX{} mais la compilation peut devenir assez longue pour un nombre important de figures car un fichier est créé et compilé automatiquement par \MP{} pour chaque étiquette. Il est alors possible d'utiliser le fichier \verb+latexmp.mp+ à condition de placer l'instruction \verb+input latexmp;+ avant l'instruction \verb+input repere;+. Attention, utiliser \verb+latexmp.mp+ oblige à 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. \section{Repère utilisateur} @@ -325,8 +331,6 @@ Au niveau de l'intersection des axes, les étiquettes sont tracées à la positi \end{description} -Les axes sont dessinés, gradués et étiquetés par défaut sur toute la longueur du repère utilisateur. Pour des valeurs différentes on peut utiliser les macros suivantes : - \begin{exemple} @@ -362,6 +366,9 @@ draw axey(1,1) withcolor bleu; fin; \end{exemple} + + + \subsubsection{Réglages des axes} Les axes sont dessinés, gradués et étiquetés par défaut sur toute la longueur du repère utilisateur. Pour des valeurs différentes on peut utiliser les macros suivantes : @@ -438,6 +445,8 @@ fin; \begin{description} \item[axexpart.pos(x1,lab1,x2,lab2,...)] graduation et étiquetage partiels de l'axe des abscisses pour les valeurs \verb+x1+, \verb+x2+... et les étiquettes \verb+lab1+, \verb+lab2+... à la position \verb+pos+. Si \verb+pos+ est omis, les étiquettes sont placées à la position \verb+bot+. Les étiquettes peuvent être soit des chaînes de caractères ("aa", "bonjour"), soit des expressions du type \verb+btex $\pi$ etex+ (ou \verb|LaTeX("$\pi$")| voir page \pageref{latex}), soit d'autres figures. Si \verb+labn+ est omis, la valeur de \verb+xn+ sera utilisée comme étiquette. Pour obtenir une graduation sans étiquette, on peut utiliser la chaîne vide \verb+""+. +On peut désactiver le dessin de la graduation en donnant la valeur \verb|false| à \verb|boolgradxpart|. + \item[axeypart.pos(y1,lab1,y2,lab2,...)] même chose sur l'axe des ordonnées. Si \verb+pos+ est omis, les étiquettes sont placées à la position \verb+lft+. \end{description} @@ -560,12 +569,15 @@ draw cadre; fin; \end{exemple} + + + \section{Points, vecteurs} \subsection{Points} \label{points} \begin{description} -\item[\_c(x,y)] désigne le point (ou le vecteur) de coordonnées cartésiennes \verb+x+ et \verb+y+ dans le repère utilisateur. +\item[(x,y)] désigne le point (ou le vecteur) de coordonnées cartésiennes \verb+x+ et \verb+y+ dans le repère utilisateur. \item[pol(r,t)] désigne le point (ou le vecteur) de coordonnées $(r\cos t;r\sin t)$ dans le repère utilisateur. @@ -587,8 +599,8 @@ Les macros suivantes sont directement inspirées des macros similaires de \verb+ \begin{exemple}[0.6] repere(-3,3,0.9cm,-2.5,5,0.9cm); pair A,B,C[],D,E,F; -A=_c(1,1);B=_c(2,3); -D=_c(-2,-1);E=_c(-1,-1);F=_c(-1,-2); +A=(1,1);B=(2,3); +D=(-2,-1);E=(-1,-1);F=(-1,-2); draw axes(1,0); marque_p:="";drawoptions(withcolor magenta); nomme.llft(A);nomme.top(B);draw A--B; @@ -597,15 +609,18 @@ pointe(D,E,F); marque_p:="creux";drawoptions(withcolor orange); nomme.bot(pol(sqrt(2),-pi/4), LaTeX("$\sqrt{2}e^{-i\frac{\pi}{4}}$")); -nomme.bot(_c(-1.5,1),LaTeX("$(-1,5;1)$")); +nomme.bot((-1.5,1),LaTeX("$(-1,5;1)$")); marque_p:="plein";drawoptions(withcolor violet); for i=2 upto 4: - C[i]=_c(-3+i/2,i);nomme.lft(C[i]); + C[i]=(-3+i/2,i);nomme.lft(C[i]); endfor 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. @@ -615,8 +630,8 @@ fin; \begin{exemple}[0.6] repere(-1,5.5,0.7cm,-4,4,0.8cm); pair A,B,C[],u,v,w[]; -u=_c(2,2);v=_c(2,-1); -A=_c(1,1);B=A+u; +u=(2,2);v=(2,-1); +A=(1,1);B=A+u; draw axes(1,0); draw base(O,i,j); drawoptions(withcolor cyan); @@ -627,7 +642,7 @@ draw vecteur.bot(A,u+v,% LaTeX("$\vect{u}+\vect{v}$")); drawoptions(withcolor marine); for i=1 upto 3: - C[i]=_c(1,i-4);w[i]=_c(1.5,0.5*i-1); + C[i]=(1,i-4);w[i]=(1.5,0.5*i-1); draw vecteur.bot(C[i],w[i]); endfor draw cadre; @@ -635,6 +650,7 @@ fin; \end{exemple} + \section{Droites, courbes...} \subsection{Droites} @@ -652,7 +668,7 @@ fin; \begin{exemple}[0.65] repere(-2,3,1cm,-2,3,1cm); pair A,B; -A=_c(-0.5,-1);B=_c(1.5,1.5); +A=(-0.5,-1);B=(1.5,1.5); draw axes(1,0); nomme.ulft(A); nomme.lrt(B); @@ -669,9 +685,13 @@ fin; \verb|vardef f(expr x)=2x+1 enddef;|) et de définir des courbes passant par des points donnés (\verb+A..B..C+). Ces possibilités sont utilisées dans les macros qui suivent. \begin{description} -\item[courbefonc(f,xmin,xmax,n) ou courbefonc(f)(xmin,xmax,n)] courbe représentant la fonction \verb+f+ entre \verb+xmin+ et \verb+xmax+ en utilisant \verb+n+ points d'interpolation. +\item[courbefonc(f)()] courbe représentant la fonction $f$ sur l'intervalle définissant le repère. + +\item[courbefonc(f)(xmin,xmax)] courbe représentant la fonction $f$ sur l'intervalle $[xmin;xmax]$. + +\item[courbefonc(f)(xmin,xmax,n)] courbe représentant la fonction $f$ sur l'intervalle $[xmin;xmax]$ en utilisant \verb+n+ points d'interpolation. La valeur par défaut de \verb|n| est 60. -\item[courbepoints(f,xmin,xmax,n)] ne trace que les \verb+n+ points sans les relier. Les points sont dessinés en fonction de la valeur de \verb+marque_p+ (voir \ref{points}). +\item[courbepoints(f)(xmin,xmax,n)] ne trace que les \verb+n+ points sans les relier. Les points sont dessinés en fonction de la valeur de \verb+marque_p+ (voir \ref{points}). \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. @@ -686,11 +706,11 @@ vardef g(expr x)=exp(x)/10-3 enddef; path C_f; draw axes(1,1); drawoptions(withcolor moutarde); -C_f=courbefonc(f)(-2,5,50); +C_f= courbefonc(f)(); draw C_f withpen pencircle scaled 1; nomme.llft(C_f,4.7); drawoptions(withcolor beige); -draw courbepoints(g,0,4,9); +draw courbepoints(g)(0,4,9); fin; \end{exemple} @@ -708,10 +728,10 @@ repere(-2.5,4.5,1cm,-3.5,2.5,1cm); path p,C_f; pair I[],A[]; vardef f(expr x)= x**2-2x enddef; -p=_c(-2,-2).._c(-1,1).._c(0,2).._c(1,1) - .._c(2,-2).._c(3,-3).._c(3.5,-2.5) - .._c(4,-1); -C_f=courbefonc(f,-2,4,40); +p=(-2,-2)..(-1,1)..(0,2)..(1,1) + ..(2,-2)..(3,-3)..(3.5,-2.5) + ..(4,-1); +C_f= courbefonc(f)(-2,2.5); draw axes(1,1); drawoptions(withpen pencircle scaled 1); draw p withcolor bleu; @@ -729,7 +749,7 @@ fin; \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+è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. +\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} @@ -740,10 +760,10 @@ repere(-2.5,4.5,1cm,-3.5,2.5,1cm); path p,C_f; pair I[],A[]; vardef f(expr x)= x**2-2x enddef; -p=_c(-2,-2).._c(-1,1).._c(0,2) - .._c(1,1).._c(2,-2).._c(3,-3) - .._c(3.5,-2.5).._c(4,-1); -C_f=courbefonc(f,-2,4,40); +p=(-2,-2)..(-1,1)..(0,2) + ..(1,1)..(2,-2)..(3,-3) + ..(3.5,-2.5)..(4,-1); +C_f= courbefonc(f)(-2,3); draw axes(1,1); drawoptions(withpen pencircle scaled 1); draw p withcolor bleu; @@ -754,7 +774,6 @@ marquepointchemin(p,0,2,3,5); fin; \end{exemple} - \subsection{Dérivée et tangentes} \begin{description} \item[der.p(x)] image de \verb+x+ par la dérivée de la fonction dont la courbe représentative est \verb+p+. @@ -773,10 +792,10 @@ fin; \begin{exemple} repere(-2.5,4.5,1cm,-3.5,2.5,1cm); path p,q; -p=_c(-2,-2){dir 60}.._c(-1,1) - .._c(0,2){right}.._c(1,1).._c(2,-2) - .._c(3,-3){right}.._c(4,-2){(1,2)}; -q=courbefonc(der.p,-1,4,40); +p=(-2,-2){dir 60}..(-1,1) + ..(0,2){right}..(1,1)..(2,-2) + ..(3,-3){right}..(4,-2){(1,2)}; +q= courbefonc(der.p)(-1,4); draw axes(1,1); drawoptions(withpen pencircle scaled 1); draw p withcolor bleu; @@ -823,7 +842,7 @@ fin; repere(-2,4.5,1cm,-1,4,1cm); vardef f(expr x)=sqrt(2*x+4) enddef; path C_f,sr; -C_f=courbefonc(f,-2,5,50); +C_f= courbefonc(f)(); sr=suiterec(f,0,3,-1.2); draw axes(1,0); drawoptions(withpen pencircle scaled 1); @@ -840,7 +859,7 @@ fin; repere(-0.5,5,1cm,-0.5,5,1cm); vardef f(expr x)=4-0.8*x enddef; path C_f,sr; -C_f=courbefonc(f,-1,5,10); +C_f= courbefonc(f)(); sr=suiterec(f,0,5,0.2); draw axes(1,0); drawoptions(withpen pencircle scaled 1); @@ -858,7 +877,6 @@ fin; - \section{Surfaces} \subsection{Calcul intégral} @@ -874,8 +892,8 @@ repere(-3.5,6,0.7cm,-2.5,4.5,0.7cm); vardef f(expr x)= -(x/4)**3+0.75x enddef; vardef g(expr x)= -((x-2)**2)/9+4 enddef; path C_f,C_g,p,q; -C_f:=courbefonc(f,-3.5,6,40); -C_g:=courbefonc(g,-3.5,6,40); +C_f:= courbefonc(f)(); +C_g:= courbefonc(g)(); p:=entrecourbes(C_f,C_g,-2,1); q:=souscourbe(C_f,3,5); fill p withcolor 0.5Violet; @@ -902,7 +920,7 @@ vardef f(expr x)= -((x-2)**4)/32+((x-2)**2)/2+1 enddef; path Cf,r[]; -Cf=courbefonc(f,-2.5,6.5,50); +Cf= courbefonc(f)(); r1=rectangles.max(Cf,2,5.5,8); r2=rectangles.min(Cf,2,5.5,8); r3=rectangles.droite(Cf,-2,1,10); @@ -947,50 +965,7 @@ draw cadre; fin; \end{exemple} -\subsection{Remplissage} -Pour remplir des chemins fermés avec autre chose que de la couleur, \verb+repere+ permet l'utilisation de la syntaxe \verb+fill p avec motif+ où \verb+motif+ est un des motifs décrits ci-dessous. Cette instruction peut être complétée par des options de dessin (\verb+withpen+, \verb+withcolor+...). -\begin{description} -\item[hachures(pas,angle)] hachures espacées de \verb+pas+ et formant un angle en degrés de \verb+angle+ avec l'horizontale. Si les valeurs sont omises, \verb|pas| vaut 5 et \verb+angle+ vaut 60. - - -\item[briques(larg,haut,dec)] briques de largeur \verb+larg+, de hauteur \verb+haut+ et décalées d'une ligne à l'autre de \verb+dec+. Si les valeurs sont omises, \verb|larg| vaut 12, \verb|haut| vaut 6 et \verb+dec+ vaut 6. - - -\item[vagues(per,amp,dec)] (d'après le manuel de l'utilisateur) \og vagues \fg{} de période \verb+per+, d'amplitude \verb+amp+ et décalées d'une ligne à l'autre de \verb+dec+. Si les valeurs sont omises, \verb|per| vaut 20, \verb|amp| vaut 3 et \verb+dec+ vaut 10. -\end{description} - - - -\begin{exemple}[0.55] -repere(-1.5,4.5,1cm,-1.5,7.5,1cm); -path c[];picture lab;numeric u;u:=3cm; -c1=fullcircle scaled 2.5cm; -for k=1 upto 6: - i:=(k-1) mod 2;j:=(k-1) div 2; - c[k]:=c1 shifted (u*i,u*j); -endfor; -fill c1 withcolor lime; -fill c1 avec hachures(10,30) dashed evenly; -fill c2 withcolor lime; -fill c2 avec hachures(); -fill c3 withcolor (0,0.65,0.8,0.48); -fill c3 avec briques(15,5,4); -fill c4 withcolor (0,0.65,0.8,0.48); -fill c4 avec briques(); -fill c5 withcolor (1,0,0,0.2); -fill c5 avec vagues(30,10,20) - withpen pencircle scaled 2; -fill c6 withcolor (1,0,0,0.2); -fill c6 avec vagues(); -for k=1 upto 6: - i:=(k-1) mod 2;j:=(k-1) div 2; - draw c[k]; - lab:=thelabel("c"&decimal(k),u*(i,j)); - unfill bbox lab;draw lab; -endfor; -fin; -\end{exemple} @@ -1015,12 +990,12 @@ fin; repere(-1.5,3.5,1cm,-2.2,2.5,1cm); path Cf; pair A[]; vardef f(expr x)= x**2-2x-0.5 enddef; -Cf=courbefonc(f,-2,4,40); +Cf= courbefonc(f)(); ptantecedents(A,2,Cf); draw axes(1,1); draw Cf withpen pencircle scaled 1 withcolor bleu; drawoptions(dashed evenly withcolor rouge); -draw projectionaxes(_c(1.3,f(1.3)), +draw projectionaxes((1.3,f(1.3)), LaTeX("$x$"),LaTeX("$f(x)$")); draw projectionx.urt(A1,LaTeX("$x_1$")); draw projectionx.llft(A2,LaTeX("$x_2$"),-6); @@ -1040,23 +1015,23 @@ fin; repere(-1,5,0.9cm,-1,4.5,1cm); vardef f(expr x)=x**2-5x+7 enddef; draw axes(1,1); -draw courbefonc(f,-1,5,50) +draw courbefonc(f)() withpen pencircle scaled 1 withcolor bleu; drawoptions(dashed evenly withcolor rouge); -draw projectionx.bot(_c(1,f(1))); -draw projectiony.llft(_c(2.5,f(2.5)),"0,75"); -draw projectionaxes(_c(4,f(4))); +draw projectionx.bot((1,f(1))); +draw projectiony.llft((2.5,f(2.5)),"0,75"); +draw projectionaxes((4,f(4))); drawoptions(withcolor violet); draw intervallex.OF(1,4); draw intervalley.FF(0.75,3); -label(LaTeX("$f(]1;4])=[0,75;3]$"),_c(2.5,4)); +label(LaTeX("$f(]1;4])=[0,75;3]$"),(2.5,4)); draw cadre; fin; \end{exemple} -\section{Statistiques} +\section{Statistiques et probabilités} \subsection{Boite à moustache} \begin{description} @@ -1086,27 +1061,235 @@ 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.00456,"$\pi$","$\num{2x3}$","$x$","Max") - dashed evenly; + draw projboitemoustache.bot(0.0456,"$\pi$","$\num{2x3}$","$x$","Max") dashed evenly; fin; \end{exemplev} + +\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. +\end{description} + +\begin{exemple}[0.6] +repere(-0.5,5,1cm,-0.5,5,1cm); + picture diag; + draw axes(1,1); + diag:=diagrammebatons((1,2),(2,4),(3,2),(4,1)); + draw diag epaisseur 2 withcolor rouge; +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 20 par défaut. +\end{description} + +\begin{exemple}[0.6] +repere(-0.5,5,1cm,-0.5,5,1cm); + path diag; + draw axey(1,1); + diag:=diagrammebarres((1,2),(2,4),(3,2),(4,1)); + fill diag withcolor cyan; + draw diag epaisseur 1 withcolor marine; + flecheaxe:=false; + draw axex(0,0); + boolgradxpart:=false; + draw axexpart.bot(1,"A",2,"B",3,"C",4,"D"); +fin +\end{exemple} + +\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="double" <fichier>.mp|. + + +\begin{description} +\item[factorielle(n)] Entier égal à $n!$. +\item[binom(n,k)] Entier égal à $\binom{n}{k}$. +\item[binomiale(n,p,k)] $P(X=k)$ pour $X$ suivant la loi binomiale de paramètres $n$ et $p$. +\item[diagrammebinomiale(n,p)] Diagramme en bâtons de la loi binomiale de paramètres $n$ et $p$. +\end{description} + + +\begin{exemple} +repere(-2,16,0.45cm,-0.1,0.25,15cm); +setall(0,16,0,0.25); +draw axex(1,1); +draw axey(0.1,0.1); +picture diag; +diampointsbatons:=0; +diag:=diagrammebinomiale(15,0.6); +draw diag withcolor blue epaisseur 4; +fin; +\end{exemple} + + +\section{Géométrie} +Certaines des macros suivantes sont largement inspirées des macros de \verb|geometriesyr16.mp| de Christophe \bsc{Poulain}. + +\subsection{Polygones} +\begin{description} +\item[polygone(A,B,C,...)] Chemin fermé représentant le polygone $ABC...$ + +\item[triangle(A,B,C)] Cas particulier du précédent. Chemin fermé représentant le triangle $ABC$. + +\item[parallélogramme(A,B,C)] Chemin fermé représentant $ABCD$ où $D$ est le quatrième point du parallélogramme. + +\item[polygoneregulier(A,B,n)] Chemin fermé représentant le polygone régulier de sens direct à $n$ côtés dont un des côtés est $[AB]$. + +\item[equilateral(A,B)] Cas particulier du précédent. Triangle équilatéral de sens direct de côté $[AB]$. + +\item[carre(A,B)] Autre cas particulier. Carré de sens direct de côté $[AB]$. +\end{description} + +\begin{exemple}[0.51] +repere(-1,5,1cm,-1,4,1cm); +draw axes(1,1); +pair A,B,C,D,E,F,G; +A=(0,1);B=(2,0);C=(4,2);D=(3,3);E=(1,3); +F=(4,0);G=(3,2); +fill triangle(A,F,G) withcolor orange; +draw triangle(A,F,G); +draw polygone(A,B,C,D,E); +draw parallelogramme(D,G,E) withcolor vert; +fin; +\end{exemple} + + +\begin{exemple}[0.53] +repere(-1,5,1cm,-1,4,1cm); +draw axes(1,1); +pair A,B; +A=(1,1);B=(3,0.5); +fill polygoneregulier(A,B,5) withcolor bleu; +fill equilateral(A,B) withcolor cyan; +draw polygoneregulier(A,B,5); +draw equilateral(A,B); +fin; +\end{exemple} + +\subsection{Cercles et arcs} + +\begin{description} +\item[cercle(A,B,C)] Cercle circonscrit au triangle $ABC$. +\item[cercle(O,A)] Cercle de centre $O$ passant par $A$. +\item[cercle(O,r)] Cercle de centre $O$ et de rayon $r$. L'unité de longueur est l'unité de l'axe des abscisses. +\item[arccercle(A,O,B)] Arc de cercle de sens direct de centre $O$, passant par $A$ et s'appuyant sur la demi-droite $[OA)]$. +\end{description} + + +\begin{exemple} +repere(-1,5,1cm,-0.5,4,1cm); +draw axes(1,1); +pair A,B,C; +A=(1,1);B=(2,0);C=(3.5,2); +nomme.lft(A);nomme.urt(C);nomme.top(B); +draw triangle(A,B,C) withcolor bleu; +draw cercle(A,B,C) withcolor marine; +draw A--B withcolor rouge epaisseur 1; +draw cercle(A,B) withcolor rouge; +fin; +\end{exemple} + + +\begin{exemple} +repere(-1,5,1cm,-2,8,0.5cm); +draw axes(1,1); +pair A,M,B; +A=(2,2);M=(2,6);B=(3,2); +nomme.bot(A);nomme.rt(B);nomme.top(M); +draw B--A--M; +draw cercle(A,2); +draw arccercle(B,A,M); +fin; +\end{exemple} + + + +\subsection{Codage des segments et des angles} + +\begin{description} +\item[marqueangle(A,O,B,n)] Figure formée de \verb|n| arcs de cercle de centre $O$ et de rayon moyen \verb|taille_marque_a| (qui vaut par défaut \verb|0.4cm|) permettant de marquer l'angle géométrique $\widehat{AOB}$. Les arcs son séparés de \verb|sep_marque_a| qui vaut par défaut \verb|1.5|. + +Il s'agit d'un chemin fermé qui peut donc être rempli. + +\item[marqueangle(A,O,B)] Arc de cercle de centre \verb|O| et de rayon \verb|taille_marque_a| permettant de marquer l'angle orienté avec \verb|drawarrow|. + +\item[nomme.pos(A,O,B,texte)] Place le texte entre \verb|A| et \verb|B|, à une distance \verb|taille_marque_a| du centre, à la position \verb|pos|. +\end{description} + + +\begin{exemple} +repere(-2,12,0.4cm,-2,10,0.4cm); +pair A,B,C; +A=(1,2);B=(11,2);C=(8,9); +draw axes(0,0); +draw triangle(A,B,C); +nomme.llft(A);nomme.lrt(B);nomme.top(C); +fill marqueangle(C,B,A,3) withcolor red; +draw marqueangle(C,B,A,3); +drawarrow marqueangle(A,C,B); +fill marqueangle(B,A,C,1) withcolor vert; +draw marqueangle(B,A,C,1); +nomme.rt(B,A,C,LaTeX("\ang{45}")); +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,LaTeX("$x_A$"), + LaTeX("$y_A$")) dashed evenly; +draw axes(0,0); +drawoptions(withcolor pourpre); +draw triangle(A,B,C);draw triangle(A',B',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); +fin; +\end{exemple}% + \section{Divers} \subsection{Composition des étiquettes} -Tous les textes et étiquettes peuvent être composés en utilisant la macro ci-dessous. Cette macro utilise \verb+latexmp+ si ce fichier est chargé ou l'écriture dans un fichier externe (adaptation de la macro \verb+TEX+) dans le cas contraire. +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. Il est donc possible d'utiliser la macro \verb|decimal()| de \MP. + \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. \end{description} \begin{exemple}[0.65] repere(-1,7,1cm,-1,1,1cm); for i=2 upto 6: -label(LaTeX("$\frac{1}{"&decimal(i)&"}$"),(i*cm,0)); +label(LaTeX("$\frac{1}{"&decimal(i)&"}$"),(i,0)); endfor fin; \end{exemple} +\begin{description} +\item[label.pos(fig,point)] Commande de \MP{} qui permet de placer la figure \verb|fig| au niveau du point \verb|point|. +\end{description} + +\begin{exemple}[0.55] +repere(-1,5,1cm,-1,4,1cm); +draw axes(1,1); +label.ulft(LaTeX("Abscisses"),(5,0.1)); +label.lrt(LaTeX("Ordonnées"),(0.1,4)); +label(LaTeX("$f(x)=\pi^2\sqrt{x}$"),(2,2)); +fin; +\end{exemple} \subsection{Couleurs} Certaines couleurs sont définies par leur nom et peuvent être utilisées directement : @@ -1117,11 +1300,11 @@ repere(0,18,1cm,-3,1,1cm); path rectangle; save a,b,dech,decv; a:=25;b:=12;dech:=70;decv:=-20; - rectangle = (0,0)--(a,0)--(a,b)--(0,b)--cycle; + rectangle = ((0,0)--(a,0)--(a,b)--(0,b)--cycle) transformed inverse _T; vardef couleur(expr t)= image(% fill rectangle withcolor scantokens(t); - label.rt(LaTeX("\smash{" & t & "}"),(a,b/4)) + label.rt(LaTeX("\smash{" & t & "}"),(a,b/4) transformed inverse _T) ) enddef; draw couleur("rouge"); @@ -1151,6 +1334,54 @@ fin; Toutes ces couleurs sont définies selon le modèle \og rgb \fg. Pour les obtenir selon le modèle \og cmyk \fg, remplacer la première lettre par une majuscule. + +\subsection{Remplissage} +Pour remplir des chemins fermés avec autre chose que de la couleur, \verb+repere+ permet l'utilisation de la syntaxe \verb+fill p avec motif+ où \verb+motif+ est un des motifs décrits ci-dessous. Cette instruction peut être complétée par des options de dessin (\verb+withpen+, \verb+withcolor+...). + +\begin{description} +\item[hachures(pas,angle)] hachures espacées de \verb+pas+ et formant un angle en degrés de \verb+angle+ avec l'horizontale. Si les valeurs sont omises, \verb|pas| vaut 5 et \verb+angle+ vaut 60. + + +\item[briques(larg,haut,dec)] briques de largeur \verb+larg+, de hauteur \verb+haut+ et décalées d'une ligne à l'autre de \verb+dec+. Si les valeurs sont omises, \verb|larg| vaut 12, \verb|haut| vaut 6 et \verb+dec+ vaut 6. + + +\item[vagues(per,amp,dec)] (d'après le manuel de l'utilisateur) \og vagues \fg{} de période \verb+per+, d'amplitude \verb+amp+ et décalées d'une ligne à l'autre de \verb+dec+. Si les valeurs sont omises, \verb|per| vaut 20, \verb|amp| vaut 3 et \verb+dec+ vaut 10. +\end{description} + + + +\begin{exemple}[0.55] +repere(-1.5,4.5,1cm,-1.5,7.5,1cm); +path c[];picture lab; +c1=fullcircle scaled 2.5; +for k=1 upto 6: + i:=(k-1) mod 2;j:=(k-1) div 2; + c[k]:=c1 shifted (3*i,3*j); +endfor; +fill c1 withcolor lime; +fill c1 avec hachures(10,30) dashed evenly; +fill c2 withcolor lime; +fill c2 avec hachures(); +fill c3 withcolor (0,0.65,0.8,0.48); +fill c3 avec briques(15,5,4); +fill c4 withcolor (0,0.65,0.8,0.48); +fill c4 avec briques(); +fill c5 withcolor (1,0,0,0.2); +fill c5 avec vagues(30,10,20) + withpen pencircle scaled 2; +fill c6 withcolor (1,0,0,0.2); +fill c6 avec vagues(); +for k=1 upto 6: + i:=(k-1) mod 2;j:=(k-1) div 2; + draw c[k]; + lab:=thelabel("c"&decimal(k),3*(i,j)); + unfill bbox lab;draw lab; +endfor; +fin; +\end{exemple} + + + \subsection{Figures pour une présentation} \begin{description} \item[figureinter] exporte la figure telle qu'elle est au moment où cette commande apparait. La numérotation est incrémentée et la figure peut continuer. @@ -1161,12 +1392,12 @@ Toutes ces couleurs sont définies selon le modèle \og rgb \fg. Pour les obteni repere(-3,3,0.7cm,-1,5,0.7cm); path C_f; vardef f(expr x)=x**2 enddef; - C_f=courbefonc(f,-3,3,50); + C_f= courbefonc(f)(); draw quadrillage(1,1); draw axes(1,1); draw cadre; figureinter; - draw courbepoints(f,-2,2,9) withcolor rouge; + draw courbepoints(f)(-2,2,9) withcolor rouge; figureinter; draw C_f withcolor bleu withpen pencircle scaled 1; fin; @@ -1193,6 +1424,9 @@ Si ces trois figures s'appellent \verb|mafigure.1|, \verb|mafigure.2| et \verb|m \end{minipage} \end{center} + + + \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|. @@ -1223,13 +1457,12 @@ Certains packages permettent d'écrire du code \MP{} directement dans un documen \begin{document} \begin{empfile} \begin{empcmds} - input latexmp; input repere; \end{empcmds} \begin{emp}(0,0) - repere(-3,3,0.8cm,-2.5,2.5,1cm); - draw axes(1,1); - fin; + repere(-3,3,1cm,-2,2,1cm); + draw axes(1,1); + fin; \end{emp} \end{empfile} \end{document} @@ -1247,41 +1480,77 @@ Certains packages permettent d'écrire du code \MP{} directement dans un documen \usepackage[runs=2]{mpgraphics} \begin{document} \begin{mpdefs} - input latexmp; input repere; \end{mpdefs} \begin{mpdisplay} - repere(-3,3,0.8cm,-2.5,2.5,1cm); - draw axes(1,1); - fin; + repere(-3,3,1cm,-2,2,1cm); + draw axes(1,1); + fin; \end{mpdisplay} \end{document} \end{lstlisting} \end{minipage} -\section{Exemples d'utilisation simultanée de \texttt{repere} et \texttt{geometriesyr}} +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|. -\label{exgeom}Il est possible, dans une figure créée avec \verb+repere+, d'utiliser certaines macros de \verb+geometriesyr+. Il faut alors charger \verb+geometriesyr+ \emph{avant} \verb|repere|. +\begin{center} +\begin{minipage}[t]{0.45\linewidth} +{\centering \textbf{Utilisation de Lua\LaTeX}\par} -\begin{exemple}[0.6] -repere(-1,10,0.5cm,-1,9,0.5cm); -pair A,B,C,A',B',C',u; -A=_c(3,1);B=_c(5,2);C=_c(1,5);u=_c(3,3); -A'-A=B'-B=C'-C=u; -draw projectionaxes(A,LaTeX("$x_A$"), - LaTeX("$y_A$")) dashed evenly; -draw axes(0,0); -drawoptions(withcolor pourpre); -draw triangle(A,B,C);draw triangle(A',B',C'); -draw codeperp(B,A,C,7);draw codeperp(B',A',C',7); -draw codesegments(B,C,B',C',2); -nomme.llft(A);nomme.lrt(B);nomme.ulft(C); -nomme.llft(A');nomme.lrt(B');nomme.ulft(C'); + +\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} +\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}} + +\label{exgeom}Il est possible, dans une figure créée avec \verb+repere+, d'utiliser le \og dessin à main levée \fg{} de \verb+geometriesyr+. Il faut alors charger \verb+geometriesyr+ \emph{avant} \verb|repere| et utiliser les fonctions de dessin telles que \verb|cercles|, \verb|triangle|... + +\begin{exemple} +repere(-0.5,5,1cm,-0.5,5,1cm); +coulpoint:=blue;coullabel:=blue; +pair A,B,C,D; +A=(0.5,0.5);B=(4,1);C=(3,4); +typetrace:="mainlevee"; +draw axes(1,1); +drawoptions(withcolor violet); +draw triangle(A,B,C); +nomme.llft(A);nomme.lrt(B); +nomme.top(C); +draw marqueangle(B,A,C,1); drawoptions(withcolor vertfonce); -draw vecteur.lrt(B,u);draw vecteur.lrt(C,u); +draw cercles(CentreCercleC(A,B,C),A); fin; -\end{exemple}% +\end{exemple} + + + +\begin{codecache} +end +\end{codecache} + +\makeatletter +\immediate\closeout\verbatim@out +\makeatother +\end{document} + \vspace{2em} @@ -1357,7 +1626,6 @@ end \makeatletter \immediate\closeout\verbatim@out \makeatother -%\addtocontents{toc}{\protect\end{multicols}} \end{document} |