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