X-Git-Url: https://melusine.eu.org/syracuse/G/git/?p=pst-anamorphosis.git;a=blobdiff_plain;f=doc%2Fexemples_anamorphose_cylindrique_verticale.tex;fp=doc%2Fexemples_anamorphose_cylindrique_verticale.tex;h=291071c430f1e0997a8930d12f470894b0bad342;hp=0000000000000000000000000000000000000000;hb=3d50dcaf4523ae589de4270650d4a7b95bacd96d;hpb=55f1efea4238aaec8b4922d2454539f634b08064 diff --git a/doc/exemples_anamorphose_cylindrique_verticale.tex b/doc/exemples_anamorphose_cylindrique_verticale.tex new file mode 100644 index 0000000..291071c --- /dev/null +++ b/doc/exemples_anamorphose_cylindrique_verticale.tex @@ -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