Comme annoncé, voici quelques exemples d'anamorphose cylindrique avec image vue verti...
[pst-anamorphosis.git] / doc / exemples_anamorphose_cylindrique_verticale.tex
diff --git a/doc/exemples_anamorphose_cylindrique_verticale.tex b/doc/exemples_anamorphose_cylindrique_verticale.tex
new file mode 100644 (file)
index 0000000..291071c
--- /dev/null
@@ -0,0 +1,182 @@
+\documentclass[12pt]{article}
+\usepackage{pst-anamorphosis-add,pst-3d}
+\usepackage[nomessages]{fp}
+\usepackage[T1]{fontenc}
+\usepackage[latin1]{inputenc}
+\usepackage{amsmath,amssymb}
+\usepackage[a4paper,margin=2cm]{geometry}
+\pagestyle{empty}
+\def\spectateur{
+%la pupille
+    \SpecialCoor
+    \pscurve(1;160)(0.8;180)(1;200)
+%colorer la pupille
+    \pscustom[linewidth=0.05]{\gsave\psarc(0,0){1}{165}{195}
+              \pscurve(1;195)(0.85;180)(1;165)
+              \fill[fillstyle=solid,fillcolor=blue]\grestore}
+              \pscurve[linewidth=.4pt](1;195)(0.85;180)(1;165)
+    %les cils
+    {\psset{linewidth=0.05}
+    \psarc(0,1){1}{180}{270}
+    \psarc(0,-1){1}{90}{180}}
+    \psarc(0,0){1}{150}{210}
+\pscurve[linewidth=0.075](-.5,3.7)(-1,3)(-1.2,2.5)(-1.3,2)
+(-1.4,1)(-1.35,0.5)(-1.2,-.2)(-1.3,-.5)
+(-1.4,-1)(-1.5,-1.5)(-1.8,-2)(-1.8,-2.3)%
+ (-1.65,-2.5)(-1.35,-2.55)(-.95,-2.8)
+(-.95,-3.35)(-1,-3.65)(-.8,-4)(-.4,-4.1)
+\pscurve[linewidth=0.075](-0.5,3.7)(0.5,4.3)(2.2,4.7)(4,4.5)(5.6,3.5)(6.3,2)(6.2,0)(5.8,-1.2)(5.1,-2.4)(4.9,-4.2)(5.5,-6)
+\pscurve[linewidth=0.075](-.8,-4)(-.8,-4.2)(-.5,-4.5)(-.4,-5)(-.25,-5.5)(0,-5.8)(.5,-6)(1.6,-5.8)(2.1,-5.6)(2.7,-6.5)(3.1,-7.2)
+\pscurve[linewidth=0.1](-1.4,1)(-1,1.5)(0.2,1)
+\pscurve[linewidth=0.075](2.8,0.2)(3.4,0.7)(4,0.2)(4.2,-0.8)(4,-1.5)(3,-2)(2.8,-1.5)
+\pscurve[linewidth=0.075](-1.5,-2.5)(-1.2,-2.45)(-0.8,-2.6)(-0.5,-2.5)(-0.7,-2)}
+
+\begin{document}
+\psscalebox{0.5}{
+\begin{pspicture}(-14,-12)(14,11)
+\psframe[linecolor=red](-16,-12)(20,11)
+\newcommand\Rmirror{2}
+\newcommand\vx{-1}
+\newcommand\vy{-1}
+\newcommand\vz{1}
+\pstVerb{/ANGLE \vy\space \vx\space atan def
+         /XC1 \Rmirror\space ANGLE -90 add cos mul def
+         /YC1 \Rmirror\space ANGLE 90 add sin mul neg def
+         /XC2 \Rmirror\space ANGLE -90 add cos mul neg def
+         /YC2 \Rmirror\space ANGLE 90 add sin mul def}%
+\psset{viewpoint={\vx} {\vy} {\vz}}
+\ThreeDput[normal=0 0 1](0,0,0){%
+\psgrid[gridlabels=0pt,subgriddiv=0,gridcolor=lightgray,griddots=10](-13,-14)(13,10)
+\psset{Yv=-20,Xv=0,Zv=15,type=cylindricalV,Rmirror=\Rmirror}
+\psframe[linecolor=red](-13,10)(13,-14)
+\multido{\n=-2.0+0.5}{9}{%
+    \pnode(! \n\space 0){A}
+    \pnode(! \n\space 5){B}
+%    \psline(A)(B)
+    \pslineA(A)(B)
+    }
+\multido{\N=0+0.5}{11}{%
+    \pnode(!-2 \N){A}
+    \pnode(!2 \N){B}
+    \pslineA(A)(B)
+%    \psline(A)(B)
+    }
+\psanamorphosis[drawanamorphosis=true,image](0,2.5){sylvestre.eps}
+\psarcn[linecolor=blue,linewidth=0.05](0,0){\Rmirror}{! ANGLE 90 add}{! ANGLE 90 sub}
+\psarc[linestyle=dashed](0,0){\Rmirror}{! ANGLE 90 add}{! ANGLE 90 sub}
+\pnode(!XC1 YC1){A1}
+\pnode(!XC2 YC2){A2}
+}
+\ThreeDput[normal=0 -1 0](0,0,0){%
+\psgrid[gridlabels=0pt,subgriddiv=0,gridcolor=lightgray,griddots=10](-13,0)(13,6)
+\psframe[linecolor=red](-13,0)(13,6)
+\psframe[fillstyle=solid](-2,0)(2,5)
+\multido{\n=-2.0+0.5}{9}{%
+    \pnode(! \n\space 0){A}
+    \pnode(! \n\space 5){B}
+    \psline(A)(B)
+    }
+\multido{\N=0+0.5}{11}{%
+    \pnode(!-2 \N){A}
+    \pnode(!2 \N){B}
+    \psline(A)(B)
+    }
+\psanamorphosis[drawanamorphosis=false,image=true](0,2.5){sylvestre.eps}
+    }
+\ThreeDput[normal=0 0 1](0,0,6){%
+\pscircle[linecolor=blue,linewidth=0.05](0,0){\Rmirror}
+\pnode(!XC1 YC1){B1}
+\pnode(!XC2 YC2){B2}
+}
+\psline[linecolor=blue,linewidth=0.05](A1)(B1)
+\psline[linecolor=blue,linewidth=0.05](A2)(B2)
+\ThreeDput[normal=-1 0 0](0,0,0){%
+\pnode(20,15){V}
+%\pnode(20,0){Vx}
+%\pnode(0,15){Vy}
+\rput{30}(V){\psscalebox{0.5}{\spectateur}}
+}
+%\psline[linestyle=dashed](Vy)(V)(Vx)
+%\psline[linestyle=dashed](0,0)(Vx)
+%\psline[linestyle=dashed](Vy)(0,0)
+\end{pspicture}}
+
+La position du spectateur est déterminée par les paramètres \verb+\psset{Yv=-20,Xv=0,Zv=15}+. On pourra placer l'\oe{}il de l'observateur dans le schéma avec les commandes suivantes :
+\begin{verbatim}
+\ThreeDput[normal=-1 0 0](0,0,0){%
+\pnode(20,15){V}
+\rput{30}(V){\psscalebox{0.5}{\spectateur}}
+}
+\end{verbatim}
+Un autre personnage et un autre point de vue :
+
+\psscalebox{0.5}{
+\begin{pspicture}(-14,-8)(14,11)
+\psframe[linecolor=red](-18,-8)(21,9)
+\newcommand\Rmirror{2}
+\newcommand\vx{-1}
+\newcommand\vy{-1}
+\newcommand\vz{0.5}
+\pstVerb{/ANGLE \vy\space \vx\space atan def
+         /XC1 \Rmirror\space ANGLE -90 add cos mul def
+         /YC1 \Rmirror\space ANGLE 90 add sin mul neg def
+         /XC2 \Rmirror\space ANGLE -90 add cos mul neg def
+         /YC2 \Rmirror\space ANGLE 90 add sin mul def}%
+\psset{viewpoint={\vx} {\vy} {\vz}}
+\ThreeDput[normal=0 0 1](0,0,0){%
+\psgrid[gridlabels=0pt,subgriddiv=0,gridcolor=lightgray,griddots=10](-15,-15)(14,11)
+\psset{Yv=-20,Xv=0,Zv=10,type=cylindricalV,Rmirror=\Rmirror}
+\psframe[linecolor=red](-15,11)(14,-15)
+\pslineA[fillstyle=solid,fillcolor=yellow!20](-2,0)(2,0)(2,3.5)(-2,3.5)(-2,0)
+\multido{\n=-2.0+0.5}{9}{%
+    \pnode(! \n\space 0){A}
+    \pnode(! \n\space 3.5){B}
+%    \psline(A)(B)
+    \pslineA(A)(B)
+    }
+\multido{\N=0+0.5}{8}{%
+    \pnode(!-2 \N){A}
+    \pnode(!2 \N){B}
+    \pslineA(A)(B)
+%    \psline(A)(B)
+    }
+\psanamorphosis[drawanamorphosis=true,image](0,0){mickey2.eps}
+\psarcn[linecolor=blue,linewidth=0.05](0,0){\Rmirror}{! ANGLE 90 add}{! ANGLE 90 sub}
+\psarc[linestyle=dashed](0,0){\Rmirror}{! ANGLE 90 add}{! ANGLE 90 sub}
+\pnode(!XC1 YC1){A1}
+\pnode(!XC2 YC2){A2}
+}
+\ThreeDput[normal=0 -1 0](0,0,0){%
+\psgrid[gridlabels=0pt,subgriddiv=0,gridcolor=lightgray,griddots=10](-15,0)(14,6)
+\psframe[linecolor=red](-15,0)(14,6)
+\psframe[fillstyle=solid,fillcolor=yellow!20](-2,0)(2,3.5)
+\multido{\n=-2.0+0.5}{9}{%
+    \pnode(! \n\space 0){A}
+    \pnode(! \n\space 3.5){B}
+    \psline(A)(B)
+    }
+\multido{\N=0+0.5}{8}{%
+    \pnode(!-2 \N){A}
+    \pnode(!2 \N){B}
+    \psline(A)(B)
+    }
+\psanamorphosis[drawanamorphosis=false,image=true](0,0){mickey2.eps}
+    }
+\ThreeDput[normal=0 0 1](0,0,5){%
+\pscircle[linecolor=blue,linewidth=0.05](0,0){\Rmirror}
+\pnode(!XC1 YC1){B1}
+\pnode(!XC2 YC2){B2}
+}
+\psline[linecolor=blue,linewidth=0.05](A1)(B1)
+\psline[linecolor=blue,linewidth=0.05](A2)(B2)
+\ThreeDput[normal=-1 0 0](0,0,0){%
+\pnode(20,10){V}
+%\pnode(20,0){Vx}
+%\pnode(0,15){Vy}
+\rput{30}(V){\psscalebox{0.5}{\spectateur}}
+}
+%\psline[linestyle=dashed](Vy)(V)(Vx)
+%\psline[linestyle=dashed](0,0)(Vx)
+%\psline[linestyle=dashed](Vy)(0,0)
+\end{pspicture}}
+\end{document} 
\ No newline at end of file

Licence Creative Commons Les fichiers de Syracuse sont mis à disposition (sauf mention contraire) selon les termes de la
Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International.