diff options
Diffstat (limited to 'graphics/metapost/contrib/macros/repere/repere-doc.tex')
-rw-r--r-- | graphics/metapost/contrib/macros/repere/repere-doc.tex | 304 |
1 files changed, 293 insertions, 11 deletions
diff --git a/graphics/metapost/contrib/macros/repere/repere-doc.tex b/graphics/metapost/contrib/macros/repere/repere-doc.tex index 73b3d0e0ef..deddf7cef7 100644 --- a/graphics/metapost/contrib/macros/repere/repere-doc.tex +++ b/graphics/metapost/contrib/macros/repere/repere-doc.tex @@ -48,7 +48,6 @@ \usepackage{luamplib} \everymplib{verbatimtex \leavevmode etex; -% input geometriesyr16; input repere;} \mplibnumbersystem{decimal} @@ -80,7 +79,6 @@ } \makeatother -%\definecolor{CoulParam}{rgb}{0.281,0.275,0.485} \definecolor{CoulParam}{rgb}{0.4,0,0.5} \definecolor{TestC}{rgb}{0.963,0.971,0.994} @@ -525,7 +523,6 @@ Définit les valeurs minimales et maximales pour l'étiquetage. repere.larg(110,160,5cm,2000,7000,5cm); interaxes(120,3000); setaxes(120,160,3000,7000); - setgrad(120,160,3000,7000); draw axex(10,10); draw axey(1000,1000); fin; @@ -1156,8 +1153,8 @@ p=(-2,-2)..(-1,1)..(0,2)..(1,1) C_f= courbefonc(f)(-2,2.5); draw axes(1,1); drawoptions(withpen pencircle scaled 1); -draw p withcolor bleu; -draw C_f withcolor rouge; +draw p withcolor blue; +draw C_f withcolor red; intercourbes(I,C_f,p); drawoptions(withcolor black); nomme.lft(I1);nomme.rt(I2); @@ -1689,13 +1686,13 @@ vardef f(expr x)= x**2-2x enddef; Cf= courbefonc(f)(); ptantecedents(A,2,Cf); draw axes(1,1); -drawoptions(dashed evenly withcolor rouge); +drawoptions(dashed evenly withcolor red); draw Projectionx.lrt(A1,"$x_1$"); draw Projectionx(A2); draw Projectiony(A1); draw Projectiony.urt(A2,"$y$"); drawoptions(); -draw Cf withpen pencircle scaled 1 withcolor bleu; +draw Cf withpen pencircle scaled 1 withcolor blue; fin; \end{exemple} @@ -1711,12 +1708,12 @@ Cf= courbefonc(f)(); A1=(-0.5,f(-0.5));A2=(2.8,f(2.8)); A3=(0.75,f(0.75)); draw axes(1,1); -drawoptions(dashed evenly withcolor rouge); +drawoptions(dashed evenly withcolor red); draw Projectionaxes(A1,"$x$","$f(x)$"); draw Projectionaxes(A2,"$x$","$f(x)$"); draw Projectionaxes(A3,"$x$","$f(x)$"); drawoptions(); -draw Cf withpen pencircle scaled 1 withcolor bleu; +draw Cf withpen pencircle scaled 1 withcolor blue; fin; \end{exemple} @@ -1840,7 +1837,7 @@ 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 withcolor rouge; + draw diag withcolor red; fin \end{exemple} @@ -2048,7 +2045,7 @@ Plusieurs segments peuvent être marqués simultanément. \end{rpobjet} \begin{rpobjet}{marquesegment(<A>,<B>,<n>)}{picture} -Figure formée d'une marque sur le segment $[AB]$. L'espace entre les marques est contrôlé par le paramètre \verb|sep_marque_s|. +Figure formée de \verb|n| marques sur le segment $[AB]$. L'espace entre les marques est contrôlé par le paramètre \verb|sep_marque_s|. \end{rpobjet} \begin{exemple} @@ -2172,6 +2169,26 @@ nomme(C,B,A,"$\alpha$"); fin; \end{exemple} +\begin{rplabel}{nomme.pos(<A>,<O>,<B>,<texte>,<n>)} +Même chose que précédemment avec en plus le tracé de \verb|n| arcs de cercle pour marquer l'angle. +\end{rplabel} + + +\begin{rplabel}{nomme(<A>,<O>,<B>,<texte>,<n>)} +Même chose que précédemment mais la position est calculée automatiquement en fonction de l'angle. +\end{rplabel} + +\begin{exemple} +repere(); +pair A,B,C; +A=(0,0);B=(4,0);C=(3,2.5); +draw A--B--C--cycle; +nomme.llft(A);nomme.lrt(B);nomme.top(C); +nomme[15](B,A,C,"\ang{45}",1); +nomme(C,B,A,"$\alpha$",2); +fin; +\end{exemple} + \subsection{Cotes} @@ -2630,6 +2647,149 @@ draw TriangleLAA(G,H,I)(4,60,40,10) fin; \end{exemple} +\subsection{Transformations} +Un certain nombre de transformations sont prédéfinies dans \MP{}. Elles sont ici reprises et, parfois, légèrement modifiées, notamment en ce qui concerne la syntaxe. + + +\begin{rpobjet}{translation(<vect>)(<obj>)}{pair, path ou picture} +Image de \verb|obj| par la translation de vecteur \verb|vect|. +\end{rpobjet} + + +\begin{exemple} +repere(); +pair A,B,C,C',u; +path c; +u=(1,-2); +A=(1,1);B=(2,2);C=(4,2); +nomme.ulft(B); +c=cercle(B,A);draw c; +draw translation(u)(c); +C'=translation(u)(C); +nomme.urt(C);nomme.urt(C'); +drawvecteur(B,u) withcolor red; +fin; +\end{exemple} + + +\begin{rpobjet}{rotation(<pt>,<ang>)(<obj>)}{pair, path ou picture} +Image de \verb|obj| par la rotation de centre \verb|pt| et d'angle \verb|ang|. +\end{rpobjet} + + +\begin{exemple} +repere(); +pair A,B,C,B'; +A=(2,1);B=(3,3);C=(5,2); +nomme.lrt(A);nomme.ulft(B); +nomme.urt(C); +B'=rotation(A,110)(B); +nomme.llft(B'); +draw B--A--B'; +nomme(B,A,B',"\ang{110}",1); +draw marquesegment(B,A,A,B'); +path seg; seg:=B--C; +draw seg withcolor blue; +draw rotation(A,110)(seg) withcolor blue; +fin; +\end{exemple} + +\begin{rpobjet}{symetrie(<pt>)(<obj>)}{pair, path ou picture} +Image de \verb|obj| par la symétrie de centre \verb|pt|. +\end{rpobjet} + +\begin{exemple} +repere(); + pair C,D,O; + path s,c; + C=(3,3);D=(1,4); + O=(0,2.5); + s=C--D; + c=cercle(D,1); + draw s;draw c; + nomme.bot(O) withcolor blue; + draw symetrie(O)(s); + draw symetrie(O)(c); +fin; +\end{exemple} + + +\begin{rpobjet}{symetrie(<A>,<B>)(<obj>)}{pair, path ou picture} +Image de \verb|obj| par la symétrie d'axe \verb|(AB)|. +\end{rpobjet} + + +\begin{exemple} +repere(-4,4,1cm,0,5,1cm); + pair C,D,O,I; + path s,c; + C=(3,3);D=(1,4); + O=(1,0);I=(-1,4); + s=C--D; + c=cercle(D,1); + draw s;draw c; + draw droite(O,I) withcolor blue; + draw symetrie(O,I)(s); + draw symetrie(O,I)(c); +fin; +\end{exemple} + +\begin{rpobjet}{homothetie(<pt>,<rap>)(<obj>)}{pair, path ou picture} +Image de \verb|obj| par l'homothétie de centre \verb|pt| et de rapport \verb|rap|. +\end{rpobjet} + +\begin{exemple} +repere(); + pair O,A,B,C,D; + O=(1,1); + A=(2,1);B=(3,2);C=(3,3);D=(1,3); + path p;p:= polygone(A,B,C,D); + nomme.llft(O); + draw p; + draw homothetie(O,2)(p); +fin +\end{exemple} + +\begin{rpobjet}{similitude(<pt>,<rap>,<ang>)(<obj>)}{pair, path ou picture} +Image de \verb|obj| par la similitude de centre \verb|pt|, de rapport \verb|rap| et d’angle \verb|ang|. +\end{rpobjet} + +\bigskip + +À titre expérimental, on dispose du paramètre suivant qui permet de définir les points créés par l'image d'une figure par transformation. + +\begin{rpparam} +extratransf & string & "" & Chaine qui désigne les caractères à ajouter au nom des points lors du dessin de l'image de certaines figures (notamment \verb|Triangle|, \verb|Segment|) par transformation. La valeur peut être \verb|"'", "''",...| ou un nombre. Les nouveaux points sont créés. +\end{rpparam} + +\begin{exemple}[lefthand ratio=0.55] +repere(); +extratransf:="'"; +pair A,B,C,u; +u=(1,-2); +A=(1,1);B=(2,2);C=(4,2); +draw Triangle(A,B,C)()()(); +draw translation(u)(Triangle(A,B,C)()()()); +draw B'--C withcolor blue; +drawvecteur(A,u) withcolor red; +fin; +\end{exemple} + +\begin{exemple}[lefthand ratio=0.55] +repere(); +extratransf:="1"; +pair A,B,C,D,u,O; +A=(2,1);B=(3,3);C=(5,2); +O=(0,1); +nomme.llft(O); +draw Triangle(A,B,C)()()() withcolor blue; +draw rotation(O,60)(Triangle(A,B,C)()()()) + withcolor blue; +draw B--O--B1 dashed evenly; +fin; +\end{exemple} + + \section{Dessin à main levée} L'idée de dessiner une figure comme si elle était faite à main levée vient de Christophe \bsc{Poulain} dans les macros de \verb|geometriesyr16.mp|\footnote{\url{https://melusine.eu.org/syracuse/poulecl/geometriesyr16/}} . Cette idée est reprise par Toby \bsc{Thurston} dans le document « Drawing with MetaPost »\footnote{\url{https://github.com/thruston/Drawing-with-Metapost/blob/master/Drawing-with-Metapost.pdf}}. Le principe est de modifier le tracé des chemins en changeant légèrement les angles de départ et d'arrivée pour créer une déformation qui rappelle le dessin à main levée. @@ -2905,6 +3065,22 @@ draw c1;draw c2; fin; \end{exemple} +\subsection{Couleur de fond} + +Il est possible de modifier la couleur de fond en modifiant la couleur \verb|fond_coul|. +\begin{rpparam} +fond_coul & color & white & Couleur du fond de la figure +\end{rpparam} + +\begin{exemple} +repere(-3.5,3.5,1cm,-3.5,3.5,1cm); + fond_coul:=(0.9,0.9,1); + setquad(-3,3,-3,3); + draw quadrillage(1,1); + draw axes(1,1); +fin; +\end{exemple} + \subsection{Francisation} @@ -3173,7 +3349,72 @@ tableau(5,5,0.8cm); fin; \end{exemple} +\section{Pixel art} +Il est possible d'utiliser les tableaux pour dessiner des figures en pixel art. + +\begin{rpobjet}{pixart(<liste d'entiers> ou <liste de couleurs>)}{picture} +Figure composée de carrés remplis d'une couleur qui est soit la couleur indiquée explicitement soit une couleur qui dépend de l'entier indiqué (celles-ci sont définies au départ mais peuvent être modifiées). On peut remplacer un entier par \verb|_| pour que la case ne soit pas remplie. Les pixels doivent être donnés de gauche à droite et de haut en bas. +\end{rpobjet} + + +\begin{exemple} +tableau(3,3,1cm); +draw pixart(0,1,2, + 3,4,5, + 6,7,_); +fin; +\end{exemple} + +\begin{exemple} +tableau(3,3,1cm); +fond_coul:=grisclair; +draw pixart(0,1,2, + 3,4,5, + 6,7,_); +fin; +\end{exemple} + + +\begin{exemple} +tableau(3,3,1cm); +draw pixart(blanc,noir,rouge, + vert,bleu,cyan, + magenta,jaune,_); +fin; +\end{exemple} + +\begin{rpdeclaration}{pixcoul(<liste de couleurs>)} +Macro qui permet de définir les couleurs qui seront utilisées. La première correspond à 0, la deuxième à 1... + +Au départ la macro est appelée de la façon suivante : + +\qquad \verb|pixcoul(blanc,noir,rouge,vert,bleu,cyan,magenta,jaune);| +\end{rpdeclaration} + +\begin{exemple} +tableau(3,3,1cm); +pixcoul(marron,lime,orange,rose, + pourpre,olive,violet,beige); +draw pixart(0,1,2, + 3,4,5, + 6,7,_); +fin; +\end{exemple} + + +\begin{rpparam} +pixart_ep & numeric & 0.3 & Écart laissé vide entre les cases. +\end{rpparam} + +\begin{exemple} +tableau(3,3,1cm); +pixart_ep:=2; +draw pixart(0,1,2, + 3,4,5, + 6,7,_); +fin; +\end{exemple} \section{Quelques dessins} @@ -3491,6 +3732,47 @@ tableau(13,5,1cm); fin; \end{exemple} +\subsection{Pixel art} + +\begin{exemple} +tableau(11,8,0.4cm); +pixart_ep:=0; +draw pixart(0,0,1,0,0,0,0,0,1,0,0, + 0,0,0,1,0,0,0,1,0,0,0, + 0,0,1,1,1,1,1,1,1,0,0, + 0,1,1,0,1,1,1,0,1,1,0, + 1,1,1,1,1,1,1,1,1,1,1, + 1,0,1,1,1,1,1,1,1,0,1, + 1,0,1,0,0,0,0,0,1,0,1, + 0,0,0,1,1,0,1,1,0,0,0); +fin; +\end{exemple} + +\begin{exemple} +tableau(14,15,0.3cm); +pixart_ep:=0; +color b,n,v,r,c; +b:=blanc;n:=noir;v:=0.6vert; +r:=0.7rouge;c:=(1,0.2,0.2); +draw pixart(_,_,_,_,_,_,_,_,_,_,_,n,n,_, + _,_,_,_,_,_,_,_,_,_,n,v,v,n, + _,_,_,_,_,_,_,n,n,n,n,v,v,n, + _,_,_,_,_,_,n,v,v,v,v,v,n,_, + _,_,_,_,_,n,v,n,n,n,v,n,_,_, + _,_,n,n,n,v,n,_,_,n,v,n,_,_, + _,n,c,c,v,c,n,_,n,v,n,_,_,_, + n,c,c,c,c,c,c,n,v,n,n,_,_,_, + n,c,c,c,c,c,n,c,v,c,c,n,_,_, + n,c,b,c,c,n,c,c,v,c,c,c,n,_, + n,c,c,b,r,n,c,c,c,c,c,c,n,_, + _,n,r,r,r,n,c,c,c,c,c,r,n,_, + _,_,n,n,n,n,c,c,c,b,r,r,n,_, + _,_,_,_,_,_,n,r,r,r,r,n,_,_, + _,_,_,_,_,_,_,n,n,n,n,_,_,_ + ); +fin; +\end{exemple} + \end{document} |