dimanche 28 février 2016

Ondes Hertziennes : complément à l'article de Carlo Alberini.

On considère que la source est périodique(sinusoïdale), et on représente la propagation de l'onde le long de l'axe, lorsque le champ en chaque point du milieu varie périodiquement comme la source. C'est donc le couple (E(t),B(t)) qui est dessiné en différents points de l'axe.

Les fichiers ondesHertziennes.pdf et ondesHertziennes.tex sont dans :

L'animation dans le fichier pdf, dans les 2 exemples celui de Carlo et le mien, a été réalisée avec le package animate d'Alexander Grahn.


Pour produire les images de l'animation Gif, le listing suivant est à compiler par : LaTeX->DVIPS->ps2pdf :

\documentclass{article}
\usepackage[paperwidth=20cm,paperheight=9cm,hmargin={0cm,0cm},vmargin={0cm,0cm},dvips]{geometry}
\usepackage[garamond]{mathdesign}
\usepackage{pst-plot,pst-3d,pst-node}
\psset{plotpoints=1000}
\psset{dimen=middle}
\title{Ondes hertziennes}
\date{27 février 2016}
\pagestyle{empty}
\begin{document}

\begin{center}
\multido{\rt=0+0.062832}{100}{% T=2Pi
\begin{pspicture}(-1,-7)(19,2)
\psframe(-1,-7)(19,2)
\psset{viewpoint=0.5 -1 0.75}
\ThreeDput[normal=0 -1 0](0,0,0){%
\psgrid[subgriddiv=0,gridcolor=black,griddots=10,gridlabels=0pt](0,-2)(20,2)
\psframe(0,-2)(20,0)}
\ThreeDput[normal=0 0 -1](0,0,0){%
\psframe[linewidth=1.5\pslinewidth](0,-2)(20,2)
\psgrid[subgriddiv=0,gridcolor=black,griddots=10,gridlabels=0pt,gridwidth=1.2pt](0,-2)(20,2)
\pstVerb{/ti \rt \space def
/pi 3.14159 def
/RadtoDeg { 180 mul pi div } bind def
/tabArrows { % 40 points
    [0 0.5 20 {/xi exch def %
      xi
      0
      xi
      ti xi sub RadtoDeg sin
      } for
    ]
} def}%
\pscustom[fillstyle=solid,fillcolor=blue!50,linestyle=none,opacity=0.6]{%
\psparametricplot[algebraic]{0}{20}{t|sin(ti-t)}
\psline(!20 0)(0,0)}
\multido{\i=0+4}{40}{%
\psline[linecolor=blue,arrowinset=0,linewidth=0.04]{->}(!tabArrows \i\space get tabArrows \i\space 1 add get)(!tabArrows \i\space 2 add get tabArrows \i\space 3 add get)}}
\ThreeDput[normal=0 -1 0](0,0,0){%
\psgrid[subgriddiv=0,gridcolor=black,griddots=10,gridlabels=0pt](0,-2)(20,2)
\psframe(0,0)(20,2)
\pscustom[fillstyle=solid,fillcolor=red!20,linestyle=none,opacity=0.6]{%
\psparametricplot[algebraic]{0}{20}{t|sin(ti-t)}
\psline(!20 0)(0,0)}
\multido{\i=0+4}{40}{%
\psline[linecolor=red,arrowinset=0]{->}(!tabArrows \i\space get tabArrows \i\space 1 add get)(!tabArrows \i\space 2 add get tabArrows \i\space 3 add get)}}
\ThreeDput[normal=1 0 0](0,0,0){%
    \uput[0](0.2,1){\red $\overrightarrow{E\hspace{0.2em}}$}
    \uput[90](-1,0){\blue $\overrightarrow{B\hspace{0.2em}}$}
    }
\ThreeDput[normal=0 0 -1](0,0,0){%
    \psline[arrowinset=0,linecolor=blue]{->}(0,1)}
\ThreeDput[normal=0 -1 0](0,0,0){%
    \psline[arrowinset=0,linecolor=red]{->}(0,1)}
\end{pspicture}\newpage}
\end{center}
\end{document}



Exemple de champ électrique et magnétique en un point P de l'espace et de son évolution dans le temps (par Carlo Alberini)

Esempio di campo elettrico e magnetico in un punto P dello spazio e sua evoluzione temporale. I campi sono prodotti da elettroni posti in oscillazione in un'antenna alimentata in corrente alternata.

Les fichiers (ondesHertziennes-3Dvector_2.pdf et /ondesHertziennes-3Dvector_2.tex) dans :


Le listing :

\documentclass[12pt]{article}
\usepackage[a4paper]{geometry}
\usepackage[garamond]{mathdesign}
\renewcommand{\ttdefault}{lmtt}
\usepackage[nomessages]{fp}
\usepackage[dvipsnames,svgnames]{pstricks}
\usepackage{pst-plot,pst-3d,pst-node,pst-circ}
\usepackage{animate}

\def\Vitesse{5}    % célérité en m/s
\def\Periode{1}    % période en seconde
\def\Amplitude{1}  % amplitude
\psset{dimen=middle}
\pagestyle{empty}
\def\nFrames{72}
\psset{plotpoints=1000,plotstyle=line}
\newdimen\temporaire

\title{Ondes hertziennes}
\begin{document}
\maketitle
\begin{center}
\begin{animateinline}[controls,
                     begin={\begin{pspicture}(-2,-7)(15,3)},
                     end={\end{pspicture}}]{5}% 5 images/s
\multiframe{72}{rt=0+0.04}{
\pstVerb{/Vitesse \Vitesse\space def
    /Periode \Periode\space def
    /Amplitude \Amplitude\space def
         /date \rt\space def
         /Vt Vitesse date mul def
           /t1 Periode 4 div def % Lambda/4
           /X1 t1 Vitesse mul def
           /t2 Periode 2 div def
           /X2 t2 Vitesse mul def % Lambda/2
           /t3 Periode 4 div 3 mul def
           /X3 t3 Vitesse mul def % 3*Lambda/4
           /t4 Periode  def
          % /X4 Lambda def %
           /x1 1 def
% y(x,t)=a*sin(2Pi/T(t-x/V)
     /Signal {xPos Vt le { /yPos Amplitude 360 Periode div date xPos Vitesse div sub mul sin mul def }
             {/yPos 0 def} ifelse
             } def
% amplitude du signal
      /Y1 Amplitude 360 Periode div
                      t1 1 Vitesse div sub
                      mul
                      sin
                      mul
                      def
        /Y2 Amplitude 360 Periode div
                      t2 1 Vitesse div sub
                      mul
                      sin
                      mul
                      def
        /Y3 Amplitude 360 Periode div
                      t3 1 Vitesse div sub
                      mul
                      sin
                      mul
                      def
        /Y4 Amplitude 360 Periode div
                      t4 1 Vitesse div sub
                      mul
                      sin
                      mul
                      def
            }%
% la corde
\psset{viewpoint=0.5 -1 0.75}
\ThreeDput[normal=0 0 -1](0,0,0){%
\psgrid[subgriddiv=0,gridcolor=red,griddots=10,gridlabels=0pt](0,0)(14,-2)
\psframe[fillstyle=solid,linecolor=red,fillcolor=red!10,opacity=0.6](0,0)(14,-2)
}
\ThreeDput[normal=0 -1 0](0,0,0){%
\psgrid[subgriddiv=0,gridcolor=PineGreen,griddots=10,gridlabels=0pt](0,-2)(14,2)
\psframe[fillstyle=solid,linecolor=PineGreen,fillcolor=PineGreen!05,opacity=0.6](0,-2)(14,2)
\uput[0](0.2,1.5){\textcolor{PineGreen}{$\overrightarrow{E\hspace{0.2em}}$}}
\FPeval{\Front}{\Vitesse*\rt}
        \parametricplot[linecolor=PineGreen,linewidth=0.05]{0}{Vt}{%
    /xPos t def % X=abscisse en m
    Signal t yPos}%
    \temporaire=\Front pt
        \ifdim\temporaire > 1pt
            \psline[linecolor=red,arrowsize=0.15]{->}(! 1 0)(! 1 dup  /xPos exch def Signal yPos)
            \uput[l](! 1.15 dup  /xPos exch def Signal yPos){$\scriptstyle{\vec{E}\left(P,t\right)}$}
\fi
        \ifdim\temporaire > 1.5pt
            \psline[linecolor={[rgb]{0.75 0 1}},arrowsize=0.1,arrowinset=0,linewidth=0.03]{->}(! Vt 0.5 sub 0)(! Vt 0.5 sub  Y1 2 mul)
            \uput[l](! Vt -0.1 sub -0.25){$\scriptstyle{\vec{E}\left(P,t_{1}\right)}$}
\fi
        \ifdim\temporaire > 2.75pt
            \psline[linecolor={[rgb]{0 0 1}},arrowsize=0.1,arrowinset=0,linewidth=0.03]{->}(! Vt 1.75 sub 0)(! Vt 1.75 sub  Y2 -0.1 add)
            \uput[l](! Vt 1.15 sub -0.25){$\scriptstyle{\vec{E}\left(P,t_{2}\right)}$}
\fi
        \ifdim\temporaire > 4pt
            \psline[linecolor={[rgb]{0.75 0 1}},arrowsize=0.1,arrowinset=0,linewidth=0.03]{->}(! Vt 3 sub 0)(! Vt 3 sub  Y3 2 mul)
            \uput[l](! Vt 2.4 sub 0.25){$\scriptstyle{\vec{E}\left(P,t_{3}\right)}$}
\fi
        \ifdim\temporaire > 5pt
            \psline[linecolor={[rgb]{0 0 1}},arrowsize=0.1,arrowinset=0,linewidth=0.03]{->}(! Vt 4 sub 0)(! Vt 4 sub  Y4)
            \uput[l](! Vt 3.5 sub 0.25){$\scriptstyle{\vec{E}\left(P,t_{4}\right)}$}
\fi
        \ifdim\temporaire > 6.75pt
            \psline[linecolor={[rgb]{0.75 0 1}},arrowsize=0.1,arrowinset=0,linewidth=0.03]{->}(! Vt 5.75 sub 0)(! Vt 5.75 sub  Y2 -0.1 add)
            \uput[l](! Vt 5.15 sub -0.25){$\scriptstyle{\vec{E}\left(P,t_{5}\right)}$}
\fi
        \ifdim\temporaire > 8pt
            \psline[linecolor={[rgb]{0 0 1}},arrowsize=0.1,arrowinset=0,linewidth=0.03]{->}(! Vt 7 sub 0)(! Vt 7 sub  Y1 2 mul)
            \uput[l](! Vt 6.4 sub -0.25){$\scriptstyle{\vec{E}\left(P,t_{6}\right)}$}
\fi
        \ifdim\temporaire > 9.5pt
            \psline[linecolor={[rgb]{0.75 0 1}},arrowsize=0.1,arrowinset=0,linewidth=0.03]{->}(! Vt 8.5 sub 0)(! Vt 8.5 sub  Y4)
            \uput[l](! Vt 7.75 sub 0.25){$\scriptstyle{\vec{E}\left(P,t_{7}\right)}$}
\fi
        \ifdim\temporaire > 10.5pt
            \psline[linecolor={[rgb]{0 0 1}},arrowsize=0.1,arrowinset=0,linewidth=0.03]{->}(! Vt 9.5 sub 0)(! Vt 9.5 sub  Y3 2 mul)
            \uput[l](! Vt 8.9 sub 0.25){$\scriptstyle{\vec{E}\left(P,t_{8}\right)}$}
\fi
        \ifdim\temporaire > 11.5pt
            \psline[linecolor={[rgb]{0.75 0 1}},arrowsize=0.1,arrowinset=0,linewidth=0.03]{->}(! Vt 10.5 sub 0)(! Vt 10.5 sub  Y1 2 mul)
            \uput[l](! Vt 9.9 sub -0.25){$\scriptstyle{\vec{E}\left(P,t_{9}\right)}$}
\fi
        \ifdim\temporaire > 12.75pt
            \psline[linecolor={[rgb]{0 0 1}},arrowsize=0.1,arrowinset=0,linewidth=0.03]{->}(! Vt 11.75 sub 0)(! Vt 11.75 sub  Y2 -0.1 add)
            \uput[l](! Vt 11.15 sub -0.25){$\scriptstyle{\vec{E}\left(P,t_{10}\right)}$}
\fi
        \psline[linecolor=blue,linewidth=2.5mm,linecap=1](0,-2.5)(0,1.75)
% la source
\psdot[linecolor=white,dotsize=2mm](! 0 dup  /xPos exch def Signal yPos)
        \psline[linecolor=red,arrowsize=0.25]{->}(! 0 0)(! 0 dup  /xPos exch def Signal yPos)
        \uput[l](! 0 dup  /xPos exch def Signal yPos){$e^{-}$}
        \vac[output=bottom](0.5,-3)(-0.5,-3){$V_{AC}$}}
 %le plan Oxy
\ThreeDput[normal=0 0 -1](0,0,0){%
\psgrid[subgriddiv=0,gridcolor=red,griddots=10,gridlabels=0pt](0,0)(14,2)
\psframe[fillstyle=solid,linecolor=red,fillcolor=red!10,opacity=0.6](0,0)(14,2)
\FPeval{\Front}{\Vitesse*\rt}
        \parametricplot[linecolor=red,linewidth=0.05]{0}{Vt}{%
    /xPos t def % X=abscisse en m
    Signal t yPos}%
% la source
    \temporaire=\Front pt
        \ifdim\temporaire > 1pt
            \psline[linecolor=red,arrowsize=0.15]{->}(! 1 0)(! 1 dup  /xPos exch def Signal yPos)
\fi
        \ifdim\temporaire > 1.5pt
            \psline[linecolor={[rgb]{0.75 0 1}},arrowsize=0.1,arrowinset=0,linewidth=0.03]{->}(! Vt 0.5 sub 0)(! Vt 0.5 sub  Y1 2 mul)
\fi
        \ifdim\temporaire > 2.75pt
            \psline[linecolor={[rgb]{0 0 1}},arrowsize=0.1,arrowinset=0,linewidth=0.03]{->}(! Vt 1.75 sub 0)(! Vt 1.75 sub  Y2 -0.1 add)
\fi
        \ifdim\temporaire > 4pt
            \psline[linecolor={[rgb]{0.75 0 1}},arrowsize=0.1,arrowinset=0,linewidth=0.03]{->}(! Vt 3 sub 0)(! Vt 3 sub  Y3 2 mul)
\fi
        \ifdim\temporaire > 5pt
            \psline[linecolor={[rgb]{0 0 1}},arrowsize=0.1,arrowinset=0,linewidth=0.03]{->}(! Vt 4 sub 0)(! Vt 4 sub  Y4)
\fi
        \ifdim\temporaire > 6.75pt
            \psline[linecolor={[rgb]{0.75 0 1}},arrowsize=0.1,arrowinset=0,linewidth=0.03]{->}(! Vt 5.75 sub 0)(! Vt 5.75 sub  Y2 -0.1 add)
\fi
        \ifdim\temporaire > 8pt
            \psline[linecolor={[rgb]{0 0 1}},arrowsize=0.1,arrowinset=0,linewidth=0.03]{->}(! Vt 7 sub 0)(! Vt 7 sub  Y1 2 mul)
\fi
        \ifdim\temporaire > 9.5pt
            \psline[linecolor={[rgb]{0.75 0 1}},arrowsize=0.1,arrowinset=0,linewidth=0.03]{->}(! Vt 8.5 sub 0)(! Vt 8.5 sub  Y4)
\fi
        \ifdim\temporaire > 10.5pt
            \psline[linecolor={[rgb]{0 0 1}},arrowsize=0.1,arrowinset=0,linewidth=0.03]{->}(! Vt 9.5 sub 0)(! Vt 9.5 sub  Y3 2 mul)
\fi
        \ifdim\temporaire > 11.5pt
            \psline[linecolor={[rgb]{0.75 0 1}},arrowsize=0.1,arrowinset=0,linewidth=0.03]{->}(! Vt 10.5 sub 0)(! Vt 10.5 sub  Y1 2 mul)
\fi
        \ifdim\temporaire > 12.75pt
            \psline[linecolor={[rgb]{0 0 1}},arrowsize=0.1,arrowinset=0,linewidth=0.03]{->}(! Vt 11.75 sub 0)(! Vt 11.75 sub  Y2 -0.1 add)
\fi
}
\ThreeDput[normal=0 -1 0](0,0,0){
        \rput[bl](1,0.15){\textcolor{Mahogany}{$\scriptstyle{P}$}}
        \psaxes[labelFontSize=\scriptstyle,xAxis=true,yAxis=false,labels=y,Dx=1,Dy=1,ticksize=-2pt 0,subticks=2]{->}(0,0)(-0.5,-0.5)(14.75,0.5)[$x$,90][ ,90]
        \psdot[dotsize=2mm,linecolor=Mahogany](1,0)
    }
\ThreeDput[normal=0 0 1](0,0,0){
     \uput[0](0.1,-1.7){\red{\footnotesize{$\vec{B}$}\hspace{0.2em}}}
     }
}
\end{animateinline}
\end{center}
\end{document}

lundi 15 février 2016

Réflexions multiples d’ondes transversales sur une extrémité libre ou fixe (suite)

Suite de : http://pstricks.blogspot.fr/2016/01/reflexion-dondes-transversales-sur-une.html

Tous les éléments théoriques et les explications sont dans le document "wavemachine-theory.tex"
"wavemachine-theory.pdf", dans le répertoire :

Les animations ont été réalisées avec le package animate :
http://www.ctan.org/pkg/animate 

Voici les 2 animations au format Gif qui sont aussi dans le dossier précédemment cité.:

 



Voici une application à l'ondoscope(échelle de Perroquet), dont l'inventeur est John Shive:
https://en.wikipedia.org/wiki/John_N._Shive
 La revue de l'Union des Physiciens a publié un excellent  article sur l'ondoscope :
http://www.udppc.asso.fr/bupdoc/consultation/article-bup.php?ID_fiche=12393
dans lequel les auteurs démontrent que le mouvement des barreaux correspond à une onde progressive dont ils calculent la vitesse de phase.
Le site de Wikipedia, précédemment cité contient une belle animation de cet appareil, dont le source en Java est sur le site :
http://weelookang.blogspot.fr/2012/08/ejs-open-source-wave-machine-model-java.html

Les animations suivantes ont été réalisées à partir des images obtenues avec PSTricks :

Les fichiers pdf qui contiennent 880 images sont trop lourds pour être placés sur mon serveur, je donne donc les fichiers sources, à compiler suivant la procédure habituelle : LaTeX->dvips->ps2pdf
gif-wavemachine-FE.tex
gif-wavemachine.tex
qui sont dans le doosier indiqué au début :

Ci-dessous le fichier source des éléments théoriques :

\documentclass{article}
\usepackage[a4paper,margin=2cm]{geometry}
\usepackage[garamond]{mathdesign}
\renewcommand{\ttdefault}{lmtt}
\usepackage{pst-plot,pst-node}
\usepackage{amsmath}
\usepackage{animate}
\newpsstyle{ball}{fillstyle=ccslope,slopebegin=white,slopecenter=0.4 0.6,linestyle=none}
\definecolor{bois}{RGB}{63 34 4}
\parindent0pt
\psset{dimen=middle}
\title{Réflexion d'ondes transversales sur une extrémité libre ou fixe}
\date{28 janvier 2016}
\def\Sawtooth{%
/date exch def
                                 date 0 le {0} if % t<0 br="">                                 
<0 br="">date 0 gt date T1 4 div le and {a1 date mul} if % 0                                 date T1 4 div gt date 3 T1 mul 4 div le and {a1 neg date mul 2 Am mul add} if % T/4                                 date T1 3 mul 4 div gt date  T1 le and {a1 date mul 4 Am mul sub} if % 3T/4                                 date T1 gt {0} if % t>T
}
\def\Sinusoidal{%
/date exch def date 0 le date T1 gt or {0} {Am 360 T1 div date mul sin mul }ifelse  % t<0 ou="" t="">T =>0
}
\def\Gauss{%
/date exch def date 0 le date 2 T1 mul gt or {0} {Am Euler date T1 sub dup mul neg exp mul } ifelse  % t<0 ou="" t="">T =>0
}%
\title{Réflexion d'ondes transversales sur une extrémité libre ou fixe}
\date{15 février 2016}
\begin{document}
\maketitle
On imprime à l'origine du dispositif(corde, ondoscope, ressort,etc.) un mouvement bref : sinusoïdal, en dents de scie ou en cloche(Gauss), comme dans les exemples ci-dessous :
\begin{center}
\begin{minipage}{5.5cm}
\begin{itemize}
  \item $t\leqslant0 \ :\ f(t)=0$
  \item $0  \item $t\geqslant T \ :\ f(t)=0$
\end{itemize}
\end{minipage}
\begin{minipage}{11cm}
\begin{pspicture}(-1,-2)(10,2)
\psgrid[subgriddiv=5,%
      gridlabels=0,%
      gridwidth=1pt,%
      gridcolor=red!20,
    subgridwidth=0.1pt,%
    subgridcolor=gray]
\psset{plotpoints=500,unit=1}
\psaxes{->}(0,0)(0,-1)(10,2)[$t$,0][$y$,0]
\psplot[linecolor=blue]{0}{10}[/T1 2 def /Am 1 def]{x \Sinusoidal}
\end{pspicture}
\end{minipage}
\end{center}
\begin{center}
\begin{minipage}{5.5cm}
\begin{itemize}
  \item $t\leqslant0 \ :\ f(t)=0$
  \item $0  \item $\frac{T}{4}  \item $\frac{3T}{4}  \item $t\geqslant T \ :\ f(t)=0$
\end{itemize}
\end{minipage}
\begin{minipage}{11cm}
\begin{pspicture}(-1,-2)(10,2)
\psset{plotpoints=500,unit=1}
\psgrid[subgriddiv=5,%
      gridlabels=0,%
      gridwidth=1pt,%
      gridcolor=red!20,
    subgridwidth=0.1pt,%
    subgridcolor=gray]
\psaxes{->}(0,0)(0,-1)(10,2)[$t$,0][$y$,0]
\psplot[linecolor=blue]{0}{10}[/T1 2 def /Am 1 def /a1 4 T1 div Am mul def ]{x \Sawtooth}
\end{pspicture}
\end{minipage}
\end{center}
\begin{center}
\begin{minipage}{5.5cm}
\begin{itemize}
  \item $t\leqslant0 \ :\ f(t)=0$
  \item $0  \item $t\geqslant2T \ :\ f(t)=0$
\end{itemize}
\end{minipage}
\begin{minipage}{11cm}
\begin{pspicture}(-1,-2)(10,2)
\psgrid[subgriddiv=5,%
      gridlabels=0,%
      gridwidth=1pt,%
      gridcolor=red!20,
    subgridwidth=0.1pt,%
    subgridcolor=gray]
\psset{plotpoints=500,unit=1}
\psaxes{->}(0,0)(0,-1)(10,2)[$t$,0][$y$,0]
\psplot[linecolor=blue]{0}{10}[/T1 2 def /Am 1 def ]{x \Gauss}
\end{pspicture}
\end{minipage}
\end{center}
On considère l'onde progressive se déplaçant vers la droite de $O$ vers $A$ qui sont les 2 extrémités du milieu de propagation; $O$ est la source de l'onde incidente. En notant $v$ la célérité de l'onde, l'élongation d'un point d'abscisse $x$ à l'instant $t$ se calculera par la relation :
\[
y(x,t)=y\left(0,t-\frac{x}{v}\right)
\]
Lorsque le signal arrive sur l'extrémité $A$, on calcule l'onde réfléchie en imaginant une onde fictive se propageant en sens inverse, de même signe que l'onde incidente si l'extrémité $A$ est libre, de signe contraire si elle est fixe et se superposant à l'onde incidente. Cette onde fictive démarre au même instant que l'onde incidente, mais au point $O_1$ d'abscisse $x_{O_1}=2L$.
\[
y_1(x_1,t)=y\left(0,t-\frac{x_1}{v}\right)\text{ avec } x_1=2L-x
\]
Sur le trajet de retour de $A$ vers $O$, l'élongation d'un point d'abscisse $x$ à l'instant $t$ se calculera par la superposition de ces 2 ondes :
\[
y(x,t)=y\left(0,t-\frac{x}{v}\right)\pm y\left(0,t-\frac{2L-x}{v}\right)
\]
\begin{center}
\begin{pspicture}(-5,-2)(10,2)
\psframe*[linecolor=cyan!20](5,-2)(10,2)
\psframe*[linecolor=cyan!20](0,-2)(-5,2)
\psgrid[subgriddiv=0,gridcolor=black,griddots=10,gridlabels=0pt](-5,-2)(10,2)%
\psset{plotpoints=500,unit=0.5}
\psline{->}(-10,0)(20,0)
\psline{->}(0,-4)(0,4)
\uput[d](20,0){$x$}
\uput[u](0,4){$y$}
\psdots[linecolor=red](10,0)(0,0)
\psplot[linecolor=red]{0}{10}[/T1 2 def /Am 2 def ]{x \Gauss}
\psplot[linecolor=red,linestyle=dashed]{10}{20}[/T1 2 def /Am 2 def ]{20 x sub \Gauss}
\uput[dl](0,0){$O$}\uput[dl](10,0){$A$}
\psline{->}(1,3)(3,3)
\psline{->}(19,3)(17,3)
\psline{<->}(0,-2)(10,-2)\uput[u](5,-2){$L$}
\psline{<->}(0,-3)(20,-3)\uput[u](10,-3){$2L$}
\uput[d](3,0){$x$}\psdot[dotstyle=|](3,0)
\uput[d](17,0){$x_1$}\psdot[dotstyle=|](17,0)
\rput(5,3){\pscirclebox{$t$}}
\uput[0](20,0){$O_1$}
\end{pspicture}
\end{center}
À la fin de ce premier aller-retour, l'onde est réfléchie par l'extrémité $O$. Pour caractériser cette onde réfléchie, on considère que $O$ est une extrémité libre et qu'il existe une deuxième onde fictive qui se déplace dans le sens des $x>0$ : celle-ci démarre au même instant $t=0$ que l'onde initiale mais au point $O_2$ d'abscisse $x_{O_2}=-2L$, son signe dépend de celui de l'onde dans le retour de $A$ vers $O$, c'est-à-dire de même signe que l'onde initiale si $A$ est une extrémité libre et le contraire si $A$ est fixe.
\[
y_2(x_2,t)=y\left(0,t+\frac{x_2}{v}\right)\ \text{ avec }\  x_2=-2L-x
\]
On peut ainsi poursuivre le mouvement, au bout du deuxième trajet de $O$ vers $A$, on imagine qu'il y a une autre onde fictive qui se déplace dans le sens des $x<0 :="" abscisse="" au="" br="" c="" comme="" d="" de="" demment="" elle="" et="" extr="" incidente="" l="" la="" marre="" mit="" nature="" onde="" pend="" point="" pr="" qui="" se="" signe="" son="" superposera="" x_="">\[
y_3(x_3,t)=y\left(0,t-\frac{x_3}{v}\right)\ \text{ avec }\  x_3=4L-x
\]
Sur la portion de l'axe correspondant au milieu réel de propagation, l'onde résultante sera la somme des 4 ondes ainsi définies. On voit qu'on pourrait généraliser à un nombre plus grand d'ondes pour étudier les aller-retour de l'onde progressive pendant une durée plus grande.

Dans cette première animation, l'extrémité $A$ est supposée libre, de même que l'extrémité $O$, après avoir impulsé le mouvement en $O$ cette extrémité est laissée libre, mais on pourrait envisager de la fixer.
\def\nFrames{220}%
\begin{center}
\psset{unit=0.5}
\begin{animateinline}[controls,
                     begin={\begin{pspicture}(-11,-2)(21,2)},
                     end={\end{pspicture}}]{5}% 5 images/s
\multiframe{\nFrames}{rt=0+0.2}{
\psframe*[linecolor=cyan!20](5,-2)(21,2)
\psframe*[linecolor=cyan!20](0,-2)(-11,2)
\psframe*[linecolor=yellow!20](0,-2)(5,2)
\psset{plotpoints=500,unit=0.5}
\psline{->}(-20,0)(41,0)
\psline{->}(0,-4)(0,4)
\uput[u](41,0){$x$}
\uput[l](0,3.5){$y$}
\psdots[linecolor=red](10,0)(0,0)
\uput[-45](10,0){$A$}
\uput[225](0,0){$O$}
\psdots(20,0)(40,0)(-20,0)
\uput[d](20,0){$O_1$}
\uput[d](-20,0){$O_2$}
\uput[d](40,0){$O_3$}
\pstVerb{/ti \rt\space def /Vi 1 def /Li 10 def /T1 2 def /Am 2 def }% 1 aller = 10 s
% onde incidente
\psplot[linecolor=blue]{-22}{20}{ti x Vi div sub \Gauss}
% onde fictive 1 dans le sens des x<0 br="">\psplot[linecolor=green]{-22}{20}{ti 2 Li mul x sub Vi div sub \Gauss}
% onde fictive dans le sens >0
\psplot[linecolor=red]{-22}{30}{ti -2 Li mul x sub Vi div add \Gauss}
% onde fictive 2 dans le sens des x<0 4="" br="" celerity="" div="" longueur="" mul="" sub="" ti="" xp="">\psplot[linecolor=cyan]{-22}{40}{ti 4 Li mul x sub Vi div sub \Gauss}
% onde sur la corde
\psplot[linecolor=magenta,linewidth=0.3]{0}{10}{ti x Vi div sub \Gauss ti 2 Li mul x sub Vi div sub \Gauss add ti -2 Li mul x sub Vi div add \Gauss add ti 4 Li mul x sub Vi div sub \Gauss add}
}
\end{animateinline}
\end{center}
Dans cette deuxième animation, l'extrémité $A$ est supposée fixe.
\begin{center}
\psset{unit=0.5}
\begin{animateinline}[controls,
                     begin={\begin{pspicture}(-11,-2)(21,2)},
                     end={\end{pspicture}}]{5}% 5 images/s
\multiframe{\nFrames}{rt=0+0.2}{
\psframe*[linecolor=cyan!20](5,-2)(21,2)
\psframe*[linecolor=cyan!20](0,-2)(-11,2)
\psframe*[linecolor=yellow!20](0,-2)(5,2)
\psset{plotpoints=500,unit=0.5}
\psline{->}(-20,0)(41,0)
\psline{->}(0,-4)(0,4)
\uput[u](41,0){$x$}
\uput[l](0,3.5){$y$}
\psdots[linecolor=red](10,0)(0,0)
\uput[-45](10,0){$A$}
\uput[225](0,0){$O$}
\psdots(20,0)(40,0)(-20,0)
\uput[d](20,0){$O_1$}
\uput[d](-20,0){$O_2$}
\uput[d](40,0){$O_3$}
\pstVerb{/ti \rt\space def /Vi 1 def /Li 10 def /T1 2 def /Am 2 def }% 1 aller = 10 s
% onde incidente
\psplot[linecolor=blue]{-22}{20}{ti x Vi div sub \Gauss}
% onde fictive 1 dans le sens des x<0 br="">\psplot[linecolor=green]{-22}{20}{ti 2 Li mul x sub Vi div sub \Gauss neg}
% onde fictive dans le sens >0
\psplot[linecolor=red]{-22}{30}{ti -2 Li mul x sub Vi div add \Gauss neg }
% onde fictive 2 dans le sens des x<0 4="" br="" celerity="" div="" longueur="" mul="" sub="" ti="" xp="">\psplot[linecolor=cyan]{-22}{40}{ti 4 Li mul x sub Vi div sub \Gauss}
% onde sur la corde
\psplot[linecolor=magenta,linewidth=0.3]{0}{10}{ti x Vi div sub \Gauss
                                                ti 2 Li mul x sub Vi div sub \Gauss neg add
                                                ti -2 Li mul x sub Vi div add \Gauss neg add
                                                ti 4 Li mul x sub Vi div sub \Gauss add}
}%
\end{animateinline}
\end{center}
\end{document}



Ci-après les fichiers sources des animations de l'ondoscope :

\documentclass{article}
\usepackage[paperwidth=10.5cm,paperheight=6.5cm,hmargin={0cm,0cm},vmargin={0cm,0cm},dvips]{geometry}
\usepackage{pst-plot,pst-node,pst-slpe,pst-3d}
\newpsstyle{ball}{fillstyle=ccslope,slopebegin=white,slopecenter=0.4 0.6,linestyle=none}
\definecolor{bois}{RGB}{63 34 4}
\parindent0pt
\psset{dimen=middle}
\title{Réflexion d'ondes transversales sur une extrémité libre ou fixe}
\date{28 janvier 2016}
\def\Sawtooth{%
/date exch def
                                 date 0 le {0} if % t<0 br="">                                 date 0 gt date T1 4 div le and {a1 date mul} if % 0                                 date T1 4 div gt date 3 T1 mul 4 div le and {a1 neg date mul 2 Am mul add} if % T/4                                 date T1 3 mul 4 div gt date  T1 le and {a1 date mul 4 Am mul sub} if % 3T/4                                 date T1 gt {0} if % t>T
}
\def\Sinusoidal{%
/date exch def date 0 le date T1 gt or {0} {Am 360 T1 div date mul sin mul }ifelse  % t<0 ou="" t="">T =>0
}
\def\Gauss{%
/date exch def date 0 le date 2 T1 mul gt or {0} {Am Euler date T1 sub dup mul neg exp mul } ifelse  % t<0 ou="" t="">T =>0
}%
\pagestyle{empty}
\begin{document}
\begin{center}
\psset{viewpoint=1 1 0.5}
\def\nFrames{880}%
\multido{\rt=0+0.05}{\nFrames}{%
\begin{pspicture}(-2,-4)(8.5,2.5)
\psframe(-2,-4)(8.5,2.5)
\ThreeDput[normal=0 0 1](0,0,-1.2){%
\psframe[fillstyle=solid,fillcolor=green!20](-1,0)(1,10)}
\ThreeDput[normal=1 0 0](0,0,0){%
% les axes
    \psline{->}(0,0)(11,0)
    \psline[linecolor=cyan](0,0)(10,0)
    \uput[0](11,0){$y$}
    \psline{->}(0,0)(0,2)
    \uput[90](0,2){$z$}
    \psline[linewidth=0.1](0,-1.2)
    \psline[linewidth=0.1](10,0)(10,-1.2)}
\ThreeDput[normal=0 1 0](0,0,0){%
\psline{->}(0,0)(-2,0)\uput[90](-2,0){$x$}
}%
\multido{\rx=0+0.25}{41}{%
\pstVerb{/T1 2 def % p\'{e}riode :
         /celerity 1 def   %
         /Longueur 10 def
% 5xT1 pour parcourir la longueur
         /Am 45 def % amplitude maximale en degrés
         /a1 4 T1 div Am mul def % pente pour le signal en dents de scie
         /ti \rt\space def
         /xP \rx\space def
% description du signal initial
         /Signal {\Gauss} def % {\Sawtooth } def
% signal incident
        /AngleRotationI {ti xP celerity div sub Signal} def
% signal réfléchi au bout du premier trajet sur l'extrémité A
       /AngleRotation-R1  {ti 2 Longueur mul xP sub celerity div sub Signal} def
% le - indique la propagation dans le sens -
% signal réfléchi au bout du premier aller-retour sur l'extrémité O supposée libre
       /AngleRotation+R2 {ti -2 Longueur mul xP sub celerity div add Signal} def
% le + indique la propagation dans le sens +
% signal réfléchi au deuxième aller-retour sur l'extrémité A
       /AngleRotation-R2  {ti 4 Longueur mul xP sub celerity div sub Signal} def
% signe résultant dans le cas où l'extrémité est fixe
      /AngleRotation {AngleRotationI  AngleRotation-R1 sub AngleRotation+R2 sub AngleRotation-R2 add} def
    }%
\ThreeDput[normal=0 1 0](0,\rx,0){%
\rput{!AngleRotation}{\pnode(1,0){A1}\pnode(-1,0){A2}}%{\tige}%
}%
\psline[linewidth=0.05,linecolor=bois](A1)(A2)
\pscircle[style=ball,slopeend=red](A1){0.1}%
\pscircle[style=ball,slopeend=blue](A2){0.1}}
\end{pspicture}\newpage
}
\end{center}
\end{document}


\documentclass{article}
\usepackage[paperwidth=10.5cm,paperheight=6.5cm,hmargin={0cm,0cm},vmargin={0cm,0cm},dvips]{geometry}
\usepackage{pst-plot,pst-node,pst-slpe,pst-3d}
\newpsstyle{ball}{fillstyle=ccslope,slopebegin=white,slopecenter=0.4 0.6,linestyle=none}
\definecolor{bois}{RGB}{63 34 4}
\parindent0pt
\psset{dimen=middle}
\title{Réflexion d'ondes transversales sur une extrémité libre ou fixe}
\date{28 janvier 2016}
\def\Sawtooth{%
/date exch def
                                 date 0 le {0} if % t<0 br="">                                 date 0 gt date T1 4 div le and {a1 date mul} if % 0                                 date T1 4 div gt date 3 T1 mul 4 div le and {a1 neg date mul 2 Am mul add} if % T/4                                 date T1 3 mul 4 div gt date  T1 le and {a1 date mul 4 Am mul sub} if % 3T/4                                 date T1 gt {0} if % t>T
}
\def\Sinusoidal{%
/date exch def date 0 le date T1 gt or {0} {Am 360 T1 div date mul sin mul }ifelse  % t<0 ou="" t="">T =>0
}
\def\Gauss{%
/date exch def date 0 le date 2 T1 mul gt or {0} {Am Euler date T1 sub dup mul neg exp mul } ifelse  % t<0 ou="" t="">T =>0
}%
\pagestyle{empty}
\begin{document}
\begin{center}
\psset{viewpoint=1 1 0.5}
\def\nFrames{880}%
\multido{\rt=0+0.05}{\nFrames}{%
\begin{pspicture}(-2,-4)(8.5,2.5)
\psframe(-2,-4)(8.5,2.5)
\ThreeDput[normal=0 0 1](0,0,-1.2){%
\psframe[fillstyle=solid,fillcolor=green!20](-1,0)(1,10)}
\ThreeDput[normal=1 0 0](0,0,0){%
% les axes
    \psline{->}(0,0)(11,0)
    \psline[linecolor=cyan](0,0)(10,0)
    \uput[0](11,0){$y$}
    \psline{->}(0,0)(0,2)
    \uput[90](0,2){$z$}
    \psline[linewidth=0.1](0,-1.2)
    \psline[linewidth=0.1](10,0)(10,-1.2)}
\ThreeDput[normal=0 1 0](0,0,0){%
\psline{->}(0,0)(-2,0)\uput[90](-2,0){$x$}
}%
\multido{\rx=0+0.25}{41}{%
\pstVerb{/T1 2 def % p\'{e}riode :
         /celerity 1 def   %
         /Longueur 10 def
% 5xT1 pour parcourir la longueur
         /Am 45 def % amplitude maximale en degrés
         /a1 4 T1 div Am mul def % pente pour le signal en dents de scie
         /ti \rt\space def
         /xP \rx\space def
% description du signal initial
         /Signal {\Gauss} def % {\Sawtooth } def
% signal incident
        /AngleRotationI {ti xP celerity div sub Signal} def
% signal réfléchi au bout du premier trajet sur l'extrémité libre
       /AngleRotation-R1  {ti 2 Longueur mul xP sub celerity div sub Signal} def
% le - indique la propagation dans le sens -
% signal réfléchi au bout du premier aller-retour sur l'extrémité O supposée libre
       /AngleRotation+R2 {ti -2 Longueur mul xP sub celerity div add Signal} def
% le + indique la propagation dans le sens +
% signal réfléchi au deuxième aller-retour sur l'extrémité libre
       /AngleRotation-R2  {ti 4 Longueur mul xP sub celerity div sub Signal} def
% signe résultant
      /AngleRotation {AngleRotationI  AngleRotation-R1 add AngleRotation+R2 add AngleRotation-R2 add} def
    }%
\ThreeDput[normal=0 1 0](0,\rx,0){%
\rput{!AngleRotation}{\pnode(1,0){A1}\pnode(-1,0){A2}}%{\tige}%
}%
\psline[linewidth=0.05,linecolor=bois](A1)(A2)
\pscircle[style=ball,slopeend=red](A1){0.1}%
\pscircle[style=ball,slopeend=blue](A2){0.1}}
\end{pspicture}\newpage
}
\end{center}
\end{document}



jeudi 4 février 2016

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


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 (Elektromotor.pdf et Elektromotor.tex) contenant toutes les images sont téléchargeables ici, ils sont placés dans le dossier:


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 !
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 dans le dossier :
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 (bart-pantographe.zip) sont dans l'archive :

 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.
(pantographe-bart2.zip) est dans l'archive ci-dessus.

 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}