mardi 5 juin 2018

Le dessin de la spirale de Cornu avec PSTricks

Comment dessiner la spirale de Cornu de différentes manières.
Avec les équations paramétriques de la spirale, en utilisant celles d’Augustin Fresnel :
 Sur l'établissement de celles-ci :
On peut opérer de deux façons : soit en utilisant la méthode de Simpson, soit en se servant de tables pré-calculées comme celles de Milton Abramowitz et Irene A. Stegun :
ou de Jean-Paul Vignault :
Les 2 méthodes sont illustrées dans la documentation.
Une autre méthode consiste à se servir des équations différentielles et du package pst-ode :
Les fichiers sont dans le répertoire :
Le fichier zippé les contient tous. Toutes les références sont indiquées dans la documentation.
 On s'intéresse aussi à la représentation en 3D et aux extensions de la spirale de Cornu. Quelques images extraites de la documentation :
Dans son article “Études sur la diffraction ;méthode géométrique pour la discussion des problèmes de diffraction” publié dans le journal de Comptes rendus hebdomadaires des séances de l’Académie des sciences du 12 janvier 1874 :
Marie Alfred Cornu donne une méthode pour calculer et dessiner la spirale qui porte son nom et c’est son dessin qui est à la page (116), que j’ai essayé de reproduire ci-dessous.
Une animation, qui reproduit avec PSTricks celle du site  :
https://couleur-science.eu/?d=2016/04/10/22/01/41-la-spirale-deuler-ou-le-trace-des-routes

Le listing avec le package animate :
\documentclass[pstricks]{standalone}
\usepackage{pst-plot}
\pstheader{pst-fresnel-simpson.pro}
\title{Rayon de courbure et cercle osculateur de la spirale de Cornu avec PSTricks et animate}
\date{07 juin 2018}
\author{manuel.luque27@gmail.com}
\begin{document}
\multido{\N=0.1+0.1}{31}{%
\begin{pspicture}(-1,-1)(10.5,10.5)
\psset{unit=10}
\psgrid[subgriddiv=10](0,0)(1,1)
\pstVerb{
/Pi 3.14159265359 def
/FresnelG {dup mul 2 div 180 mul cos} def
/FresnelF {dup mul 2 div 180 mul sin} def
/SpiraleCornuA {%
0 0.02 3.1 {/s exch def
    0 s {FresnelG} 1000 simpson
    0 s {FresnelF} 1000 simpson
    } for
} def
/SpiraleCornuB {%
0 0.01 \N\space {/s exch def
    0 s {FresnelG} 1000 simpson
    0 s {FresnelF} 1000 simpson
    } for
} def
/CentreCourbure {
                /nu exch def
                /pointSpirale { 0 nu {FresnelG} 1000 simpson
                                0 nu {FresnelF} 1000 simpson
                               } def
                /radius 1 Pi nu mul div def
                /AngleN nu dup mul 2 div 180 mul dup sin neg exch cos exch atan def
                /xC radius AngleN cos mul def
                /yC radius AngleN sin mul def
              } def}%
\listplot[linestyle=dotted,linewidth=2\pslinewidth,linecolor=blue]{SpiraleCornuA}
\listplot[linecolor=blue,linewidth=2\pslinewidth]{SpiraleCornuB}
\multido{\n=0.1+0.1}{9}{\uput[d](\n,0){\footnotesize\n}}
\multido{\n=0.1+0.1}{9}{\uput[l](0,\n){\footnotesize\n}}
\psdot[dotstyle=+](0.5,0.5)
\pstVerb{ \N\space CentreCourbure}%
\rput(! pointSpirale){\psdot(!xC yC)\psline(!xC yC)\pscircle[linecolor=red](!xC yC){!radius}}
\end{pspicture}}
\end{document}
Remarque :
Le fichier `pst-fresnel-simpson.pro' est dans le dossier indiqué au début.



Aucun commentaire:

Enregistrer un commentaire