summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/metapost/repere/repere-doc.tex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2023-02-09 21:16:55 +0000
committerKarl Berry <karl@freefriends.org>2023-02-09 21:16:55 +0000
commit1d76989ba8a9ed4861f7ae979511ada014cbabd7 (patch)
tree4b83acfbea8fc498885fde7f4ab7caac8da81791 /Master/texmf-dist/doc/metapost/repere/repere-doc.tex
parentc9547d2176f249c08eab89699b3d03d42b53051e (diff)
repere (9feb23)
git-svn-id: svn://tug.org/texlive/trunk@65769 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.tex103
1 files changed, 97 insertions, 6 deletions
diff --git a/Master/texmf-dist/doc/metapost/repere/repere-doc.tex b/Master/texmf-dist/doc/metapost/repere/repere-doc.tex
index 1dba2243512..73b3d0e0ef8 100644
--- a/Master/texmf-dist/doc/metapost/repere/repere-doc.tex
+++ b/Master/texmf-dist/doc/metapost/repere/repere-doc.tex
@@ -1116,17 +1116,16 @@ fin;
\begin{rpdeclaration}{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+. Le tableau \verb+X+ doit être déclaré avant d'utiliser cette macro.
+Stocke dans le tableau de nombres \verb+X+ (qu'il n'est pas nécessaire de déclarer) les antécédents de \verb+y+ par la fonction dont la courbe représentative est le chemin \verb+p+.
\end{rpdeclaration}
\begin{rpdeclaration}{ptantecedents(<P>,<y>,<p>)}
-Stocke dans le tableau de points \verb+P+ les points du chemin \verb+p+ d'ordonnée \verb+y+. Le tableau \verb+P+ doit être déclaré avant d'utiliser cette macro.
+Stocke dans le tableau de points \verb+P+ (qu'il n'est pas nécessaire de déclarer) les points du chemin \verb+p+ d'ordonnée \verb+y+.
\end{rpdeclaration}
\begin{exemple}
repere(-2.5,4.5,1cm,-3.5,2.5,1cm);
path p;
-pair A[];numeric n[];
p=(-2,-2)..(-1,1)..(0,2)..(1,1)
..(2,-2)..(3,-3)..(3.5,-2.5)
..(4,-1);
@@ -1144,12 +1143,12 @@ fin;
\end{exemple}
\begin{rpdeclaration}{intercourbes(<P>,<p>,<q>)}
-Stocke dans le tableau de points \verb+P+ les points d'intersection des chemins \verb+p+ et \verb+q+. Il faut, avant d'utiliser cette macro, déclarer le tableau \verb+P+.
+Stocke dans le tableau de points \verb+P+ (qu'il n'est pas nécessaire de déclarer) les points d'intersection des chemins \verb+p+ et \verb+q+.
\end{rpdeclaration}
\begin{exemple}
repere(-2.5,3,1cm,-2.5,2.5,1cm);
-path p,C_f; pair I[];
+path p,C_f;
vardef f(expr x)= x**2-2x enddef;
p=(-2,-2)..(-1,1)..(0,2)..(1,1)
..(2,-2)..(3,-3)..(3.5,-2.5)
@@ -2040,6 +2039,10 @@ Certaines des macros suivantes sont inspirées des macros de \verb|geometriesyr1
Figure formée d'une marque sur le segment $[AB]$. Des paramètres permettent de contrôler la forme et la taille de la marque.
\end{rpobjet}
+\begin{rpobjet}{marquesegment(<p>)}{picture}
+Figure formée d'une marque sur le chemin \verb|p|. Des paramètres permettent de contrôler la forme et la taille de la marque.
+\end{rpobjet}
+
\begin{rpobjet}{marquesegment(<A>,<B>,<C>,<D>...)}{picture}
Plusieurs segments peuvent être marqués simultanément.
\end{rpobjet}
@@ -2075,10 +2078,12 @@ sep_marque_s & numeric & 2 & Écart entre les marques dans le cas où il y en a
\begin{exemple}[lefthand ratio=0.6]
repere();
pair A[],B[];
-for i=1 upto 5:
+path p;
+for i=1 upto 6:
A[i]:=(0,-i);B[i]:=(3,-i);
draw A[i]--B[i]; nomme.lft(A[i]);nomme.rt(B[i]);
endfor
+p:=A[6]..(1,-6.5)..B[6];
draw marquesegment(A[1],B[1],"o");
draw marquesegment(A[2],B[2],"ss");
draw marquesegment(A[3],B[3],"/",3);
@@ -2086,6 +2091,10 @@ sep_marque_s:=6;
draw marquesegment(A[4],B[4],"xxx");
angle_marque_s:=90;echelle_marque_s:=2;
draw marquesegment(A[5],B[5],"/");
+sep_marque_s:=2;
+angle_marque_s:=60;echelle_marque_s:=1;
+draw p;
+draw marquesegment(p,"/");
fin;
\end{exemple}
@@ -2621,6 +2630,88 @@ draw TriangleLAA(G,H,I)(4,60,40,10)
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.
+
+C. \bsc{Poulain} ajoute un angle de \ang{5}. Dans son document, T. \bsc{Thurston} reprend l'idée et ajoute une composante aléatoire.
+
+Dans la version proposée ici, la valeur par défaut est aléatoire mais peut être modifiée.
+
+\medskip
+\begin{rpdeclaration}{drawmainlevee}
+Dessine une figure en représentant les chemins comme s'ils étaient dessinés à main levée
+\end{rpdeclaration}
+
+\begin{exemple}[lefthand ratio=0.6]
+repere(-0.5,5,1cm,-0.5,5,1cm);
+pair A,B,C,D;
+A=(0.5,0.5);B=(4,1);C=(3,4);
+drawmainlevee axes(1,1);
+drawmainlevee Triangle(A,B,C)()()() withcolor red;
+drawmainlevee cercle(A,B,C) withcolor blue;
+fin;
+\end{exemple}
+
+\begin{rpparam}
+type_trace & string & "" & Paramètre qui peut prendre la valeur \verb|"mainlevee"| pour indiquer que tous les dessins qui suivent seront faits « à main levée ». Toute autre valeur donne un dessin normal.
+\end{rpparam}
+
+\begin{exemple}
+repere(-0.5,5,1cm,-0.5,5,1cm);
+pair A,B,C,D;
+A=(0.5,0.5);B=(4,1);C=(3,4);
+draw axes(1,1);
+type_trace:="mainlevee";
+draw Triangle(A,B,C)()()() withcolor red;
+draw cercle(A,B,C) withcolor blue;
+fin;
+\end{exemple}
+
+\begin{rpobjet}{mainlevee(<objet>)}{path ou picture}
+Transforme le chemin ou la figure en un objet de même nature « dessiné à main levée ».
+\end{rpobjet}
+
+
+\begin{exemple}
+repere(-0.5,5,1cm,-0.5,5,1cm);
+pair A,B,C,D;
+A=(0.5,0.5);B=(4,1);C=(3,4);
+draw axes(1,1);
+picture tri;
+path cer;
+tri:=mainlevee(Triangle(A,B,C)()()());
+cer:=mainlevee(cercle(A,B,C));
+draw tri withcolor red;
+draw cer withcolor blue;
+fin;
+\end{exemple}
+
+\begin{rpdeclaration}{anglemainlevee(<nombre>)}
+Fonction qui permet de définir comment seront dessinés les figures à main levée : le \verb|nombre| sera ajouté à l'angle de départ et à l'angle d'arrivée des chemins pour créer une déformation. \verb|nombre| peut contenir un calcul avec les fonctions \verb|normaldeviate| et \verb|uniformdeviate()|.
+
+Au chargement de \verb|repere|, la fonction est appelée de la façon suivante :
+
+ \verb|anglemainlevee(5*signe(normaldeviate)+normaldeviate);|
+\end{rpdeclaration}
+
+\begin{exemple}
+repere(-0.5,5,1cm,-0.5,5,1cm);
+pair A[],B[];
+draw axes(1,1);
+for i=1 upto 4:
+ A[i]:=(1,i);B[i]:=(4,i);
+ nomme.lft(A[i]);nomme.rt(B[i]);
+endfor
+draw A[1]--B[1];
+drawmainlevee A[2]--B[2];
+anglemainlevee(10);
+drawmainlevee A[3]--B[3];
+anglemainlevee(uniformdeviate 20 + 10);
+drawmainlevee A[4]--B[4];
+fin;
+\end{exemple}
+
+
\section{Divers}
\subsection{Compilation avec \texttt{mpost}}