diff options
author | Norbert Preining <norbert@preining.info> | 2023-01-02 03:04:24 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2023-01-02 03:04:24 +0000 |
commit | 4841af990664e40ab2f20099d8b39dabacf5ad0f (patch) | |
tree | b08f6e0e8898fae8216c68b7f9db5d2df8724f5b /macros/latex/contrib/profcollege/metapost | |
parent | 57f42e641f5238555a3dea5284318dbbc679d053 (diff) |
CTAN sync 202301020304
Diffstat (limited to 'macros/latex/contrib/profcollege/metapost')
-rw-r--r-- | macros/latex/contrib/profcollege/metapost/PfCGeometrie.mp | 22 | ||||
-rw-r--r-- | macros/latex/contrib/profcollege/metapost/PfCSolid.mp | 85 |
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; |