summaryrefslogtreecommitdiff
path: root/graphics/metapost/contrib/macros/repere/repere-doc.tex
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/metapost/contrib/macros/repere/repere-doc.tex')
-rw-r--r--graphics/metapost/contrib/macros/repere/repere-doc.tex304
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}