jeudi 4 février 2016

Principe de l'oscilloscope cathodique : une réalisation de Thomas Söll

Les fichiers :
http://luque.gabrielle.perso.sfr.fr/physique/Brownsche-Roehre.pdf
http://luque.gabrielle.perso.sfr.fr/physique/Brownsche-Roehre.tex
http://luque.gabrielle.perso.sfr.fr/physique/pst-perspective.tex

Le fichier pst-perspective.tex qui est sur le CTAN génère une erreur lors de la compilation, c'est pourquoi j'ai placé en téléchargement la version que m'a communiquée Thomas. Il suffit de placer ce fichier dans le même répertoire que le fichier à compiler (LaTeX-> DVIPS-> ps2pdf).

5 février 2016 : Thomas a mis en ligne sur le serveur du CTAN, la nouvelle version de pst-perspective.

Voici le listing de l'oscilloscope cathodique :

\documentclass[pstricks,border=10pt,dvipsnames,distiller]{standalone}

\usepackage{amsmath,pst-circ,pst-coil,pst-perspective}

\begin{document}

\newcommand{\Zylinder}[9]{%  #1 L\"{a}nge, #2 Radius, #3 gradbegin, #4 gradend, #5 gradmidpoint
\pscustom[dimen=#9,fillstyle=gradient,gradbegin=#3,gradend=#4,gradmidpoint=#5,gradangle=90,linecolor=#6,linewidth=#7,linestyle=#8]{%
\psellipticarc(0,0)(!#2 #2 0.3 mul){180}{360}
\psellipticarcn(0,#1)(!#2 #2 0.3 mul){0}{-180}
\closepath
}
\psellipse[fillstyle=solid,fillcolor=#6,linestyle=none](0,#1)(!#2 #2 0.3 mul)
}
\begin{pspicture}[showgrid=false](-1,-1.25)(13,6)
\definecolor{Kristallblau}{rgb}{0.1176,0.5647,1}% Dodger blau
\definecolor{RandFarbe}{rgb}{0.1176,0.5647,1}%{0,0.75,1}% DeepSkyBlue

%%R\"{o}hre
\pscustom[fillstyle=gradient,gradbegin=cyan!20,gradend=white,gradmidpoint=0.45,gradangle=0]{%
\psellipticarcn(1.5,2.5)(0.35,1.5){270}{90}
\psline(8,4)(12,6)
\psline(12,-1)(8,1)
\closepath%
}
\psellipse[fillstyle=solid,fillcolor=Kristallblau!50,opacity=0.3,linewidth=0.4pt,linestyle=none](1.5,2.5)(0.35,1.5)
\psellipticarcn[linewidth=1pt](1.5,2.5)(0.35,1.5){270}{90}

%%Heiz
\pscoil[coilarm=0.075cm,coilwidth=3mm,coilheight=0.3,linewidth=0.5pt,linecolor=orange](2.5,2.2)(2.5,2.8)
\psline[arrowscale=1](2.5,2.8)(2.5,3)(0.5,3)
\psline[arrowscale=1](2.5,2.2)(2.5,2)(0.5,2)
\psellipse[fillstyle=solid,fillcolor=black](1.5,3)(0.03,0.04)
\psellipse[fillstyle=solid,fillcolor=black](1.5,2)(0.03,0.04)
\battery[labeloffset=0.85](0.5,2)(0.5,3){$U_{\text{H}}$}
\psline[arrowscale=1]{*-}(0.5,2)(0.5,0)
\battery[labeloffset=.85](4.5,0)(0.5,0){$U_{\text{B}}$}
\psline(4.5,0)(4.5,2)
\psline[arrowscale=1]{*-}(2,2)(2,1.5)(3.2,1.5)(3.2,2)


\rput{-90}(2.85,2.5){\Zylinder{0.75}{0.5}{black!90!cyan!80}{gray!10}{0.3}{black!90!cyan!80}{1pt}{none}{middle}}
\rput{-90}(2.85,2.5){%
\psellipse[fillstyle=gradient,gradbegin=black!90!cyan!80,gradend=gray!10,gradmidpoint=0.65,gradangle=90,linewidth=0.3pt,linecolor=black!85](0,0.75)(!0.48 dup 0.3 mul)}
\psframe[fillstyle=gradient,gradbegin=red!10,gradend=red!70,gradmidpoint=0.5,gradangle=0,linestyle=none,framearc=0.3](3.47,2.45)(4.5,2.55)
\rput{-90}(4.45,2.5){\Zylinder{0.1}{0.5}{black!90!cyan!80}{gray!10}{0.3}{black!90!cyan!80}{1pt}{none}{middle}}
\rput{-90}(4.45,2.5){%
\psellipse[fillstyle=gradient,gradbegin=black!90!cyan!80,gradend=gray!10,gradmidpoint=0.65,gradangle=90,linewidth=0.3pt,linecolor=black!85](0,0.1)(!0.2 dup 0.3 mul)}

\psboxTS[linejoin=1,linewidth=0.5pt](-0.5,5,2.25){1}{1.0}{0.15}{black!40}

\psframe[fillstyle=gradient,gradbegin=red!10,gradend=red!70,gradmidpoint=0.5,gradangle=0,linestyle=none,framearc=0.3](4.51,2.45)(5.4,2.55)

\pscustom[linewidth=1.1pt,linejoin=1]{%
\psellipticarcn(1.5,2.5)(0.35,1.5){270}{90}
\psline(8,4)(12,6)
\psline(12,-1)(8,1)
\closepath%
}

\psboxTS[linejoin=1,linewidth=0.5pt](-0.35,7,2){0.2}{1}{1}{black!40}

\rput{-90}(12,2.5){\Zylinder{.2}{3.5}{black!30!cyan!80}{gray!10}{0.3}{black!20!cyan!30}{1pt}{none}{middle}}
\pcline[linecolor=red!30,linewidth=1.2pt](5.4,2.5)(12.0,3.3)
\pcline[linecolor=red,linewidth=1.2pt,nodesepB=1.05](5.4,2.5)(12,3.3)
\psellipse[fillstyle=solid,fillcolor=black!30!SeaGreen,linestyle=none,linewidth=2pt](12,3.3)(0.05,0.08)

\psboxTS[linejoin=1,linewidth=0.5pt](0.35,7,2){0.2}{1}{1}{black!40}
\psboxTS[linejoin=1,linewidth=0.5pt](-0.5,5,2.75){1}{1.0}{0.15}{black!40}

\psline(2.6,2.72)(2.6,5)
\uput[90](2.6,5){A}
\psline(4.5,3)(4.5,5)
\uput[90](4.5,5){B}
\psline(5.5,3)(5.5,3.8)(6.3,5)
\uput[90](6.3,5){C}
\psline(7.335,1.9)(6.5,1.2)(6.5,0)
\uput[-90](6.5,0){D}

\end{pspicture}

\end{document} 

lundi 1 février 2016

Principe d'un moteur électrique rotatif illustré par Thomas Söll


Ce schéma très beau et très explicite a été réalisé par Thomas Söll avec PSTricks, le code LaTeX et le fichier pdf contenant toutes les images sont téléchargeables ici :

http://manuel.luque.perso.neuf.fr/Thomas.Soell/moteur/Elektromotor.pdf
http://manuel.luque.perso.neuf.fr/Thomas.Soell/moteur/Elektromotor.tex

La revue Jeunes Années éditée par les francs et franches camarades, a publié dans son numéro du Printemps-été 1981,  un montage de moteur électrique à réaliser soi-même avec des éléments très simples, avec des explications et des schémas très clairs. Cette revue ayant disparue depuis longtemps, je me permets de donner un lien permettant de télécharger cet article signé par Jean-Paul Mouvier et Christiane Neuville. Ayant expérimenté par moi-même la réalisation de ce moteur, je puis vous assurer que le montage est facile et que le moteur tourne !

http://luque.gabrielle.perso.sfr.fr/physique/moteur-jeunes-annees.pdf

Je donne ci-dessous le listing du code de Thomas, le code a été revu et mise-à-jour le 5 février 2016 : les changements de polarité du rotor (N,S) sont maintenant, bien nets.

\documentclass[pstricks,border=10pt,x11names]{standalone}

\usepackage{pst-circ,pst-grad,pst-slpe,pst-text}

\begin{document}
\DeclareFixedFont{\RM}{T1}{phv}{b}{n}{1cm}
\DeclareFixedFont{\RSS}{T1}{phv}{b}{n}{0.6cm}

\multido{\nB=30+10}{145}{%
\begin{pspicture}[showgrid=false](0,0)(12,9)
\definecolor{RotTS}{HTML}{CC0000}% dunkelrot
\definecolor{GruenTS}{HTML}{006600}%{0,0.75,1}% gr\"{u}n
\definecolor{GruenT}{cmyk}{0.92,0,0.87,0.09}%{0,0.75,1}% gr\"{u}n
%------------------------------------------------------------------------
\psframe[fillstyle=solid,fillcolor=RotTS,linestyle=none](0,2)(6,8)
\psframe[fillstyle=solid,fillcolor=GruenTS,linestyle=none](6,2)(12,8)
\pscircle[fillstyle=solid,fillcolor=white,linestyle=none](6,5){3.3}
%------------------------------------------------------------------------
\rput(1,5){\Large\textcolor{white}{\RM N}}
\rput(11,5){\Large\textcolor{white}{\RM S}}
%------------------------------------------------------------------------
\pstVerb{/wi \nB\space def wi cos 0.1 lt %
{wi sin abs 0.18 ge {/kwa 6 def /kwi wi 180 mod 9.9 sub def} {/kwa 0 def /kwi 0.1 def} ifelse}%
{wi sin abs 0.2 gt {/kwa 6 def /kwi wi 180 mod 9.9 sub def} {/kwa 0 def /kwi 0.1 def} ifelse} ifelse}%
\pstVerb{/wi \nB\space def wi sin 0 eq {/soc 0 def /asz 0 def /dx 0 def} {/soc 1 def /asz 120 def /dx wi 50 mod 300 div def} ifelse}%
\pstVerb{/wi \nB\space def wi sin 0 eq {/ca 0.21 def /cb 0.2 def} {/ca 0.99 def /cb 0.98 def} ifelse}%
\pstVerb{/wi \nB\space def wi cos 0 lt %
{wi sin 0 lt {/gw 180 def /so 0 def /sob 1 def /vz 1 neg def} {/gw 0 def /so 1 def /sob 0 def /vz 1 def} ifelse} %
{wi sin 0 le {/gw 180 def /so 0 def /sob 1 def /vz 1 neg def} {/gw 0 def /so 1 def /sob 0 def /vz 1 def} ifelse} ifelse}%
\rput{\nB}(6,5){%
\pnode(3;30){A}
\pnode(3;150){B}
\pnode(3;210){C}
\pnode(3;-30){D}
\psset{slopesteps=500,slopecolors=%
0 .9 .1 .1 %
.4 .7 .25 .25 %
.5 .9 .9 .9 %
.6 .25 .7 .25 %
1 .1 .9 .1 5}%
\pscustom[fading,startfading=!cb,endfading=!ca,linestyle=none,fillstyle=slopes,gradmidpoint=0,slopeangle=!gw]{%,slopesteps=5
\psarc(0,0){3}{-30}{30}%
\psline([nodesep=-0.3]A)([nodesep=-0.3]A|[offset=-0.7]A)%
\psline([nodesep=0.3]B|[offset=-0.7]B)([nodesep=0.3]B)%
\psarc(0,0){3}{150}{210}%
\psline([nodesep=0.3]C)([nodesep=0.3]C|[offset=0.7]C)%
\psline([nodesep=-0.3]D|[offset=0.7]D)([nodesep=-0.3]D)%
\closepath%
}%
\pscircle[linestyle=none,fillstyle=solid,fillcolor=black!75](0,0){0.615}%
\pscustom[linestyle=none,fillstyle=solid,fillcolor=cyan!20]{%
\psarc(0,0){0.45}{10}{170}%
\psarcn(0,0){0.6}{170}{10}%
\closepath%
}%
\pscustom[linestyle=none,fillstyle=solid,fillcolor=cyan!20]{%
\psarc(0,0){0.45}{190}{350}%
\psarcn(0,0){0.6}{350}{190}%
\closepath%
}%
\psline[linewidth=4pt,linecolor=blue!65]{c-c}(0.5,-0.2)(0.53,-0.8)
\psline[linewidth=4pt,linecolor=blue!65]{c-c}(-0.5,0.2)(-0.53,0.8)
\psforeach{\nA}{0.8, 1.1, 1.4, 1.7, 2.0, -0.9, -1.2, -1.5, -1.8, -2.1}{%
\psline[linewidth=4pt,linecolor=blue!65]{c-c}(\nA,0.8)(!\nA\space 0.1 add -0.8)%
}%
\rput{!gw}(0.515,-0.5){\pcline[linewidth=1.5pt,arrowinset=0.05,arrowlength=1.8,arrowsize=0.12,linecolor=Goldenrod1,nodesep=0.1,strokeopacity=!soc]{->}(-0.015,0.3)(0.015,-0.3)}%
\rput{!gw}(-0.515,0.5){\pcline[linewidth=1.5pt,arrowinset=0.05,arrowlength=1.8,arrowsize=0.12,linecolor=Goldenrod1,nodesep=0.1,strokeopacity=!soc]{->}(-0.015,0.3)(0.015,-0.3)}%
\psforeach{\nA}{-0.85, -1.15, -1.45, -1.75, -2.05, 0.85, 1.15, 1.45, 1.75, 2.05}{%
\rput{!gw}(\nA,0){%
\pcline[linewidth=1.1pt,linestyle=dotted,dotsep=3pt,linecolor=Goldenrod1,nodesepA=0.05,nodesepB=0.05](!0.8016 dx 0.7 mul vz mul sub 93.576 PtoC)(!0.8016 dx 0.7 mul vz mul add 273.576 PtoC)}%
}%
\rput{-\nB}(2.65;180){\pscharpath[linestyle=none,fillstyle=solid,fillcolor=white,opacity=!so]{\RSS N}}%
\rput{-\nB}(2.65;0){\pscharpath[linestyle=none,fillstyle=solid,fillcolor=white,opacity=!so]{\RSS S}}%
\rput{-\nB}(2.65;0){\pscharpath[linestyle=none,fillstyle=solid,fillcolor=white,opacity=!sob]{\RSS N}}%
\rput{-\nB}(2.65;180){\pscharpath[linestyle=none,fillstyle=solid,fillcolor=white,opacity=!sob]{\RSS S}}%
\rput{!gw}(-1.45,0){%
\pcline[linewidth=1.5pt,arrowinset=0.05,arrowlength=1.8,arrowsize=0.12,linecolor=Goldenrod1,nodesep=0.3,strokeopacity=!soc]{->}(-0.05,0.8)(0.05,-0.8)}%
\rput{!gw}(1.45,0){%
\pcline[linewidth=1.5pt,arrowinset=0.05,arrowlength=1.8,arrowsize=0.12,linecolor=Goldenrod1,nodesep=0.3,strokeopacity=!soc]{->}(-0.05,0.8)(0.05,-0.8)}%
}%
\psframe[fillstyle=solid,fillcolor=black!90,linestyle=none](6.6,4.9)(7,5.1)
\psframe[fillstyle=solid,fillcolor=black!90,linestyle=none](5.0,4.9)(5.4,5.1)
\psline[linewidth=1pt](5,5)(4.75,5)(4.75,1)
\rput{0}(6,5){\psarc[linewidth=1pt,linecolor=Goldenrod1,linestyle=dotted,dotsep=3pt](0,0){0.525}{!kwa}{!kwi}}%
\rput{0}(6,5){\psarc[linewidth=1pt,linecolor=Goldenrod1,linestyle=dotted,dotsep=3pt](0,0){0.525}{!kwa 180 add}{!kwi 180 add}}%
\psline[linewidth=1pt](7,5)(7.25,5)(7.25,1)
\battery[labeloffset=-.85](4.75,1)(7.25,1){}
\psline[linewidth=1pt,linecolor=Goldenrod1,linestyle=dotted,dotsep=3pt](!5.5 dx sub 5)(4.75,5)(4.75,1)(!5.8 dx add 1)
\psline[linewidth=1pt,linecolor=Goldenrod1,linestyle=dotted,dotsep=3pt](!6.7 dx sub 5)(7.25,5)(7.25,1)(!6.15 dx add 1)
\pscircle[linestyle=none,fillstyle=solid,fillcolor=black!90](6,5){0.15}
\end{pspicture}
}
\end{document}

vendredi 29 janvier 2016

Réflexion d’ondes transversales sur une extrémité libre ou fixe

Ces schémas sont inspirés de la figure 1-18(page 20) de l’ouvrage Ondes, optique et physique moderne de Resnick-Halliday, publié par InterEditions en 1980. Une première version de ces animations a été réalisée conjointement avec Gilg Jürgen et mis en ligne le 5 octobre 2011 sur :



Les explications sont sur le fichier :
Dans le pdf les animations ont été réalisées avec le package animate d'Alexander Grahn.
Voici différentes animations au format Gif,  avec quelques variations, qui illustrent les 2 cas et le procédé utilisé.
La construction de l’onde réfléchie pour l’extrémité libre, s’effectue par la superposition de l’onde incidente et d’une onde fictive de même signe se propageant en sens inverse de l’autre côté de l’extrémité libre et celle de l’onde réfléchie pour l’extrémité fixe par superposition de l’onde incidente et d’une onde fictive de signe opposée et se propageant en sens inverse de l’autre côté de l’obstacle.
Pour reprendre les animations,  il faut rafraîchir la page du navigateur : touche F5.




dimanche 10 janvier 2016

Pantographe : Bart x 3


Les fichiers : LaTeX, pdf et datas de Bart :
http://manuel.luque.perso.neuf.fr/pantographe/bart-pantographe.zip

 En utilisant \pscircle au lieu de \psdot pour dessiner les axes et les trous, ceux-ci semblent mieux rester à leurs places respectives sur les réglettes.
 http://manuel.luque.perso.neuf.fr/pantographe/pantographe-bart2.zip
 En voici le code le reste est sans changement :

\documentclass{article}
% (-4,-1)(10,7)
\usepackage[paperwidth=14cm,paperheight=9cm,hmargin={0cm,0cm},vmargin={0cm,0cm},dvips]{geometry}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage[garamond]{mathdesign}
\usepackage{pst-node,pst-math,pst-plot}
\definecolor{bois}{rgb}{0.75,0.63,0.52}
%\definecolor{bois}{rgb}{0.9,0.8,0.71}
%\definecolor{nervures}{rgb}{0.62,0.165,0.025}
\definecolor{nervures}{rgb}{0.75,0.63,0.52}
\def\DATASESPARLUETTE{% & avec la translation (1 -0.5) et la réduction (0.2)
         /dat0 [(bart-0-114.dat) run]{0.2 mulv} papply2d {1 -0.5 addv} papply2d def
         /dat1 [(bart-1-17.dat) run] {0.2 mulv} papply2d {1 -0.5 addv} papply2d def
         /dat2 [(bart-2-19.dat) run] {0.2 mulv} papply2d {1 -0.5 addv} papply2d def
         /dat3 [(bart-3-31.dat) run] {0.2 mulv} papply2d {1 -0.5 addv} papply2d def
         /dat4 [(bart-4-28.dat) run]{0.2 mulv} papply2d {1 -0.5 addv} papply2d def
         /dat5 [(bart-5-17.dat) run] {0.2 mulv} papply2d {1 -0.5 addv} papply2d def
         /dat6 [(bart-6-33.dat) run] {0.2 mulv} papply2d {1 -0.5 addv} papply2d def
         /dat7 [(bart-7-17.dat) run]{0.2 mulv} papply2d {1 -0.5 addv} papply2d def
         /dat8 [(bart-8-9.dat) run] {0.2 mulv} papply2d {1 -0.5 addv} papply2d def
         /dat9 [(bart-9-9.dat) run] {0.2 mulv} papply2d {1 -0.5 addv} papply2d def
         /dat10 [(bart-10-15.dat) run] {0.2 mulv} papply2d {1 -0.5 addv} papply2d def
         /dat11 [(bart-11-17.dat) run] {0.2 mulv} papply2d {1 -0.5 addv} papply2d def
         /dat0' dat0 {Coeff mulv} papply2d def
         /dat1' dat1 {Coeff mulv} papply2d def
         /dat2' dat2 {Coeff mulv} papply2d def
         /dat3' dat3 {Coeff mulv} papply2d def
         /dat4' dat4 {Coeff mulv} papply2d def
         /dat5' dat5 {Coeff mulv} papply2d def
         /dat6' dat6 {Coeff mulv} papply2d def
         /dat7' dat7 {Coeff mulv} papply2d def
         /dat8' dat8 {Coeff mulv} papply2d def
         /dat9' dat9 {Coeff mulv} papply2d def
         /dat10' dat10 {Coeff mulv} papply2d def
         /dat11' dat11 {Coeff mulv} papply2d def
}%
\def\reglette{\psframe[framearc=1,fillstyle=solid,fillcolor=bois,linecolor=black,linewidth=0.01]%
                       (! L_ 2 div neg 0.2 sub -.15)(! L_ 2 div 0.2 add .15)
%              \psdots[dotstyle=o,dotscale=1.25](!L_ 0.5 0.5 sub mul neg 0)
%                                               (!L_ 0.5 0.5 sub mul neg 0)
%                                               (!L_ 0.5 0.3333 sub mul neg 0)
%                                               (!L_ 0.5 0.25 sub mul neg 0)
%                                               (!L_ 0.5 0.2 sub mul neg 0)
\multido{\i=1+1}{4}{%
    \pscircle[fillstyle=solid,linewidth=0.5\pslinewidth](!L_ 0.5 0.5 \i\space div sub mul neg 0){0.075}}}%
\def\code#1{
/Coeff 3 def % facteur d'agrandissement
%% macro pst-solides3d.pro
%%%%% ### mulv ###
%% syntaxe : u a mulv --> au
/mulv {   %% xA, yA, a
   dup          %% xA, yA, a, a
   3 1 roll     %% xA, a, yA, a
   mul 3 1 roll %% ayA, xA, a
   mul exch
} def
%%%%% ### addv ###
%% syntaxe : u v addv --> u+v
/addv {         %% xA yA xB yB
   3 1 roll     %% xA yB yA xB
   4 1 roll     %% xB xA yB yA
   add 3 1 roll %% yB+yA xB xA
   add exch
} def
%%%%% ### papply2D ###
%% syntaxe : [A1 ... An] {f} papply2d --> [f(A1) ... f(An)]
/papply2d {
3 dict begin
   /fonction exch def
   /liste exch def
   /i 0 def
   [
   liste length 2 idiv {
      liste i get
      liste i 1 add get
      fonction
      /i i 2 add store
   } repeat
   counttomark
   0 eq
      {pop}
      {]}
   ifelse
end
} def
\DATASESPARLUETTE
% les trous pour les facteurs 2 3 4
% OA=AM' triangle isocèle
/L_ 5 def % AB=l1 OA=L_
/l2 L_ Coeff div def
/l1 L_ l2 sub def
/Contour2 #1 def
Contour2 {Coeff mulv} papply2d /Contour2' exch def
%/l2 L_ l1 sub def %  BM=l2
% OBM triangle isocèle
% MCM' triangle isocèle
%/xM 2.75 def /yM 0 def
/xM Contour2 \i\space get def
/yM Contour2 \i\space 1 add get def
/OM xM dup mul yM dup mul add sqrt def
%/Coeff L_ l2 div def
/x' Coeff xM mul def
/y' Coeff yM mul def
/OH x' dup mul y' dup mul add sqrt 2 div def
OH L_ ge {/OH L_ def}if
/alpha OH L_ div acos def
/beta yM xM atan def
/gamma alpha beta add def
/delta 180 alpha sub beta add def
/xA L_ gamma cos mul def
/yA L_ gamma sin mul def
/xB xA Coeff div def
/yB yA Coeff div def
/xC xA x' xA sub Coeff div add def
/yC yA y' yA sub Coeff div add def
/uxMB xB xM sub l2 div def
/uyMB yB yM sub l2 div def
/xB' xB uxMB l1 mul add def
/yB' yB uyMB l1 mul add def
/uxOA xA L_ div def
/uyOA yA L_ div def
/xC' xC uxOA l2 mul add def
/yC' yC uyOA l2 mul add def
% les milieux des barres
% réglette OA = n°1
/xM1 xA 2 div def /yM1 yA 2 div def
% réglette AM' = n°2
/xM2 xA x' add 2 div def
/yM2 yA y' add 2 div def
% réglette MB' = n°3
/xM3 xM xB' add 2 div def
/yM3 yM yB' add 2 div def
% réglette MC' = n°4
/xM4 xM xC' add 2 div def
/yM4 yM yC' add 2 div def
 }
\begin{document}
\begin{center}
% le dessin initial
\multido{\i=0+1}{5}{
\begin{pspicture}(-4,-2)(10,7)
\psgrid[subgriddiv=0,gridcolor=black,griddots=10,gridlabels=0pt]%%
\psframe(-4,-2)(10,7)
\rput(3,6.5){\huge Pantographe : Bart $\times3$}
\pstVerb{\code{dat3}}%
\listplot[fillstyle=solid,fillcolor=yellow]{dat0 aload pop}
\listplot[fillstyle=solid,fillcolor=white]{dat3 aload pop}
\listplot[fillstyle=solid,fillcolor=white]{dat4 aload pop}
\listplot[fillstyle=solid,fillcolor=black]{dat1 aload pop}
\listplot[fillstyle=solid,fillcolor=black]{dat2 aload pop}
\multido{\I=0+1}{10}{%
\listplot{dat\I\space aload pop}}%
\end{pspicture}\newpage}
% le contour du visage
\def\nFrames{114}%
\multido{\i=0+2}{\nFrames}{%
\begin{pspicture}(-4,-2)(10,7)
\psgrid[subgriddiv=0,gridcolor=black,griddots=10,gridlabels=0pt]%
\psframe(-4,-2)(10,7)
\rput(3,6.5){\huge Pantographe : $\times3$}
\pstVerb{\code{dat0}}%
\pnode(! xA yA){A}
\pnode(!xB yB){B}
\pnode(!xB' yB'){B'}
\pnode(!xC yC){C}
\pnode(!xC' yC'){C'}
\pnode(!xM yM){M}
\pnode(!x' y'){M'}
\pnode(!xM1 yM1){M1}
\pnode(!xM2 yM2){M2}
\pnode(!xM3 yM3){M3}
\pnode(!xM4 yM4){M4}
\pnode(0,0){O}
% ventouse
\pscircle[fillstyle=solid,fillcolor=cyan!10,linewidth=0.01](0,0){0.5}
\listplot[fillstyle=solid,fillcolor=yellow]{dat0 aload pop}
\listplot[fillstyle=solid,fillcolor=white]{dat3 aload pop}
\listplot[fillstyle=solid,fillcolor=white]{dat4 aload pop}
\listplot[fillstyle=solid,fillcolor=black]{dat1 aload pop}
\listplot[fillstyle=solid,fillcolor=black]{dat2 aload pop}
\multido{\I=0+1}{10}{%
\listplot{dat\I\space aload pop}}%
\listplot[fillstyle=solid,fillcolor=black]{dat1 aload pop}
\listplot[fillstyle=solid,fillcolor=black]{dat2 aload pop}
\listplot[linecolor=red]{Contour2' 0 2 getinterval aload pop 2 copy Contour2' 0 \i\space 2 add getinterval aload pop}
\rput{!gamma}(M1){\reglette}
\rput{!delta}(M3){\reglette}
\rput{!delta 180 add}(M2){\reglette}% le stylo
\rput{!gamma 180 add}(M4){\reglette}
% les trous aux extrémités des réglettes
\psset{fillstyle=solid,linewidth=0.5\pslinewidth}
\pscircle(0,0){0.075}\pscircle(A){0.075}
\pscircle[fillcolor=blue](O){0.075}
\pscircle[fillcolor=blue](A){0.075}
\pscircle[fillcolor=blue](B){0.075}
\pscircle[fillcolor=blue](C){0.075}
\pscircle[fillcolor=red](M'){0.075}
\pscircle[fillcolor=red](M){0.075}
\end{pspicture}\newpage
}%
% l'oeil gauche
\multido{\i=0+2}{17}{%
\begin{pspicture}(-4,-2)(10,7)
\psgrid[subgriddiv=0,gridcolor=black,griddots=10,gridlabels=0pt]%
\psframe(-4,-2)(10,7)
\rput(3,6.5){\huge Pantographe : $\times3$}
\pstVerb{\code{dat1}}%
\pnode(! xA yA){A}
\pnode(!xB yB){B}
\pnode(!xB' yB'){B'}
\pnode(!xC yC){C}
\pnode(!xC' yC'){C'}
\pnode(!xM yM){M}
\pnode(!x' y'){M'}
\pnode(!xM1 yM1){M1}
\pnode(!xM2 yM2){M2}
\pnode(!xM3 yM3){M3}
\pnode(!xM4 yM4){M4}
\pnode(0,0){O}
% ventouse
\pscircle[fillstyle=solid,fillcolor=cyan!10,linewidth=0.01](0,0){0.5}
\listplot[fillstyle=solid,fillcolor=yellow]{dat0 aload pop}
\listplot[fillstyle=solid,fillcolor=white]{dat3 aload pop}
\listplot[fillstyle=solid,fillcolor=white]{dat4 aload pop}
\listplot[fillstyle=solid,fillcolor=black]{dat1 aload pop}
\listplot[fillstyle=solid,fillcolor=black]{dat2 aload pop}
\multido{\I=0+1}{10}{%
\listplot{dat\I\space aload pop}}%
\listplot[fillstyle=solid,fillcolor=black]{dat1 aload pop}
\listplot[fillstyle=solid,fillcolor=black]{dat2 aload pop}
\listplot[linecolor=red]{dat0' aload pop}
\listplot[linecolor=red]{Contour2' 0 2 getinterval aload pop 2 copy Contour2' 0 \i\space 2 add getinterval aload pop}
\rput{!gamma}(M1){\reglette}
\rput{!delta}(M3){\reglette}
\rput{!delta 180 add}(M2){\reglette}% le stylo
\rput{!gamma 180 add}(M4){\reglette}
% les trous aux extrémités des réglettes
\psset{fillstyle=solid,linewidth=0.5\pslinewidth}
\pscircle(0,0){0.075}\pscircle(A){0.075}
\pscircle[fillcolor=blue](O){0.075}
\pscircle[fillcolor=blue](A){0.075}
\pscircle[fillcolor=blue](B){0.075}
\pscircle[fillcolor=blue](C){0.075}
\pscircle[fillcolor=red](M){0.075}
\pscircle[fillcolor=red](M'){0.075}
\end{pspicture}\newpage
}%
% l'oeil droit
\multido{\i=0+2}{19}{
\begin{pspicture}(-4,-2)(10,7)
\psgrid[subgriddiv=0,gridcolor=black,griddots=10,gridlabels=0pt]%%
\psframe(-4,-2)(10,7)
\rput(3,6.5){\huge Pantographe : $\times3$}
\pstVerb{\code{dat2}}%
\pnode(! xA yA){A}
\pnode(!xB yB){B}
\pnode(!xB' yB'){B'}
\pnode(!xC yC){C}
\pnode(!xC' yC'){C'}
\pnode(!xM yM){M}
\pnode(!x' y'){M'}
\pnode(!xM1 yM1){M1}
\pnode(!xM2 yM2){M2}
\pnode(!xM3 yM3){M3}
\pnode(!xM4 yM4){M4}
\pnode(0,0){O}
% ventouse
\pscircle[fillstyle=solid,fillcolor=cyan!10,linewidth=0.01](0,0){0.5}
\listplot[fillstyle=solid,fillcolor=yellow]{dat0 aload pop}
\listplot[fillstyle=solid,fillcolor=white]{dat3 aload pop}
\listplot[fillstyle=solid,fillcolor=white]{dat4 aload pop}
\listplot[fillstyle=solid,fillcolor=black]{dat1 aload pop}
\listplot[fillstyle=solid,fillcolor=black]{dat2 aload pop}
\multido{\I=0+1}{10}{%
\listplot{dat\I\space aload pop}}%
\listplot[fillstyle=solid,fillcolor=black]{dat1 aload pop}
\listplot[fillstyle=solid,fillcolor=black]{dat2 aload pop}
\listplot[linecolor=red]{dat0' aload pop}
\listplot[linecolor=red]{dat1' aload pop}
\listplot[linecolor=red]{Contour2' 0 2 getinterval aload pop Contour2' 0 \i\space 2 add getinterval aload pop}
\rput{!gamma}(M1){\reglette}
\rput{!delta}(M3){\reglette}
\rput{!delta 180 add}(M2){\reglette}% le stylo
\rput{!gamma 180 add}(M4){\reglette}
% les trous aux extrémités des réglettes
\psset{fillstyle=solid,linewidth=0.5\pslinewidth}
\pscircle(0,0){0.075}\pscircle(A){0.075}
\pscircle[fillcolor=blue](O){0.075}
\pscircle[fillcolor=blue](A){0.075}
\pscircle[fillcolor=blue](B){0.075}
\pscircle[fillcolor=blue](C){0.075}
\pscircle[fillcolor=red](M){0.075}
\pscircle[fillcolor=red](M'){0.075}
\end{pspicture}\newpage
}%
% verre lunette gauche
\multido{\i=0+2}{31}{
\begin{pspicture}(-4,-2)(10,7)
\psgrid[subgriddiv=0,gridcolor=black,griddots=10,gridlabels=0pt]%%
\psframe(-4,-2)(10,7)
\rput(3,6.5){\huge Pantographe : $\times3$}
\pstVerb{\code{dat3}}%
\pnode(! xA yA){A}
\pnode(!xB yB){B}
\pnode(!xB' yB'){B'}
\pnode(!xC yC){C}
\pnode(!xC' yC'){C'}
\pnode(!xM yM){M}
\pnode(!x' y'){M'}
\pnode(!xM1 yM1){M1}
\pnode(!xM2 yM2){M2}
\pnode(!xM3 yM3){M3}
\pnode(!xM4 yM4){M4}
\pnode(0,0){O}
% ventouse
\pscircle[fillstyle=solid,fillcolor=cyan!10,linewidth=0.01](0,0){0.5}
\listplot[fillstyle=solid,fillcolor=yellow]{dat0 aload pop}
\listplot[fillstyle=solid,fillcolor=white]{dat3 aload pop}
\listplot[fillstyle=solid,fillcolor=white]{dat4 aload pop}
\listplot[fillstyle=solid,fillcolor=black]{dat1 aload pop}
\listplot[fillstyle=solid,fillcolor=black]{dat2 aload pop}
\multido{\I=0+1}{10}{%
\listplot{dat\I\space aload pop}}%
\listplot[fillstyle=solid,fillcolor=black]{dat1 aload pop}
\listplot[fillstyle=solid,fillcolor=black]{dat2 aload pop}
\listplot[linecolor=red]{dat0' aload pop}
\listplot[linecolor=red,fillstyle=solid,fillcolor=red]{dat1' aload pop}
\listplot[linecolor=red,fillstyle=solid,fillcolor=red]{dat2' aload pop}
\listplot[linecolor=red]{Contour2' 0 2 getinterval aload pop Contour2' 0 \i\space 2 add getinterval aload pop}
\rput{!gamma}(M1){\reglette}
\rput{!delta}(M3){\reglette}
\rput{!delta 180 add}(M2){\reglette}% le stylo
\rput{!gamma 180 add}(M4){\reglette}
% les trous aux extrémités des réglettes
\psset{fillstyle=solid,linewidth=0.5\pslinewidth}
\pscircle(0,0){0.075}\pscircle(A){0.075}
\pscircle[fillcolor=blue](O){0.075}
\pscircle[fillcolor=blue](A){0.075}
\pscircle[fillcolor=blue](B){0.075}
\pscircle[fillcolor=blue](C){0.075}
\pscircle[fillcolor=red](M){0.075}
\pscircle[fillcolor=red](M'){0.075}
\end{pspicture}\newpage
}%
% verre lunette gauche
\multido{\i=0+2}{28}{
\begin{pspicture}(-4,-2)(10,7)
\psgrid[subgriddiv=0,gridcolor=black,griddots=10,gridlabels=0pt]%%
\psframe(-4,-2)(10,7)
\rput(3,6.5){\huge Pantographe : $\times3$}
\pstVerb{\code{dat4}}%
\pnode(! xA yA){A}
\pnode(!xB yB){B}
\pnode(!xB' yB'){B'}
\pnode(!xC yC){C}
\pnode(!xC' yC'){C'}
\pnode(!xM yM){M}
\pnode(!x' y'){M'}
\pnode(!xM1 yM1){M1}
\pnode(!xM2 yM2){M2}
\pnode(!xM3 yM3){M3}
\pnode(!xM4 yM4){M4}
\pnode(0,0){O}
% ventouse
\pscircle[fillstyle=solid,fillcolor=cyan!10,linewidth=0.01](0,0){0.5}
\listplot[fillstyle=solid,fillcolor=yellow]{dat0 aload pop}
\listplot[fillstyle=solid,fillcolor=white]{dat3 aload pop}
\listplot[fillstyle=solid,fillcolor=white]{dat4 aload pop}
\listplot[fillstyle=solid,fillcolor=black]{dat1 aload pop}
\listplot[fillstyle=solid,fillcolor=black]{dat2 aload pop}
\multido{\I=0+1}{10}{%
\listplot{dat\I\space aload pop}}%
\listplot[fillstyle=solid,fillcolor=black]{dat1 aload pop}
\listplot[fillstyle=solid,fillcolor=black]{dat2 aload pop}
\listplot[linecolor=red]{dat0' aload pop}
\listplot[linecolor=red,fillstyle=solid,fillcolor=red]{dat1' aload pop}
\listplot[linecolor=red,fillstyle=solid,fillcolor=red]{dat2' aload pop}
\listplot[linecolor=red]{dat3' aload pop}
\listplot[linecolor=red]{Contour2' 0 2 getinterval aload pop Contour2' 0 \i\space 2 add getinterval aload pop}
\rput{!gamma}(M1){\reglette}
\rput{!delta}(M3){\reglette}
\rput{!delta 180 add}(M2){\reglette}% le stylo
\rput{!gamma 180 add}(M4){\reglette}
% les trous aux extrémités des réglettes
\psset{fillstyle=solid,linewidth=0.5\pslinewidth}
\pscircle(0,0){0.075}\pscircle(A){0.075}
\pscircle[fillcolor=blue](O){0.075}
\pscircle[fillcolor=blue](A){0.075}
\pscircle[fillcolor=blue](B){0.075}
\pscircle[fillcolor=blue](C){0.075}
\pscircle[fillcolor=red](M){0.075}
\pscircle[fillcolor=red](M'){0.075}
\end{pspicture}\newpage
}%
% nez
\multido{\i=0+2}{17}{
\begin{pspicture}(-4,-2)(10,7)
\psgrid[subgriddiv=0,gridcolor=black,griddots=10,gridlabels=0pt]%%
\psframe(-4,-2)(10,7)
\rput(3,6.5){\huge Pantographe : $\times3$}
\pstVerb{\code{dat5}}%
\pnode(! xA yA){A}
\pnode(!xB yB){B}
\pnode(!xB' yB'){B'}
\pnode(!xC yC){C}
\pnode(!xC' yC'){C'}
\pnode(!xM yM){M}
\pnode(!x' y'){M'}
\pnode(!xM1 yM1){M1}
\pnode(!xM2 yM2){M2}
\pnode(!xM3 yM3){M3}
\pnode(!xM4 yM4){M4}
\pnode(0,0){O}
% ventouse
\pscircle[fillstyle=solid,fillcolor=cyan!10,linewidth=0.01](0,0){0.5}
\listplot[fillstyle=solid,fillcolor=yellow]{dat0 aload pop}
\listplot[fillstyle=solid,fillcolor=white]{dat3 aload pop}
\listplot[fillstyle=solid,fillcolor=white]{dat4 aload pop}
\listplot[fillstyle=solid,fillcolor=black]{dat1 aload pop}
\listplot[fillstyle=solid,fillcolor=black]{dat2 aload pop}
\multido{\I=0+1}{10}{%
\listplot{dat\I\space aload pop}}%
\listplot[fillstyle=solid,fillcolor=black]{dat1 aload pop}
\listplot[fillstyle=solid,fillcolor=black]{dat2 aload pop}
\listplot[linecolor=red]{dat0' aload pop}
\listplot[linecolor=red,fillstyle=solid,fillcolor=red]{dat1' aload pop}
\listplot[linecolor=red,fillstyle=solid,fillcolor=red]{dat2' aload pop}
\listplot[linecolor=red]{dat3' aload pop}
\listplot[linecolor=red]{dat4' aload pop}
\listplot[linecolor=red]{Contour2' 0 2 getinterval aload pop Contour2' 0 \i\space 2 add getinterval aload pop}
\rput{!gamma}(M1){\reglette}
\rput{!delta}(M3){\reglette}
\rput{!delta 180 add}(M2){\reglette}% le stylo
\rput{!gamma 180 add}(M4){\reglette}
% les trous aux extrémités des réglettes
\psset{fillstyle=solid,linewidth=0.5\pslinewidth}
\pscircle(0,0){0.075}\pscircle(A){0.075}
\pscircle[fillcolor=blue](O){0.075}
\pscircle[fillcolor=blue](A){0.075}
\pscircle[fillcolor=blue](B){0.075}
\pscircle[fillcolor=blue](C){0.075}
\pscircle[fillcolor=red](M){0.075}
\pscircle[fillcolor=red](M'){0.075}
\end{pspicture}\newpage
}%
% contour externe de l'oreille
\multido{\i=0+2}{33}{
\begin{pspicture}(-4,-2)(10,7)
\psgrid[subgriddiv=0,gridcolor=black,griddots=10,gridlabels=0pt]%%
\psframe(-4,-2)(10,7)
\rput(3,6.5){\huge Pantographe : $\times3$}
\pstVerb{\code{dat6}}%
\pnode(! xA yA){A}
\pnode(!xB yB){B}
\pnode(!xB' yB'){B'}
\pnode(!xC yC){C}
\pnode(!xC' yC'){C'}
\pnode(!xM yM){M}
\pnode(!x' y'){M'}
\pnode(!xM1 yM1){M1}
\pnode(!xM2 yM2){M2}
\pnode(!xM3 yM3){M3}
\pnode(!xM4 yM4){M4}
\pnode(0,0){O}
% ventouse
\pscircle[fillstyle=solid,fillcolor=cyan!10,linewidth=0.01](0,0){0.5}
\listplot[fillstyle=solid,fillcolor=yellow]{dat0 aload pop}
\listplot[fillstyle=solid,fillcolor=white]{dat3 aload pop}
\listplot[fillstyle=solid,fillcolor=white]{dat4 aload pop}
\listplot[fillstyle=solid,fillcolor=black]{dat1 aload pop}
\listplot[fillstyle=solid,fillcolor=black]{dat2 aload pop}
\multido{\I=0+1}{10}{%
\listplot{dat\I\space aload pop}}%
\listplot[fillstyle=solid,fillcolor=black]{dat1 aload pop}
\listplot[fillstyle=solid,fillcolor=black]{dat2 aload pop}
\listplot[linecolor=red]{dat0' aload pop}
\listplot[linecolor=red,fillstyle=solid,fillcolor=red]{dat1' aload pop}
\listplot[linecolor=red,fillstyle=solid,fillcolor=red]{dat2' aload pop}
\listplot[linecolor=red]{dat3' aload pop}
\listplot[linecolor=red]{dat4' aload pop}
\listplot[linecolor=red]{dat5' aload pop}
\listplot[linecolor=red]{Contour2' 0 2 getinterval aload pop Contour2' 0 \i\space 2 add getinterval aload pop}
\rput{!gamma}(M1){\reglette}
\rput{!delta}(M3){\reglette}
\rput{!delta 180 add}(M2){\reglette}% le stylo
\rput{!gamma 180 add}(M4){\reglette}
% les trous aux extrémités des réglettes
\psset{fillstyle=solid,linewidth=0.5\pslinewidth}
\pscircle(0,0){0.075}\pscircle(A){0.075}
\pscircle[fillcolor=blue](O){0.075}
\pscircle[fillcolor=blue](A){0.075}
\pscircle[fillcolor=blue](B){0.075}
\pscircle[fillcolor=blue](C){0.075}
\pscircle[fillcolor=red](M){0.075}
\pscircle[fillcolor=red](M'){0.075}
\end{pspicture}\newpage
}%
% contour interne de l'oreille
\multido{\i=0+2}{17}{
\begin{pspicture}(-4,-2)(10,7)
\psgrid[subgriddiv=0,gridcolor=black,griddots=10,gridlabels=0pt]%%
\psframe(-4,-2)(10,7)
\rput(3,6.5){\huge Pantographe : $\times3$}
\pstVerb{\code{dat7}}%
\pnode(! xA yA){A}
\pnode(!xB yB){B}
\pnode(!xB' yB'){B'}
\pnode(!xC yC){C}
\pnode(!xC' yC'){C'}
\pnode(!xM yM){M}
\pnode(!x' y'){M'}
\pnode(!xM1 yM1){M1}
\pnode(!xM2 yM2){M2}
\pnode(!xM3 yM3){M3}
\pnode(!xM4 yM4){M4}
\pnode(0,0){O}
% ventouse
\pscircle[fillstyle=solid,fillcolor=cyan!10,linewidth=0.01](0,0){0.5}
\listplot[fillstyle=solid,fillcolor=yellow]{dat0 aload pop}
\listplot[fillstyle=solid,fillcolor=white]{dat3 aload pop}
\listplot[fillstyle=solid,fillcolor=white]{dat4 aload pop}
\listplot[fillstyle=solid,fillcolor=black]{dat1 aload pop}
\listplot[fillstyle=solid,fillcolor=black]{dat2 aload pop}
\multido{\I=0+1}{10}{%
\listplot{dat\I\space aload pop}}%
\listplot[fillstyle=solid,fillcolor=black]{dat1 aload pop}
\listplot[fillstyle=solid,fillcolor=black]{dat2 aload pop}
\listplot[linecolor=red]{dat0' aload pop}
\listplot[linecolor=red,fillstyle=solid,fillcolor=red]{dat1' aload pop}
\listplot[linecolor=red,fillstyle=solid,fillcolor=red]{dat2' aload pop}
\listplot[linecolor=red]{dat3' aload pop}
\listplot[linecolor=red]{dat4' aload pop}
\listplot[linecolor=red]{dat5' aload pop}
\listplot[linecolor=red]{dat6' aload pop}
\listplot[linecolor=red]{Contour2' 0 2 getinterval aload pop Contour2' 0 \i\space 2 add getinterval aload pop}
\rput{!gamma}(M1){\reglette}
\rput{!delta}(M3){\reglette}
\rput{!delta 180 add}(M2){\reglette}% le stylo
\rput{!gamma 180 add}(M4){\reglette}
% les trous aux extrémités des réglettes
\psset{fillstyle=solid,linewidth=0.5\pslinewidth}
\pscircle(0,0){0.075}\pscircle(A){0.075}
\pscircle[fillcolor=blue](O){0.075}
\pscircle[fillcolor=blue](A){0.075}
\pscircle[fillcolor=blue](B){0.075}
\pscircle[fillcolor=blue](C){0.075}
\pscircle[fillcolor=red](M){0.075}
\pscircle[fillcolor=red](M'){0.075}
\end{pspicture}\newpage
}%
% coin de la bouche
\multido{\i=0+2}{9}{
\begin{pspicture}(-4,-2)(10,7)
\psgrid[subgriddiv=0,gridcolor=black,griddots=10,gridlabels=0pt]%%
\psframe(-4,-2)(10,7)
\rput(3,6.5){\huge Pantographe : $\times3$}
\pstVerb{\code{dat8}}%
\pnode(! xA yA){A}
\pnode(!xB yB){B}
\pnode(!xB' yB'){B'}
\pnode(!xC yC){C}
\pnode(!xC' yC'){C'}
\pnode(!xM yM){M}
\pnode(!x' y'){M'}
\pnode(!xM1 yM1){M1}
\pnode(!xM2 yM2){M2}
\pnode(!xM3 yM3){M3}
\pnode(!xM4 yM4){M4}
\pnode(0,0){O}
% ventouse
\pscircle[fillstyle=solid,fillcolor=cyan!10,linewidth=0.01](0,0){0.5}
\listplot[fillstyle=solid,fillcolor=yellow]{dat0 aload pop}
\listplot[fillstyle=solid,fillcolor=white]{dat3 aload pop}
\listplot[fillstyle=solid,fillcolor=white]{dat4 aload pop}
\listplot[fillstyle=solid,fillcolor=black]{dat1 aload pop}
\listplot[fillstyle=solid,fillcolor=black]{dat2 aload pop}
\multido{\I=0+1}{10}{%
\listplot{dat\I\space aload pop}}%
\listplot[fillstyle=solid,fillcolor=black]{dat1 aload pop}
\listplot[fillstyle=solid,fillcolor=black]{dat2 aload pop}
\listplot[linecolor=red]{dat0' aload pop}
\listplot[linecolor=red,fillstyle=solid,fillcolor=red]{dat1' aload pop}
\listplot[linecolor=red,fillstyle=solid,fillcolor=red]{dat2' aload pop}
\listplot[linecolor=red]{dat3' aload pop}
\listplot[linecolor=red]{dat4' aload pop}
\listplot[linecolor=red]{dat5' aload pop}
\listplot[linecolor=red]{dat6' aload pop}
\listplot[linecolor=red]{dat7' aload pop}
\listplot[linecolor=red]{Contour2' 0 2 getinterval aload pop Contour2' 0 \i\space 2 add getinterval aload pop}
\rput{!gamma}(M1){\reglette}
\rput{!delta}(M3){\reglette}
\rput{!delta 180 add}(M2){\reglette}% le stylo
\rput{!gamma 180 add}(M4){\reglette}
% les trous aux extrémités des réglettes
\psset{fillstyle=solid,linewidth=0.5\pslinewidth}
\pscircle(0,0){0.075}\pscircle(A){0.075}
\pscircle[fillcolor=blue](O){0.075}
\pscircle[fillcolor=blue](A){0.075}
\pscircle[fillcolor=blue](B){0.075}
\pscircle[fillcolor=blue](C){0.075}
\pscircle[fillcolor=red](M){0.075}
\pscircle[fillcolor=red](M'){0.075}
\end{pspicture}\newpage
}% bouche
\multido{\i=0+2}{9}{
\begin{pspicture}(-4,-2)(10,7)
\psgrid[subgriddiv=0,gridcolor=black,griddots=10,gridlabels=0pt]%%
\psframe(-4,-2)(10,7)
\rput(3,6.5){\huge Pantographe : $\times3$}
\pstVerb{\code{dat9}}%
\pnode(! xA yA){A}
\pnode(!xB yB){B}
\pnode(!xB' yB'){B'}
\pnode(!xC yC){C}
\pnode(!xC' yC'){C'}
\pnode(!xM yM){M}
\pnode(!x' y'){M'}
\pnode(!xM1 yM1){M1}
\pnode(!xM2 yM2){M2}
\pnode(!xM3 yM3){M3}
\pnode(!xM4 yM4){M4}
\pnode(0,0){O}
% ventouse
\pscircle[fillstyle=solid,fillcolor=cyan!10,linewidth=0.01](0,0){0.5}
\listplot[fillstyle=solid,fillcolor=yellow]{dat0 aload pop}
\listplot[fillstyle=solid,fillcolor=white]{dat3 aload pop}
\listplot[fillstyle=solid,fillcolor=white]{dat4 aload pop}
\listplot[fillstyle=solid,fillcolor=black]{dat1 aload pop}
\listplot[fillstyle=solid,fillcolor=black]{dat2 aload pop}
\multido{\I=0+1}{10}{%
\listplot{dat\I\space aload pop}}%
\listplot[fillstyle=solid,fillcolor=black]{dat1 aload pop}
\listplot[fillstyle=solid,fillcolor=black]{dat2 aload pop}
\listplot[linecolor=red]{dat0' aload pop}
\listplot[linecolor=red,fillstyle=solid,fillcolor=red]{dat1' aload pop}
\listplot[linecolor=red,fillstyle=solid,fillcolor=red]{dat2' aload pop}
\listplot[linecolor=red]{dat3' aload pop}
\listplot[linecolor=red]{dat4' aload pop}
\listplot[linecolor=red]{dat5' aload pop}
\listplot[linecolor=red]{dat6' aload pop}
\listplot[linecolor=red]{dat7' aload pop}
\listplot[linecolor=red]{dat8' aload pop}
\listplot[linecolor=red]{Contour2' 0 2 getinterval aload pop Contour2' 0 \i\space 2 add getinterval aload pop}
\rput{!gamma}(M1){\reglette}
\rput{!delta}(M3){\reglette}
\rput{!delta 180 add}(M2){\reglette}% le stylo
\rput{!gamma 180 add}(M4){\reglette}
% les trous aux extrémités des réglettes
\psset{fillstyle=solid,linewidth=0.5\pslinewidth}
\pscircle(0,0){0.075}\pscircle(A){0.075}
\pscircle[fillcolor=blue](O){0.075}
\pscircle[fillcolor=blue](A){0.075}
\pscircle[fillcolor=blue](B){0.075}
\pscircle[fillcolor=blue](C){0.075}
\pscircle[fillcolor=red](M){0.075}
\pscircle[fillcolor=red](M'){0.075}
\end{pspicture}\newpage
}%
% le dessin final
\multido{\i=0+2}{9}{
\begin{pspicture}(-4,-2)(10,7)
\psgrid[subgriddiv=0,gridcolor=black,griddots=10,gridlabels=0pt]%%
\psframe(-4,-2)(10,7)
\rput(3,6.5){\huge Pantographe : Bart $\times3$}
\pstVerb{\code{dat3}}%
\listplot[fillstyle=solid,fillcolor=yellow]{dat0 aload pop}
\listplot[fillstyle=solid,fillcolor=white]{dat3 aload pop}
\listplot[fillstyle=solid,fillcolor=white]{dat4 aload pop}
\listplot[fillstyle=solid,fillcolor=black]{dat1 aload pop}
\listplot[fillstyle=solid,fillcolor=black]{dat2 aload pop}
\multido{\I=0+1}{10}{%
\listplot{dat\I\space aload pop}}%
\listplot[linecolor=red]{dat0' aload pop}
\listplot[linecolor=red,fillstyle=solid,fillcolor=red]{dat1' aload pop}
\listplot[linecolor=red,fillstyle=solid,fillcolor=red]{dat2' aload pop}
\listplot[linecolor=red]{dat3' aload pop}
\listplot[linecolor=red]{dat4' aload pop}
\listplot[linecolor=red]{dat5' aload pop}
\listplot[linecolor=red]{dat6' aload pop}
\listplot[linecolor=red]{dat7' aload pop}
\listplot[linecolor=red]{dat8' aload pop}
\listplot[linecolor=red]{dat9' aload pop}
\end{pspicture}\newpage}
\end{center}
\end{document}


lundi 4 janvier 2016

Bonne Année - Happy New Year 2016





\documentclass{article}
%\begin{pspicture}(-3,0)(3,3)
\usepackage[paperwidth=6cm,paperheight=3cm,hmargin={0cm,0cm},vmargin={0cm,0cm},dvips]{geometry}
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage{pst-text,multido}
\DeclareFixedFont{\RM}{T1}{ptm}{b}{n}{3cm}
\makeatletter
%% adapté de \psRandom du package pstricks-add
%% pour rendre aléatoire la taille des points
\define@key[psset]{pstricks}{randomPoints}{\def\psk@randomPoints{#1}}
\define@key[psset]{pstricks}{DotScale}{\def\psk@DotScale{#1 }}
\define@boolkey[psset]{pstricks}[Pst@]{color}[true]{}
\psset[pstricks]{randomPoints=1000,color=false,DotScale=1}
\def\psRandomDots{\pst@object{psRandomDots}}%
\def\psRandomDots@i{\@ifnextchar({\psRandomDots@ii}{\psRandomDots@iii(0,0)(1,1)}}
\def\psRandomDots@ii(#1){\@ifnextchar({\psRandomDots@iii(#1)}{\psRandomDots@iii(0,0)(#1)}}
\def\psRandomDots@iii(#1)(#2)#3{%
  \def\pst@tempA{#3}%
  \ifx\pst@tempA\pst@empty\psclip{\psframe(#2)}\else\psclip{#3}\fi
  \pst@getcoor{#1}\pst@tempA
  \pst@getcoor{#2}\pst@tempB
  \begin@SpecialObj
  \addto@pscode{
    \pst@tempA\space /yMin exch def
    /xMin exch def
    \pst@tempB\space /yMax exch def
    /xMax exch def
    /dy yMax yMin sub def
    /dx xMax xMin sub def
    rrand srand                 % initializes the random generator
    /getRandReal { rand 2147483647 div } def
     \psk@randomPoints {
    /DS \psk@DotScale getRandReal mul def
     getRandReal dx mul xMin add
     getRandReal dy mul yMin add
     DS 0 360 arc
     \ifPst@color getRandReal 1 1 sethsbcolor
     \else
    \pst@usecolor\psfillcolor
    \fi
     fill
    } repeat
  }%
  \end@SpecialObj
  \endpsclip
  \ignorespaces
}
\begin{document}
\begin{center}
\begin{pspicture}[showgrid=false](-3,0)(3,3)
\rput(0,1.5){\red\RM 2015}%
\end{pspicture}
\multido{\i=5000+-100}{50}{%
\begin{pspicture}[showgrid=false](-3,0)(3,3)
\rput(0,1.5){\red\RM 201\hphantom{5}}%
\begin{pscharclip}[linewidth=0.1pt,linestyle=none]{%
\rput(0,1.5){\RM 2015}}%
\psRandomDots[fillcolor=red,
    randomPoints=\i,DotScale=0.5,color=false](1.5,0)(3,3){\psframe(1.5,0)(3,3)}
\end{pscharclip}
\end{pspicture}\newpage}
%
\multido{\i=0+100}{50}{%
\begin{pspicture}[showgrid=false](-3,0)(3,3)
\rput(0,1.5){\red\RM 201\hphantom{6}}%
\begin{pscharclip}[linewidth=0.1pt,linestyle=none]{%
\rput(0,1.5){\RM 2016}}%
\psRandomDots[fillcolor=red,
    randomPoints=\i,DotScale=1,color=true](1.5,0)(3,3){\psframe(1.5,0)(3,3)}
\end{pscharclip}
\end{pspicture}\newpage}
\begin{pspicture}[showgrid=false](-3,0)(3,3)
\rput(0,1.5){\red\RM 201\hphantom{6}}%
\begin{pscharclip}[linewidth=0.1pt,linestyle=none]{%
\rput(0,1.5){\RM 2016}}%
\psRandomDots[fillcolor=red,
    randomPoints=10000,DotScale=1,color=true](1.5,0)(3,3){\psframe(1.5,0)(3,3)}
\end{pscharclip}
\end{pspicture}
\end{center}
\end{document}

dimanche 20 décembre 2015

Pantographe : projet d'une simulation avec PSTricks

C'est une ébauche de code PSTricks, pour simuler l'animation d'un pantographe, soit pour un agrandissement, soit pour une réduction. Le principe que j'utilise est celui décrit dans le manuel de mathématiques de la classe de troisième de C.Lebossé et C.Hémery, programme du 31 juillet 1958, à la page 262 dans les problèmes de révision.

Dans le fichier :
http://manuel.luque.perso.neuf.fr/pantographe/pantographe-animation-esperluette.pdf
l'animation est réalisée grâce au package animate d'Alexander Grahn.
http://manuel.luque.perso.neuf.fr/pantographe/pantographe-animation-esperluette.tex

Le contour de l'esperluette a été obtenu avec la commande :
\psCharPath[text=&,file=esperluette]
du package pst-crayon :
http://pstricks.blogspot.fr/2015/08/pst-crayon-version-3.html

J'obtiens le Gif animé à partir des images créées dans le fichier :
http://manuel.luque.perso.neuf.fr/pantographe/Gif-pantographe-animation-esperluette.pdf
http://manuel.luque.perso.neuf.fr/pantographe/Gif-pantographe-animation-esperluette.tex
En affichant le pdf, on peut faire défiler les images avec la roulette de la souris.

PS1 : si vous avez des idées pour améliorer le code, créer une commande etc. n'hésitez pas à m'en faire part.
PS2 : extrait de l'ouvrage de  C.Lebossé et C.Hémery :