From 84a5593d3fb9d03aac5677678bcc4c92e8c9a9c4 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Fri, 27 May 2022 03:01:31 +0000 Subject: CTAN sync 202205270301 --- .../contrib/profcollege/metapost/PfCGeometrie.mp | 55 +++++++++++++++++++++- 1 file changed, 53 insertions(+), 2 deletions(-) (limited to 'macros/latex/contrib/profcollege/metapost/PfCGeometrie.mp') diff --git a/macros/latex/contrib/profcollege/metapost/PfCGeometrie.mp b/macros/latex/contrib/profcollege/metapost/PfCGeometrie.mp index 604373e716..3386a78680 100644 --- a/macros/latex/contrib/profcollege/metapost/PfCGeometrie.mp +++ b/macros/latex/contrib/profcollege/metapost/PfCGeometrie.mp @@ -574,7 +574,7 @@ vardef demidroite(expr AA,BB)= save Dem; path Dem; if typetrace="mainlevee": - Dem=segment(AA,BB)..(_tfig/abs(AA-BB))[AA,BB]{dir(angle(BB-AA)+10)} + Dem=segment(AA,BB)..(_tfig/abs(AA-BB))[AA,BB] elseif typetrace="3D": Dem=Projette(AA)--(_tfig/abs(Projette(AA)-Projette(BB)))[Projette(AA),Projette(BB)] else: @@ -667,6 +667,30 @@ vardef chemin(text t)= $ enddef; +vardef Triangleqcq(text t)= + save PfCTqc; + pair pointchoisi[]; + pointchoisi1:=iso(coinbg,1/4[coinbg,coinbd],iso(coinbg,iso(coinhg,coinhd)),iso(coinhg,coinbg)); + pointchoisi2:=iso(coinbd,3/4[coinbg,coinbd],iso(coinbd,iso(coinhg,coinhd)),iso(coinhd,coinbd)); + test:=uniformdeviate(1); + choix:=43+uniformdeviate(4); + ecart:=abs(45-choix); + relation:=60-(ecart/2)+uniformdeviate(ecart); + if test<0.5 : + pointchoisi3:=droite(pointchoisi1,rotation(pointchoisi2,pointchoisi1,choix)) intersectionpoint droite(pointchoisi2,rotation(pointchoisi1,pointchoisi2,-relation)); + else : + pointchoisi3:=droite(pointchoisi2,rotation(pointchoisi1,pointchoisi2,-choix)) intersectionpoint droite(pointchoisi1,rotation(pointchoisi2,pointchoisi1,relation)); + fi + j:=1; + for p_=t: + p_=pointchoisi[j]; + j:=j+1; + endfor; + path PfCTqc; + PfCTqc=polygone(pointchoisi1,pointchoisi2,pointchoisi3); + PfCTqc +enddef; + %------------------------------------------------ %Sucres %------------------------------------------------ @@ -674,7 +698,7 @@ vardef hachurage(expr chemin, angle, ecart, trace)= save $; picture $; path support; - support=((u*(-37,0))--(u*(37,0))) rotated angle; + support=((u*(-50,0))--(u*(50,0))) rotated angle; if trace=1: drawoptions(dashed evenly); elseif trace=2: @@ -693,6 +717,33 @@ vardef hachurage(expr chemin, angle, ecart, trace)= drawoptions(); $ enddef; + +vardef Hachurage(expr Chemin, Angle, Ecart, Trace)= + %Avec écart constant quel que soit l'angle d'inclinaison. + save $; + picture $; + if Trace=0: + drawoptions(); + elseif Trace=1: + drawoptions(dashed evenly); + elseif Trace=2: + drawoptions(dashed dashpattern(on12bp off6bp on3bp off6bp)); + elseif Trace=3: + drawoptions(dashed withdots); + fi; + path support; + support=(u*(-50,0)--u*(50,0)) rotated Angle; + $ = image( + for j=-200 upto 200: + if (support shifted (Ecart*j*u*(cosd(90-Angle),-sind(90-Angle)))) intersectiontimes Chemin<>(-1,-1): + draw support shifted (Ecart*j*u*(cosd(90-Angle),-sind(90-Angle)));%));%(cosd(Angle),sind(Angle))); + fi + endfor; + ); + clip $ to Chemin; + drawoptions(); + $ +enddef; %fleche pour coter un segment [AB] (Jacques Marot) vardef cotation(expr aa,bb,ecart,decalage,cote)= pair m[] ; -- cgit v1.2.3