summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/profcollege/metapost
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2023-01-02 03:04:24 +0000
committerNorbert Preining <norbert@preining.info>2023-01-02 03:04:24 +0000
commit4841af990664e40ab2f20099d8b39dabacf5ad0f (patch)
treeb08f6e0e8898fae8216c68b7f9db5d2df8724f5b /macros/latex/contrib/profcollege/metapost
parent57f42e641f5238555a3dea5284318dbbc679d053 (diff)
CTAN sync 202301020304
Diffstat (limited to 'macros/latex/contrib/profcollege/metapost')
-rw-r--r--macros/latex/contrib/profcollege/metapost/PfCGeometrie.mp22
-rw-r--r--macros/latex/contrib/profcollege/metapost/PfCSolid.mp85
2 files changed, 107 insertions, 0 deletions
diff --git a/macros/latex/contrib/profcollege/metapost/PfCGeometrie.mp b/macros/latex/contrib/profcollege/metapost/PfCGeometrie.mp
index 02a3f66ce2..3c5ed4be0d 100644
--- a/macros/latex/contrib/profcollege/metapost/PfCGeometrie.mp
+++ b/macros/latex/contrib/profcollege/metapost/PfCGeometrie.mp
@@ -811,6 +811,28 @@ vardef cotationmil(expr aa,bb,ecart,decalage,cote)= %Christophe
cot
enddef;
+vardef cotationarc(expr aaa,bbb,decal,ecart,sens,texte)=%pour le texte sens=1 ou -1
+ save ty;
+ picture ty;
+ pair mnp,ctr;
+ mnp=iso(aaa,bbb)+decal*unitvector(rotation(bbb,iso(aaa,bbb),90)-iso(aaa,bbb));
+ ctr=CentreCercleC(aaa,bbb,mnp);
+ path cts[];
+ cts0=arccercle(bbb,aaa,ctr);
+ cts1=arccercle(bbb,cts0 intersectionpoint perpendiculaire(aaa,bbb,iso(aaa,bbb)),ctr);
+ cts2=arccercle(cts0 intersectionpoint perpendiculaire(aaa,bbb,iso(aaa,bbb)),aaa,ctr);
+ ty=image(
+ trace subpath(0,arctime(arclength cts1*(1-(ecart/10))) of cts1) of cts1 dashed evenly;
+ trace subpath(0,arctime(arclength cts2*(1-(ecart/10))) of reverse(cts2)) of reverse(cts2) dashed evenly;
+ if sens=1:
+ label(texte rotated (angle(bbb-aaa)),mnp);
+ else:
+ label(texte rotated (angle(bbb-aaa)+180),mnp);
+ fi;
+ );
+ ty
+ enddef;
+
%%%%%%%%%%
%francisation
%%%%%%%%%
diff --git a/macros/latex/contrib/profcollege/metapost/PfCSolid.mp b/macros/latex/contrib/profcollege/metapost/PfCSolid.mp
index 829fad5d30..342b992167 100644
--- a/macros/latex/contrib/profcollege/metapost/PfCSolid.mp
+++ b/macros/latex/contrib/profcollege/metapost/PfCSolid.mp
@@ -988,4 +988,89 @@ def alphafill_(expr p, c) =
endgroup;
enddef;
+vardef Cercles(text t)=
+ save Cer;
+ save n;
+ n:=0;
+ for p_=t:
+ if color p_:
+ n:=n+1;
+ _T[n]:=p_;
+ fi;
+ endfor;
+ path Cer;
+ color ptcer[];
+ for k=0 step 5 until 360 :
+ ptcer[k div 5]-_T[1]=Distance(_T[1],_T[2])*((_T[4]-_T[3])*cosd(k)/Distance(_T[3],_T[4])+(_T[5]-_T[3])*sind(k)/Distance(_T[3],_T[5]));
+ endfor;
+ Cer=Projette(ptcer0)
+ for k=0 step 5 until 360 :
+ ..Projette(ptcer[k div 5])
+ endfor
+ ..cycle;
+ Cer
+enddef;
+
+vardef Label@#(expr s,z)=
+ save p; picture p;
+ label@#(s,Projette(z));
+enddef;
+vardef DotLabel@#(expr s,z)=
+ save p; picture p;
+ dotlabel@#(s,Projette(z));
+enddef;
+
+vardef DefinirSommets(text t)=
+ color t;
+ nbauto:=0;
+ for p_=t:
+ nbauto:=nbauto+1;
+ if unknown p_:p_=Sommet[nbauto]; else: p_:=Sommet[nbauto] fi;
+ endfor;
+enddef;
+
+vardef DefinirSommetsSection(text t)=
+ color t;
+ nbauto:=0;
+ for p_=t:
+ nbauto:=nbauto+1;
+ if unknown p_:p_=MSection[nbauto]; else: p_:=MSection[nbauto] fi;
+ endfor;
+enddef;
+
+vardef EcrireSommetsPave(text t)=
+ if AutoLabel:
+ nb:=0;
+ for p_=t:
+ nb:=nb+1;
+ if nb=1:
+ label.llft(TEX(""&p_&""),Projette(Sommet1));
+ fi;
+ if nb=2:
+ label.lrt(TEX(""&p_&""),Projette(Sommet2));
+ fi;
+ if nb=3:
+ label.rt(TEX(""&p_&""),Projette(Sommet3));
+ fi;
+ if nb=4:
+ if Pointilles:
+ label.ulft(TEX(""&p_&""),Projette(Sommet4));
+ fi;
+ fi;
+ if nb=5:
+ label.ulft(TEX(""&p_&""),Projette(Sommet5));
+ fi;
+ if nb=6:
+ label.lft(TEX(""&p_&""),Projette(Sommet6));
+ fi;
+ if nb=7:
+ label.lrt(TEX(""&p_&""),Projette(Sommet7));
+ fi;
+ if nb=8:
+ label.urt(TEX(""&p_&""),Projette(Sommet8));
+ fi;
+ endfor;
+ fi;
+enddef;
+
endinput;