C'est encore une application du package pst-nltr dédié aux transformations conformes et d'une façon plis générale aux transformations non-linéaires.
Je rappelle que le package pst-nltr est disponible (pst-nltr.pro, pst-nltr.sty et pst-nltr.tex avec la documentation) ici :
applications-conformes
L'exemple suivant est la suite du message précédent illustrant la propagation d'ondes transversales sinusoïdales le long d'un texte :
http://pstricks.blogspot.fr/2013/07/transformations-non-lineaires-de-textes.html
Le code permettant de générer les images nécessaires à l'animation ci-dessous :
\documentclass{article}
\usepackage{pst-nltr,multido}
\usepackage[a4paper,margin=2cm]{geometry}
\pagestyle{empty}
\begin{document}
\def\Dalle{\psframe[linecolor=yellow!50,fillstyle=solid,fillcolor={[rgb]{0.8 0.1 0 }}](\rX,\rY)(!\rX\space 0.7 add \rY\space -0.25 add)}
\def\MURB{\psclip{\psframe[linestyle=none](-8,-2)(7.5,0)}
\multido{\rY=0+-0.5}{2}{\multido{\rX=-8+0.7}{23}{\Dalle}}
\multido{\rY=-0.25+-0.5}{2}{\multido{\rX=-8.35+0.7}{23}{\Dalle}}
\endpsclip}
\begin{center}
\multido{\it=0+1}{36}{
\begin{pspicture}(-8,-1)(7.5,2.5)
\psframe(-8,-1)(7.5,2.2)
\pstVerb{
/Frequence {1 36 div} bind def
/temps \it\space def % à incrémenter de 1 en 1 => 36
/FC {
/y exch def
/x exch def
/Lambda warpwidth 2 div def % longueur d'onde
360 Frequence temps mul x Lambda div sub mul cos 20 mul
x add
y 2 mul
} def}%
\psset{transform=FC}
\MURB
\rput(0,2.2){\MURB}
\psTransformText[fillstyle=solid,fillcolor={[rgb]{.6 1 1}},fontscale=0.8,pos=bc,PSfont=Helvetica](0,0){propagation d'une onde longitudinale}%
\end{pspicture}\newpage}
\end{center}
\end{document}
Aucun commentaire:
Enregistrer un commentaire