diff options
author | Karl Berry <karl@freefriends.org> | 2023-02-09 21:16:55 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2023-02-09 21:16:55 +0000 |
commit | 1d76989ba8a9ed4861f7ae979511ada014cbabd7 (patch) | |
tree | 4b83acfbea8fc498885fde7f4ab7caac8da81791 /Master/texmf-dist/doc/metapost/repere/repere-doc.tex | |
parent | c9547d2176f249c08eab89699b3d03d42b53051e (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.tex | 103 |
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}} |