summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/profcollege/metapost
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2023-09-08 03:02:30 +0000
committerNorbert Preining <norbert@preining.info>2023-09-08 03:02:30 +0000
commit608e422a8e775ac4d1c23c80b4170776701680d5 (patch)
treed1e69057c0dc339fb0f890882f5fef9fe3b3a66f /macros/latex/contrib/profcollege/metapost
parent96f1d7a9e9fe6e682cbd19d1bf2b7797891160b6 (diff)
CTAN sync 202309080302
Diffstat (limited to 'macros/latex/contrib/profcollege/metapost')
-rw-r--r--macros/latex/contrib/profcollege/metapost/PfCCalculatrice.mp7
-rw-r--r--macros/latex/contrib/profcollege/metapost/PfCGeometrie.mp111
-rw-r--r--macros/latex/contrib/profcollege/metapost/PfCScratch.mp30
-rw-r--r--macros/latex/contrib/profcollege/metapost/PfCScratchpdf.mp30
4 files changed, 89 insertions, 89 deletions
diff --git a/macros/latex/contrib/profcollege/metapost/PfCCalculatrice.mp b/macros/latex/contrib/profcollege/metapost/PfCCalculatrice.mp
index daae0553f7..28252f90bf 100644
--- a/macros/latex/contrib/profcollege/metapost/PfCCalculatrice.mp
+++ b/macros/latex/contrib/profcollege/metapost/PfCCalculatrice.mp
@@ -40,7 +40,7 @@ decahoriz:=0;
vardef Test(expr cptk)(text cptnt)=
pair Decalage;
- if nblignes mod 2=0:
+ if nblignes>1:
Decalage:=u*((LargeurEcran,-8*(nblignes-1))-6*(length(cptnt)-cptk,0));
else:
Decalage:=u*(decahoriz,-8*(nblignes-1));
@@ -186,12 +186,11 @@ vardef LCD(text nt)(text rep)(expr NB)=
endfor;
fi;
for k=1 upto NB:
- nblignes:=nblignes+1;
- Ecran:=(u*(0,-1)--u*(LargeurEcran,-1)--u*(LargeurEcran,7)--u*(0,7)--cycle) shifted(u*(0,-8*(nblignes-1)));
+ Ecran:=(u*(0,-1)--u*(LargeurEcran,-1)--u*(LargeurEcran,7)--u*(0,7)--cycle) shifted(u*(0,-8*(k+nblignes-1)));
fill Ecran withcolor if print=true:0.8white else:CouleurEcran fi;
draw Ecran withcolor if print=true:0.8white else:CouleurEcran fi;
endfor;
- nblignes:=nblignes+1;
+ nblignes:=nblignes+NB+1;
Ecran:=(u*(0,-1)--u*(LargeurEcran,-1)--u*(LargeurEcran,7)--u*(0,7)--cycle) shifted(u*(0,-8*(nblignes-1)));
fill Ecran withcolor if print=true:0.8white else:CouleurEcran fi;
draw Ecran withcolor if print=true:0.8white else:CouleurEcran fi;
diff --git a/macros/latex/contrib/profcollege/metapost/PfCGeometrie.mp b/macros/latex/contrib/profcollege/metapost/PfCGeometrie.mp
index 95c18757f1..37f4809598 100644
--- a/macros/latex/contrib/profcollege/metapost/PfCGeometrie.mp
+++ b/macros/latex/contrib/profcollege/metapost/PfCGeometrie.mp
@@ -1316,10 +1316,13 @@ enddef;
%Outils
numeric echelleequerre;
echelleequerre=0.5;
-vardef equerreold(expr dte,drte,perpe,sens)=
- save picequerre;
- picture picequerre;
+vardef Equerre(expr dte,drte,perpe,sens)=
+ save $;
+ picture $,fig;
+ fig=currentpicture;
pair ww,t[];
+ picture grad[],gradu[];
+ numeric long;
path intermede;
pair perpen,ptt,pttt;
perpen:=projection(perpe,dte,drte);
@@ -1329,86 +1332,23 @@ vardef equerreold(expr dte,drte,perpe,sens)=
ptt:=echelleequerre*(drte-dte) rotated (-90) shifted perpen;
fi;
ww=unitvector(drte-dte);
- intermede=ptt--(10[ptt,(perpen rotatedabout(ptt,if sens=1: 30 else:-30 fi))]);
+ intermede=ptt--(10[ptt,(perpen rotatedabout(ptt,30))]);
pttt=intermede intersectionpoint (10[dte,drte]--10[drte,dte]);
- picequerre=image(
+ long=floor(abs(perpen+7*unitvector(ptt-perpen)-ptt)*2.54/72);
+ pair CentreE;
+ CentreE=CentreCercleI(perpen,ptt,pttt);
+ $=image(
+ fill (perpen--ptt--pttt--cycle) withcolor 0.9*white;
draw perpen--ptt--pttt--cycle;
draw codeperp(ptt,perpen,pttt,5);
+ fill homothetie(polygone(perpen,ptt,pttt),CentreE,0.6) withcolor white;
+ draw homothetie(polygone(perpen,ptt,pttt),CentreE,0.6);
+ draw fig;
);
- picequerre
-enddef;
-
-vardef equerre(text gradua)(expr ea,eb,ec)=
- save picequerre;
- picture picequerre;
- pair EA,EB,EC,ED,EE,EF,EI;
- EA:=ea;
- EB:=eb;
- EC:=ec;
- ED=projection(EC,EA,EB);
- EE-ED=EB-EA;
- EF-ED=echelleequerre*abs(EE-ED)*(unitvector(EE-ED) rotated 90);
- EI=CentreCercleI(EE,ED,EF);
- picequerre=image(
- fill (EE--ED--EF--cycle) withcolor 0.7white;
- draw codeperp(EE,ED,EF,5);
- draw EE--ED--EF--cycle;
- fill ((((EE--ED--EF--cycle) shifted ((0,0)-EI)) scaled 0.5) shifted EI) withcolor white;
- trace (((EE--ED--EF--cycle) shifted ((0,0)-EI)) scaled 0.5) shifted EI;
- % if abs(EE-ED)>abs(EF-ED):
-% for k=10 upto 50:%
-% trace (ED+k*1mm*unitvector(EE-ED))--(ED+k*1mm*unitvector(EE-ED)+1mm*unitvector(EF-ED));
-% endfor;
-% else:
-% for k=10 upto 50:%
-% trace (ED+k*1mm*unitvector(EF-ED))--(ED+k*1mm*unitvector(EF-ED)+1mm*unitvector(EE-ED));
-% endfor;
-% fi;
- );
- picequerre
-enddef;
-
-
-% ww;
-% pair Intermede;
-% pair perpen,I,ptt;%,pttt
-% perpen:=projection(perpe,dte,drte);
-% Intermede:=echelleequerre[dte,drte];
-% ptt-perpen=abs(Intermede-perpen)*0.5*unitvector(perpe-perpen);
-% I:=CentreCercleI(perpen,ptt,Intermede);
-% ww=unitvector(drte-dte);
-% intermede=ptt--(10[ptt,(perpen rotatedabout(ptt,if sens=1: 30 else:-30 fi))]);
-% pttt=intermede intersectionpoint (10[dte,drte]--10[drte,dte]);
-% picequerre=image(
-%
-% draw codeperp(ptt,perpen,Intermede,5);
-% k=0;
-% pair Equa,Equb,Equc;
-% Equa:=perpen;
-% boolean Stop;
-% Stop=false;
-% forever:
-% label.top(TEX(decimal(angle(drte-perpen)-angle(perpe-perpen))),A);
-% for k=1 upto 100:
-% k:=k+1;
-% Equa:=perpen+k*1mm*unitvector(drte-perpen);
-% dotlabel("",Equa);
-% Equb:=Equa+1mm*unitvector(drte-perpen);
-% Equc:=rotation(Equb,Equa,-angle((drte-perpen)-(perpe-perpen)));
-% drawoptions(withcolor red);
-% dotlabel("",Equc);
-% drawoptions();
-% if abs(Equa-perpen)>9mm:%
-% trace Equa--Equc;
-% fi;
- % if abs(drte-Equa)<1cm:
-% Stop:=false;
-% fi;
-% exitif: Stop;
-% endfor;
-% );
-% picequerre
-%enddef;
+ $
+enddef;
+
+vardef equerre(expr dte,drte,perpe,sens)=Equerre(dte,drte,perpe,sens) enddef;
vardef regle(expr depart,arrivee,rr)=
save picregle;
@@ -1519,7 +1459,8 @@ vardef Rapporteur(text t)(expr rapcentre,pointsupport,rr,pasgrad)=
elseif p_="Tiret":
Tiret:=true;
fi;
- endfor;
+endfor;
+taillefonte=6;
% Le cercle
RA1=0.3[rapcentre,pointsupport];
RA2=0.375[rapcentre,pointsupport];
@@ -1550,7 +1491,7 @@ vardef Rapporteur(text t)(expr rapcentre,pointsupport,rr,pasgrad)=
fincompteur:=36;
fi;
if (pasgrad=10) or (pasgrad=5) or (pasgrad=1):
- for i=0 upto (fincompteur-1)/2:
+ for i=0 upto (fincompteur)/2:
draw grada[10*i]--gradb[10*i] withpen pencircle scaled 1.15;
endfor;
fi;
@@ -1580,26 +1521,26 @@ vardef Rapporteur(text t)(expr rapcentre,pointsupport,rr,pasgrad)=
if rr=1:
for j=0 upto 18:
nombre[10*j]=image(
- label.bot(TEX("\fontsize{4}{4}\selectfont"&decimal(10*j)&""),grada[10*j]);
+ label.bot(TEX("\fontsize{"&decimal(taillefonte)&"}{"&decimal(taillefonte)&"}\selectfont"&decimal(10*j)),grada[10*j]);
currentpicture:=currentpicture rotatedabout(grada[10*j],angle(grada[10*j]-rapcentre)-90);
);
endfor
for j=0 upto 18:
nombre[10*j+1]=image(
- label.top(TEX("\fontsize{4}{4}\selectfont"&decimal(180-10*j)&""),gradb[10*j]);
+ label.top(TEX("\fontsize{"&decimal(taillefonte)&"}{"&decimal(taillefonte)&"}\selectfont"&decimal(180-10*j)),gradb[10*j]);
currentpicture:=currentpicture rotatedabout(gradb[10*j],angle(gradb[10*j]-rapcentre)-90);
);
endfor
else:
for j=0 upto 18:
nombre[10*j]=image(
- label.bot(TEX("\fontsize{4}{4}\selectfont"&decimal(180-10*j)&""),grada[10*j]);
+ label.bot(TEX("\fontsize{"&decimal(taillefonte)&"}{"&decimal(taillefonte)&"}\selectfont"&decimal(180-10*j)),grada[10*j]);
currentpicture:=currentpicture rotatedabout(grada[10*j],angle(grada[10*j]-rapcentre)-90);
);
endfor
for j=18 downto 0:
nombre[10*j+1]=image(
- label.top(TEX("\fontsize{4}{4}\selectfont"&decimal(10*j)&""),gradb[10*j]);
+ label.top(TEX("\fontsize{"&decimal(taillefonte)&"}{"&decimal(taillefonte)&"}\selectfont"&decimal(10*j)),gradb[10*j]);
currentpicture:=currentpicture rotatedabout(gradb[10*j],angle(gradb[10*j]-rapcentre)-90);
);
endfor
diff --git a/macros/latex/contrib/profcollege/metapost/PfCScratch.mp b/macros/latex/contrib/profcollege/metapost/PfCScratch.mp
index 18fe1c904a..d0dbad1a25 100644
--- a/macros/latex/contrib/profcollege/metapost/PfCScratch.mp
+++ b/macros/latex/contrib/profcollege/metapost/PfCScratch.mp
@@ -2958,6 +2958,21 @@ vardef OpMul(expr pasun,pasdeux)=
Oop
enddef;
+vardef OpMulS(expr pasun,pasdeux)=
+ save Oop; picture Oop;
+ save TAao; path TAao;
+ save LOPop; picture LOPop;
+ LOPop=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"$*$",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
+ TAao=OvalBox(LOPop);
+ Oop=image(
+ fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+ draw LOPop;
+ draw TAao if print=false : withcolor coefprint*white fi;
+ );
+ Oop:=Oop shifted(-center Oop);
+ Oop
+enddef;
+
vardef OpDiv(expr pasun,pasdeux)=
save Oop; picture Oop;
save TAao; path TAao;
@@ -2973,6 +2988,21 @@ vardef OpDiv(expr pasun,pasdeux)=
Oop
enddef;
+vardef OpDivS(expr pasun,pasdeux)=
+ save Oop; picture Oop;
+ save TAao; path TAao;
+ save LOPop; picture LOPop;
+ LOPop=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"$/$",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
+ TAao=OvalBox(LOPop);
+ Oop=image(
+ fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+ draw LOPop;
+ draw TAao if print=false : withcolor coefprint*white fi;
+ );
+ Oop:=Oop shifted(-center Oop);
+ Oop
+enddef;
+
vardef OpModulo(expr pasun,pasdeux)=
save Oop; picture Oop;
save TAao; path TAao;
diff --git a/macros/latex/contrib/profcollege/metapost/PfCScratchpdf.mp b/macros/latex/contrib/profcollege/metapost/PfCScratchpdf.mp
index f0ef36f1e0..9a3a650c38 100644
--- a/macros/latex/contrib/profcollege/metapost/PfCScratchpdf.mp
+++ b/macros/latex/contrib/profcollege/metapost/PfCScratchpdf.mp
@@ -2967,6 +2967,21 @@ vardef OpMul(expr pasun,pasdeux)=
Oop
enddef;
+vardef OpMulS(expr pasun,pasdeux)=
+ save Oop; picture Oop;
+ save TAao; path TAao;
+ save LOPop; picture LOPop;
+ LOPop=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"$*$",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
+ TAao=OvalBox(LOPop);
+ Oop=image(
+ fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+ draw LOPop;
+ draw TAao if print=false : withcolor coefprint*white fi;
+ );
+ Oop:=Oop shifted(-center Oop);
+ Oop
+enddef;
+
vardef OpDiv(expr pasun,pasdeux)=
save Oop; picture Oop;
save TAao; path TAao;
@@ -2982,6 +2997,21 @@ vardef OpDiv(expr pasun,pasdeux)=
Oop
enddef;
+vardef OpDivS(expr pasun,pasdeux)=
+ save Oop; picture Oop;
+ save TAao; path TAao;
+ save LOPop; picture LOPop;
+ LOPop=ColleBoxNew(if string pasun : OvalNb(pasun) else: pasun fi,"$/$",if string pasdeux : OvalNb(pasdeux) else: pasdeux fi);
+ TAao=OvalBox(LOPop);
+ Oop=image(
+ fill TAao if print=false : withcolor FondOvalOp else : withcolor coefprint*white fi;
+ draw LOPop;
+ draw TAao if print=false : withcolor coefprint*white fi;
+ );
+ Oop:=Oop shifted(-center Oop);
+ Oop
+enddef;
+
vardef OpModulo(expr pasun,pasdeux)=
save Oop; picture Oop;
save TAao; path TAao;