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}