#######################################################################################################################################
# #
# I N T E R P O L A T I O N D E P O I N T D E V U E #
# ( A V E C E L O I G N E M E N T D U S O L E I L E T R O T A T I O N ) #
# D A N S L E S Y S T E M E S O L A I R E : #
# #
# #
# Author of '$xiirk/.NCOR.f1.1.11.$U' : #
# #
# Jean-Francois COLONNA (LACTAMME, 20030616101840). #
# #
#######################################################################################################################################
#20090922182812____:$Z o "# :Debut_listG_NCOR_f1_1_11_PaRaMeTrEs: #" #
$Z o "# :Debut_listG_PaRaMeTrEs: #"
$Z # Introduit le 20090922121017 afin de permettre de recuperer via 'listMN' et {Debut,Fin} #
$Z # tout ce qui est necessaire pour calculer une seule des images, par exemple, afin d'en #
$Z # faire une version stereographique '$R16' ('v $xiirk/.NCOR.u1.1.11.$U Debut_listG_')... #
$Z # #
$Z # ATTENTION : il n'est pas possible de faire autrement pour faire apparaitre ce commentaire #
$Z # dans le '$Z' genere. D'une part il faut '$Z' (et non pas '$X') afin de ne pas "rompre" la #
$Z # recuperation des definitions ('set', 'SET',...) et d'autre part, il faut la commande neutre #
$Z # 'o' afin que ce commentaire ":Debut_..." ne disparaisse pas lors de l'interpretation de #
$Z # tout cela par 'listG'. Ainsi, dans le '$Z' genere, les marqueurs ":Debut_listG_PaRaMeTrEs:" #
$Z # et ":Fin_listG_PaRaMeTrEs:" n'apparaissent pas de facon symetrique... #
$Z SETParam Premiere 1
$Z SETParam Derniere 512
$Z SETParam PasImage 1
$Z # Parametre introduit le 20090409174844 pour 'v $xiak/NCOR.uP$R16' en particulier... #
$Z SETParam _____Circulaire $NEXIST
$Z # Parametre introduit le 20030623133858 afin de choisir le '$X' utilise : #
$Z # #
$Z # $_____Circulaire=$NEXIST : $xrr/N_corps.11$X #
$Z # $_____Circulaire=$EXIST : $xrr/N_spheres.11$X ou $xrr/N_ellipso.11$X #
$Z # (suivant '$_____Elliptique'...). #
$Z # #
$Z SETParam _____Elliptique $NEXIST
$Z # Parametre introduit le 20051105095957 afin de choisir le '$X' utilise : #
$Z # #
$Z # $_____Circulaire=$EXIST : #
$Z # $_____Elliptique=$NEXIST : $xrr/N_spheres.11$X #
$Z # $_____Elliptique=$EXIST : $xrr/N_ellipso.11$X #
$Z # #
$Z SETParam _____Compatibilite_20051107 $NEXIST
$Z # Le 20051107155323, j'ai observe que des corps dont a priori les trajectoires devaient etre #
$Z # coplanaires ne l'etaient en fait pas dans les images. Cela venait du fait que passer de la #
$Z # matrice d'Euler directe a la matrice d'Euler inverse ne se fait pas en changenat le signe #
$Z # des trois angles {theta,psi,phi} ('v $ximD/definit.1$DEF psi..direct.et..psi..inverse'). #
$Z # Cela a conduit aussi aux modifications 'v $xrr/N_ellipso.11$K compatibilite_20051107' et #
$Z # 'v $xrr/N_spheres.11$K compatibilite_20051107'... #
$Z SETParam _____Excentricite 0
$Z # Parametre introduit le 20051105095957 correspondant a des ellipses (si evidemment #
$Z # '$_____Elliptique' est a l'etat '$EXIST') qui sont en fait des cercles... #
$Z if ($_____Circulaire == $EXIST) then
$Z if ($_____Elliptique == $EXIST) then
$Z SETParam _____Epsilon `GetParam $xrr/N_ellipso.11$X epsilon`
$Z # Parametre introduit le 20051107092801 pour controler la resolution de l'equation de #
$Z # Kepler... #
$Z else
$Z endif
$Z else
$Z endif
$Z SETParam _____FacteurUnivers 5
$Z # Parametre permettant de changer la taille de l'Univers (introduit le 20030617141743). #
$Z # On notera qu'une valeur egale a 5 est suffisante pour le Systeme Solaire, mais que #
$Z # l'utilisation d'un '$_____Extrapolation' strictement positif implique qu'une valeur #
$Z # superieure a 5 soit utilisee... #
$Z SETParam _____Extrapolation 0
$Z # Extrapolation permettant de partir d'au-dela de Pluton... #
$Z SETParam _____Reference 1
$Z # A priori 1 (le Soleil) ou 11 (la planete fictive...). #
$Z SETParam _____DCT 15000
$Z SETParam _____Nombre 420
$Z SETParam _____Npas 1250
$Z SETParam _____Ntours 8
$Z SETParam _____DistanceA 0.05e11
$Z # Parametre introduit le 20070123142018 pour 'v $xiak/$Fnota Debut_listG_NCOR_lS' car, en #
$Z # effet, avec la valeur par defaut (0.05e11), lorsqu'elle est au plus pres du Soleil, s'en #
$Z # eloigne dramatiquement... #
$Z setParam _____Lineaire FAUX
$Z setParam _____ELineaire 0.4
$Z setParam _____FGRayons 1
$Z # Ce parametre a ete introduit le 20030702102138 pour permettre de controler Globalement #
$Z # le Rayon des corps... #
$Z setParam _____FARayons 1
$Z # Ce parametre a ete introduit le 20030702102138 (on ne sait jamais...) pour controler #
$Z # les Rayons dits "Anterieurs". #
$Z setParam _____Canterieurs `GetParam $xrr/N_corps.11$X Canterieurs`
$Z # Argument introduit le 20070117164933... #
$Z if ($?_____Zoom == $NEXIST) then
$Z SET _____Zoom=0.60
$Z # 0.85 est suggere en mode heliocentrique et lineaire des coordonnees... #
$Z
$Z SETParam _____ZoomD $_____Zoom
$Z
$Z SETParam _____ZoomA $_____Zoom
$Z else
$Z SET _____ZoomD=$_____Zoom
$Z SET _____ZoomA=$_____Zoom
$Z endif
$Z setParam _____Lz 1.0e18
$Z setParam _____Rotation_OX 0
$Z setParam _____Rotation_OY 0
$Z setParam _____Rotation_OZ 0
$Z setParam _____FictiveR $GRIS_0
$Z # Parametre introduit le 20070117164933... #
$Z setParam _____FictiveV $GRIS_4
$Z # Parametre introduit le 20070117164933... #
$Z setParam _____FictiveB $GRIS_8
$Z # Parametre introduit le 20070117164933... #
$Z set NcorpsS=11
$Z $DELETE $xTV/ROTATION$COORD_X
$Z $xci/valeurs_inte$X p=1 d=$_____Npas vD=$_____Rotation_OX vA=$_____Rotation_OX cubique=VRAI \
$Z > $xTV/ROTATION$COORD_X
$Z $DELETE $xTV/ROTATION$COORD_Y
$Z $xci/valeurs_inte$X p=1 d=$_____Npas vD=$_____Rotation_OY vA=$_____Rotation_OY cubique=VRAI \
$Z > $xTV/ROTATION$COORD_Y
$Z $DELETE $xTV/ROTATION$COORD_Z
$Z $xci/valeurs_inte$X p=1 d=$_____Npas vD=$_____Rotation_OZ vA=$_____Rotation_OZ cubique=VRAI \
$Z > $xTV/ROTATION$COORD_Z
$Z # Dans les listes suivantes, on trouve dans l'ordre les corps suivants : #
$Z # #
$Z # Soleil #
$Z # #
$Z # Mercure #
$Z # Venus #
$Z # #
$Z # Terre+Lune #
$Z # #
$Z # Mars #
$Z # Jupiter #
$Z # Saturne #
$Z # Uranus #
$Z # Neptune #
$Z # Pluton #
$Z # #
$Z # PlaneteVirtuelle #
$Z # #
$Z # on notant bien qu'en ce qui concerne les MASSES, c'est 'Terre+Lune' que l'on trouve et #
$Z # non pas 'Terre' seule ! #
$Z GenFListe $xTV/MASSES \
$Z +2.0e30 +3.3e23 +48.7e23 \
$Z +60.5e23 \
$Z +6.4e23 +189.9e25 +56.8e25 +8.6e25 +10.3e25 +6.6e21 \
$Z +60.5e23
$Z GenFListe $xTV/RAYONS \
$Z +30e10 +16e10 +16e10 \
$Z +16e10 \
$Z +16e10 +22e10 +22e10 +20e10 +20e10 +16e10 \
$Z +16e10
$Z if (! -e $xTV/VISIBILITE) then
$Z # Test introduit le 20061029112229 afin de permettre de ne pas generer tous les corps et #
$Z # ce en assurant la compatibilite anterieure... #
$Z GenFListe $xTV/VISIBILITE \
$Z $EXIST $EXIST $EXIST \
$Z $EXIST \
$Z $EXIST $EXIST $EXIST $EXIST $EXIST $EXIST \
$Z $EXIST
$Z # Fichier introduit le 20061026125036 tous les corps etant visibles... #
$Z else
$Z endif
$Z if (! -e $xTV/COULEURS$ROUGE) then
$Z # Test introduit le 20061029112229 afin de permettre de changer les couleurs des corps et #
$Z # ce en assurant la compatibilite anterieure... #
$Z GenFListe $xTV/COULEURS$ROUGE \
$Z $GRIS_8 $GRIS_8 $GRIS_8 \
$Z $GRIS_0 \
$Z $GRIS_8 $GRIS_8 $GRIS_8 $GRIS_4 $GRIS_0 $GRIS_7 \
$Z $_____FictiveR
$Z else
$Z endif
$Z if (! -e $xTV/COULEURS$VERTE) then
$Z # Test introduit le 20061029112229 afin de permettre de changer les couleurs des corps et #
$Z # ce en assurant la compatibilite anterieure... #
$Z GenFListe $xTV/COULEURS$VERTE \
$Z $GRIS_8 $GRIS_6 $GRIS_4 \
$Z $GRIS_6 \
$Z $GRIS_4 $GRIS_6 $GRIS_7 $GRIS_8 $GRIS_7 $GRIS_7 \
$Z $_____FictiveV
$Z else
$Z endif
$Z if (! -e $xTV/COULEURS$BLEUE) then
$Z # Test introduit le 20061029112229 afin de permettre de changer les couleurs des corps et #
$Z # ce en assurant la compatibilite anterieure... #
$Z GenFListe $xTV/COULEURS$BLEUE \
$Z $GRIS_0 $GRIS_2 $GRIS_0 \
$Z $GRIS_8 \
$Z $GRIS_2 $GRIS_0 $GRIS_0 $GRIS_8 $GRIS_8 $GRIS_8 \
$Z $_____FictiveB
$Z else
$Z endif
$Z if ($_____Circulaire == $NEXIST) then
$Z else
$Z GenFListe $xTV/THETA_2D \
$Z 0 0 0 \
$Z 0 \
$Z 0 0 0 0 0 0 \
$Z 0
$Z endif
$Z if ($_____Compatibilite_20051107 == $NEXIST) then
$Z set CarEulerDirecte=FAUX
$Z # Il faut prendre en fait la transformation inverse... #
$Z set Compatibilite_xrr=FAUX
$Z # Pour '$xrr/N_ellipso.11$X' et '$xrr/N_spheres.11$X'... #
$Z else
$Z set CarEulerDirecte=VRAI
$Z # Pour des raisons de compatibilite, il sera possible d'utiliser la transformation directe... #
$Z set Compatibilite_xrr=VRAI
$Z # Pour '$xrr/N_ellipso.11$X' et '$xrr/N_spheres.11$X'... #
$Z endif
#20070117164933____:$Z Pal #
$Z SETENV ZoomD $_____ZoomD
$Z SETENV ZoomA $_____ZoomA
$X echo "neutre"
$X # commande destinee uniquement a mettre a jour l'environnement 'env'... #
$c #include <stdio.h>
$c
$c extern double atof();
$c extern char *getenv();
$c
$c #define N0 Premiere
$c #define N Derniere
$c #define P PasImage
$c #define K 512
$c #define EXTRAPOLE _____Extrapolation
$c
$c #define NPAS _____Npas
$c #define NTOUR _____Ntours
$c
$c #define ZOOMD (atof(getenv("ZoomD")))
$c #define ZOOMA (atof(getenv("ZoomA")))
$c
$c #define Interpole(D,A,n,N0,N) ((N==N0) ? (D) : (((double)((A*(n-N0))+(D*(N-n))))/((double)(N-N0))))
$c /* Introduit le 20051105173020 pour permettre la generation d'une image unique... */
$c
$c extern double cos();
$c extern double sin();
$c extern double pow();
$c extern double sqrt();
$c
$c int main()
$c {
$c int n;
$c int numero=N0;
$c /* Le numero d'image a ete introduit le 20090409174844 afin de permettre une numerotation */
$c /* de 1 en 1, meme si '$PasImage' est superieur a 1... */
$c
$c int NOMBRE=(int)(((double)_____Nombre)*pow((double)(K+EXTRAPOLE)/(double)(K),((double)3)/((double)2)));
$c /* L'exposant 3/2 vient de la troisieme loi de Kepler... */
$c /* */
$c /* Le 20051105163934, je me demande vraiment ce que 'N' vient faire dans le calcul de */
$c /* 'NOMBRE', c'est-a-dire le nombre de pas de temps par periode. En fait, ce nombre est */
$c /* destine a allonge la duree de chaque simulation afin que la trajectoire de la planete */
$c /* la plus lointaine soit fermee (comme l'est celle de Pluton a priori...) ; cela explique */
$c /* l'exposant 3/2. Le 20051105173020, je remplace 'N' par 'K' qui lui possede une valeur */
$c /* fixe (512) ne dependant pas du nombre d'images generees (c'est-a-dire 'N'...). La valeur */
$c /* de 'K' (512) est donc choisie afin de conserver la compatiblite anterieure, puisqu'en */
$c /* general, 512 sont generees... */
$c
$c double thetaD=0;
$c double thetaA=NTOUR*2*3.1415926535897932;
$c
$c double XcentreS=+1e3;
$c double YcentreS=+1e3;
$c double ZcentreS=+1e3;
$c /* Definition du Soleil. */
$c double XcentreD=-392e+10;
$c double YcentreD=+307e+10;
$c double ZcentreD=+216e+10;
$c double XvitessD=-2.27e+3;
$c double YvitessD=-4.53e+3;
$c double ZvitessD=-7.39e+2;
$c /* Definition de la position de Depart de la planete fictive qui definit simultanement */
$c /* la position reelle de la planete Pluton. ATTENTION : il ne faut donc pas modifier ces */
$c /* valeurs... */
$c double XcentreA;
$c double YcentreA;
$c double ZcentreA;
$c /* Definition de la position d'Arrivee de la planete fictive (proche du Soleil). */
$c
$c double Fcentre;
$c double OdistD;
$c
$c if ((((double)_____Npas)*((double)_____DCT)*((double)NOMBRE))/((double)(3600*24*365)) < 248)
$c {
$c printf("echo 'La duree de la simulation est inferieure a la periode de Pluton.'\n");
$c }
$c else
$c {
$c }
$c
$c if (N < K)
$c {
$c printf("echo 'La planete fictive sera en general beaucoup trop loin des neuf autres.'\n");
$c }
$c else
$c {
$c }
$c
$c OdistD=sqrt(((XcentreD-XcentreS)*(XcentreD-XcentreS))+
$c ((YcentreD-YcentreS)*(YcentreD-YcentreS))+
$c ((ZcentreD-ZcentreS)*(ZcentreD-ZcentreS))
$c );
$c Fcentre=(_____DistanceA/OdistD);
$c
$c XcentreA=Fcentre*XcentreD;
$c YcentreA=Fcentre*YcentreD;
$c ZcentreA=Fcentre*ZcentreD;
$c
$c printf("set PaRaMeTrEs=%c$K_VIDE%c\n",'"','"');
$c printf("set PaRaMeTrEs=%c$PaRaMeTrEs%c%c corps=$NcorpsS%c\n",'"','"','"','"');
$c printf("set PaRaMeTrEs=%c$PaRaMeTrEs%c%c np=%d%c\n",'"','"','"',NPAS,'"');
$c printf("set PaRaMeTrEs=%c$PaRaMeTrEs%c%c Ar=$_____FGRayons%c\n",'"','"','"','"');
$c printf("set PaRaMeTrEs=%c$PaRaMeTrEs%c%c LISTE_RAYON=$xTV/RAYONS%c\n",'"','"','"','"');
$c printf("set PaRaMeTrEs=%c$PaRaMeTrEs%c%c LISTE_VISIBILITE=$xTV/VISIBILITE%c\n",'"','"','"','"');
$c printf("set PaRaMeTrEs=%c$PaRaMeTrEs%c%c LISTE_ROUGE=$xTV/COULEURS$ROUGE%c\n",'"','"','"','"');
$c printf("set PaRaMeTrEs=%c$PaRaMeTrEs%c%c LISTE_VERTE=$xTV/COULEURS$VERTE%c\n",'"','"','"','"');
$c printf("set PaRaMeTrEs=%c$PaRaMeTrEs%c%c LISTE_BLEUE=$xTV/COULEURS$BLEUE%c\n",'"','"','"','"');
$c printf("set PaRaMeTrEs=%c$PaRaMeTrEs%c%c centrer=FAUX reference=$_____Reference%c\n"
$c ,'"','"','"','"'
$c );
$c printf("set PaRaMeTrEs=%c$PaRaMeTrEs%c%c extension=$_____FacteurUnivers%c\n",'"','"','"','"');
$c printf("set PaRaMeTrEs=%c$PaRaMeTrEs%c%c dct=$_____DCT%c\n",'"','"','"','"');
$c printf("set PaRaMeTrEs=%c$PaRaMeTrEs%c%c nombre=%d%c\n",'"','"','"',NOMBRE,'"');
$c printf("set PaRaMeTrEs=%c$PaRaMeTrEs%c%c ensemble=VRAI%c\n",'"','"','"','"');
$c printf("set PaRaMeTrEs=%c$PaRaMeTrEs%c%c Ranterieurs=$_____FARayons%c\n",'"','"','"','"');
$c printf("set PaRaMeTrEs=%c$PaRaMeTrEs%c%c Canterieurs=$_____Canterieurs%c\n",'"','"','"','"');
$c printf("set PaRaMeTrEs=%c$PaRaMeTrEs%c%c trainees=FAUX%c\n",'"','"','"','"');
$c printf("set PaRaMeTrEs=%c$PaRaMeTrEs%c%c renormaliser=FAUX%c\n",'"','"','"','"');
$c printf("set PaRaMeTrEs=%c$PaRaMeTrEs%c%c lineaire=$_____Lineaire exposant=$_____ELineaire%c\n"
$c ,'"','"','"','"'
$c );
$c printf("set PaRaMeTrEs=%c$PaRaMeTrEs%c%c Lz=$_____Lz%c\n",'"','"','"','"');
$c printf("set PaRaMeTrEs=%c$PaRaMeTrEs%c%c TRANSLATION_OX=0%c\n",'"','"','"','"');
$c printf("set PaRaMeTrEs=%c$PaRaMeTrEs%c%c TRANSLATION_OY=0%c\n",'"','"','"','"');
$c printf("set PaRaMeTrEs=%c$PaRaMeTrEs%c%c ROTATION_OX=$xTV/ROTATION$COORD_X%c\n",'"','"','"','"');
$c printf("set PaRaMeTrEs=%c$PaRaMeTrEs%c%c ROTATION_OY=$xTV/ROTATION$COORD_Y%c\n",'"','"','"','"');
$c printf("set PaRaMeTrEs=%c$PaRaMeTrEs%c%c ROTATION_OZ=$xTV/ROTATION$COORD_Z%c\n",'"','"','"','"');
$c printf("set PaRaMeTrEs=%c$PaRaMeTrEs%c%c fond=FAUX%c\n",'"','"','"','"');
$c printf("set PaRaMeTrEs=%c$PaRaMeTrEs%c%c pV=%d%c\n",'"','"','"',NPAS,'"');
$c printf("set PaRaMeTrEs=%c$PaRaMeTrEs%c%c N_au_carre=FAUX%c\n",'"','"','"','"');
$c
$c printf("if ($_____Circulaire == $NEXIST) then\n");
$c printf(" set PaRaMeTrEs=%c$PaRaMeTrEs%c%c LISTE_X=$xTV/COORDONNEES$COORD_X%c\n",'"','"','"','"');
$c printf(" set PaRaMeTrEs=%c$PaRaMeTrEs%c%c LISTE_Y=$xTV/COORDONNEES$COORD_Y%c\n",'"','"','"','"');
$c printf(" set PaRaMeTrEs=%c$PaRaMeTrEs%c%c LISTE_Z=$xTV/COORDONNEES$COORD_Z%c\n",'"','"','"','"');
$c printf(" set PaRaMeTrEs=%c$PaRaMeTrEs%c%c LISTE_VX=$xTV/VITESSES$COORD_X%c\n",'"','"','"','"');
$c printf(" set PaRaMeTrEs=%c$PaRaMeTrEs%c%c LISTE_VY=$xTV/VITESSES$COORD_Y%c\n",'"','"','"','"');
$c printf(" set PaRaMeTrEs=%c$PaRaMeTrEs%c%c LISTE_VZ=$xTV/VITESSES$COORD_Z%c\n",'"','"','"','"');
$c printf(" set PaRaMeTrEs=%c$PaRaMeTrEs%c%c LISTE_MASSE=$xTV/MASSES%c\n",'"','"','"','"');
$c printf(" set PaRaMeTrEs=%c$PaRaMeTrEs%c%c ZOOM=$_____Zoom%c\n",'"','"','"','"');
$c printf(" set PaRaMeTrEs=%c$PaRaMeTrEs%c%c 2_a_2=FAUX source=1%c\n",'"','"','"','"');
$c printf(" set PaRaMeTrEs=%c$PaRaMeTrEs%c%c acceptable=0.5%c\n",'"','"','"','"');
$c printf("else\n");
$c printf(" if ($_____Elliptique == $NEXIST) then\n");
$c printf(" set PaRaMeTrEs=%c$PaRaMeTrEs%c%c LISTE_THETA_3D=$xTV/THETA_3D%c\n",'"','"','"','"');
$c printf(" set PaRaMeTrEs=%c$PaRaMeTrEs%c%c LISTE_PSI_3D=$xTV/PSI_3D%c\n",'"','"','"','"');
$c printf(" set PaRaMeTrEs=%c$PaRaMeTrEs%c%c LISTE_PHI_3D=$xTV/PHI_3D%c\n",'"','"','"','"');
$c printf(" set PaRaMeTrEs=%c$PaRaMeTrEs%c%c LISTE_TRANSLATION_X_3D=0%c\n",'"','"','"','"');
$c printf(" set PaRaMeTrEs=%c$PaRaMeTrEs%c%c LISTE_TRANSLATION_Y_3D=0%c\n",'"','"','"','"');
$c printf(" set PaRaMeTrEs=%c$PaRaMeTrEs%c%c LISTE_TRANSLATION_Z_3D=0%c\n",'"','"','"','"');
$c printf(" set PaRaMeTrEs=%c$PaRaMeTrEs%c%c LISTE_RAYON_2D=$xTV/RAYON_2D%c\n",'"','"','"','"');
$c printf(" set PaRaMeTrEs=%c$PaRaMeTrEs%c%c LISTE_THETA_2D=$xTV/THETA_2D%c\n",'"','"','"','"');
$c printf(" set PaRaMeTrEs=%c$PaRaMeTrEs%c%c LISTE_DELTA_THETA_2D=$xTV/DELTA_THETA_2D%c\n"
$c ,'"','"','"','"'
$c );
$c printf(" set PaRaMeTrEs=%c$PaRaMeTrEs%c%c compatibilite_20051107=$Compatibilite_xrr%c\n"
$c ,'"','"','"','"'
$c );
$c printf(" else\n");
$c printf(" set PaRaMeTrEs=%c$PaRaMeTrEs%c%c LISTE_THETA_3D=$xTV/THETA_3D%c\n",'"','"','"','"');
$c printf(" set PaRaMeTrEs=%c$PaRaMeTrEs%c%c LISTE_PSI_3D=$xTV/PSI_3D%c\n",'"','"','"','"');
$c printf(" set PaRaMeTrEs=%c$PaRaMeTrEs%c%c LISTE_PHI_3D=$xTV/PHI_3D%c\n",'"','"','"','"');
$c printf(" set PaRaMeTrEs=%c$PaRaMeTrEs%c%c LISTE_TRANSLATION_X_3D=0%c\n",'"','"','"','"');
$c printf(" set PaRaMeTrEs=%c$PaRaMeTrEs%c%c LISTE_TRANSLATION_Y_3D=0%c\n",'"','"','"','"');
$c printf(" set PaRaMeTrEs=%c$PaRaMeTrEs%c%c LISTE_TRANSLATION_Z_3D=0%c\n",'"','"','"','"');
$c printf(" set PaRaMeTrEs=%c$PaRaMeTrEs%c%c LISTE_DEMI_PETIT_AXE_2D=$xTV/DPETIT_AXE_2D%c\n"
$c ,'"','"','"','"'
$c );
$c printf(" set PaRaMeTrEs=%c$PaRaMeTrEs%c%c LISTE_DEMI_GRAND_AXE_2D=$xTV/DGRAND_AXE_2D%c\n"
$c ,'"','"','"','"'
$c );
$c printf(" set PaRaMeTrEs=%c$PaRaMeTrEs%c%c LISTE_THETA_2D=$xTV/THETA_2D%c\n",'"','"','"','"');
$c printf(" set PaRaMeTrEs=%c$PaRaMeTrEs%c%c LISTE_DELTA_THETA_2D=$xTV/DELTA_THETA_2D%c\n"
$c ,'"','"','"','"'
$c );
$c printf(" set PaRaMeTrEs=%c$PaRaMeTrEs%c%c epsilon=$_____Epsilon%c\n",'"','"','"','"');
$c printf(" set PaRaMeTrEs=%c$PaRaMeTrEs%c%c compatibilite_20051107=$Compatibilite_xrr%c\n"
$c ,'"','"','"','"'
$c );
$c printf(" endif\n");
$c printf("endif\n");
$c
$c printf("set PaRaMeTrEs=%c$PaRaMeTrEs%c%c chiffres=0%c\n",'"','"','"','"');
$c /* Introduit le 20051106113636 afin de simplifier la fin du processus... */
$c
$c printf("set PaRaMeTrEs=%c$PaRaMeTrEs%c%c editer_hors=FAUX%c\n",'"','"','"','"');
$c /* Introduit le 20051106113636 afin de simplifier la fin du processus... */
$c
#20090922182812____:$c printf("# :Fin_listG_NCOR_f1_1_11_PaRaMeTrEs: #\n"); #
$c printf("# :Fin_listG_PaRaMeTrEs: #\n");
$c /* Introduit le 20090922121017 afin de permettre de recuperer via 'listMN' et {Debut,Fin} */
$c /* tout ce qui est necessaire pour calculer une seule des images, par exemple, afin d'en */
$c /* faire une version stereographique '$R16' ('v $xiirk/.NCOR.u1.1.11.$U Fin_listG_')... */
$c
$c for (n=N0 ; n<=N ; n=n+P)
$c {
$c double ne=Interpole(N0-EXTRAPOLE,N,n,N0,N);
$c /* Indice 'n' extrapole. ATTENTION : je note le 20051106125554 qu'une valeur trop faible */
$c /* de 'N' donnera alors des resultats aberrants : la planete fictive sera pratiquement */
$c /* toujours beaucoup trop loin des neuf autres. Par exemple, pour N=9, alors que les */
$c /* que les coordonnees de Depart (Pluton) sont de l'ordre de 1e+12 et que celles d'Arrivee */
$c /* sont de l'ordre de 1e+9, les coordonnees de la planete fictive sont-elles de l'ordre */
$c /* de 1e+14... */
$c
$c double zoom=Interpole(ZOOMD,ZOOMA,ne,N0,N);
$c
$c double Xcentre_AR=Interpole(XcentreD,XcentreA,ne,N0,N);
$c double Ycentre_AR=Interpole(YcentreD,YcentreA,ne,N0,N);
$c double Zcentre_AR=Interpole(ZcentreD,ZcentreA,ne,N0,N);
$c /* Coordonnees de la planete fictive Avant Rotation. */
$c
$c double Xcentre;
$c double Ycentre;
$c double Zcentre;
$c
$c double Xvitess;
$c double Yvitess;
$c double Zvitess;
$c
$c double Odist;
$c
$c double theta=Interpole(thetaD,thetaA,n,N0,N);
$c
#20090922182812____:$c printf("# :Debut_listG_NCOR_f1_1_11______images_%04d #\n" #
#20090922182812____:$c ,numero #
#20090922182812____:$c ); #
$c printf("# :Debut_listG______images_%04d: #\n"
$c ,numero
$c );
$c /* Introduit le 20090922121017 afin de permettre de recuperer via 'listMN' et {Debut,Fin} */
$c /* tout ce qui est necessaire pour calculer une seule des images, par exemple, afin d'en */
$c /* faire une version stereographique '$R16' ('v $xiirk/.NCOR.u1.1.11.$U Debut_listG_')... */
$c
$c Xcentre=+(Xcentre_AR*cos(theta))+(Zcentre_AR*sin(theta));
$c Ycentre=Ycentre_AR;
$c Zcentre=-(Xcentre_AR*sin(theta))+(Zcentre_AR*cos(theta));
$c
$c Odist=sqrt(((Xcentre-XcentreS)*(Xcentre-XcentreS))+
$c ((Ycentre-YcentreS)*(Ycentre-YcentreS))+
$c ((Zcentre-ZcentreS)*(Zcentre-ZcentreS))
$c );
$c
$c Xvitess=XvitessD*sqrt(OdistD/Odist);
$c Yvitess=YvitessD*sqrt(OdistD/Odist);
$c Zvitess=ZvitessD*sqrt(OdistD/Odist);
$c /* L'utilisation de 'sqrt(...)' est expliquee dans 'v $xrr/N_corps.11$K sqrt.OdistD'. */
$c
$c printf("GenFListe $xTV/COORDONNEES$COORD_X
$c %+g +514e+8 +213e+8
$c -203e+8
$c -204e+9 +501e+9 -134e+10 -150e+9 -436e+10
$c %+g %+g\n"
$c ,XcentreS,XcentreD,Xcentre
$c );
$c printf("GenFListe $xTV/COORDONNEES$COORD_Y
$c %+g +682e+7 +967e+8
$c +133e+9
$c +126e+9 -519e+9 +341e+9 +259e+10 -115e+10
$c %+g %+g\n"
$c ,YcentreS,YcentreD,Ycentre
$c );
$c printf("GenFListe $xTV/COORDONNEES$COORD_Z
$c %+g -163e+7 +422e+8
$c +579e+8
$c +634e+8 -235e+9 +199e+9 +113e+10 -363e+9
$c %+g %+g\n"
$c ,ZcentreS,ZcentreD,Zcentre
$c );
$c
$c printf("GenFListe $xTV/VITESSES$COORD_X
$c 0 -1.46e+4 -3.44e+4
$c -2.99e+4
$c -1.27e+4 +9.67e+3 -3.21e+3 -6.84e+3 +1.42e+3
$c %+g %+g\n"
$c ,XvitessD,Xvitess
$c );
$c printf("GenFListe $xTV/VITESSES$COORD_Y
$c 0 +4.43e+4 +5.39e+3
$c -3.88e+3
$c -1.64e+4 +8.59e+3 -8.62e+3 -6.50e+2 -4.79e+3
$c %+g %+g\n"
$c ,YvitessD,Yvitess
$c );
$c printf("GenFListe $xTV/VITESSES$COORD_Z
$c 0 +2.52e+4 +4.60e+3
$c -1.68e+3
$c -7.18e+3 +3.44e+3 -3.42e+3 -1.88e+2 -2.00e+3
$c %+g %+g\n"
$c ,ZvitessD,Zvitess
$c );
$c
$c printf("if ($_____Circulaire == $NEXIST) then\n");
$c printf(" $xrr/N_corps.11$X
$c $PaRaMeTrEs
$c R=$_____images.%04d
$c $formatI\n"
$c ,numero
$c );
$c printf("else\n");
$c printf(" $DELETE $xTV/THETA_3D\n");
$c printf(" $DELETE $xTV/PSI_3D\n");
$c printf(" $DELETE $xTV/PHI_3D\n");
$c
$c printf(" $xrv/Car_Euler.01$X
$c ne=$NcorpsS
$c LISTE_V1X=$xTV/COORDONNEES$COORD_X
$c LISTE_V1Y=$xTV/COORDONNEES$COORD_Y
$c LISTE_V1Z=$xTV/COORDONNEES$COORD_Z
$c LISTE_V2X=$xTV/VITESSES$COORD_X
$c LISTE_V2Y=$xTV/VITESSES$COORD_Y
$c LISTE_V2Z=$xTV/VITESSES$COORD_Z
$c directe=$CarEulerDirecte
$c pTHETA=1 pPSI=0 pPHI=0
$c CAL1=FAUX
$c > $xTV/THETA_3D\n"
$c /* Le 'CAL1=FAUX' a ete introduit le 20030702110326 a cause du Soleil dont la vitesse */
$c /* est nulle systematiquement (V2={0,0,0})... */
$c );
$c printf(" $xrv/Car_Euler.01$X
$c ne=$NcorpsS
$c LISTE_V1X=$xTV/COORDONNEES$COORD_X
$c LISTE_V1Y=$xTV/COORDONNEES$COORD_Y
$c LISTE_V1Z=$xTV/COORDONNEES$COORD_Z
$c LISTE_V2X=$xTV/VITESSES$COORD_X
$c LISTE_V2Y=$xTV/VITESSES$COORD_Y
$c LISTE_V2Z=$xTV/VITESSES$COORD_Z
$c directe=$CarEulerDirecte
$c pTHETA=0 pPSI=1 pPHI=0
$c CAL1=FAUX
$c > $xTV/PSI_3D\n"
$c /* Le 'CAL1=FAUX' a ete introduit le 20030702110326 a cause du Soleil dont la vitesse */
$c /* est nulle systematiquement (V2={0,0,0})... */
$c );
$c printf(" $xrv/Car_Euler.01$X
$c ne=$NcorpsS
$c LISTE_V1X=$xTV/COORDONNEES$COORD_X
$c LISTE_V1Y=$xTV/COORDONNEES$COORD_Y
$c LISTE_V1Z=$xTV/COORDONNEES$COORD_Z
$c LISTE_V2X=$xTV/VITESSES$COORD_X
$c LISTE_V2Y=$xTV/VITESSES$COORD_Y
$c LISTE_V2Z=$xTV/VITESSES$COORD_Z
$c directe=$CarEulerDirecte
$c pTHETA=0 pPSI=0 pPHI=1
$c CAL1=FAUX
$c > $xTV/PHI_3D\n"
$c /* Le 'CAL1=FAUX' a ete introduit le 20030702110326 a cause du Soleil dont la vitesse */
$c /* est nulle systematiquement (V2={0,0,0})... */
$c );
$c
$c printf(" $DELETE $xTV/RAYON_2D\n");
$c
$c printf(" $xrv/distance.11$X
$c ne=$NcorpsS
$c LISTE_X=$xTV/COORDONNEES$COORD_X
$c LISTE_Y=$xTV/COORDONNEES$COORD_Y
$c LISTE_Z=$xTV/COORDONNEES$COORD_Z
$c euclidienne=VRAI
$c X0=0 Y0=0 Z0=0
$c > $xTV/RAYON_2D\n"
$c );
$c
$c printf(" $DELETE $xTV/MODULE_VITESSE\n");
$c
$c printf(" $xrv/distance.11$X
$c ne=$NcorpsS
$c LISTE_X=$xTV/VITESSES$COORD_X
$c LISTE_Y=$xTV/VITESSES$COORD_Y
$c LISTE_Z=$xTV/VITESSES$COORD_Z
$c euclidienne=VRAI
$c X0=0 Y0=0 Z0=0
$c > $xTV/MODULE_VITESSE\n"
$c );
$c
$c printf(" $DELETE $xTV/OMEGA_2D\n");
$c printf(" $DELETE $xTV/DELTA_THETA_2D\n");
$c
$c printf(" $xrv/DIVZ.11$X
$c ne=$NcorpsS
$c fichier1=$xTV/MODULE_VITESSE
$c fichier2=$xTV/RAYON_2D
$c > $xTV/OMEGA_2D\n"
$c );
$c /* Le quotient de la VITESSE par le RAYON donne la vitesse angulaire OMEGA, c'est-a-dire */
$c /* le nombre de tours par seconde... */
$c printf(" set NoMbReSeCoNdEs=`calcul $_____DCT*%d`\n"
$c ,NOMBRE
$c );
$c printf(" $xrv/MUL2.11$X
$c ne=$NcorpsS
$c fichier1=$NoMbReSeCoNdEs
$c fichier2=$xTV/OMEGA_2D
$c > $xTV/DELTA_THETA_2D\n"
$c );
$c /* Il convient ensuite de multiplier OMEGA par le nombre de secondes ($_____DCT multiplie */
$c /* par NOMBRE) separant deux images... */
$c
$c printf(" if ($_____Elliptique == $NEXIST) then\n");
$c printf(" $xrr/N_spheres.11$X
$c $PaRaMeTrEs
$c ZOOM=%f
$c R=$_____images.%04d
$c $formatI\n"
$c ,zoom,numero
$c );
$c
$c printf(" else\n");
$c
$c printf(" $DELETE $xTV/DGRAND_AXE_2D\n");
$c printf(" $DELETE $xTV/DPETIT_AXE_2D\n");
$c
$c printf(" $xrv/neutre$X
$c ne=$NcorpsS
$c fichier=$xTV/RAYON_2D
$c > $xTV/DGRAND_AXE_2D\n"
$c );
$c printf(" set DeMiPeTiTAxE=`calcul sqrt(1-($_____Excentricite*$_____Excentricite))`\n");
$c printf(" $xrv/MUL2.11$X
$c ne=$NcorpsS
$c fichier1=$DeMiPeTiTAxE
$c fichier2=$xTV/DGRAND_AXE_2D
$c > $xTV/DPETIT_AXE_2D\n"
$c );
$c
$c printf(" $xrr/N_ellipso.11$X
$c $PaRaMeTrEs
$c ZOOM=%f
$c R=$_____images.%04d
$c $formatI\n"
$c ,zoom,numero
$c );
$c
$c printf(" $DELETE $xTV/DGRAND_AXE_2D\n");
$c printf(" $DELETE $xTV/DPETIT_AXE_2D\n");
$c
$c printf(" endif\n");
$c
$c printf(" $DELETE $xTV/THETA_3D\n");
$c printf(" $DELETE $xTV/PSI_3D\n");
$c printf(" $DELETE $xTV/PHI_3D\n");
$c printf(" $DELETE $xTV/RAYON_2D\n");
$c printf(" $DELETE $xTV/MODULE_VITESSE\n");
$c printf(" $DELETE $xTV/OMEGA_2D\n");
$c printf(" $DELETE $xTV/DELTA_THETA_2D\n");
$c
$c printf("endif\n");
$c
$c printf("$DELETE $xTV/COORDONNEES$COORD_X\n");
$c printf("$DELETE $xTV/COORDONNEES$COORD_Y\n");
$c printf("$DELETE $xTV/COORDONNEES$COORD_Z\n");
$c
$c printf("$DELETE $xTV/VITESSES$COORD_X\n");
$c printf("$DELETE $xTV/VITESSES$COORD_Y\n");
$c printf("$DELETE $xTV/VITESSES$COORD_Z\n");
$c
#20090922182812____:$c printf("# :Fin_listG_NCOR_f1_1_11______images_%04d #\n" #
#20090922182812____:$c ,numero #
#20090922182812____:$c ); #
$c printf("# :Fin_listG______images_%04d: #\n"
$c ,numero
$c );
$c /* Introduit le 20090922121017 afin de permettre de recuperer via 'listMN' et {Debut,Fin} */
$c /* tout ce qui est necessaire pour calculer une seule des images, par exemple, afin d'en */
$c /* faire une version stereographique '$R16' ('v $xiirk/.NCOR.u1.1.11.$U Fin_listG_')... */
$c
$c numero++;
$c /* Le numero d'image a ete introduit le 20090409174844 afin de permettre une numerotation */
$c /* de 1 en 1, meme si '$PasImage' est superieur a 1... */
$c }
$c }
$Z $DELETE $xTV/MASSES
$Z $DELETE $xTV/RAYONS
$Z $DELETE $xTV/VISIBILITE
$Z $DELETE $xTV/COULEURS$ROUGE
$Z $DELETE $xTV/COULEURS$VERTE
$Z $DELETE $xTV/COULEURS$BLEUE
$Z
$Z $DELETE $xTV/ROTATION$COORD_X