#######################################################################################################################################
# #
# G E N E R A T I O N D E C A R T E S D E D E N S I T E B I D I M E N S I O N N E L L E S #
# A V E C A J U S T E M E N T A U T O M A T I Q U E #
# ( V E R S I O N S E Q U E N T I E L L E ) : #
# #
# #
# Author of '$xivP/disk.000000009/face.2/.REFL.A.12.$U' : #
# #
# Jean-Francois COLONNA (LACTAMME, AAAAMMJJhhmmss). #
# #
#######################################################################################################################################
$Z setParam _____ElimR $BLANC
$Z setParam _____ElimV $BLANC
$Z setParam _____ElimB $BLANC
$Z setParam _____imagesWW $xTV/REFL.Wb
$Z # Ceci a ete introduit le 20020405170829 dans l'idee de pouvoir generer de temps en temps #
$Z # les images '$_____imagesWW' dans '$xTV', malgre le danger que cela presente (a cause de #
$Z # '$xcg/Xtemporaires$Z' via '$xcg/Xall$Z' ; on aura donc interet a utiliser la commande #
$Z # 'bXall' dans ce contexte...). #
$Z setParam _____EspaceTore FAUX
$Z # Introduit le 20070416091506... #
$Z setParam _____EspaceToreX VRAI
$Z # Introduit le 20070424105842... #
$Z setParam _____EspaceToreY VRAI
$Z # Introduit le 20070424105842... #
$Z setParam _____EspaceToreZ VRAI
$Z # Introduit le 20070424105842... #
$Z setParam _____Rcarte FAUX
$Z setParam _____GCcarte FAUX
$Z setParam _____Scarte +1e+308
$Z setParam _____FDcarte 1
$Z setParam _____FEcarte 200
$Z setParam _____Kcarte $NEXIST
$Z setParam _____Palette $xiP/cercle.35
$X echo "neutre"
$X # commande destinee uniquement a mettre a jour l'environnement 'env'... #
$Z $DELETE $xTV/LISTE_POINTS.REDUITE
$Z $CA $xTV/LISTE_POINTS \
$Z | $GRE -v " ROUGE=+$_____ElimR VERTE=+$_____ElimV BLEUE=+$_____ElimB " \
$Z > $xTV/LISTE_POINTS.REDUITE
$c #include <stdio.h>
$c
$c extern int atoi();
$c extern char *getenv();
$c
$c #define NA0 (atoi(getenv("PremiereA")))
$c #define NA (atoi(getenv("DerniereA")))
$c
$c #define E_CARTE 2
$c /* Exposant des distances dans l'exponentielle. */
$c
$c int main()
$c {
$c int n;
$c
$c for (n=NA0 ; n<=NA ; 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("$CA $xTV/LISTE_POINTS.REDUITE |
$c $GRE 'periode=%d ' |
$c $SE -e 's/^.* X=//'
$c -e 's/ .*$//' |
$c $xrv/neutre$X
$c ne=0
$c fichier='='
$c formater=VRAI decimales=8
$c > $xTV/COORDONNEES$COORD_X\n"
$c ,n
$c ,'"','"'
$c );
$c printf("$CA $xTV/LISTE_POINTS.REDUITE |
$c $GRE 'periode=%d ' |
$c $SE -e 's/^.* Y=//'
$c -e 's/ .*$//' |
$c $xrv/neutre$X
$c ne=0
$c fichier='='
$c formater=VRAI decimales=8
$c > $xTV/COORDONNEES$COORD_Y\n"
$c ,n
$c ,'"','"'
$c );
$c printf("$CA $xTV/LISTE_POINTS.REDUITE |
$c $GRE 'periode=%d ' |
$c $SE -e 's/^.* Z=//'
$c -e 's/ .*$//' |
$c $xrv/neutre$X
$c ne=0
$c fichier='='
$c formater=VRAI decimales=8
$c > $xTV/COORDONNEES$COORD_Z\n"
$c ,n
$c ,'"','"'
$c );
$c /* L'utilisation de 'decimales=8' permet de traiter proprement le probleme du aux erreurs */
$c /* d'arrondi ('v _____xivPdf_09_2/.REFL.w.12.$U arrondi'). */
$c
$c printf("set ParticulesX=`$WC $xTV/COORDONNEES$COORD_X`\n");
$c printf("set ParticulesX=$ParticulesX[$WC1]\n");
$c printf("set ParticulesY=`$WC $xTV/COORDONNEES$COORD_Y`\n");
$c printf("set ParticulesY=$ParticulesY[$WC1]\n");
$c printf("set ParticulesZ=`$WC $xTV/COORDONNEES$COORD_Z`\n");
$c printf("set ParticulesZ=$ParticulesZ[$WC1]\n");
$c
#20220615105858____:$c printf("set Particules=`$xcg/MAX3.01$X x=$ParticulesX y=$ParticulesY z=$ParticulesZ`\n"); #
$c printf("set Particules=`$xcg/MIN3.01$X x=$ParticulesX y=$ParticulesY z=$ParticulesZ`\n");
$c
$c printf("$xrv/densite.01$X
$c ne=$Particules
$c LISTE_X=$xTV/COORDONNEES$COORD_X
$c LISTE_Y=$xTV/COORDONNEES$COORD_Y
$c LISTE_Z=$xTV/COORDONNEES$COORD_Z
$c torique=$_____EspaceTore
$c toriqueX=$_____EspaceToreX
$c toriqueY=$_____EspaceToreY
$c toriqueZ=$_____EspaceToreZ
$c rectangulaire=$_____Rcarte
$c grand_carre=$_____GCcarte
$c Eexposant=%f
$c seuil=$_____Scarte
$c facteur=$_____FDcarte
$c Efacteur=$_____FEcarte
$c R=$_____imagesWW.%04d
$c $formatI\n"
$c ,(double)E_CARTE
$c ,n
$c );
$c
$c printf("if ($_____Kcarte == $EXIST) then\n");
$c printf(" $xcg/Float_float$X
$c A=$_____imagesWW.%04d
$c R=$_____imagesWW.%04d
$c $formatI\n"
$c ,n
$c ,n
$c );
$c printf("else\n");
$c printf("endif\n");
$c /* Generation de la carte de densite. */
$c }
$c
$c printf("$DELETE $xTV/MINIMUM\n");
$c printf("$DELETE $xTV/MAXIMUM\n");
$c
$c for (n=NA0 ; n<=NA ; n++)
$c {
$c printf("if ($_____Kcarte == $EXIST) then\n");
$c printf(" $xcg/float_Float$X
$c A=$_____imagesWW.%04d
$c R=$_____imagesWW.%04d
$c $formatI\n"
$c ,n
$c ,n
$c );
$c printf("else\n");
$c printf("endif\n");
$c
$c printf("$xci/extrema$X
$c A=$_____imagesWW.%04d
$c standard=FAUX
$c minimum=VRAI
$c maximum=FAUX
$c $formatI
$c Prme=VRAI
$c >>! $xTV/MINIMUM\n"
$c ,n
$c );
$c /* L'option "Prme=VRAI" a ete introduite le 20150221114442 afin de pouvoir remplacer */
$c /* ">>&!" par ">>!"... */
#20150221094915____:$c printf("saut #
#20150221094915____:$c >>&! $xTV/MINIMUM\n" #
#20150221094915____:$c ); #
$c printf("$xci/extrema$X
$c A=$_____imagesWW.%04d
$c standard=FAUX
$c minimum=FAUX
$c maximum=VRAI
$c $formatI
$c Prme=VRAI
$c >>! $xTV/MAXIMUM\n"
$c ,n
$c );
$c /* L'option "Prme=VRAI" a ete introduite le 20150221114442 afin de pouvoir remplacer */
$c /* ">>&!" par ">>!"... */
#20150221094915____:$c printf("saut #
#20150221094915____:$c >>&! $xTV/MAXIMUM\n" #
#20150221094915____:$c ); #
$c
$c printf("if ($_____Kcarte == $EXIST) then\n");
$c printf(" $xcg/Float_float$X
$c A=$_____imagesWW.%04d
$c R=$_____imagesWW.%04d
$c $formatI\n"
$c ,n
$c ,n
$c );
$c printf("else\n");
$c printf("endif\n");
$c /* Extraction des extrema de chacune des cartes. */
$c }
$c
$c printf("set MinC=`$xrv/extrema.01$X ne=0 fichier=$xTV/MINIMUM | $GRE '^minimum=' | $SE -e 's/^.*=//'`\n");
$c printf("set MaxC=`$xrv/extrema.01$X ne=0 fichier=$xTV/MAXIMUM | $GRE '^maximum=' | $SE -e 's/^.*=//'`\n");
$c /* Extraction des extrema de l'ensemble des cartes. */
$c
$c for (n=NA0 ; n<=NA ; n++)
$c {
$c printf("if ($_____Kcarte == $EXIST) then\n");
$c printf(" $xcg/float_Float$X
$c A=$_____imagesWW.%04d
$c R=$_____imagesWW.%04d
$c $formatI\n"
$c ,n
$c ,n
$c );
$c printf("else\n");
$c printf("endif\n");
$c
$c printf("$xci/acces$X
$c A=$_____imagesWW.%04d
$c standard=FAUX
$c extrema=FAUX
$c minimum=$MinC
$c maximum=$MaxC
$c tronquer=FAUX
$c R=$_____imagesD.%04d
$c $formatI\n"
$c ,n
$c ,n
$c );
$c /* Et enfin conversion "standard" avec renormalisation globale... */
$c
$c printf("$xci/vraies_C$X
$c A=$_____imagesD.%04d
$c p=$_____Palette
$c RVB=VRAI
$c R=$_____imagesD.%04d
$c $formatI\n"
$c ,n
$c ,n
$c );
$c /* Puis conversion en vraies couleurs... */
$c
#20070410083110____:$c printf("$DELETE $_____imagesWW.%04d\n" #
#20070410083110____:$c ,n #
#20070410083110____:$c ); #
$c /* Enfin, on fait du menage afin de ne pas rencontrer des problemes d'espace disque */
$c /* sur '$LACT29' ou ailleurs... */
$c /* */
$c /* La modification du 20070410083110 est due a 'v $xiak/$Fnota Debut_listG_REFN_11' qui */
$c /* a besoin des images '$_____imagesWW' ensuite... */
$c }
$c }
$Z $DELETE $xTV/LISTE_POINTS.REDUITE
$Z # Le 20020419162527 j'ai supprime le : #
$Z # #
$Z # $DELETE $xTV/LISTE_POINTS #
$Z # #
$Z # car il est preferable de garder a priori ce fichier qui est en general long a generer... #
$Z $DELETE $xTV/COORDONNEES$COORD_X
$Z $DELETE $xTV/COORDONNEES$COORD_Y
$Z $DELETE $xTV/COORDONNEES$COORD_Z
$Z $DELETE $xTV/MINIMUM
$Z $DELETE $xTV/MAXIMUM