Cette partie donne des explications sur la représentation des orbites à partir des...
[pst-eqdf.git] / gravitation / Kepler16_animation_Nasa.tex
diff --git a/gravitation/Kepler16_animation_Nasa.tex b/gravitation/Kepler16_animation_Nasa.tex
new file mode 100644 (file)
index 0000000..7e3e66a
--- /dev/null
@@ -0,0 +1,408 @@
+\r
+\documentclass{article}\r
+\usepackage[a4paper,margin=2cm]{geometry}\r
+\usepackage[T1]{fontenc}\r
+\usepackage[latin1]{inputenc}%\r
+\usepackage[garamond]{mathdesign}\r
+\usepackage{pst-eqdf,pst-node}\r
+%\usepackage{array,amsmath}\r
+\usepackage{animate}\r
+\usepackage{pst-grad}\r
+%\usepackage{wasysym}\r
+%\usepackage{url}\r
+\newpsstyle{vecteurA}{arrowinset=0.05,arrowsize=0.1,linecolor={[rgb]{1 0.5 0}}}\r
+\newpsstyle{vecteurB}{arrowinset=0.05,arrowsize=0.1,linecolor={[rgb]{0 0.5 1}}}\r
+\newpsstyle{vecteurC}{arrowinset=0.1,arrowsize=0.2,linecolor={[rgb]{1 0 0}}}\r
+\makeatletter\r
+%% adapté de \psRandom du package pstricks-add\r
+%% pour rendre aléatoire la taille des étoiles\r
+%% Manuel Luque\r
+\newdimen\pssizeStar\r
+\def\psset@sizeStar#1{\pssetlength\pssizeStar{#1}}\r
+\psset@sizeStar{1pt}\r
+\define@key[psset]{pst-eqd}{randomPoints}[1000]{\def\psk@randomPoints{#1}}\r
+\psset[pst-eqd]{randomPoints=1000}\r
+\define@boolkey[psset]{pst-eqd}[Pst@]{color}[true]{}\r
+\psset[pst-eqd]{color=false}\r
+\def\psRandomStar{\pst@object{psRandomStar}}%\r
+\def\psRandomStar@i{\@ifnextchar({\psRandomStar@ii}{\psRandomStar@iii(0,0)(1,1)}}\r
+\def\psRandomStar@ii(#1){\@ifnextchar({\psRandomStar@iii(#1)}{\psRandomStar@iii(0,0)(#1)}}\r
+\def\psRandomStar@iii(#1)(#2)#3{%\r
+  \def\pst@tempA{#3}%\r
+  \ifx\pst@tempA\pst@empty\psclip{\psframe(#2)}\else\psclip{#3}\fi\r
+  \pst@getcoor{#1}\pst@tempA\r
+  \pst@getcoor{#2}\pst@tempB\r
+  \begin@SpecialObj\r
+  \addto@pscode{\r
+    \pst@tempA\space /yMin exch def\r
+    /xMin exch def\r
+    \pst@tempB\space /yMax exch def\r
+    /xMax exch def\r
+    /dy yMax yMin sub def\r
+    /dx xMax xMin sub def\r
+    rrand srand                 % initializes the random generator\r
+    /getRandReal { rand 2147483647 div } def\r
+     \psk@randomPoints {\r
+    /DS \pst@number\pssizeStar\space getRandReal mul def\r
+    \@nameuse{psds@\psk@dotstyle}\r
+     \ifPst@color getRandReal 1 1 sethsbcolor \fi\r
+     getRandReal dx mul xMin add\r
+     getRandReal dy mul yMin add\r
+     Dot\r
+     \ifx\psk@fillstyle\psfs@solid fill \fi stroke\r
+    } repeat\r
+  }%\r
+  \end@SpecialObj\r
+  \endpsclip\r
+  \ignorespaces\r
+}\r
+\makeatother\r
+%%%%%%%%%%%%%%%%%%\r
+%timeline\r
+\begin{filecontents}{kepler16Nasa.dat}\r
+::0x0\r
+::1\r
+::2\r
+::3\r
+::4\r
+::5\r
+::6\r
+::7\r
+::8\r
+::9\r
+::10\r
+::11\r
+::12\r
+::13\r
+::14\r
+::15\r
+::16\r
+::17\r
+::18\r
+::19\r
+::20\r
+::21\r
+::22\r
+::23\r
+::24\r
+::25\r
+::26\r
+::27\r
+::28\r
+::29\r
+::30\r
+::31\r
+::32\r
+::33\r
+::34\r
+::35\r
+::36\r
+::37\r
+::38\r
+::39\r
+::40\r
+::41\r
+::42\r
+::43\r
+::44\r
+::45\r
+::46\r
+::47\r
+::48\r
+::49\r
+::50\r
+::51\r
+::52\r
+::53\r
+::54\r
+::55\r
+::56\r
+::57\r
+::58\r
+::59\r
+::60\r
+::61\r
+::62\r
+::63\r
+::64\r
+::65\r
+::66\r
+::67\r
+::68\r
+::69\r
+::70\r
+::71\r
+::72\r
+::73\r
+::74\r
+::75\r
+::76\r
+::77\r
+::78\r
+::79\r
+::80\r
+::81\r
+::82\r
+::83\r
+::84\r
+::85\r
+::86\r
+::87\r
+::88\r
+::89\r
+::90\r
+::91\r
+::92\r
+::93\r
+::94\r
+::95\r
+::96\r
+::97\r
+::98\r
+::99\r
+::100\r
+::101\r
+::102\r
+::103\r
+::104\r
+::105\r
+::106\r
+::107\r
+::108\r
+::109\r
+::110\r
+::111\r
+::112\r
+::113\r
+::114\r
+::115\r
+::116\r
+::117\r
+::118\r
+::119\r
+::120\r
+::121\r
+::122\r
+::123\r
+::124\r
+::125\r
+::126\r
+::127\r
+::128\r
+::129\r
+::130\r
+::131\r
+::132\r
+::133\r
+::134\r
+::135\r
+::136\r
+::137\r
+::138\r
+::139\r
+::140\r
+::141\r
+::142\r
+::143\r
+::144\r
+::145\r
+::146\r
+::147\r
+::148\r
+::149\r
+::150\r
+::151\r
+::152\r
+::153\r
+::154\r
+::155\r
+::156\r
+::157\r
+::158\r
+::159\r
+::160\r
+::161\r
+::162\r
+::163\r
+::164\r
+::165\r
+::166\r
+::167\r
+::168\r
+::169\r
+::170\r
+::171\r
+::172\r
+::173\r
+::174\r
+::175\r
+::176\r
+::177\r
+::178\r
+::179\r
+::180\r
+::181\r
+::182\r
+::183\r
+::184\r
+::185\r
+::186\r
+::187\r
+::188\r
+::189\r
+::190\r
+::191\r
+::192\r
+::193\r
+::194\r
+::195\r
+::196\r
+::197\r
+::198\r
+::199\r
+::200\r
+::201\r
+::202\r
+::203\r
+::204\r
+::205\r
+::206\r
+::207\r
+::208\r
+::209\r
+::210\r
+::211\r
+::212\r
+::213\r
+::214\r
+::215\r
+::216\r
+::217\r
+::218\r
+::219\r
+::220\r
+::221\r
+::222\r
+::223\r
+::224\r
+::225\r
+::226\r
+::227\r
+::228\r
+::229\r
+::230\r
+::231\r
+\end{filecontents}\r
+\title{Gravitation : une planète à deux soleils - animation \textsc{Nasa}}\r
+\date{17 juillet 2\,012}\r
+\begin{document}\r
+%\section{L'animation à partir des données de la \textsc{Nasa}}\r
+\maketitle\r
+\begin{center}\r
+\def\nFrames{230}% 230 images (229 jours)\r
+\begin{animateinline}[controls,timeline=kepler16Nasa.dat,loop,%\r
+                     begin={\begin{pspicture}(-8,-8)(8,8)},\r
+                     end={\end{pspicture}}]{10}% 10 images/s\r
+\pstVerb{%\r
+/Pi 3.14159265359 def\r
+/2Pi 6.28318530718 def\r
+% les angles doivent être en degrés\r
+% pour calculer les sinus, cosinus\r
+% en postscript\r
+/rad2deg { 180 mul Pi div } bind def % radians -> degrés\r
+/deg2rad { 180 div Pi mul } bind def %  degrés -> radians\r
+/tan {dup sin exch cos div} def\r
+         /arctan {\r
+            dup 0 ge\r
+            {1 atan}\r
+            {neg 1 atan neg}\r
+         ifelse\r
+        } def\r
+/AV { % anomalie vraie\r
+   1 exc add 1 exc sub div sqrt AE rad2deg 2 div tan mul arctan 2 mul\r
+  } def\r
+/mA 0.6897 def % masse étoile A\r
+/mB 0.20255 def% masse étoile B\r
+/mt mA mB add def % masse totale\r
+/mP 3e-4 def % masse planète\r
+/a1 0.22431 def % a pour le point réduit\r
+/e1 0.15944 def % excentricité\r
+/p1 a1 1 e1 dup mul sub mul def  % paramètre\r
+/pA p1 mB mul mt div def % paramètre star A\r
+/pB p1 mA mul mt div def % paramètre star B\r
+/e2 0.0069 def % excentricité planète\r
+/a2 0.7048 def % demi-grand axe planète\r
+/w1 263.464 def % arguument\r
+/w2 318 def % arguument planète\r
+/p2 a2 1 e2 dup mul sub mul def  % paramètre planète\r
+% t T e Kepler -> AE\r
+% date periode excentricité -> Kepler -> anomalie excentrique\r
+/Kepler {\r
+  /exc exch def\r
+  /Ti exch def\r
+  /ti exch def\r
+  /AM ti 2Pi mul Ti div def % anomalie moyenne à la date t\r
+  /AE AM def % valeur initiale de anomalie excentrique\r
+    5 {% 5 boucles\r
+     /AETemp % anomalie excentrique provisoire\r
+      AM exc rad2deg AE sin mul add\r
+      def\r
+     /AE AETemp def\r
+    } repeat\r
+    }def\r
+% étoiles A et B\r
+% T=41.076 jours e=0.15944\r
+% planète\r
+% T=228.776 j    e=0.0069\r
+% on calcule sur la periode la planète\r
+% on construit les tableaux des positions\r
+% à 1 jour d'intervalle\r
+/tabStarA [\r
+ 0 1 229 {/i exch def\r
+  i 41.076 e1 Kepler\r
+  /radius pA 1 e1 AV cos mul add div neg def\r
+   radius AV w1 add cos mul\r
+   radius AV w1 add sin mul\r
+  } for\r
+  ] def\r
+/tabStarB [\r
+ 0 1 229 {/i exch def\r
+  i 41.076 e1 Kepler\r
+  /radius pB 1 e1 AV cos mul add div def\r
+   radius AV w1 add cos mul\r
+   radius AV w1 add sin mul\r
+  } for\r
+  ] def\r
+ /tabPlanet [\r
+ 0 1 229 {/i exch def\r
+  i 228.776 e2 Kepler\r
+  /radius p2 1 e2 AV cos mul add div def\r
+   radius AV w2 add cos mul\r
+   radius AV w2 add sin mul\r
+  } for\r
+  ] def\r
+    }%\r
+\psframe*[linecolor={[cmyk]{1 1 0 0.7}}](-8,-8)(8,8)\r
+\psRandomStar[linecolor={[rgb]{1,1,0.5}},\r
+    randomPoints=1000,sizeStar=1pt](-8,-8)(8,8){\psframe[linestyle=none](-8,-8)(8,8)}\r
+%\listplot[unit=10,linecolor=gray]{tabStarA aload pop}\r
+%\listplot[unit=10,linecolor=gray]{tabStarB aload pop}\r
+%\listplot[unit=10,linecolor=gray]{tabPlanet aload pop}\r
+\newframe\r
+\multiframe{\nFrames}{i=0+2}{% \r
+\pstVerb{/i1 \i\space def\r
+  /xA tabStarA i1 get 10 mul def\r
+  /yA tabStarA i1 1 add get 10 mul def\r
+  /xB tabStarB i1 get 10 mul def\r
+  /yB tabStarB i1 1 add get 10 mul def\r
+  /xP tabPlanet i1 get 10 mul def\r
+  /yP tabPlanet i1 1 add get 10 mul def\r
+       }%\r
+\pscircle[linestyle=none,fillstyle=gradient,gradmidpoint=0,gradend=yellow,GradientCircle=true,gradbegin=yellow!50!red!50](!xA yA){0.6}\r
+\pscircle[linestyle=none,fillstyle=gradient,gradmidpoint=0,gradend=red,GradientCircle=true,gradbegin=red!50](!xB yB){0.2}\r
+\pscircle*[linecolor=white](!xP yP){0.1}\r
+}\r
+\end{animateinline}\r
+\end{center}\r
+\end{document}\r
+\r

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.