diff options
Diffstat (limited to 'macros/latex/contrib/profcollege/latex/PfCCalisson.tex')
-rw-r--r-- | macros/latex/contrib/profcollege/latex/PfCCalisson.tex | 114 |
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; |