lundi 19 décembre 2011

Branches multiples des enveloppes : un texte de Henri Bouasse

Le chapitre VII « Généralités sur les courbes » du livre de Henri Bouasse : Cours de mathématiques générales, paru en 1911 chez Ch.Delagrave à Paris, contient une partie très intéressante sur les enveloppes et enveloppées dont j’ai extrait ce court paragraphe (§ 136) intitulé « Branches multiples des enveloppes », afin de l’illustrer avec PStricks et d’en proposer un Gif animé et une animation flash.
Le Gif  animé :
 L'animation flash :
http://melusine.eu.org/syracuse/mluque/bouasse-enveloppes/?swf=animation-tige25.swf
Deux images, celle reproduisant, avec PStricks, l'image du texte :
et une autre en couleurs :

Le code LaTeX permettant de générer les images pour créer un Gif animé ou une animation flash :

\documentclass{article}
\usepackage{pstricks,pst-plot,multido,pst-eps}
% Denis Girou
\newcommand{\pssave}[2]{\PSTtoEPS[headers=all,bburx=6cm,bbury=6cm,bbllx=-6cm,bblly=-6cm]{#1.eps}{#2}}
%
\SpecialCoor
\newcount\It
\begin{document}
\def\radius{2}
\def\datas{/radius \radius\space def
/AB 3.14159 radius mul 2 div def}
\multido{\iT=-90+10,\image=1+1}{19}{%
\It=\image
  \ifnum\It<9
    \def\Pad{00}%
  \else
    \def\Pad{0}%
  \fi
\pssave{tige\Pad\image}{%
\begin{pspicture}(-6,-6)(6,6)
\psframe*(-6,-6)(6,6)
\pscircle[linecolor=white]{\radius}
% phase 1 : rotation de la tige autour de I
\psline[linewidth=2pt,linecolor=yellow](\radius,0)(!
                 \datas
                 /xB radius AB \iT\space cos mul add def
                 /yB AB \iT\space sin mul def
                 xB yB)
\parametricplot[linecolor=red]{-90}{\iT}{%
    radius AB t cos mul add
    AB t sin mul  }
\end{pspicture}
}}
\multido{\iA=10+10,\image=20+1}{9}{%
\pssave{tige0\image}{%
% roulement entre I et J
\begin{pspicture}(-6,-6)(6,6)
\psframe*(-6,-6)(6,6)
\pscircle[linecolor=white]{\radius}
\psline[linewidth=2pt,linecolor=yellow](!
         \datas
         /iA \iA\space 3.14159 mul 180 div def
         /TA radius iA mul def
         /TB AB TA sub def
         /xT radius \iA\space cos mul def
         /yT radius \iA\space sin mul def
         /xA xT TA \iA\space sin mul add def
         /yA yT TA \iA\space cos mul sub def
          xA yA)(!
         \datas
         /iA \iA\space 3.14159 mul 180 div def
         /TA radius iA mul def
         /TB AB TA sub def
         /xT radius \iA\space cos mul def
         /yT radius \iA\space sin mul def
         /xB xT TB \iA\space sin mul sub def
         /yB yT TB \iA\space cos mul add def xB yB)
\parametricplot[linecolor=red]{-90}{90}{%
    radius AB t cos mul add
    AB t sin mul  }
\parametricplot[linecolor=red]{0}{\iA}{%
         /TA radius t 3.14159 mul 180 div mul def
         /TB AB TA sub def
         /xT radius t cos mul def
         /yT radius t sin mul def
         /xA xT TA t sin mul add def
         /yA yT TA t cos mul sub def
         /xB xT TB t sin mul sub def
         /yB yT TB t cos mul add def
         xB yB}
\parametricplot[linecolor=blue]{0}{\iA}{%
         /TA radius t 3.14159 mul 180 div mul def
         /TB AB TA sub def
         /xT radius t cos mul def
         /yT radius t sin mul def
         /xA xT TA t sin mul add def
         /yA yT TA t cos mul sub def
         /xB xT TB t sin mul sub def
         /yB yT TB t cos mul add def
         xA yA}
\end{pspicture}
}}
% phase 3 : rotation autour de J
\multido{\iT=10+10,\image=29+1}{18}{%
\pssave{tige0\image}{%
\begin{pspicture}(-6,-6)(6,6)
\psframe*(-6,-6)(6,6)
\pscircle[linecolor=white]{\radius}
\psline[linewidth=2pt,linecolor=yellow](! \datas
          /xA AB \iT\space cos mul def
          /yA AB \iT\space sin mul radius add def xA yA)(! \datas
          /xB 0 def
          /yB radius def xB yB)
\parametricplot[linecolor=red]{-90}{90}{%
    radius AB t cos mul add
    AB t sin mul  }
\parametricplot[linecolor=red]{0}{90}{%
         /TA radius t 3.14159 mul 180 div mul def
         /TB AB TA sub def
         /xT radius t cos mul def
         /yT radius t sin mul def
         /xA xT TA t sin mul add def
         /yA yT TA t cos mul sub def
         /xB xT TB t sin mul sub def
         /yB yT TB t cos mul add def
         xB yB}
\parametricplot[linecolor=blue]{0}{90}{%
         /TA radius t 3.14159 mul 180 div mul def
         /TB AB TA sub def
         /xT radius t cos mul def
         /yT radius t sin mul def
         /xA xT TA t sin mul add def
         /yA yT TA t cos mul sub def
         /xB xT TB t sin mul sub def
         /yB yT TB t cos mul add def
         xA yA}
% rotation autour de J
\parametricplot[linecolor=blue]{0}{\iT}{%
        AB t cos mul
        AB t sin mul radius add }
\end{pspicture}
}}
% phase 4 :roulement entre J et K
\multido{\iA=10+10,\image=47+1}{9}{%
\pssave{tige0\image}{%
\begin{pspicture}(-6,-6)(6,6)
\psframe*(-6,-6)(6,6)
\pscircle[linecolor=white]{\radius}
\psline[linewidth=2pt,linecolor=yellow](! \datas
         /iA \iA\space 3.14159 mul 180 div def
         /TB radius iA mul def
         /TA AB TB sub def
         /xT radius \iA\space sin mul neg def
         /yT radius \iA\space cos mul def
         /xA xT TA \iA\space cos mul sub def
         /yA yT TA \iA\space sin mul sub def
         xA yA)(! \datas
         /iA \iA\space 3.14159 mul 180 div def
         /TB radius iA mul def
         /TA AB TB sub def
         /xT radius \iA\space sin mul neg def
         /yT radius \iA\space cos mul def
         /xB xT TB \iA\space cos mul add def
         /yB yT TB \iA\space sin mul add def
         xB yB)
\parametricplot[linecolor=red]{-90}{90}{%
    radius AB t cos mul add
    AB t sin mul  }
\parametricplot[linecolor=red]{0}{90}{%
         /TA radius t 3.14159 mul 180 div mul def
         /TB AB TA sub def
         /xT radius t cos mul def
         /yT radius t sin mul def
         /xA xT TA t sin mul add def
         /yA yT TA t cos mul sub def
         /xB xT TB t sin mul sub def
         /yB yT TB t cos mul add def
         xB yB}
\parametricplot[linecolor=blue]{0}{90}{%
         /TA radius t 3.14159 mul 180 div mul def
         /TB AB TA sub def
         /xT radius t cos mul def
         /yT radius t sin mul def
         /xA xT TA t sin mul add def
         /yA yT TA t cos mul sub def
         /xB xT TB t sin mul sub def
         /yB yT TB t cos mul add def
         xA yA}
% rotation autour de J
\parametricplot[linecolor=blue]{0}{180}{%
        AB t cos mul
        AB t sin mul radius add }
% roulement entre J et K
\parametricplot[linecolor=red]{0}{\iA}{%
         /TB radius t 3.14159 mul 180 div mul def
         /TA AB TB sub def
         /xT radius t sin mul neg def
         /yT radius t cos mul def
%         /xA xT TA t cos mul sub def
%         /yA yT TA t sin mul sub def
         /xB xT TB t cos mul add def
         /yB yT TB t sin mul add def
          xB yB}
\parametricplot[linecolor=blue]{0}{\iA}{%
         /TB radius t 3.14159 mul 180 div mul def
         /TA AB TB sub def
         /xT radius t sin mul neg def
         /yT radius t cos mul def
         /xA xT TA t cos mul sub def
         /yA yT TA t sin mul sub def
         /xB xT TB t cos mul add def
         /yB yT TB t sin mul add def
          xA yA}
\end{pspicture}
 }}%
 % phase 5 : rotation autour de K
\multido{\iT=10+10,\image=56+1}{18}{%
\pssave{tige0\image}{%
\begin{pspicture}(-6,-6)(6,6)
\psframe*(-6,-6)(6,6)
\pscircle[linecolor=white]{\radius}
\psline[linewidth=2pt,linecolor=yellow](! \datas
          /xA radius neg def
          /yA 0 def
          xA yA)(! \datas
          /xB AB \iT\space sin mul radius add neg def
          /yB AB \iT\space cos mul def
          xB yB)
\parametricplot[linecolor=red]{-90}{90}{%
    radius AB t cos mul add
    AB t sin mul }
\parametricplot[linecolor=red]{0}{90}{%
         /TA radius t 3.14159 mul 180 div mul def
         /TB AB TA sub def
         /xT radius t cos mul def
         /yT radius t sin mul def
         /xA xT TA t sin mul add def
         /yA yT TA t cos mul sub def
         /xB xT TB t sin mul sub def
         /yB yT TB t cos mul add def
         xB yB}
\parametricplot[linecolor=blue]{0}{90}{%
         /TA radius t 3.14159 mul 180 div mul def
         /TB AB TA sub def
         /xT radius t cos mul def
         /yT radius t sin mul def
         /xA xT TA t sin mul add def
         /yA yT TA t cos mul sub def
         /xB xT TB t sin mul sub def
         /yB yT TB t cos mul add def
         xA yA}
% rotation autour de J
\parametricplot[linecolor=blue]{0}{180}{%
        AB t cos mul
        AB t sin mul radius add }
% roulement entre J et K
\parametricplot[linecolor=red]{0}{90}{%
         /TB radius t 3.14159 mul 180 div mul def
         /TA AB TB sub def
         /xT radius t sin mul neg def
         /yT radius t cos mul def
%         /xA xT TA t cos mul sub def
%         /yA yT TA t sin mul sub def
         /xB xT TB t cos mul add def
         /yB yT TB t sin mul add def
          xB yB}
\parametricplot[linecolor=blue]{0}{90}{%
         /TB radius t 3.14159 mul 180 div mul def
         /TA AB TB sub def
         /xT radius t sin mul neg def
         /yT radius t cos mul def
         /xA xT TA t cos mul sub def
         /yA yT TA t sin mul sub def
         /xB xT TB t cos mul add def
         /yB yT TB t sin mul add def
          xA yA}
\parametricplot[linecolor=red]{0}{\iT}{%
    AB t sin mul radius add neg
    AB t cos mul}
\end{pspicture}
}}%
% phase 6 : roulement entre de K -> L
\multido{\iA=10+10,\image=74+1}{9}{%
\pssave{tige0\image}{%
\begin{pspicture}(-6,-6)(6,6)
\psframe*(-6,-6)(6,6)
\pscircle[linecolor=white]{\radius}
\psline[linewidth=2pt,linecolor=yellow](! \datas
         /iA \iA\space 3.14159 mul 180 div def
         /TB radius iA mul def
         /TA AB TB sub def
         /xT radius \iA\space cos mul neg def
         /yT radius \iA\space sin mul neg def
         /xA xT TB \iA\space sin mul sub def
         /yA yT TB \iA\space cos mul add def
         xA yA)(! \datas
         /iA \iA\space 3.14159 mul 180 div def
         /TB radius iA mul def
         /TA AB TB sub def
         /xT radius \iA\space cos mul neg def
         /yT radius \iA\space sin mul neg def
         /xB xT TA \iA\space sin mul add def
         /yB yT TA \iA\space cos mul sub def
          xB yB)
\parametricplot[linecolor=red]{-90}{90}{%
    radius AB t cos mul add
    AB t sin mul }
\parametricplot[linecolor=red]{0}{90}{%
         /TA radius t 3.14159 mul 180 div mul def
         /TB AB TA sub def
         /xT radius t cos mul def
         /yT radius t sin mul def
         /xA xT TA t sin mul add def
         /yA yT TA t cos mul sub def
         /xB xT TB t sin mul sub def
         /yB yT TB t cos mul add def
         xB yB}
\parametricplot[linecolor=blue]{0}{90}{%
         /TA radius t 3.14159 mul 180 div mul def
         /TB AB TA sub def
         /xT radius t cos mul def
         /yT radius t sin mul def
         /xA xT TA t sin mul add def
         /yA yT TA t cos mul sub def
         /xB xT TB t sin mul sub def
         /yB yT TB t cos mul add def
         xA yA}
% rotation autour de J
\parametricplot[linecolor=blue]{0}{180}{%
        AB t cos mul
        AB t sin mul radius add }
% roulement entre J et K
\parametricplot[linecolor=red]{0}{90}{%
         /TB radius t 3.14159 mul 180 div mul def
         /TA AB TB sub def
         /xT radius t sin mul neg def
         /yT radius t cos mul def
%         /xA xT TA t cos mul sub def
%         /yA yT TA t sin mul sub def
         /xB xT TB t cos mul add def
         /yB yT TB t sin mul add def
          xB yB}
\parametricplot[linecolor=blue]{0}{90}{%
         /TB radius t 3.14159 mul 180 div mul def
         /TA AB TB sub def
         /xT radius t sin mul neg def
         /yT radius t cos mul def
         /xA xT TA t cos mul sub def
         /yA yT TA t sin mul sub def
         /xB xT TB t cos mul add def
         /yB yT TB t sin mul add def
          xA yA}
\parametricplot[linecolor=red]{0}{180}{%
    AB t sin mul radius add neg
    AB t cos mul}
 \parametricplot[linecolor=red]{0}{\iA}{%
         /TB radius t 3.14159 mul 180 div mul def
         /TA AB TB sub def
         /xT radius t cos mul neg def
         /yT radius t sin mul neg def
         /xA xT TB t sin mul sub def
         /yA yT TB t cos mul add def
         /xB xT TA t sin mul add def
         /yB yT TA t cos mul sub def
         xB yB
 }
 \parametricplot[linecolor=blue]{0}{\iA}{%
         /TB radius t 3.14159 mul 180 div mul def
         /TA AB TB sub def
         /xT radius t cos mul neg def
         /yT radius t sin mul neg def
         /xA xT TB t sin mul sub def
         /yA yT TB t cos mul add def
         /xB xT TA t sin mul add def
         /yB yT TA t cos mul sub def
         xA yA
 }
\end{pspicture}
}}%
% phase 7 : rotation autour de L
\multido{\iT=10+10,\image=83+1}{18}{%
\pssave{tige0\image}{%
\begin{pspicture}(-6,-6)(6,6)
\psframe*(-6,-6)(6,6)
\pscircle[linecolor=white]{\radius}
\psline[linewidth=2pt,linecolor=yellow](! \datas
          /yA AB \iT\space sin mul radius add neg def
          /xA AB \iT\space cos mul neg def
           xA yA)(! \datas
          /xB 0 def
          /yB radius neg def
           xB yB)
\parametricplot[linecolor=red]{-90}{90}{%
    radius AB t cos mul add
    AB t sin mul }
\parametricplot[linecolor=red]{0}{90}{%
         /TA radius t 3.14159 mul 180 div mul def
         /TB AB TA sub def
         /xT radius t cos mul def
         /yT radius t sin mul def
         /xA xT TA t sin mul add def
         /yA yT TA t cos mul sub def
         /xB xT TB t sin mul sub def
         /yB yT TB t cos mul add def
         xB yB}
\parametricplot[linecolor=blue]{0}{90}{%
         /TA radius t 3.14159 mul 180 div mul def
         /TB AB TA sub def
         /xT radius t cos mul def
         /yT radius t sin mul def
         /xA xT TA t sin mul add def
         /yA yT TA t cos mul sub def
         /xB xT TB t sin mul sub def
         /yB yT TB t cos mul add def
         xA yA}
% rotation autour de J
\parametricplot[linecolor=blue]{0}{180}{%
        AB t cos mul
        AB t sin mul radius add }
% roulement entre J et K
\parametricplot[linecolor=red]{0}{90}{%
         /TB radius t 3.14159 mul 180 div mul def
         /TA AB TB sub def
         /xT radius t sin mul neg def
         /yT radius t cos mul def
%         /xA xT TA t cos mul sub def
%         /yA yT TA t sin mul sub def
         /xB xT TB t cos mul add def
         /yB yT TB t sin mul add def
          xB yB}
\parametricplot[linecolor=blue]{0}{90}{%
         /TB radius t 3.14159 mul 180 div mul def
         /TA AB TB sub def
         /xT radius t sin mul neg def
         /yT radius t cos mul def
         /xA xT TA t cos mul sub def
         /yA yT TA t sin mul sub def
         /xB xT TB t cos mul add def
         /yB yT TB t sin mul add def
          xA yA}
\parametricplot[linecolor=red]{0}{180}{%
    AB t sin mul radius add neg
    AB t cos mul}
 \parametricplot[linecolor=red]{0}{90}{%
         /TB radius t 3.14159 mul 180 div mul def
         /TA AB TB sub def
         /xT radius t cos mul neg def
         /yT radius t sin mul neg def
         /xA xT TB t sin mul sub def
         /yA yT TB t cos mul add def
         /xB xT TA t sin mul add def
         /yB yT TA t cos mul sub def
         xB yB
 }
 \parametricplot[linecolor=blue]{0}{90}{%
         /TB radius t 3.14159 mul 180 div mul def
         /TA AB TB sub def
         /xT radius t cos mul neg def
         /yT radius t sin mul neg def
         /xA xT TB t sin mul sub def
         /yA yT TB t cos mul add def
         /xB xT TA t sin mul add def
         /yB yT TA t cos mul sub def
         xA yA
 }
\parametricplot[linecolor=blue]{0}{\iT}{%
        AB t cos mul neg
        AB t sin mul radius add neg
        }
\end{pspicture}
}}%
% phase 8 : roulement de L->I
\multido{\iA=10+10,\image=101+1}{9}{%
\pssave{tige\image}{%
\begin{pspicture}(-6,-6)(6,6)
\psframe*(-6,-6)(6,6)
\pscircle[linecolor=white]{\radius}
\psline[linewidth=2pt,linecolor=yellow](! \datas
         /iA \iA\space 3.14159 mul 180 div def
         /TA radius iA mul def
         /TB AB TA sub def
         /xT radius \iA\space sin mul def
         /yT radius \iA\space cos mul neg def
         /xA xT TA \iA\space cos mul sub def
         /yA yT TA \iA\space sin mul sub def
         xA yA)(! \datas
         /iA \iA\space 3.14159 mul 180 div def
         /TA radius iA mul def
         /TB AB TA sub def
         /xT radius \iA\space sin mul def
         /yT radius \iA\space cos mul neg def
         /xB xT TB \iA\space cos mul add def
         /yB yT TB \iA\space sin mul add def
          xB yB)
\parametricplot[linecolor=red]{-90}{90}{%
    radius AB t cos mul add
    AB t sin mul }
\parametricplot[linecolor=red]{0}{90}{%
         /TA radius t 3.14159 mul 180 div mul def
         /TB AB TA sub def
         /xT radius t cos mul def
         /yT radius t sin mul def
         /xA xT TA t sin mul add def
         /yA yT TA t cos mul sub def
         /xB xT TB t sin mul sub def
         /yB yT TB t cos mul add def
         xB yB}
\parametricplot[linecolor=blue]{0}{90}{%
         /TA radius t 3.14159 mul 180 div mul def
         /TB AB TA sub def
         /xT radius t cos mul def
         /yT radius t sin mul def
         /xA xT TA t sin mul add def
         /yA yT TA t cos mul sub def
         /xB xT TB t sin mul sub def
         /yB yT TB t cos mul add def
         xA yA}
% rotation autour de J
\parametricplot[linecolor=blue]{0}{180}{%
        AB t cos mul
        AB t sin mul radius add }
% roulement entre J et K
\parametricplot[linecolor=red]{0}{90}{%
         /TB radius t 3.14159 mul 180 div mul def
         /TA AB TB sub def
         /xT radius t sin mul neg def
         /yT radius t cos mul def
%         /xA xT TA t cos mul sub def
%         /yA yT TA t sin mul sub def
         /xB xT TB t cos mul add def
         /yB yT TB t sin mul add def
          xB yB}
\parametricplot[linecolor=blue]{0}{90}{%
         /TB radius t 3.14159 mul 180 div mul def
         /TA AB TB sub def
         /xT radius t sin mul neg def
         /yT radius t cos mul def
         /xA xT TA t cos mul sub def
         /yA yT TA t sin mul sub def
         /xB xT TB t cos mul add def
         /yB yT TB t sin mul add def
          xA yA}
\parametricplot[linecolor=red]{0}{180}{%
    AB t sin mul radius add neg
    AB t cos mul}
 \parametricplot[linecolor=red]{0}{90}{%
         /TB radius t 3.14159 mul 180 div mul def
         /TA AB TB sub def
         /xT radius t cos mul neg def
         /yT radius t sin mul neg def
         /xA xT TB t sin mul sub def
         /yA yT TB t cos mul add def
         /xB xT TA t sin mul add def
         /yB yT TA t cos mul sub def
         xB yB
 }
 \parametricplot[linecolor=blue]{0}{90}{%
         /TB radius t 3.14159 mul 180 div mul def
         /TA AB TB sub def
         /xT radius t cos mul neg def
         /yT radius t sin mul neg def
         /xA xT TB t sin mul sub def
         /yA yT TB t cos mul add def
         /xB xT TA t sin mul add def
         /yB yT TA t cos mul sub def
         xA yA
 }
\parametricplot[linecolor=blue]{0}{180}{%
        AB t cos mul neg
        AB t sin mul radius add neg
        }
 \parametricplot[linecolor=blue]{0}{\iA}{%
         /TA radius t 3.14159 mul 180 div mul def
         /TB AB TA sub def
         /xT radius t sin mul def
         /yT radius t cos mul neg def
         /xB xT TA t cos mul sub def
         /yB yT TA t sin mul sub def
         /xA xT TB t cos mul add def
         /yA yT TB t sin mul add def
         xA yA
 }
 \parametricplot[linecolor=red]{0}{\iA}{%
         /TA radius t 3.14159 mul 180 div mul def
         /TB AB TA sub def
         /xT radius t sin mul def
         /yT radius t cos mul neg def
         /xB xT TA t cos mul sub def
         /yB yT TA t sin mul sub def
         /xA xT TB t cos mul add def
         /yA yT TB t sin mul add def
         xB yB
 }
\end{pspicture}
}}%
\end{document}


Aucun commentaire:

Enregistrer un commentaire