summaryrefslogtreecommitdiff
path: root/Master
diff options
context:
space:
mode:
Diffstat (limited to 'Master')
-rw-r--r--Master/texmf-dist/doc/metapost/repere/repere-doc.pdfbin653215 -> 653733 bytes
-rw-r--r--Master/texmf-dist/doc/metapost/repere/repere-doc.tex8
-rw-r--r--Master/texmf-dist/metapost/repere/repere.mp46
3 files changed, 49 insertions, 5 deletions
diff --git a/Master/texmf-dist/doc/metapost/repere/repere-doc.pdf b/Master/texmf-dist/doc/metapost/repere/repere-doc.pdf
index ae6f4c21c21..605edd4b4ff 100644
--- a/Master/texmf-dist/doc/metapost/repere/repere-doc.pdf
+++ b/Master/texmf-dist/doc/metapost/repere/repere-doc.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/metapost/repere/repere-doc.tex b/Master/texmf-dist/doc/metapost/repere/repere-doc.tex
index 840b870c565..b1a5ece4293 100644
--- a/Master/texmf-dist/doc/metapost/repere/repere-doc.tex
+++ b/Master/texmf-dist/doc/metapost/repere/repere-doc.tex
@@ -1141,6 +1141,8 @@ Certaines des macros suivantes sont largement inspirées des macros de \verb|geo
\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]$.
+
+\item[sommetpolygoneregulier(A,B,n,i)] Sommet numéro $i$ du polygone régulier à $n$ côtés dont un des côtés est $[AB]$. $A$ est le sommet numéro 1 et $B$ est le sommet numéro 2.
\end{description}
\begin{exemple}[0.51]
@@ -1160,11 +1162,13 @@ fin;
\begin{exemple}[0.53]
repere(-1,5,1cm,-1,4,1cm);
draw axes(1,1);
-pair A,B;
+pair A,B,M;
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);
+M=sommetpolygoneregulier(A,B,5,3);
+nomme.rt(M);
draw equilateral(A,B);
fin;
\end{exemple}
@@ -1175,7 +1179,7 @@ fin;
\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)]$.
+\item[arccercle(A,O,B)] Arc de cercle de sens direct de centre $O$, passant par $A$ et s'appuyant sur la demi-droite $[OB)$.
\end{description}
diff --git a/Master/texmf-dist/metapost/repere/repere.mp b/Master/texmf-dist/metapost/repere/repere.mp
index 2b6d86e5b8b..3027bdac026 100644
--- a/Master/texmf-dist/metapost/repere/repere.mp
+++ b/Master/texmf-dist/metapost/repere/repere.mp
@@ -2,7 +2,7 @@
%% repere.mp %%
%% Macros pour la construction de figures dans un repère %%
%% o.peault@openmailbox.org %%
-%% Version 16.06 (Juin 2016) %%
+%% Version 16.10 (Octobre 2016) %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% This work may be distributed and/or modified under the conditions of
@@ -169,6 +169,37 @@ def init_traces =
enddef;
enddef;
+def traces_orig =
+ def fill expr c = addto currentpicture contour c _op_ enddef;
+ def draw expr p =
+ addto currentpicture
+ if picture p:
+ also p
+ else:
+ doublepath p withpen currentpen
+ fi
+ _op_
+ enddef;
+ vardef thelabel@#(expr s,z) = % Position s near z
+ save p; picture p;
+ if picture s: p=s
+ else: p = s infont defaultfont scaled defaultscale
+ fi;
+ p shifted (z + labeloffset*laboff@# -
+ (labxf@#*lrcorner p + labyf@#*ulcorner p
+ + (1-labxf@#-labyf@#)*llcorner p
+ )
+ )
+ enddef;
+ vardef bbox primary p =
+ llcorner p-(bboxmargin,bboxmargin) -- lrcorner p+(bboxmargin,-bboxmargin)
+ -- urcorner p+(bboxmargin,bboxmargin) -- ulcorner p+(-bboxmargin,bboxmargin)-- cycle
+ enddef;
+ def drawarrow expr p = _apth:=p; _finarr enddef;
+ def drawdblarrow expr p = _apth:=p; _findarr enddef;
+
+enddef;
+
def _finarr text t =
olddraw _apth t;
filldraw arrowhead _apth t
@@ -211,6 +242,7 @@ def fin =
if _nbaxes=1: olddraw _axorlab fi;
if coupe: clip currentpicture to (cadre transformed _T) fi;
if bf: oldendfig; bf:=false;_nfig:=_nfig+1 fi;
+ traces_orig;
enddef;
def _defcadre=
@@ -806,7 +838,7 @@ vardef axexpart@#(text t)=
if numeric _i:
if var: if str @#="": draw _etiqx_.bot(tmp,taillegrad,tmp) else: draw _etiqx_@#(tmp,taillegrad,tmp) fi fi;
if boolgradxpart:
- draw graduationx(_i) withpen pencircle scaled 0.8bp
+ olddraw graduationx(_i) withpen pencircle scaled 0.8bp
fi;
tmp:=_i;
var:=true
@@ -829,7 +861,7 @@ vardef axeypart@#(text t)=
for _i=t:
if numeric _i:
if var: if str @#="": draw _etiqy_.lft(tmp,taillegrad,tmp) else: draw _etiqy_@#(tmp,taillegrad,tmp) fi fi;
- draw ((taillegrad,0)--(-taillegrad,0)) shifted _cart(xO,_i) withpen pencircle scaled 0.8bp;
+ olddraw ((taillegrad,0)--(-taillegrad,0)) shifted _cart(xO,_i) withpen pencircle scaled 0.8bp;
tmp:=_i;
var:=true
else:
@@ -1820,6 +1852,14 @@ vardef polygoneregulier(expr A,B,n)=
poly transformed inverse _T
enddef;
+vardef sommetpolygoneregulier(expr A,B,n,i)=
+ save $,centre;
+ pair $,centre;
+ _cart(B)-centre = (_cart(A)-centre) rotated (360/n);
+ $= _cart(A) rotatedaround(centre,((i-1)*360)/n);
+ $ transformed inverse _T
+enddef;
+
vardef equilateral(expr A,B)=
polygoneregulier(A,B,3)
enddef;