mercredi 18 mai 2016

Le triangle de Reuleaux - 1

Le triangle curviligne a été décrit par Franz Reuleaux dans son ouvrage : “Cinématique : Principes fondamentaux d’une théorie générale des machines” traduit par A. Debize en 1877. Ce livre a été numérisé par Google, il est librement disponible.
Le chapitre 25 est consacré aux figures de largeur constante, il ne comprend aucun calcul mais des raisonnements et des constructions géométriques, il débute ainsi :
« En partant du principe établi au § 21, nous sommes conduits, par voie de synthèse, à une série d’autres couples d’éléments, dont quelques-uns doivent faire ici l’objet d’un examen spécial. Si à une figure plane on mène deux tangentes parallèles AB et CD (fig. 99), la distance c de ces tangentes est la mesure de la dimension de la figure, dans la direction des normales d’appui. Cette dimension, qui constitue ce qu’on peut appeler la largeur de la figure, est, en général, une grandeur variable. Mais on peut imaginer des figures dans lesquelles la largeur soit constante, c’est-à-dire dans lesquelles tous les
couples de tangentes parallèles et formant appui, en sens contraires, aient la même distance; 1e cercle en fournit un exemple.
Si à une figure jouissant de cette propriété on mène deux couples de tangentes de ce genre, ces lignes toucheront la figure en quatre points et constitueront ainsi des appuis susceptibles d’empêcher toute translation, ainsi qu’il a été démontré au § 18. Mais nous savons également que ces appuis ne s’opposent pas à la rotation de la figure et que, de plus, cette rotation ne peut avoir lieu qu’autour d’un seul point; ce qui revient à dire que les normales aux quatre points d’appui se coupent toutes en un même point, ou que les normales d’appui coïncident, comme l’indique la fig. 100, où la normale en a passe par c et celle en d par b. Puisqu’en effet la largeur de la figure est constante, on doit en conclure que, pour tous les changements de position de cette figure, à l’intérieur du quadrilatère des tangentes, le système d’appuis subsiste, et que, par suite, d’après le § 2l, il doit exister un pôle unique. Il résulte également de là que les figures de largeur constante jouissent de cette propriété caractéristique que, sur le rayon de courbure de chaque élément du contour, se trouve situé, non-seulement le centre de courbure correspondant, mais encore celui de l’élément opposé. Les quatre tangentes limitent, dans le plan, un carré, ou, plus généralement, un losange ABCD. On peut conclure de là que toute figure de largeur constante est desmodromique dans un losange qui l’entoure, et que, par suite, elle peut servir à former, avec ce losange, un couple d’éléments. »


Il existe bien sûr de très nombreux schémas, animations en 2D et 3D sur internet et ce triangle et les polygones de Reuleaux ont été étudiés par de très nombreux auteurs : en voici deux, l’un d'Eric Weisstein parce qu’il y a beaucoup de renseignements théoriques sur les propriétés du triangle :
http://mathworld.wolfram.com/ReuleauxTriangle.html
et l’autre de Jean-Bernard Roux, parce ce qu’il contient des explications et des calculs très concrets pour faire tourner le triangle dans le carré. :
http://rouxjeanbernard.ch/AM/html/amch87.html

Le magazine ``Dossier pour la SCIENCE''  N°91 d'Avril-Juin 2016 contient un article intitulé ``De l'importance d'être constant... dans sa largeur'' où il est question du triangle de Reuleaux, des polygones de Reuleaux et de compléments mathématiques en rapport avec le titre de l'article.
http://www.pourlascience.fr/ewb_pages/d/dossierpourlascience.php

Voici deux adaptations réalisées avec PSTricks :
Le code ci-dessous permet une animation dans le fichier pdf grâce au package animate d'Alexander Grahn.
https://www.ctan.org/tex-archive/macros/latex/contrib/animate

\documentclass{article}
\usepackage{pst-plot,pstricks,pst-node,pst-text}
\usepackage{amsmath,amssymb}
\usepackage[latin1]{inputenc}%
\usepackage[T1]{fontenc}
\usepackage{animate}
\begin{document}
\begin{center}
\def\triangleReuleaux{
\pnode(!3 sqrt -3 div 0){A}
\pnode(!3 sqrt 6 div -0.5){B}
\pnode(!3 sqrt 6 div 0.5){C}
%\pspolygon(A)(B)(C)
%\psdots(A)(B)(C)
\pscustom[linestyle=none,fillstyle=solid,fillcolor={[rgb]{0.15 0.15 0.15}},opacity=0.7]{
\psarc(A){1}{-30}{30}
\psarc(B){1}{90}{150}
\psarc(C){1}{210}{270}\closepath}
\pscustom[linecolor=red]{%
\psarc(A){0.998}{-30}{30}
\psarc(B){0.998}{90}{150}
\psarc(C){0.998}{210}{270}\closepath}
\psdot[linecolor=red](!0 0)
}%
\def\CenterPath{
\psparametricplot[linecolor=red]{0.5236}{1.047197}{(-3+sqrt(3)*cos(t)+3*sin(t))/6|(-3+3*cos(t)+sqrt(3)*sin(t))/6}
\psparametricplot[linecolor=red]{0.5236}{1.047197}{(3-sqrt(3)*cos(t)-3*sin(t))/6|(-3+3*cos(t)+sqrt(3)*sin(t))/6}
\psparametricplot[linecolor=red]{0.5236}{1.047197}{(3-sqrt(3)*cos(t)-3*sin(t))/6|(3-3*cos(t)-sqrt(3)*sin(t))/6}
\psparametricplot[linecolor=red]{0.5236}{1.047197}{(-3+sqrt(3)*cos(t)+3*sin(t))/6|(3-3*cos(t)-sqrt(3)*sin(t))/6}
}%
\def\EnveloppeTriangleCadre{
\psframe*[linecolor=cyan!20](-.5,-.5)(.5,.5)
\pscustom[fillstyle=solid,fillcolor=blue,linestyle=none]{
\psparametricplot{1.047197}{0.5236}{(1-cos(t)-sqrt(3)*sin(t))*0.5|(1-sin(t)-sqrt(3)*cos(t))*0.5}
\psline(!1 3 sqrt sub 2 div -0.5)(!1 3 sqrt sub neg 2 div -0.5)
\psparametricplot{0.5236}{1.047197}{-(1-cos(t)-sqrt(3)*sin(t))*0.5|(1-sin(t)-sqrt(3)*cos(t))*0.5}
\psline(!0.5 1 3 sqrt sub 2 div )(!0.5 1 3 sqrt sub neg 2 div)
\psparametricplot{1.047197}{0.5236}{-(1-cos(t)-sqrt(3)*sin(t))*0.5|-(1-sin(t)-sqrt(3)*cos(t))*0.5}
\psline(!1 3 sqrt sub neg 2 div 0.5)(!1 3 sqrt sub 2 div 0.5)
\psparametricplot{0.5236}{1.047197}{(1-cos(t)-sqrt(3)*sin(t))*0.5|-(1-sin(t)-sqrt(3)*cos(t))*0.5}
\psline(!-0.5 1 3 sqrt sub neg 2 div)(!-0.5 1 3 sqrt sub 2 div)
\moveto(! -0.6 0.6)
\psline(-0.6,0.6)(0.6,0.6)(0.6,-0.6)(-0.6,-0.6)(-0.6,0.6)
\closepath}%
\psgrid[subgriddiv=0,gridcolor=blue,griddots=5,gridlabels=0pt,unit=0.1](-5,-5)(5,5)}
\psset{unit=10,algebraic,linejoin=1}%
\begin{animateinline}[controls,loop,
                     begin={\begin{pspicture}(-.7,-.7)(.7,.7)},
                     end={\end{pspicture}}]{20}% 20 images/s
\multiframe{30}{iA=60+-1,IA=0+-1}{%
\EnveloppeTriangleCadre%
\pstVerb{%
/posxy1 {/alpha exch def
       -3 3 sqrt alpha cos mul add 3 alpha sin mul add 6 div % x
       -3 3 alpha cos mul add 3 sqrt alpha sin mul add 6 div % y
       } def}%
 \rput{\IA}(!\iA\space posxy1){\triangleReuleaux}\CenterPath}
\newframe
\multiframe{30}{iA=30+1,IA=-30+-1}{%
\EnveloppeTriangleCadre%
\pstVerb{%
/posxy2 {/alpha exch def
       3 3 sqrt alpha cos mul sub -3 alpha sin mul add 6 div % x
       -3 3 alpha cos mul add 3 sqrt alpha sin mul add 6 div % y
       } def}%
 \rput{\IA}(!\iA\space posxy2){\triangleReuleaux}\CenterPath}
\newframe
\multiframe{30}{iA=60+-1,IA=-60+-1}{%
\EnveloppeTriangleCadre%
\pstVerb{%
/posxy3 {/alpha exch def
       3 3 sqrt alpha cos mul sub -3 alpha sin mul add 6 div % x
       3 3 alpha cos mul sub 3 sqrt alpha sin mul sub 6 div % y
       } def}%
 \rput{\IA}(!\iA\space posxy3){\triangleReuleaux}\CenterPath}
\newframe
\multiframe{30}{iA=30+1,IA=30+-1}{%
\EnveloppeTriangleCadre%
\pstVerb{%
/posxy4 {/alpha exch def
       -3 3 sqrt alpha cos mul add 3 alpha sin mul add 6 div % x
        3 3 alpha cos mul sub 3 sqrt alpha sin mul sub 6 div % y
       } def}%
\rput{\IA}(!\iA\space posxy4){\triangleReuleaux}\CenterPath}
\end{animateinline}
\end{center}
\newpage

\begin{center}
\font\bigpala=pplb at 0.5 cm
\def\triangleReuleaux{
\pnode(!3 sqrt -3 div 0){A}
\pnode(!3 sqrt 6 div -0.5){B}
\pnode(!3 sqrt 6 div 0.5){C}
%\pspolygon(A)(B)(C)
%\psdots(A)(B)(C)
%\pscircle(0,0){!3 sqrt 3 div}
\pscustom{
%\pscustom[linestyle=none,fillstyle=solid,fillcolor=gray!50!blue!50]{
\psarc(A){1}{-30}{30}
\psarc(B){1}{90}{150}
\psarc(C){1}{210}{270}\closepath}
\pstextpath[c]{\psarc[linestyle=none](A){0.9}{-30}{30}}{\bigpala Triangle de Reuleaux}
\pstextpath[c]{\psarc[linestyle=none](B){0.9}{90}{150}}{\bigpala Triangle de Reuleaux}
\pstextpath[c]{\psarc[linestyle=none](C){0.9}{210}{270}}{\bigpala Triangle de Reuleaux}
\psdot(!0 0)
}%
\def\CenterPath{
\psparametricplot{0.5236}{1.047197}{(-3+sqrt(3)*cos(t)+3*sin(t))/6|(-3+3*cos(t)+sqrt(3)*sin(t))/6}
\psparametricplot{0.5236}{1.047197}{(3-sqrt(3)*cos(t)-3*sin(t))/6|(-3+3*cos(t)+sqrt(3)*sin(t))/6}
\psparametricplot{0.5236}{1.047197}{(3-sqrt(3)*cos(t)-3*sin(t))/6|(3-3*cos(t)-sqrt(3)*sin(t))/6}
\psparametricplot{0.5236}{1.047197}{(-3+sqrt(3)*cos(t)+3*sin(t))/6|(3-3*cos(t)-sqrt(3)*sin(t))/6}
}%
\def\EnveloppeTriangleCadre{
\pscustom{
\psparametricplot{1.047197}{0.5236}{(1-cos(t)-sqrt(3)*sin(t))*0.5|(1-sin(t)-sqrt(3)*cos(t))*0.5}
\psline(!1 3 sqrt sub 2 div -0.5)(!1 3 sqrt sub neg 2 div -0.5)
\psparametricplot{0.5236}{1.047197}{-(1-cos(t)-sqrt(3)*sin(t))*0.5|(1-sin(t)-sqrt(3)*cos(t))*0.5}
\psline(!0.5 1 3 sqrt sub 2 div )(!0.5 1 3 sqrt sub neg 2 div)
\psparametricplot{1.047197}{0.5236}{-(1-cos(t)-sqrt(3)*sin(t))*0.5|-(1-sin(t)-sqrt(3)*cos(t))*0.5}
\psline(!1 3 sqrt sub neg 2 div 0.5)(!1 3 sqrt sub 2 div 0.5)
\psparametricplot{0.5236}{1.047197}{(1-cos(t)-sqrt(3)*sin(t))*0.5|-(1-sin(t)-sqrt(3)*cos(t))*0.5}
\psline(!-0.5 1 3 sqrt sub neg 2 div)(!-0.5 1 3 sqrt sub 2 div)
\moveto(! -0.6 0.6)
\psline(-0.6,0.6)(0.6,0.6)(0.6,-0.6)(-0.6,-0.6)(-0.6,0.6)
\closepath
}}
\psset{unit=10,algebraic,linejoin=1}%
\begin{animateinline}[controls,loop,
                     begin={\begin{pspicture}(-.7,-.7)(.7,.7)},
                     end={\end{pspicture}}]{20}% 20 images/s
\multiframe{30}{iA=60+-1,IA=0+-1}{%
\EnveloppeTriangleCadre%
\pstVerb{%
/posxy1 {/alpha exch def
       -3 3 sqrt alpha cos mul add 3 alpha sin mul add 6 div % x
       -3 3 alpha cos mul add 3 sqrt alpha sin mul add 6 div % y
       } def}%
 \rput{\IA}(!\iA\space posxy1){\triangleReuleaux}\CenterPath}
\newframe
\multiframe{30}{iA=30+1,IA=-30+-1}{%
\EnveloppeTriangleCadre%
\pstVerb{%
/posxy2 {/alpha exch def
       3 3 sqrt alpha cos mul sub -3 alpha sin mul add 6 div % x
       -3 3 alpha cos mul add 3 sqrt alpha sin mul add 6 div % y
       } def}%
 \rput{\IA}(!\iA\space posxy2){\triangleReuleaux}\CenterPath}
\newframe
\multiframe{30}{iA=60+-1,IA=-60+-1}{%
\EnveloppeTriangleCadre%
\pstVerb{%
/posxy3 {/alpha exch def
       3 3 sqrt alpha cos mul sub -3 alpha sin mul add 6 div % x
       3 3 alpha cos mul sub 3 sqrt alpha sin mul sub 6 div % y
       } def}%
 \rput{\IA}(!\iA\space posxy3){\triangleReuleaux}\CenterPath}
\newframe
\multiframe{30}{iA=30+1,IA=-90+-1}{%
\EnveloppeTriangleCadre%
\pstVerb{%
/posxy4 {/alpha exch def
       -3 3 sqrt alpha cos mul add 3 alpha sin mul add 6 div % x
        3 3 alpha cos mul sub 3 sqrt alpha sin mul sub 6 div % y
       } def}%
\rput{\IA}(!\iA\space posxy4){\triangleReuleaux}\CenterPath}
\end{animateinline}
\end{center}
\end{document} 

Aucun commentaire:

Enregistrer un commentaire