summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/profcollege/latex/PfCCalisson.tex
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/profcollege/latex/PfCCalisson.tex')
-rw-r--r--macros/latex/contrib/profcollege/latex/PfCCalisson.tex114
1 files changed, 80 insertions, 34 deletions
diff --git a/macros/latex/contrib/profcollege/latex/PfCCalisson.tex b/macros/latex/contrib/profcollege/latex/PfCCalisson.tex
index 08f3d91521..60c424bdff 100644
--- a/macros/latex/contrib/profcollege/latex/PfCCalisson.tex
+++ b/macros/latex/contrib/profcollege/latex/PfCCalisson.tex
@@ -56,47 +56,86 @@
}%
}%
}%
- %Liste gauche : \the\tokcalissonlistetracesg%
+ % Liste gauche : \the\tokcalissonlistetracesg%
+% \par Pour la droite, Il reste \Reste
% Partie droite
- \StrLeft{0\Reste}{3}[\Depart]%
- \expandafter\UpdatetoksCalissondDepart\Depart\nil%
- \StrGobbleLeft{0\Reste}{3}[\Reste]%
- \xintFor* ##1 in {\xintSeq{1}{\fpeval{\useKV[Calisson]{Taille}-2}}}\do{%
+ \xintifboolexpr{\useKV[Calisson]{Taille}==2}{%
+ % 10
\StrLeft{0\Reste}{3}[\Depart]%
- \expandafter\UpdatetoksCalissond\Depart\nil%
+ \expandafter\UpdatetoksCalissondDepart\Depart\nil%
\StrGobbleLeft{0\Reste}{3}[\Reste]%
- }%
- \StrLeft{00\Reste}{3}[\Depart]%
- \StrGobbleLeft{00\Reste}{3}[\Reste]%
- \expandafter\UpdatetoksCalissond\Depart\nil%
-% fin premiere ligne
- \xintFor* ##1 in {\xintSeq{1}{\fpeval{\useKV[Calisson]{Taille}-1}}}\do{%
+ % 11
+ \StrLeft{00\Reste}{3}[\Depart]%
+ \expandafter\UpdatetoksCalissond\Depart\nil%
+ \StrGobbleLeft{00\Reste}{3}[\Reste]%
+ % 12
\StrLeft{\Reste}{1}[\Depart]%
- \expandafter\UpdatetoksCalissond\Depart00\nil%
+ \expandafter\UpdatetoksCalissond\Depart\nil%
\StrGobbleLeft{\Reste}{1}[\Reste]%
- \xintFor* ##2 in {\xintSeq{1}{\fpeval{\useKV[Calisson]{Taille}-1}}}\do{%
- \StrLeft{\Reste}{3}[\Depart]%
- \expandafter\UpdatetoksCalissond\Depart\nil%
- \StrGobbleLeft{\Reste}{3}[\Reste]%
- }%
+ % 13
+ \StrLeft{\Reste}{3}[\Depart]%
+ \expandafter\UpdatetoksCalissond\Depart\nil%
+ \StrGobbleLeft{\Reste}{3}[\Reste]%
+ % 14
\StrLeft{00\Reste}{3}[\Depart]%
\expandafter\UpdatetoksCalissond\Depart\nil%
\StrGobbleLeft{00\Reste}{3}[\Reste]%
- }%
- %% fin des lignes intermédiaires
- \xintFor* ##1 in {\xintSeq{1}{\fpeval{\useKV[Calisson]{Taille}}}}\do{%
+ % 15
\StrLeft{\Reste}{1}[\Depart]%
- \expandafter\UpdatetoksCalissond\Depart00\nil%
+ \expandafter\UpdatetoksCalissond\Depart0\nil%
\StrGobbleLeft{\Reste}{1}[\Reste]%
- \xintifboolexpr{##1>\fpeval{\useKV[Calisson]{Taille}-1}}{}{%
- \xintFor* ##2 in {\xintSeq{\fpeval{\useKV[Calisson]{Taille}-##1}}{1}}\do{%
+ % 16
+ \StrLeft{\Reste}{3}[\Depart]%
+ \expandafter\UpdatetoksCalissond\Depart\nil%
+ \StrGobbleLeft{\Reste}{3}[\Reste]%
+ % 17
+ \StrLeft{\Reste}{1}[\Depart]%
+ \expandafter\UpdatetoksCalissond\Depart00\nil%
+% \StrGobbleLeft{\Reste}{2}[\Reste]%
+ }{%
+ \StrLeft{0\Reste}{3}[\Depart]%
+ \expandafter\UpdatetoksCalissondDepart\Depart\nil%
+ \StrGobbleLeft{0\Reste}{3}[\Reste]%
+ \xintFor* ##1 in {\xintSeq{1}{\fpeval{\useKV[Calisson]{Taille}-2}}}\do{%
+ \StrLeft{0\Reste}{3}[\Depart]%
+ \expandafter\UpdatetoksCalissond\Depart\nil%
+ \StrGobbleLeft{0\Reste}{3}[\Reste]%
+ }%
+ \StrLeft{00\Reste}{3}[\Depart]%
+ \StrGobbleLeft{00\Reste}{3}[\Reste]%
+ \expandafter\UpdatetoksCalissond\Depart\nil%
+ % \par A la première ligne : \the\tokcalissonlistetracesd
+ % fin premiere ligne
+ \StrLeft{0\Reste}{3}[\Depart]%
+ \xintFor* ##1 in {\xintSeq{1}{\fpeval{\useKV[Calisson]{Taille}-1}}}\do{%
+ \StrLeft{\Reste}{1}[\Depart]%
+ \expandafter\UpdatetoksCalissond\Depart00\nil%
+ \StrGobbleLeft{\Reste}{1}[\Reste]%
+ \xintFor* ##2 in {\xintSeq{1}{\fpeval{\useKV[Calisson]{Taille}-1}}}\do{%
\StrLeft{\Reste}{3}[\Depart]%
\expandafter\UpdatetoksCalissond\Depart\nil%
\StrGobbleLeft{\Reste}{3}[\Reste]%
}%
+ \StrLeft{00\Reste}{3}[\Depart]%
+ \expandafter\UpdatetoksCalissond\Depart\nil%
+ \StrGobbleLeft{00\Reste}{3}[\Reste]%
+ }
+ %% fin des lignes intermédiaires
+ \xintFor* ##1 in {\xintSeq{1}{\fpeval{\useKV[Calisson]{Taille}}}}\do{%
+ \StrLeft{\Reste}{1}[\Depart]%
+ \expandafter\UpdatetoksCalissond\Depart00\nil%
+ \StrGobbleLeft{\Reste}{1}[\Reste]%
+ \xintifboolexpr{##1>\fpeval{\useKV[Calisson]{Taille}-1}}{}{%
+ \xintFor* ##2 in {\xintSeq{\fpeval{\useKV[Calisson]{Taille}-##1}}{1}}\do{%
+ \StrLeft{\Reste}{3}[\Depart]%
+ \expandafter\UpdatetoksCalissond\Depart\nil%
+ \StrGobbleLeft{\Reste}{3}[\Reste]%
+ }%
+ }%
}%
}%
-% \par Liste droite :\the\tokcalissonlistetracesd
+% \par Liste droite :\the\tokcalissonlistetracesd\par
+ %\par Liste cp : \tokcalissonlistetracesd{"0ss",0f0","ftf","ssf","0ff","tt0","0sf","sfs"}\the\tokcalissonlistetracesd\par
\BuildCalisson{\the\tokcalissonlistetracesg}{\the\tokcalissonlistetracesd}%
}%
@@ -109,7 +148,7 @@
%
Rayon=\useKV[Calisson]{Rayon};
Taille=\useKV[Calisson]{Taille};
- %
+ %
pair A,B,C,D,E,F,O;
O=(0,0);
path cc;
@@ -127,8 +166,8 @@
Bas=A--B--C;
TopGauche=E--F--A;
BasDroit=D--C--B;
- %
- pair Hor,Ver,Horn;
+ %
+ pair Hor,Ver,Horn,Retenir;
Hor=(1/Taille)[E,F];
Ver=rotation(Hor,E,60);
Horn=rotation(Hor,E,120);
@@ -140,36 +179,37 @@
for l=0 upto Taille:
n:=n+1;
M[n]=E+k*(Ver-E)+l*(Hor-E);
- % dotlabel.top(decimal(n),M[n]);
+ %dotlabel.top(decimal(n),M[n]);
endfor;
endfor;
for k=Taille upto 2*Taille-1:
for l=0 upto (2*Taille-1-k):
n:=n+1;
M[n]=E+k*(Ver-E)+l*(Hor-E);
- % dotlabel.top(decimal(n),M[n]);
+ %dotlabel.top(decimal(n),M[n]);
endfor;
endfor;
% Partie Droite -> ok
for k=1 upto Taille:
n:=n+1;
M[n]=E+k*(Horn-E);
- % dotlabel.top(decimal(n),M[n]);
+% dotlabel.top(decimal(n),M[n]);
endfor;
for k=1 upto Taille-1:
for l=0 upto Taille:
n:=n+1;
M[n]=E+k*(Ver-E)+l*(Horn-E);
- % dotlabel.top(decimal(n),M[n]);
+% dotlabel.top(decimal(n),M[n]);
endfor;
endfor;
for k=Taille upto 2*Taille-1:
for l=0 upto (2*Taille-1-k):
n:=n+1;
M[n]=E+k*(Ver-E)+l*(Horn-E);
- % dotlabel.top(decimal(n),M[n]);
+ %dotlabel.top(decimal(n),M[n]);
endfor;
endfor;
+ drawoptions();
%
%
string Retiens;
@@ -177,7 +217,7 @@
%
pair Depla;
Depla:=Hor;
- %
+ %
vardef LesTracesg(text t)=
trace polygone(A,B,C,D,E,F) withpen pencircle scaled 2;
for k=1 upto 2*Taille-1:
@@ -207,6 +247,11 @@
enddef;
%
vardef LesTracesd(text t)=
+ %if Taille=2:
+ %Hor:=(1/Taille)[E,F];
+ %Ver:=rotation(Hor,E,60);
+ %Horn:=rotation(Hor,E,120);
+ %fi;
for p_=t:
n:=n+1;
for d=1 upto 3:
@@ -215,6 +260,7 @@
elseif d=2:Depla:=Ver
else : Depla:=Hor
fi;
+% fill ((fullcircle scaled 3mm) shifted M[n]);
if (Retiens="0") or (Retiens="f"):
elseif Retiens="t":
trace (chemin(Depla,E) shifted (M[n]-E)) withpen pencircle scaled 2;