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
}
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{%
19 \@nameuse
{beginplot@
\psplotstyle}%
21 \tx@optionsanamorphosis
22 \tx@optionsanamorphosisAdd
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
32 tx@AlgToPs begin AlgToPs end cvx
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
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
45 \else\psk@VarStepEpsilon
\space 12 mul
\fi def
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
}
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
61 \@nameuse
{testqp@
\psplotstyle}%
62 \if@pst
\parametricplotA@ii
{#4}\else\parametricplotA@iii
{#4}\fi
66 \def\parametricplotA@ii
#1{% para is the post code
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
}%
79 xy \@nameuse
{beginqp@
\psplotstyle}
80 \psk@plotpoints
1 sub
{
82 xy \@nameuse
{doqp@
\psplotstyle}
87 xy \@nameuse
{doqp@
\psplotstyle}
92 \@nameuse
{endqp@
\psplotstyle}}
94 \def\parametricplotA@iii
#1{%
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
121 \@nameuse
{endplot@
\psplotstyle}}
125 \title{pst-anamorphosis : la comète de Halley
}
127 \date{4 novembre
2011}
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.
133 \textcolor{blue
}{\url{http://www.uwgb.edu/dutchs/PLANETS/Comets.HTM
}}
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+ :
137 \parametricplotA[plotpoints=
1000,linecolor=red,linewidth=
0.5mm
]{-
50}{50}{%
139 t dup mul
8 div
6 sub
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.
144 \textcolor{blue
}{\url{http://manuel.luque.perso.neuf.fr/Halley/
}}
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}{%
154 t dup mul
8 div
6 sub
156 \parametricplotA[plotpoints=
1000,linecolor=red,linewidth=
0.5mm
]{-
50}{50}{%
158 t dup mul
8 div
6 sub
160 \psset{linewidth=
0.5\pslinewidth}
161 \multido{\i=-
6+
1}{13}{%
162 \pnode(!
\i\space -
6)
{A
}
163 \pnode(!
\i\space 6)
{B
}
167 \multido{\i=-
6+
1}{13}{%
173 \psclip{\psframe(-
6,
6)(
6,
12)
}
174 \multido{\i=-
6+
1}{13}{
177 \multido{\i=-
22+
1}{16}{
180 \multido{\i=
22+-
1}{16}{
183 \multido{\i=-
6+
1}{13}{
184 \pslineA(-
22,
\i)(
22,
\i)
}