\documentclass[12pt]{article} \usepackage[tiling]{pst-fill} \usepackage{multido} \usepackage[latin1]{inputenc} \usepackage[francais]{babel} % Mluque5130@aol.com \usepackage{pst-key} \makeatletter \define@key{psset}{R0}{\edef\psk@pstExpansionRadius{#1}} \define@key{psset}{factor}{\edef\psk@pstExpansionFactor{#1}} \define@key{psset}{iterations}{\edef\psk@pstExpansioniterations{#1}} \setkeys{psset}{R0=0.1,factor=1.2,iterations=22} % \def\ExpansionRadiale{\pst@object{ExpansionRadiale}} \def\ExpansionRadiale@i{\@ifnextchar[{\ExpansionRadiale@do}{\ExpansionRadiale@do[]}} \def\ExpansionRadiale@do[#1]{{% \pst@killglue \setkeys{psset}{#1}% \begin@ClosedObj \addto@pscode{ /R0 \psk@pstExpansionRadius\space 28.45 mul def % valeur initiale du rayon /factor \psk@pstExpansionFactor\space def % facteur d'expansion /iterations \psk@pstExpansioniterations\space def /ARROWS { % flèche newpath 0 0 Radius1 -7.5 7.5 arc Radius2 7.5 cos mul Radius2 7.5 sin mul lineto 0 0 Radius2 7.5 15 arc Radius3 0 lineto Radius2 -15 cos mul Radius2 -15 sin mul lineto 0 0 Radius2 -15 -7.5 arc closepath fill } def 0 1 12 { /Rot exch def 0 2 iterations {% /Exposant exch def /Radius1 R0 factor Exposant exp mul def /Radius2 R0 factor Exposant 1 add exp mul def /Radius3 R0 factor Exposant 2 add exp mul def ARROWS } for 30 rotate } for }% \showpointsfalse \end@ClosedObj }} % \def\ReverseRotation{\pst@object{ReverseRotation}} \def\ReverseRotation@i{\@ifnextchar[{\ReverseRotation@do}{\ReverseRotation@do[]}} \def\ReverseRotation@do[#1]{{% \pst@killglue \setkeys{psset}{#1}% \begin@ClosedObj \addto@pscode{ /R0 \psk@pstExpansionRadius\space 28.45 mul def % valeur initiale du rayon /factor \psk@pstExpansionFactor\space def % facteur d'expansion /iterations \psk@pstExpansioniterations\space def /ARROWS { % flèche newpath 0 0 Radius2 0 15 arc Radius3 15 cos mul Radius3 15 sin mul lineto /Ri Radius1 Radius2 add 2 div def Ri 30 cos mul Ri 30 sin mul lineto Radius0 15 cos mul Radius0 15 sin mul lineto Radius1 15 cos mul Radius1 15 sin mul lineto 0 0 Radius1 15 0 arcn Radius1 0 lineto Radius2 0 lineto closepath fill } def 0 1 12 { /Rot exch def 0 3 iterations {% /Exposant exch def /Radius0 R0 factor Exposant exp mul def /Radius1 R0 factor Exposant 1 add exp mul 0.96 mul def /Radius2 R0 factor Exposant 2 add exp mul 1.04 mul def /Radius3 R0 factor Exposant 3 add exp mul def ARROWS } for 30 rotate } for}% \def\pst@linetype{2}% \showpointsfalse \end@ClosedObj}} \makeatother \pagestyle{empty} \title{Transformations r\'eversibles} \author{Roger N.Shepard} \date{3 juillet 2\,003} \begin{document} \maketitle \thispagestyle{empty} \begin{center} Figures reproduites du livre de \\ Roger N.\textsc{Shepard},\\ L'\oe{}il qui pense\\ Visions, illusions, perceptions \end{center} \begin{flushright} \'Editions du Seuil (1\,992) page 87. \end{flushright} Ces figures sont donn\'ees uniquement dans un cadre didactique, afin d'illustrer l'utilisation de PSTricks pour leur r\'ealisation. On remarquera, que ces transformations ont \'et\'e fortement inspir\'ees des figures hautement plus artistiques de M.C. Escher. \section{Translation} \def\ReverseA{{% \psset{unit=1}% \pspicture(2,1) \pspolygon*(0,0.25)(1,0.25)(1,0)(2,0.5)(1,1)(1,0.75)(0,0.75) \endpspicture}} % \psframebox{\pspicture(12,7) \psboxfill{\ReverseA} \psframe[linestyle=none,fillstyle=boxfill](12,7) \endpspicture} \section{Expansion} On peut param\'etrer le rayon initial \verb+[R0]+, le facteur d'expansion \verb+[factor]+ et le nombre d'it\'erations \verb+[iterations]+. La commande s'\'ecrit : \begin{verbatim} \ExpansionRadiale[R0=0.1,factor=1.2,iterations=22] \end{verbatim} Ce sont les valeurs par d\'efaut qui sont indiqu\'ees. \begin{center} \psframebox{% \begin{pspicture}*(-6,-6)(6,6) \pscircle*{0.1} \ExpansionRadiale \end{pspicture}} \end{center} \newpage \section{Rotation} \begin{verbatim} \ReverseRotation[factor=1.15,iterations=32] \end{verbatim} \begin{center} \begin{pspicture}(-5,-5.4)(5,5.4) \begin{psclip}{\pscircle{5.4}} \pscircle*{0.1} \ReverseRotation[factor=1.15,iterations=32] \end{psclip} \end{pspicture} \end{center} \section{Rotation avec expansion} \end{document}