diff options
Diffstat (limited to 'Master/texmf-dist/metapost/profcollege/PfCObjets.mp')
-rw-r--r-- | Master/texmf-dist/metapost/profcollege/PfCObjets.mp | 257 |
1 files changed, 257 insertions, 0 deletions
diff --git a/Master/texmf-dist/metapost/profcollege/PfCObjets.mp b/Master/texmf-dist/metapost/profcollege/PfCObjets.mp index 3b47a88983d..fd2fbe0f2dd 100644 --- a/Master/texmf-dist/metapost/profcollege/PfCObjets.mp +++ b/Master/texmf-dist/metapost/profcollege/PfCObjets.mp @@ -42,6 +42,263 @@ Transparence:=false; boolean couleurz;%pour gérer l'affichage "des lignes" de niveaux couleurz:=false; + vardef AffichageObjetCylindre[]= + save _affi; + picture _affi; + color Fc[][];color cou[]; + tapj:=0; + for k=0 upto apj.@: + cpt[tapj]:=tapj; + Fc[tapj].nb:=OTFc.@[k].nb; + for l=1 upto Fc[tapj].nb: + Fc[tapj][l]:=OTFc.@[k][l]; + endfor; + Fc[tapj].iso:=OTFc.@[k].iso; + cou[tapj]:=if perso.@:scantokens(couleurperso) else: coul.@[k] fi; + ALT[tapj]:=ALT.@[k]; + Vue[tapj]:=Vue.@[k]; + tapj:=tapj+1; + endfor; + tapj:=tapj-1; + QS(0,tapj); + for k=0 step 1 until tapj: + if Vue[cpt[k]]=false: + draw Projette(Fc[cpt[k]][1])--Projette(Fc[cpt[k]][2]) dashed dashpattern(on0.5 off2) withpen pencircle scaled0.25; + draw Projette(Fc[cpt[k]][3])--Projette(Fc[cpt[k]][4]) dashed dashpattern(on0.5 off2) withpen pencircle scaled0.25; + fi; + endfor; + n:=0; + for k=0 step 1 until tapj: + if Vue[cpt[k]]: +% label(""&decimal(cpt[k])&"",Projette(Fc[cpt[k]].iso)); + n:=n+1; + if n<3: + if cpt[k]>1: + vala[n]=cpt[k]; +% label.top(decimal(n)&"--"&decimal(vala[n]),n*u*(1,0)); + else: + n:=n-1; + fi; + fi; + if cpt[k]<1: + draw for l=1 upto Fc[cpt[k]].nb: + Projette(Fc[cpt[k]][l])-- + endfor + cycle;% withpen pencircle scaled0.25; + fi; + if cpt[k]>1: + draw Projette(Fc[cpt[k]][1])--Projette(Fc[cpt[k]][2]);% withpen pencircle scaled0.25; + draw Projette(Fc[cpt[k]][3])--Projette(Fc[cpt[k]][4]);% withpen pencircle scaled0.25; + fi; + fi; + endfor; + if vala[1]<vala[2]: + draw Projette(Fc[vala[1]][2])--Projette(Fc[vala[1]][3]);% withpen pencircle scaled0.25; + draw Projette(Fc[vala[2]][1])--Projette(Fc[vala[2]][4]);% withpen pencircle scaled0.25; + else: + draw Projette(Fc[vala[1]][1])--Projette(Fc[vala[1]][4]);% withpen pencircle scaled0.25; + draw Projette(Fc[vala[2]][2])--Projette(Fc[vala[2]][3]);% withpen pencircle scaled0.25; + fi; +enddef; + + vardef AffichageObjetCylindreSansBase[]= + save _affi; + picture _affi; + color Fc[][];color cou[]; + tapj:=0; + for k=0 upto apj.@: + cpt[tapj]:=tapj; + Fc[tapj].nb:=OTFc.@[k].nb; + for l=1 upto Fc[tapj].nb: + Fc[tapj][l]:=OTFc.@[k][l]; + endfor; + Fc[tapj].iso:=OTFc.@[k].iso; + cou[tapj]:=if perso.@:scantokens(couleurperso) else: coul.@[k] fi; + ALT[tapj]:=ALT.@[k]; + Vue[tapj]:=Vue.@[k]; + tapj:=tapj+1; + endfor; + tapj:=tapj-1; + QS(0,tapj); + for k=0 step 1 until tapj: + if Vue[cpt[k]]=false: + draw Projette(Fc[cpt[k]][1])--Projette(Fc[cpt[k]][2]) dashed dashpattern(on0.5 off2) withpen pencircle scaled0.25; + draw Projette(Fc[cpt[k]][3])--Projette(Fc[cpt[k]][4]) dashed dashpattern(on0.5 off2) withpen pencircle scaled0.25; + fi; + endfor; + n:=0; + for k=0 step 1 until tapj: + if Vue[cpt[k]]: +% label(""&decimal(cpt[k])&"",Projette(Fc[cpt[k]].iso)); + n:=n+1; + if n<3: + if cpt[k]>1: + vala[n]=cpt[k]; +% label.top(decimal(n)&"--"&decimal(vala[n]),n*u*(1,0)); + else: + n:=n-1; + fi; + fi; + %if cpt[k]<1: + %draw for l=1 upto Fc[cpt[k]].nb: + % Projette(Fc[cpt[k]][l])-- + % endfor + % cycle withpen pencircle scaled0.25; + % fi; + if cpt[k]>1: + draw Projette(Fc[cpt[k]][1])--Projette(Fc[cpt[k]][2]);% withpen pencircle scaled0.25; + draw Projette(Fc[cpt[k]][3])--Projette(Fc[cpt[k]][4]);% withpen pencircle scaled0.25; + fi; + fi; + endfor; + if vala[1]<vala[2]: + draw Projette(Fc[vala[1]][2])--Projette(Fc[vala[1]][3]);% withpen pencircle scaled0.25; + draw Projette(Fc[vala[2]][1])--Projette(Fc[vala[2]][4]);% withpen pencircle scaled0.25; + else: + draw Projette(Fc[vala[1]][1])--Projette(Fc[vala[1]][4]);% withpen pencircle scaled0.25; + draw Projette(Fc[vala[2]][2])--Projette(Fc[vala[2]][3]);% withpen pencircle scaled0.25; + fi; +enddef; + +vardef AffichageObjetCone[]= + save _affi; + picture _affi; + color Fc[][];color cou[]; + tapj:=0; + for k=0 upto apj.@: + cpt[tapj]:=tapj; + Fc[tapj].nb:=OTFc.@[k].nb; + for l=1 upto Fc[tapj].nb: + Fc[tapj][l]:=OTFc.@[k][l]; + endfor; + Fc[tapj].iso:=OTFc.@[k].iso; + cou[tapj]:=if perso.@:scantokens(couleurperso) else: coul.@[k] fi; + ALT[tapj]:=ALT.@[k]; + Vue[tapj]:=Vue.@[k]; + tapj:=tapj+1; + endfor; + tapj:=tapj-1; + QS(0,tapj); + n:=0; + for k=0 upto tapj: + if Vue[cpt[k]]: + %label(""&decimal(cpt[k])&"",Projette(Fc[cpt[k]].iso)); + if cpt[k]>0: + n:=n+1; + if n<3: + if cpt[k]>1: + vala[n]:=cpt[k]; +% label.top(decimal(n)&"--"&decimal(vala[n]),n*u*(1,0)); + else: + n:=n-1; + fi; + fi; + draw Projette(Fc[cpt[k]][1])--Projette(Fc[cpt[k]][2]);%withpen pencircle scaled0.25bp; + fi; + fi; + endfor; + if vala[1]<vala[2]: + draw Projette(Fc[vala[1]][2])--Projette(Fc[vala[1]][3]);% withpen pencircle scaled0.25; + draw Projette(Fc[vala[2]][1])--Projette(Fc[vala[2]][4]);% withpen pencircle scaled0.25; + else: + draw Projette(Fc[vala[1]][1])--Projette(Fc[vala[1]][4]);% withpen pencircle scaled0.25; + draw Projette(Fc[vala[2]][2])--Projette(Fc[vala[2]][3]);% withpen pencircle scaled0.25; + fi; + enddef; + + vardef AffichageObjetConeAvecBase[]= + save _affi; + picture _affi; + color Fc[][];color cou[]; + tapj:=0; + for k=0 upto apj.@: + cpt[tapj]:=tapj; + Fc[tapj].nb:=OTFc.@[k].nb; + for l=1 upto Fc[tapj].nb: + Fc[tapj][l]:=OTFc.@[k][l]; + endfor; + Fc[tapj].iso:=OTFc.@[k].iso; + cou[tapj]:=if perso.@:scantokens(couleurperso) else: coul.@[k] fi; + ALT[tapj]:=ALT.@[k]; + Vue[tapj]:=Vue.@[k]; + tapj:=tapj+1; + endfor; + tapj:=tapj-1; + QS(0,tapj); + for k=0 upto tapj: + if Vue[cpt[k]]=false: + draw Projette(Fc[cpt[k]][1])--Projette(Fc[cpt[k]][2]) + dashed dashpattern(on0.5 off2) withpen pencircle scaled0.25bp; + fi; + endfor; + n:=0; + for k=0 upto tapj: + if Vue[cpt[k]]: + %label(""&decimal(cpt[k])&"",Projette(Fc[cpt[k]].iso)); + if cpt[k]>0: + n:=n+1; + if n<3: + if cpt[k]>1: + vala[n]:=cpt[k]; +% label.top(decimal(n)&"--"&decimal(vala[n]),n*u*(1,0)); + else: + n:=n-1; + fi; + fi; + draw Projette(Fc[cpt[k]][1])--Projette(Fc[cpt[k]][2]);%withpen pencircle scaled0.25bp; + fi; + fi; + endfor; + if vala[1]<vala[2]: + draw Projette(Fc[vala[1]][2])--Projette(Fc[vala[1]][3]);% withpen pencircle scaled0.25; + draw Projette(Fc[vala[2]][1])--Projette(Fc[vala[2]][4]);% withpen pencircle scaled0.25; + else: + draw Projette(Fc[vala[1]][1])--Projette(Fc[vala[1]][4]);% withpen pencircle scaled0.25; + draw Projette(Fc[vala[2]][2])--Projette(Fc[vala[2]][3]);% withpen pencircle scaled0.25; + fi; +enddef; + + vardef AffichageObjetCalotte[]= + save _affi; + picture _affi; + color Fc[][];color cou[]; + tapj:=0; + for k=0 upto apj.@: + cpt[tapj]:=tapj; + Fc[tapj].nb:=OTFc.@[k].nb; + for l=1 upto Fc[tapj].nb: + Fc[tapj][l]:=OTFc.@[k][l]; + endfor; + Fc[tapj].iso:=OTFc.@[k].iso; + cou[tapj]:=if perso.@:scantokens(couleurperso) else: coul.@[k] fi; + ALT[tapj]:=ALT.@[k]; + Vue[tapj]:=Vue.@[k]; + tapj:=tapj+1; + endfor; + tapj:=tapj-1; + QS(0,tapj); + minvue:=4000; + for k=1 step 1 until tapj: + if cpt[k]>1: + if Vue[cpt[k]]: + if cpt[k]<minvue: + minvue:=cpt[k]; + fi; + fi; + fi; + endfor; + for k=0 upto 11: + draw for l=1 upto 2:%Fc[minvue+k*72].nb: + Projette(Fc[minvue+k*72][l])-- + endfor + cycle;% withpen pencircle scaled0.25bp; + draw for l=3 upto 4:%Fc[minvue+k*72].nb: + Projette(Fc[minvue+35+k*72][l])-- + endfor + cycle;% withpen pencircle scaled0.25bp; + endfor; +enddef; + vardef AffichagePfC[]= save _affi; picture _affi; |