Il s'agit d'un miroir plan incliné d'un angle $\alpha$ par rapport
à l'horizontale. L'image anamorphosée est posée sur la table
horizontale devant le miroir et l'observateur se place au-dessus
du miroir pour regarder l'image dans le miroir.
Le repère choisi $(Oxyz)$ est tel que $(Oxz)$ est le plan vertical et
$(Oxy)$ le plan horizontal avec $(Oy)$ dirigé vers l'arrière de la
feuille.
Appelons $(\Delta)$ la droite représentant le plan du miroir dans le
plan $(Oxz)$, son équation s'écrit :
$$z=-(\tan\alpha)x$$
$A'(x'_A,z'_A)$ symétrique de $A(x_A,0)$ par rapport à $(\Delta)$ remplit la double
condition :
1) $(AA')$ et $(\Delta)$ sont perpendiculaire
2)
3) Le milieu
H de
(AA') appartient au plan du miroir.
En portant
zA' dans la première condition :
Après réarrangement et simplifications, on obtient :
Mais comme il s'agit de construire l'image anamorphosée, celle que l'on va placer devant le miroir et dont le miroir rendra la forme exacte, ce sont les formules inverses qu'il faut appliquer (
zA' n'a pas d'utilité ici) :
Si l'on considère une image que l'on souhaite anamorphoser (afin de la reconstituer dans le miroir), cette image étant située dans le plan
Oxy, il faudra donc appliquer les transformations suivantes à chaque point
A'( xA' , yA' ) de cette image :
\documentclass[12pt]{article}
\usepackage[T1]{fontenc}
\usepackage{pst-node}
\usepackage{pst-3d}
\usepackage{pst-grad}
\usepackage{multido}
\usepackage{pst-eucl}
\usepackage{pst-slpe}
\usepackage{enumerate}
\usepackage{amsmath}
\usepackage[a4paper,width=17cm]{geometry}
\definecolor{OrangePale}{cmyk}{0,0.2,0.4,0}
\SpecialCoor
\psset{dimen=middle}
\makeatletter
\define@key[psset]{}{inclinaison}{\edef\psk@inclinaison{#1}}
\psset{inclinaison=60}
%
\def\VoirDansUnMiroir{\@ifnextchar[{\pst@VoirDansUnMiroir}{\pst@VoirDansUnMiroir[]}}
\def\pst@VoirDansUnMiroir[#1]{\pst@killglue\pst@makebox{\VoirDansUnMiroir@[#1]}}
\def\VoirDansUnMiroir@[#1]{{%
\psset{#1}%
\leavevmode
\hbox{%
\pnode(!%
/Inclinaison \psk@inclinaison\space def
/ax 1 2 Inclinaison mul cos div def
/by 0 def
/cx 0 def
/dy 1 def
cx dy){Factice}%
\pst@Verb{%
{ [ax by cx dy 0 0] concat
} \tx@TMChange}%
\box\pst@hbox
\pst@Verb{\tx@TMRestore}}%
}}
\makeatother
\def\poisson{%
\begingroup
\psset{fillstyle=slope}
\pscurve(0.1,1.8)(0.4,1.65)(0.6,1.1)(0.85,1.2)
\pscurve(1.6,3.25)(2.5,4.2)(2.5,3.5)
\pscurve(4.25,1.9)(4.5,1.5)(3.9,1.4)(3.7,0.8)(3.2,1.5)
\pscurve(2.5,3.5)(2.75,3.75)(3.2,4)(3.75,3.2)(3.2,2.8)%(2.8,3.2)
\pscurve(5,2.45)(6,2.5)(5.75,2)(6,1.5)(5.8,1.4)(5,1.6)
\pscurve(3.2,1.4)(3.1,0.7)(3.5,0.5)(2.7,0.5)
\pscurve(1.8,1.1)(2.2,1.4)(2.7,1.6)(2.6,1.2)(2.65,1.1)
(2.6,1)(2.65,0.9)(1.9,0.5)
\endgroup
\pscurve[fillstyle=slopes](0.25,2.4)(1,3)(1.6,3.25)(2.5,3.5)(3,3)(4,2.6)
(5,2.45)(5.7,2.75)(6,2.5)(5.75,2)(6,1.5)(5.9,1.35)(5,1.6)
(4,1.7)(3,1.1)(2.7,-.2)(2,0)(1,0.3)(0.8,0.3)(0.35,1)
(0.1,1.8)(0,2.1)(0.1,2.2)(0.5,1.9)(0.45,2.2)(0.25,2.4)
\pscircle(0.9,2.5){0.25}
\pscircle*(0.9,2.5){0.15}
\pscircle[fillstyle=solid,linestyle=none](0.85,2.55){0.03}
\pscurve(0.35,1)(1,0.8)(1.45,1)(1.6,1.6)(1.5,2.25)}
\definecolor{BleuVerre}{cmyk}{0.2,0,0,0}
%
\def\oeil{\psarc[linewidth=2pt](0,2.5){2.5}{215}{270}%
\psarc[linewidth=2pt](0,-2.5){2.5}{90}{140}%
\psarc(-2.5,0){1}{-30}{30}%
\psarc(0,0){1.75}{160}{200}
\psclip{%
\pscircle[linestyle=none](0,0){1.75}}
\pscircle[fillstyle=solid,fillcolor=lightgray](-2.5,0){0.9}
\endpsclip}%
%definition de Dominique Rodriguez in Euclide.tex
\newcommand{\Vecteur}[1]{\ensuremath{\overrightarrow{#1\hspace{.3em}}}}%
%
\title{Anamorphose dans un miroir plan}
\date{23 juillet 2001\\révision 5 octobre 2011}
\author{Team ``http://melusine.eu.org/syracuse/G/pstricks/''}
\begin{document}
\maketitle
\newcommand\Poisson{\rput(-6,0){\poisson}}
\begin{center}
\begin{pspicture}(-6,0)(11,4)
\psgrid[gridcolor=lightgray](-6,4)%
\Poisson
\VoirDansUnMiroir[inclinaison=60]{\psgrid(-6,4)\Poisson}
\end{pspicture}
\begin{verbatim}
\VoirDansUnMiroir[inclinaison=60]{\psgrid(-6,4)\Poisson}
\end{verbatim}
\end{center}
L'image anamorphosée est à droite. La feuille étant posée horizontalement, une arête du miroir se place sur le ligne commune et le miroir doit être incliné de 60$^\circ$ (ou de l'angle pour lequel l'image a été calculée) avec l'horizontale vers la gauche. On regarde au-dessus, l'image observée dans le miroir doit être identique à l'image située à gauche sur le dessin.
\begin{center}
\begin{pspicture}(-3.5,-3)(12.5,4)
\psgrid[gridcolor=lightgray](-4,-3)(0,3)%
\rput(-2.2,0){\psset{unit=0.5}\input{parrot.tex}}
\VoirDansUnMiroir[inclinaison=54]{\psgrid[gridwidth=0.5\pslinewidth](-4,-3)(0,3)\rput(-2.2,0){\psset{unit=0.5}\input{parrot.tex}}}
\end{pspicture}
\begin{verbatim}
\VoirDansUnMiroir[inclinaison=54]{input{parrot.tex}}
\end{verbatim}
\end{center}
\end{document}
Le fichier du perroquet :
http://melusine.eu.org/syracuse/W/download/syracuse/G/pstricks/Anamorphoses/parrot.tex