\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}