#######################################################################################################################################
# #
# 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...). #