#######################################################################################################################################
#                                                                                                                                     #
#         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                                                                   #
#         ( D E   P L U T O N   A U   S O L E I L )                                                                                   #
#         D A N S   L E   S Y S T E M E   S O L A I R E  :                                                                            #
#                                                                                                                                     #
#                                                                                                                                     #
#         Author of '$xivP/disk.000000010/face.2/.NCOR.1.11.$U' :                                                                                    #
#                                                                                                                                     #
#                     Jean-Francois Colonna (LACTAMME, AAAAMMJJhhmmss).                                                               #
#                                                                                                                                     #
#######################################################################################################################################

$Z                  setParam            _____Rotation_OX              0
$Z                                      # Parametre introduit le 20070116101953...                                                    #

$Z                  setParam            _____FictiveR                 $GRIS_0
$Z                                      # Parametre introduit le 20070116102351...                                                    #

$Z                  setParam            _____FictiveV                 $GRIS_4
$Z                                      # Parametre introduit le 20070116102351...                                                    #

$Z                  setParam            _____FictiveB                 $GRIS_8
$Z                                      # Parametre introduit le 20070116102351...                                                    #

$Z                  SETParam            _____Npremiere                1

$Z                  SETParam            _____Nderniere                512

$Z                  setParam            _____FacteurRayon             `GetParam $xrr/N_corps.11$X Ar`
$Z                                      # Parametre introduit le 20070116103134...                                                    #

$Z                  SETParam            _____Reference                11
$Z                                      # Parametre introduit le 20070116101953 et donnant par defaut le point de vue de la planete   #
$Z                                      # fictive...                                                                                  #
$Z                                      #                                                                                             #
$Z                                      # Le 20150318093224 fut introduite la possibilite que '$_____Reference' soit negatif. Dans    #
$Z                                      # Ce cas, c'est 'ABSO($_____Reference)' qui est utilise comme corps de reference, sauf pour   #
$Z                                      # la derniere image pour laquelle, on force '_____Reference=1' (c'est-a-dire le Soleil...).   #

$Z                  setParam            _____Ranterieurs              `GetParam $xrr/N_corps.11$X Ranterieurs`
$Z                                      # Argument introduit le 20070117102030...                                                     #

$Z                  setParam            _____Canterieurs              `GetParam $xrr/N_corps.11$X Canterieurs`
$Z                                      # Argument introduit le 20070117102030...                                                     #

$Z                  setParam            _____Zoom                     0.60
$Z                                      # Argument introduit le 20070117112119...                                                     #

$Z                  SETParam            _____Ganimation               $EXIST
$Z                                      # Argument introduit le 20150318094828...                                                     #

$Z                  setParam            _____Lineaire                 FAUX

$Z                  set       NcorpsS=11

$Z                  $DELETE   $xTV/ROTATION$COORD_X
$Z                  $xci/valeurs_inte$X p=$_____Npremiere d=$_____Nderniere vD=$_____Rotation_OX vA=$_____Rotation_OX cubique=VRAI      \
$Z                                                                               > $xTV/ROTATION$COORD_X
$Z
$Z                  alias     genere    'set       Fl=\!:1 ; set Li=(\!:2*)                                                       ;    \\
$Z                                       $DELETE   $Fl                                                                            ;    \\
$Z                                       echo      "$Li" | $SE -e "s/$K_BLANC$K_BLANC*/ /g" | $R "$K_BLANC" "$K_NL" > $Fl         ;    \\
$Z                                       unset     Fl Li'
$Z
$Z
$Z                  genere    $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                  genere    $xTV/RAYONS                                                                                               \
$Z                            +30e10    +18e10    +18e10                                                                                \
$Z                            +18e10                                                                                                    \
$Z                            +18e10    +23e10    +23e10    +21e10    +21e10    +18e10                                                  \
$Z                            +18e10
$Z                  genere    $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                  genere    $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                  genere    $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

#20070117102413____:$Z                  Pal                                                                                           #


$c                  #define   N0        _____Npremiere
$c                  #define   N         _____Nderniere
$c
$c                  #define   NPAS      (N-N0+1)
$c
$c                  extern    double    sqrt();
$c
$c                  int       main()
$c                            {
$c                            int       n;
$c
$c                            double    XcentreS=+1e3;
$c                            double    XcentreD=-392e+10;
$c                            double    XcentreA;
$c
$c                            double    YcentreS=+1e3;
$c                            double    YcentreD=+307e+10;
$c                            double    YcentreA;
$c
$c                            double    ZcentreS=+1e3;
$c                            double    ZcentreD=+216e+10;
$c                            double    ZcentreA;
$c                                      /* Les lettres {S,D,A} designent respectivement "le Soleil", la position de "Depart" de la   */
$c                                      /* planete fictive et sa position d'"Arrivee".                                               */
$c                                      /*                                                                                           */
$c                                      /* On notera de plus que la position de Depart est celle de Pluton...                        */
$c
$c                            double    XvitessD=-2.27e+3;
$c
$c                            double    YvitessD=-4.53e+3;
$c
$c                            double    ZvitessD=-7.39e+2;
$c
$c                            double    Fcentre;
$c                            double    OdistD;
$c
$c                            OdistD=sqrt(((XcentreD-XcentreS)*(XcentreD-XcentreS))+
$c                                        ((YcentreD-YcentreS)*(YcentreD-YcentreS))+
$c                                        ((ZcentreD-ZcentreS)*(ZcentreD-ZcentreS))
$c                                        );
$c                            Fcentre=(0.05e11/OdistD);
$c
$c                            XcentreA=Fcentre*XcentreD;
$c                            YcentreA=Fcentre*YcentreD;
$c                            ZcentreA=Fcentre*ZcentreD;
$c
$c                            for       (n=N0 ; n<=N ; n++)
$c                                      {
$c                                      int       reference=(((_____Reference)<0) ? (-(_____Reference)) : (+(_____Reference)));
$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                                      if        ((_____Reference) < 0)
$c                                                {
$c                                                if        (n==N)
$c                                                          {
$c                                                          reference=1;
$c                                                          }
$c                                                else
$c                                                          {
$c                                                          }
$c                                                }
$c                                      else
$c                                                {
$c                                                }
$c
$c                                      Xcentre=((XcentreA*(n-N0))+(XcentreD*(N-n)))/(N-N0);
$c                                      Ycentre=((YcentreA*(n-N0))+(YcentreD*(N-n)))/(N-N0);
$c                                      Zcentre=((ZcentreA*(n-N0))+(ZcentreD*(N-n)))/(N-N0);
$c                                      /* Calcul de la position courante de la planete fictive...                                   */
$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
$c                                      printf("genere
$c                                              $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("genere
$c                                              $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("genere
$c                                              $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                                      /* Mise en place dynamique du Soleil, de Pluton (position de "Depart") et de la planete      */
$c                                      /* fictive...                                                                                */
$c
$c                                      printf("genere
$c                                              $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("genere
$c                                              $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("genere
$c                                              $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                                      /* Mise en place dynamique de Pluton (position de "Depart") et de la planete fictive.        */
$c
$c                                      printf("$xrr/N_corps.11$X
$c                                                          corps=$NcorpsS
$c                                                          np=%d
$c                                                          LISTE_X=$xTV/COORDONNEES$COORD_X
$c                                                          LISTE_Y=$xTV/COORDONNEES$COORD_Y
$c                                                          LISTE_Z=$xTV/COORDONNEES$COORD_Z
$c                                                          LISTE_VX=$xTV/VITESSES$COORD_X
$c                                                          LISTE_VY=$xTV/VITESSES$COORD_Y
$c                                                          LISTE_VZ=$xTV/VITESSES$COORD_Z
$c                                                          LISTE_MASSE=$xTV/MASSES
$c                                                          Ar=$_____FacteurRayon
$c                                                          LISTE_RAYON=$xTV/RAYONS
$c                                                          LISTE_ROUGE=$xTV/COULEURS$ROUGE
$c                                                          LISTE_VERTE=$xTV/COULEURS$VERTE
$c                                                          LISTE_BLEUE=$xTV/COULEURS$BLEUE
$c                                                          centrer=FAUX reference=%d
$c                                                          extension=5
$c                                                          dct=15000
$c                                                          2_a_2=FAUX source=1
$c                                                          nombre=1000
$c                                                          ensemble=VRAI
$c                                                          acceptable=0.5
$c                                                          Ranterieurs=$_____Ranterieurs
$c                                                          Canterieurs=$_____Canterieurs
$c                                                          trainees=FAUX
$c                                                          renormaliser=FAUX
$c                                                          lineaire=$_____Lineaire exposant=0.4
$c                                                          Lz=1.0e13
$c                                                          TRANSLATION_OX=0
$c                                                          TRANSLATION_OY=0
$c                                                          ROTATION_OX=$xTV/ROTATION$COORD_X
$c                                                          ZOOM=$_____Zoom
$c                                                          fond=FAUX
$c                                                          pV=%d
$c                                                          editer_extrema_hors=FAUX
$c                                                          R=$xTV/NCOR.Wa.
$c                                                          $formatI\n"
$c                                            ,NPAS
$c                                            ,reference
$c                                            ,NPAS
$c                                             );
$c                                      /* Le parametre "editer_extrema_hors=FAUX" a ete introduit le 20070117113134...              */
$c
$c                                      printf("$MV         $xTV/NCOR.Wa.%04d$ROUGE
$c                                                          $_____images.%04d$ROUGE\n"
$c                                            ,N,n
$c                                             );
$c                                      printf("$MV         $xTV/NCOR.Wa.%04d$VERTE
$c                                                          $_____images.%04d$VERTE\n"
$c                                            ,N,n
$c                                             );
$c                                      printf("$MV         $xTV/NCOR.Wa.%04d$BLEUE
$c                                                          $_____images.%04d$BLEUE\n"
$c                                            ,N,n
$c                                             );
$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                                      }
$c                            }

$Z                  $DELETE   $xTV/MASSES
$Z                  $DELETE   $xTV/RAYONS
$Z                  $DELETE   $xTV/COULEURS$ROUGE
$Z                  $DELETE   $xTV/COULEURS$VERTE
$Z                  $DELETE   $xTV/COULEURS$BLEUE
$Z
$Z                  $DELETE   $xTV/ROTATION$COORD_X

$Z                  if        ($_____Ganimation == $EXIST) then
$Z                                      # Test introduit le 20150318094828...                                                         #
$Z                            $xci/reduction_16$Z $_____images.                                                                         \
$Z                                                $_____animation                                                                       \
$Z                                                $_____Npremiere $_____Nderniere                                                       \
$Z                                                VRAI VRAI VRAI VRAI
$Z                            $xci/reduction_64$Z $_____images.                                                                         \
$Z                                                $_____animation                                                                       \
$Z                                                $_____Npremiere $_____Nderniere                                                       \
$Z                                                VRAI VRAI VRAI VRAI

$Z                            execRVB   ro                  $_____animation$R16$%s
$Z                            execRVB   ro                  $_____animation$R64$%s
$Z
$Z                            execRVB   $xcg/unite$Z        $_____animation$R16$%s
$Z                            execRVB   $xcg/unite$Z        $_____animation$R64$%s
$Z                  else
$Z                  endif



Copyright © Jean-François Colonna, 2019-2021.
Copyright © CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / Ecole Polytechnique, 2019-2021.