#######################################################################################################################################
#                                                                                                                                     #
#         T R A C E   D E   L ' H I S T O G R A M M E   D E S   M A S S E S  :                                                        #
#                                                                                                                                     #
#                                                                                                                                     #
#         Author of '$xivP/disk.000000009/face.2/.REFN.C4.12.$U' :                                                                                   #
#                                                                                                                                     #
#                     Jean-Francois Colonna (LACTAMME, 20211129103017).                                                               #
#                                                                                                                                     #
#######################################################################################################################################

$Z                  SETParam            _____Amplification            0.02

$Z                  SETParam            _____YMax                     1.05
$Z                                      # Il est en fait quasiment impossible de faire que l'histogramme a tous les instants (et en   #
$Z                                      # particulier au debut) tienne en vertical dans les images. Il est donc necessaire d'en       #
$Z                                      # seuiller la coordonnee 'Y'.                                                                 #
$Z                                      #                                                                                             #
$Z                                      # Au passage, j'ai essaye d'utiliser le logarihme de chaque colonne de l'histogramme, mais    #
$Z                                      # cela est completement stupide puisque :                                                     #
$Z                                      #                                                                                             #
$Z                                      #                   log(COLONNE1)+log(COLONNE2) # log(COLONNE1+COLONNE2)                      #
$Z                                      #                                                             .                               #
$Z                                      #                                                            /|\                              #
$Z                                      #                                                             |                               #
$Z                                      #         C'est en fait le produit '*' qu'il faudrait ici ----                                #
$Z                                      #                                                                                             #
$Z                                      # Et si l'on veut que les histogrammes soient comparables d'un instant a l'autre, il n'est    #
$Z                                      # evidemment pas possible de faire une renormalisation a chaque instant...                    #

$Z                  SETParam            _____imagesF                  $_____imagesW

$Z                  SETENVParam         _____AXE_OY                   0.1

#20211130120152____:$Z                  set                 DyNaMiQuE="$xrv/neutre$X"                                                 #
#20211130151125____:$Z                  set                 DyNaMiQuE="$xrv/LOGX.01$X translation=1"                                  #
$Z                  set                 DyNaMiQuE="$xrv/neutre$X"

$c                  #include  <stdio.h>
$c
$c                  #define   MIN2(a,b) (((a) < (b)) ? (a) : (b))
$c
$c                  extern    int       atoi();
$c                  extern    double    atof();
$c                  extern    char      *getenv();
$c
$c                  #define   NA0       (atoi(getenv("PremiereA")))
$c                  #define   NA        (atoi(getenv("DerniereA")))
$c
#20211130081354____:$c                  #define   NOMBRE    20                                                                        #
$c                  #define   NOMBRE    40
$c                                      /* Definition de la moitie (a 1 pres) de la taille de l'histogramme.                         */
$c                  #define   AXE_OX_0  0.3
$c                  #define   AXE_OX_N  0.7
$c                  #define   AXE_OY    (atof(getenv("_____AXE_OY")))
$c                  #define   AXE_OZ    0.5
$c                                      /* Definition des 3 axes.                                                                    */
#20211130081354____:$c                  #define   RAYON     0.012                                                                     #
$c                  #define   RAYON     0.006
$c                                      /* Taille des boules de l'histogramme.                                                       */
$c
$c                  int       main()
$c                            {
$c                            int       n;
$c
$c                            printf("$DELETE     $xTV/LISTE_HISTOGRAMMES\n");
$c
$c                            printf("$DELETE     $xTV/MASSES\n");
$c
$c                            printf("$CA         $xTV/LISTE_POINTS                                                               |
$c                                    $GRE        -v '^ *$'                                                                       |
$c                                    $SE         -e 's/^.*MASSE=//'
$c                                                -e 's/ .*$//'
$c                                                                                        >   $xTV/MASSES\n"
$c                                   );
$c
$c                  printf("set    MinMassesG=`$CA $xTV/MASSES | $xrv/extrema.01$X ne=0 fichier== ms=VRAI`\n");
$c                  printf("set    MaxMassesG=`$CA $xTV/MASSES | $xrv/extrema.01$X ne=0 fichier== Ms=VRAI`\n");
$c
$c                            printf("$DELETE     $xTV/MASSES\n");
$c
$c                            for       (n=NA0 ; n<=NA ; n++)
$c                                      {
$c                                      printf("$DELETE     $xTV/MASSES\n");
$c                                      printf("$DELETE     $xTV/HISTOGRAMME\n");
$c                                      printf("$DELETE     $xTV/COORD.1$COORD_X\n");
$c                                      printf("$DELETE     $xTV/COORD.2$COORD_X\n");
$c                                      printf("$DELETE     $xTV/COORDONNEES$COORD_X\n");
$c                                      printf("$DELETE     $xTV/COORD.1$COORD_Y\n");
$c                                      printf("$DELETE     $xTV/COORD.2$COORD_Y\n");
$c                                      printf("$DELETE     $xTV/COORDONNEES$COORD_Y\n");
$c                                      printf("$DELETE     $xTV/COORD.1$COORD_Z\n");
$c                                      printf("$DELETE     $xTV/COORD.2$COORD_Z\n");
$c                                      printf("$DELETE     $xTV/COORDONNEES$COORD_Z\n");
$c
$c                                      printf("$CA         $xTV/LISTE_POINTS                                                     |
$c                                              $GRE        'periode=%d '                                                         |
$c                                              $SE         -e 's/^.*MASSE=//'
$c                                                          -e 's/ .*$//'
$c                                                                                                  >   $xTV/MASSES\n"
$c                                            ,n
$c                                             );
$c
$c
$c                                      printf("$xrv/histogram.01$X
$c                                                          ne=0
$c                                                          fichier=$xTV/MASSES
$c                                                          nombre=%d
$c                                                          forcer=VRAI minimum=$MinMassesG maximum=$MaxMassesG
$c                                                                                                                                |
$c                                              $DyNaMiQuE
$c                                                          ne=0
$c                                                          fichier==
$c                                                          formater=VRAI signe=%c$K_VIDE%c
$c                                                                                                  >   $xTV/HISTOGRAMME\n"
$c                                            ,(2*NOMBRE)+1
$c                                            ,'\"'
$c                                            ,'\"'
$c                                             );
$c                                      /* Il est preferable d'utiliser un nombre impair d'elements pour l'histogramme afin de       */
$c                                      /* garantir un centrage d'une barre unique dans le cas ou tous les elements du fichier       */
$c                                      /* '$xTV/MASSES' sont egaux et centres dans {minimum,maximum}.                               */
$c
$c                                      printf("set  HistogrammeC=`$CA $xTV/HISTOGRAMME`\n");
$c
$c                                      printf("echo %ct=%04d     $HistogrammeC%c
$c                                                                                                  >>! $xTV/LISTE_HISTOGRAMMES\n"
$c                                            ,'\"'
$c                                            ,n
$c                                            ,'\"'
$c                                             );
$c                                      /* Le fichier '$xTV/LISTE_HISTOGRAMMES' a ete introduit le 20211201100040, il peut etre      */
$c                                      /* utile a posteriori...                                                                     */
$c
$c                                      printf("set  Lhistogramme=`$CA $xTV/HISTOGRAMME | $WCl`\n");
$c                                      printf("@    Lhistogramme2 = $Lhistogramme * 2\n");
$c
$c                                      printf("$xci/valeurs_inte$X
$c                                                     premiere=1 derniere=$Lhistogramme
$c                                                     vD=%f vA=%f
$c                                                     cubique=FAUX
$c                                                                                                  >   $xTV/COORD.1$COORD_X\n"
$c                                            ,AXE_OX_0,AXE_OX_N
$c                                             );
$c                                      printf("$xci/valeurs_inte$X
$c                                                     premiere=1 derniere=$Lhistogramme
$c                                                     vD=%f vA=%f
$c                                                     cubique=FAUX
$c                                                                                                  >   $xTV/COORD.2$COORD_X\n"
$c                                            ,AXE_OX_0,AXE_OX_N
$c                                             );
$c                                      printf("$PAST
$c                                                     $xTV/COORD.1$COORD_X
$c                                                     $xTV/COORD.2$COORD_X                                                       |
$c                                              $R     %c$K_TAB%c %c$K_NL%c
$c                                                                                                  >   $xTV/COORDONNEES$COORD_X\n"
$c                                            ,'"','"','"','"'
$c                                             );
$c
$c                                      printf("$xci/valeurs_inte$X
$c                                                     premiere=1 derniere=$Lhistogramme
$c                                                     vD=%f vA=%f
$c                                                     cubique=FAUX
$c                                                                                                  >   $xTV/COORD.1$COORD_Y\n"
$c                                            ,AXE_OY,AXE_OY
$c                                             );
$c
$c                                      printf("$xrv/MUL2.11$X
$c                                                     ne=0
$c                                                     fichier1=$xTV/HISTOGRAMME
$c                                                     fichier2=$_____Amplification                                               |
$c                                              $xrv/ADD2.11$X
$c                                                     ne=0
$c                                                     fichier1==
$c                                                     fichier2=%f                                                                |
$c                                              $xrv/MIN2.11$X
$c                                                     ne=0
$c                                                     fichier1==
$c                                                     fichier2=$_____YMax
$c                                                                                                  >   $xTV/COORD.2$COORD_Y\n"
$c                                            ,AXE_OY
$c                                             );
$c                                      printf("$PAST
$c                                                     $xTV/COORD.1$COORD_Y
$c                                                     $xTV/COORD.2$COORD_Y                                                       |
$c                                              $R     %c$K_TAB%c %c$K_NL%c
$c                                                                                                  >   $xTV/COORDONNEES$COORD_Y\n"
$c                                            ,'"','"','"','"'
$c                                             );
$c
$c                                      printf("$xrv/particule.10$X
$c                                                          np=1
$c                                                          iterations=$Lhistogramme2
$c                                                          LISTE_X=$xTV/COORDONNEES$COORD_X
$c                                                          LISTE_Y=$xTV/COORDONNEES$COORD_Y
$c                                                          LISTE_Z=%f
$c                                                          LISTE_ROUGE=$BLANC
$c                                                          LISTE_VERTE=$BLANC
$c                                                          LISTE_BLEUE=$BLANC
$c                                                          LISTE_RAYON=%f
$c                                                          zoom_automatique=FAUX ZOOM=1.0
$c                                                          isoles=FAUX
$c                                                          chainer=FAUX
$c                                                          ajuster_points=VRAI
$c                                                          equidistance=VRAI
$c                                                          couronne=1
$c                                                          fond=VRAI fond_dynamique=FAUX F=$_____imagesF.%04d
$c                                                          Lz=100
$c                                                          editer_extrema_hors=FAUX
$c                                                          R=$xTV/HIST.1.
$c                                                                    $formatI\n"
$c                                            ,AXE_OZ,RAYON,n
$c                                             );
$c
$c                                      printf("$xci/acces$X
$c                                                          A=$xTV/HIST.1.%04d$ROUGE
$c                                                          R=$_____imagesF.%04d$ROUGE
$c                                                                    $formatI\n"
$c                                            ,NA0,n
$c                                             );
$c                                      printf("$xci/acces$X
$c                                                          A=$xTV/HIST.1.%04d$VERTE
$c                                                          R=$_____imagesF.%04d$VERTE
$c                                                                    $formatI\n"
$c                                            ,NA0,n
$c                                             );
$c                                      printf("$xci/acces$X
$c                                                          A=$xTV/HIST.1.%04d$BLEUE
$c                                                          R=$_____imagesF.%04d$BLEUE
$c                                                                    $formatI\n"
$c                                            ,NA0,n
$c                                             );
$c                                      }
$c                            }

$Z                  $DELETE                                      $xTV/MASSES
$Z                  $DELETE                                      $xTV/HISTOGRAMME
$Z                  $DELETE                                      $xTV/COORD.1$COORD_X
$Z                  $DELETE                                      $xTV/COORD.2$COORD_X
$Z                  $DELETE                                      $xTV/COORDONNEES$COORD_X
$Z                  $DELETE                                      $xTV/COORD.1$COORD_Y
$Z                  $DELETE                                      $xTV/COORD.2$COORD_Y
$Z                  $DELETE                                      $xTV/COORDONNEES$COORD_Y
$Z                  $DELETE                                      $xTV/COORD.1$COORD_Z
$Z                  $DELETE                                      $xTV/COORD.2$COORD_Z
$Z                  $DELETE                                      $xTV/COORDONNEES$COORD_Z

#20211129170252____:$Z                  $DELETE                                      $xTV/LISTE_POINTS                                #
$Z                                      # Il est preferable de conserver le fichier '$xTV/LISTE_POINTS' au cas ou il serait           #
$Z                                      # necessaire de le re-exploiter (aventure vecue...).                                          #



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