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}


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}