Retour

reversibles_transformations.tex

Télécharger le fichier
\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}