Une faute d'orthographe corrigée.
[pst-anamorphosis.git] / img / serie02 / halley.tex
1 \documentclass[12pt]{article}
2 \usepackage{pst-anamorphosis-add,pst-plot,pst-grad}
3 \usepackage[T1]{fontenc}
4 \usepackage[ansinew]{inputenc}
5 \usepackage[frenchb]{babel}
6 \usepackage{amsmath,amssymb}
7 \usepackage[a4paper]{geometry}
8 \usepackage{url}
9
10 \makeatletter
11 \def\psparametricplotA{\pst@object{parametricplotA}}% hv 2008-11-22
12 \def\parametricplotA{\pst@object{parametricplotA}}
13 \def\parametricplotA@i#1#2{\@ifnextchar[{\parametricplotA@x{#1}{#2}}{\parametricplotA@x{#1}{#2}[]}}
14 \def\parametricplotA@x#1#2[#3]{\@ifnextchar[{\parametricplotA@xi{#1}{#2}[#3]}{\parametricplotA@xi{#1}{#2}[#3][]}}
15 \def\parametricplotA@xi#1#2[#3][#4]#5{%
16 \pst@killglue%
17 \begingroup%
18 \use@par%
19 \@nameuse{beginplot@\psplotstyle}%
20 \addto@pscode{%
21 \tx@optionsanamorphosis
22 \tx@optionsanamorphosisAdd
23 #3 %prefix PS code
24 \psplot@init
25 /t #1 def
26 /t1 #2 def
27 /dt t1 t sub \psk@plotpoints div def
28 /F@pstplot \ifPst@algebraic (#5)
29 \ifx\psk@PlotDerivative\@none\else
30 \psk@PlotDerivative\space { (t) tx@Derive begin Derive end } repeat
31 \fi\space
32 tx@AlgToPs begin AlgToPs end cvx
33 \else { #5 } \fi def
34 \ifPst@VarStep
35 /StillZero 0 def /LastNonZeroStep dt def
36 /F2@pstplot tx@Derive begin (#5) (t) Derive (t) Derive end
37 \ifx\psk@PlotDerivative\@none\else
38 \psk@PlotDerivative\space { (t) tx@Derive begin Derive end } repeat
39 \fi\space
40 tx@AlgToPs begin AlgToPs end cvx def
41 %% computation of the tolerance defined by plotpoints
42 /epsilon12 \ifx\psk@VarStepEpsilon\@default
43 tx@Derive begin F2@pstplot end Pyth
44 dt 3 exp abs mul
45 \else\psk@VarStepEpsilon\space 12 mul \fi def
46 /ComputeStep {
47 dup 1e-4 lt
48 { pop StillZero 2 ge { LastNonZeroStep 2 mul } { LastNonZeroStep } ifelse /StillZero StillZero 1 add def }
49 { epsilon12 exch div 1 3 div exp /StillZero 0 def }
50 ifelse } bind def
51 \fi
52 /xy {
53 \ifPst@algebraic F@pstplot \else #5 \fi
54 \pst@number\psyunit mul exch
55 \pst@number\psxunit mul exch
56 tx@anamorphosisPathDict begin Anamorphose end
57 } def
58 }%
59 \gdef\psplot@init{}%
60 \@pstfalse
61 \@nameuse{testqp@\psplotstyle}%
62 \if@pst\parametricplotA@ii{#4}\else\parametricplotA@iii{#4}\fi
63 \endgroup%
64 \ignorespaces}
65 %
66 \def\parametricplotA@ii#1{% para is the post code
67 \ifPst@VarStep%
68 \addto@pscode{%
69 mark xy \@nameuse{beginqp@\psplotstyle}
70 { F2@pstplot Pyth ComputeStep
71 t 2 copy add dup t1 gt {pop t1} if /t exch def F2@pstplot Pyth ComputeStep
72 /t 3 -1 roll def 2 copy gt { exch } if pop
73 /t t 3 -1 roll add dup t1 gt {pop t1} if def
74 xy \@nameuse{doqp@\psplotstyle}
75 t t1 eq { exit } if } loop}%
76 \else\pst@killglue%
77 \addto@pscode{%
78 /ps@Exit false def
79 xy \@nameuse{beginqp@\psplotstyle}
80 \psk@plotpoints 1 sub {
81 /t t dt add def
82 xy \@nameuse{doqp@\psplotstyle}
83 ps@Exit { exit } if
84 } repeat
85 ps@Exit not {
86 /t t1 def
87 xy \@nameuse{doqp@\psplotstyle}
88 } if
89 }%
90 \fi%
91 \addto@pscode{ #1 }%
92 \@nameuse{endqp@\psplotstyle}}
93 %
94 \def\parametricplotA@iii#1{%
95 \ifPst@VarStep%
96 \addto@pscode{%
97 /n 2 def
98 mark
99 { xy n 2 roll F2@pstplot Pyth
100 ComputeStep t 2 copy add dup t1 gt {pop t1} if
101 /t exch def F2@pstplot Pyth ComputeStep
102 /t 3 -1 roll def 2 copy gt { exch } if pop
103 /t t 3 -1 roll dup /LastNonZeroStep exch def add dup t1 gt {pop t1} if def /n n 2 add def
104 t t1 eq { exit } if } loop
105 xy n 2 roll}%
106 \else\pst@killglue%
107 \addto@pscode{
108 mark
109 /n 2 def
110 \psk@plotpoints {
111 xy
112 n 2 roll
113 /n n 2 add def
114 /t t dt add def
115 } repeat
116 /t t1 def
117 xy
118 n 2 roll}%
119 \fi%
120 \addto@pscode{ #1 }%
121 \@nameuse{endplot@\psplotstyle}}
122 %
123 \makeatother
124
125 \title{pst-anamorphosis : la comète de Halley}
126 \author{ML}
127 \date{4 novembre 2011}
128 \begin{document}
129 \maketitle
130 %
131 Cet exemple est inspiré par la lecture de l'article de la revue Tangente \No{}1 : \textit{La courbe du mois : La parabole}, où l'auteur J.Lubczanski traite du cas particulier de la trajectoire parabolique d'un corps et donne en exemple la comète de Halley : \og elle vient de si loin que sa trajectoire est parabolique au voisinage de la Terre \fg. L'auteur donne ensuite un dessin en perspective (de J.Lefort) dans lequel on voit que lorsque la trajectoire de la comète est vue en perspective \og la parabole se ``\textit{referme}'' à l'infini\fg et peut ainsi être confondue avec une ellipse.
132
133 \textcolor{blue}{\url{http://www.uwgb.edu/dutchs/PLANETS/Comets.HTM}}
134
135 Cet exemple peut très bien s'illustrer avec le package \textsf{pst-anamorphosis} et l'option \textsf{[type=perspective]}. On utilise pour cela la commande \verb+\parametricplotA+ :
136 \begin{verbatim}
137 \parametricplotA[plotpoints=1000,linecolor=red,linewidth=0.5mm]{-50}{50}{%
138 t
139 t dup mul 8 div 6 sub
140 }
141 \end{verbatim}
142 On pourra éventuellement consulter l'exercice de physique ayant pour thème la comète de Halley et donné dans l'épreuve de physique à la session 1999 du baccalauréat.
143
144 \textcolor{blue}{\url{http://manuel.luque.perso.neuf.fr/Halley/}}
145
146 \begin{center}
147 \begin{pspicture}(-6,-6)(6,12)
148 \psgrid[subgriddiv=0,gridcolor=lightgray,griddots=10,gridlabels=5pt](-6,-6)(6,6)
149 \psset{type=perspective}
150 \psset{ua=6,F=12,D=2}
151 \pstVerb{/sqrt_2 0.707 def}%
152 \parametricplot[plotpoints=1000,linecolor=red,linewidth=0.5mm]{-10}{10}{%
153 t
154 t dup mul 8 div 6 sub
155 }
156 \parametricplotA[plotpoints=1000,linecolor=red,linewidth=0.5mm]{-50}{50}{%
157 t
158 t dup mul 8 div 6 sub
159 }
160 \psset{linewidth=0.5\pslinewidth}
161 \multido{\i=-6+1}{13}{%
162 \pnode(! \i\space -6){A}
163 \pnode(! \i\space 6){B}
164 % \psline(A)(B)
165 \pslineA(A)(B)
166 }%
167 \multido{\i=-6+1}{13}{%
168 \pnode(!-6 \i){A}
169 \pnode(!6 \i){B}
170 \pslineA(A)(B)
171 % \psline(A)(B)
172 }%
173 \psclip{\psframe(-6,6)(6,12)}
174 \multido{\i=-6+1}{13}{
175 \pnode(!0 1000){A}
176 \pslineA(\i,0)(A)}
177 \multido{\i=-22+1}{16}{
178 \pnode(!0 1000){A}
179 \pslineA(\i,-6)(A)}
180 \multido{\i=22+-1}{16}{
181 \pnode(!0 1000){A}
182 \pslineA(\i,-6)(A)}
183 \multido{\i=-6+1}{13}{
184 \pslineA(-22,\i)(22,\i)}
185 \endpsclip
186 \end{pspicture}
187 \end{center}
188 \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.