???
[pst-anamorphosis.git] / doc / exemples_anamorphose_cylindrique_verticale.tex
1 \documentclass[12pt]{article}
2 \usepackage{pst-anamorphosis-add,pst-3d}
3 \usepackage[nomessages]{fp}
4 \usepackage[T1]{fontenc}
5 \usepackage[latin1]{inputenc}
6 \usepackage{amsmath,amssymb}
7 \usepackage[a4paper,margin=2cm]{geometry}
8 \pagestyle{empty}
9 \def\spectateur{
10 %la pupille
11 \SpecialCoor
12 \pscurve(1;160)(0.8;180)(1;200)
13 %colorer la pupille
14 \pscustom[linewidth=0.05]{\gsave\psarc(0,0){1}{165}{195}
15 \pscurve(1;195)(0.85;180)(1;165)
16 \fill[fillstyle=solid,fillcolor=blue]\grestore}
17 \pscurve[linewidth=.4pt](1;195)(0.85;180)(1;165)
18 %les cils
19 {\psset{linewidth=0.05}
20 \psarc(0,1){1}{180}{270}
21 \psarc(0,-1){1}{90}{180}}
22 \psarc(0,0){1}{150}{210}
23 \pscurve[linewidth=0.075](-.5,3.7)(-1,3)(-1.2,2.5)(-1.3,2)
24 (-1.4,1)(-1.35,0.5)(-1.2,-.2)(-1.3,-.5)
25 (-1.4,-1)(-1.5,-1.5)(-1.8,-2)(-1.8,-2.3)%
26 (-1.65,-2.5)(-1.35,-2.55)(-.95,-2.8)
27 (-.95,-3.35)(-1,-3.65)(-.8,-4)(-.4,-4.1)
28 \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)
29 \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)
30 \pscurve[linewidth=0.1](-1.4,1)(-1,1.5)(0.2,1)
31 \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)
32 \pscurve[linewidth=0.075](-1.5,-2.5)(-1.2,-2.45)(-0.8,-2.6)(-0.5,-2.5)(-0.7,-2)}
33
34 \begin{document}
35 \psscalebox{0.5}{
36 \begin{pspicture}(-14,-12)(14,11)
37 \psframe[linecolor=red](-16,-12)(20,11)
38 \newcommand\Rmirror{2}
39 \newcommand\vx{-1}
40 \newcommand\vy{-1}
41 \newcommand\vz{1}
42 \pstVerb{/ANGLE \vy\space \vx\space atan def
43 /XC1 \Rmirror\space ANGLE -90 add cos mul def
44 /YC1 \Rmirror\space ANGLE 90 add sin mul neg def
45 /XC2 \Rmirror\space ANGLE -90 add cos mul neg def
46 /YC2 \Rmirror\space ANGLE 90 add sin mul def}%
47 \psset{viewpoint={\vx} {\vy} {\vz}}
48 \ThreeDput[normal=0 0 1](0,0,0){%
49 \psgrid[gridlabels=0pt,subgriddiv=0,gridcolor=lightgray,griddots=10](-13,-14)(13,10)
50 \psset{Yv=-20,Xv=0,Zv=15,type=cylindricalV,Rmirror=\Rmirror}
51 \psframe[linecolor=red](-13,10)(13,-14)
52 \multido{\n=-2.0+0.5}{9}{%
53 \pnode(! \n\space 0){A}
54 \pnode(! \n\space 5){B}
55 % \psline(A)(B)
56 \pslineA(A)(B)
57 }
58 \multido{\N=0+0.5}{11}{%
59 \pnode(!-2 \N){A}
60 \pnode(!2 \N){B}
61 \pslineA(A)(B)
62 % \psline(A)(B)
63 }
64 \psanamorphosis[drawanamorphosis=true,image](0,2.5){sylvestre.eps}
65 \psarcn[linecolor=blue,linewidth=0.05](0,0){\Rmirror}{! ANGLE 90 add}{! ANGLE 90 sub}
66 \psarc[linestyle=dashed](0,0){\Rmirror}{! ANGLE 90 add}{! ANGLE 90 sub}
67 \pnode(!XC1 YC1){A1}
68 \pnode(!XC2 YC2){A2}
69 }
70 \ThreeDput[normal=0 -1 0](0,0,0){%
71 \psgrid[gridlabels=0pt,subgriddiv=0,gridcolor=lightgray,griddots=10](-13,0)(13,6)
72 \psframe[linecolor=red](-13,0)(13,6)
73 \psframe[fillstyle=solid](-2,0)(2,5)
74 \multido{\n=-2.0+0.5}{9}{%
75 \pnode(! \n\space 0){A}
76 \pnode(! \n\space 5){B}
77 \psline(A)(B)
78 }
79 \multido{\N=0+0.5}{11}{%
80 \pnode(!-2 \N){A}
81 \pnode(!2 \N){B}
82 \psline(A)(B)
83 }
84 \psanamorphosis[drawanamorphosis=false,image=true](0,2.5){sylvestre.eps}
85 }
86 \ThreeDput[normal=0 0 1](0,0,6){%
87 \pscircle[linecolor=blue,linewidth=0.05](0,0){\Rmirror}
88 \pnode(!XC1 YC1){B1}
89 \pnode(!XC2 YC2){B2}
90 }
91 \psline[linecolor=blue,linewidth=0.05](A1)(B1)
92 \psline[linecolor=blue,linewidth=0.05](A2)(B2)
93 \ThreeDput[normal=-1 0 0](0,0,0){%
94 \pnode(20,15){V}
95 %\pnode(20,0){Vx}
96 %\pnode(0,15){Vy}
97 \rput{30}(V){\psscalebox{0.5}{\spectateur}}
98 }
99 %\psline[linestyle=dashed](Vy)(V)(Vx)
100 %\psline[linestyle=dashed](0,0)(Vx)
101 %\psline[linestyle=dashed](Vy)(0,0)
102 \end{pspicture}}
103
104 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 :
105 \begin{verbatim}
106 \ThreeDput[normal=-1 0 0](0,0,0){%
107 \pnode(20,15){V}
108 \rput{30}(V){\psscalebox{0.5}{\spectateur}}
109 }
110 \end{verbatim}
111 Un autre personnage et un autre point de vue :
112
113 \psscalebox{0.5}{
114 \begin{pspicture}(-14,-8)(14,11)
115 \psframe[linecolor=red](-18,-8)(21,9)
116 \newcommand\Rmirror{2}
117 \newcommand\vx{-1}
118 \newcommand\vy{-1}
119 \newcommand\vz{0.5}
120 \pstVerb{/ANGLE \vy\space \vx\space atan def
121 /XC1 \Rmirror\space ANGLE -90 add cos mul def
122 /YC1 \Rmirror\space ANGLE 90 add sin mul neg def
123 /XC2 \Rmirror\space ANGLE -90 add cos mul neg def
124 /YC2 \Rmirror\space ANGLE 90 add sin mul def}%
125 \psset{viewpoint={\vx} {\vy} {\vz}}
126 \ThreeDput[normal=0 0 1](0,0,0){%
127 \psgrid[gridlabels=0pt,subgriddiv=0,gridcolor=lightgray,griddots=10](-15,-15)(14,11)
128 \psset{Yv=-20,Xv=0,Zv=10,type=cylindricalV,Rmirror=\Rmirror}
129 \psframe[linecolor=red](-15,11)(14,-15)
130 \pslineA[fillstyle=solid,fillcolor=yellow!20](-2,0)(2,0)(2,3.5)(-2,3.5)(-2,0)
131 \multido{\n=-2.0+0.5}{9}{%
132 \pnode(! \n\space 0){A}
133 \pnode(! \n\space 3.5){B}
134 % \psline(A)(B)
135 \pslineA(A)(B)
136 }
137 \multido{\N=0+0.5}{8}{%
138 \pnode(!-2 \N){A}
139 \pnode(!2 \N){B}
140 \pslineA(A)(B)
141 % \psline(A)(B)
142 }
143 \psanamorphosis[drawanamorphosis=true,image](0,0){mickey2.eps}
144 \psarcn[linecolor=blue,linewidth=0.05](0,0){\Rmirror}{! ANGLE 90 add}{! ANGLE 90 sub}
145 \psarc[linestyle=dashed](0,0){\Rmirror}{! ANGLE 90 add}{! ANGLE 90 sub}
146 \pnode(!XC1 YC1){A1}
147 \pnode(!XC2 YC2){A2}
148 }
149 \ThreeDput[normal=0 -1 0](0,0,0){%
150 \psgrid[gridlabels=0pt,subgriddiv=0,gridcolor=lightgray,griddots=10](-15,0)(14,6)
151 \psframe[linecolor=red](-15,0)(14,6)
152 \psframe[fillstyle=solid,fillcolor=yellow!20](-2,0)(2,3.5)
153 \multido{\n=-2.0+0.5}{9}{%
154 \pnode(! \n\space 0){A}
155 \pnode(! \n\space 3.5){B}
156 \psline(A)(B)
157 }
158 \multido{\N=0+0.5}{8}{%
159 \pnode(!-2 \N){A}
160 \pnode(!2 \N){B}
161 \psline(A)(B)
162 }
163 \psanamorphosis[drawanamorphosis=false,image=true](0,0){mickey2.eps}
164 }
165 \ThreeDput[normal=0 0 1](0,0,5){%
166 \pscircle[linecolor=blue,linewidth=0.05](0,0){\Rmirror}
167 \pnode(!XC1 YC1){B1}
168 \pnode(!XC2 YC2){B2}
169 }
170 \psline[linecolor=blue,linewidth=0.05](A1)(B1)
171 \psline[linecolor=blue,linewidth=0.05](A2)(B2)
172 \ThreeDput[normal=-1 0 0](0,0,0){%
173 \pnode(20,10){V}
174 %\pnode(20,0){Vx}
175 %\pnode(0,15){Vy}
176 \rput{30}(V){\psscalebox{0.5}{\spectateur}}
177 }
178 %\psline[linestyle=dashed](Vy)(V)(Vx)
179 %\psline[linestyle=dashed](0,0)(Vx)
180 %\psline[linestyle=dashed](Vy)(0,0)
181 \end{pspicture}}
182 \end{document}

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.