####################################################################################################################################### # # # V I S U A L I S A T I O N D E L A S U R F A C E # # D U M I L I E U D E P R O P A G A T I O N C O R R E S P O N D A N T # # A L A C A R T E D E D E N S I T E T R I D I M E N S I O N N E L L E # # D E S B R O N C H I O L E S T E R M I N A L E S D E S P O U M O N 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 : # # # # # # Author of '$xiird/.ACIN.K.12.$U' : # # # # Jean-Francois COLONNA (LACTAMME, AAAAMMJJhhmmss). # # # ####################################################################################################################################### $Z setParam _____DistanceX 8 $Z setParam _____DistanceY 8 $Z setParam _____RotationOX 0.0 $Z setParam _____RotationOY $pi $Z setParam _____RotationOZ 0.0 $Z setParam _____Zoom 0.85 $Z set SeuilPartN=1.0 $Z set GrainePartN=2 $Z $xci/random.02$X \ $Z seuil=$SeuilPartN \ $Z graine=$GrainePartN \ $Z px=$_____DistanceX py=$_____DistanceY \ $Z CAL1=FAUX \ $Z R=$xTV/BOITE.B \ $Z $formatI $Z $DELETE $xTV/COORDONNEES $Z $DELETE $xTV/COORDONNEES$COORD_X $Z $DELETE $xTV/COORDONNEES$COORD_Y $Z $DELETE $xTV/COORDONNEES$COORD_Z $Z $DELETE $xTV/COORDONNEES_01$COORD_X $Z $DELETE $xTV/COORDONNEES_01$COORD_Y $Z $DELETE $xTV/COORDONNEES_01$COORD_Z $Z setParam _____Lignes VRAI $c #include <stdio.h> $c $c #define NA0 PremiereM $c #define NA DerniereM $c /* Nombre de couches a traiter... */ $c #20160307081529____:$c #define Zmin ZminM # #20160307081529____:$c #define Zmax ZmaxM # $c /* Extrema du 'Z'. */ $c $c int main() $c { $c int n; $c int z=ZminM; $c $c for (n=(NA0-NA0) ; n<=(NA-NA0) ; n++) $c /* On notera les '-NA0' destines a assurer la compatibilite avec le numerotage des images */ $c /* '$xTV/BOITE.2.????' tel qu'il est defini dans 'v $xiird/.ACIN.H.11.$U n-NA0'. */ $c { $c printf("if (`expr %d %% $_____DistanceZ` == 0) then\n" $c ,z $c ); $c /* Apres quelques difficultes, je comprends le 20160308090843 le role de ce test. En fait */ $c /* il s'agit d'un sous-echantillonnage de l'axe 'OZ' : on ne prend qu'un plan {OX,OY} */ $c /* sur '$_____DistanceZ', de la meme facon que le plan {OX,OY} est lui-meme echantillonne */ $c /* grace a '$_____DistanceX' et a '$_____DistanceY'... */ $c printf(" $xci/dilate.01$X $c A=$xTV/BOITE.2.%04d $c dilater=FAUX $c points=289 $c $formatI | $c $xci/eor$X $c A2=$xTV/BOITE.2.%04d $c $formatI | $c $xci/and$X $c A2=$xTV/BOITE.B $c $formatI | $c $xci/liste_points$X $c lignes=$_____Lignes $c eZ=VRAI Z=%d $c $formatI $_____ZminZmax $c >>! $xTV/COORDONNEES\n" $c ,n,n $c ,z $c ); $c printf("else\n"); $c printf("endif\n"); $c $c z++; $c /* Generation du milieu. On notera le "dilater=FAUX" destine a generer des points dans le */ $c /* milieu qui ne soient pas trop proches du bord (pour eviter qu'ils s'echappent...). */ $c } $c } $Z $CA $xTV/COORDONNEES \ $Z | $GRE "^[Xx]=" \ $Z | $SE -e "s/^[Xx]=//" \ $Z > $xTV/COORDONNEES_01$COORD_X $Z $CA $xTV/COORDONNEES \ $Z | $GRE "^[Yy]=" \ $Z | $SE -e "s/^[Yy]=//" \ $Z > $xTV/COORDONNEES_01$COORD_Y $Z $CA $xTV/COORDONNEES \ $Z | $GRE "^[Zz]=" \ $Z | $SE -e "s/^[Zz]=//" \ $Z > $xTV/COORDONNEES_01$COORD_Z $Z set PartNX=`$WC $xTV/COORDONNEES_01$COORD_X` $Z set PartNX=$PartNX[$WC1] $Z set PartNY=`$WC $xTV/COORDONNEES_01$COORD_Y` $Z set PartNY=$PartNY[$WC1] $Z set PartNZ=`$WC $xTV/COORDONNEES_01$COORD_Z` $Z set PartNZ=$PartNZ[$WC1] #20220615102212____:$Z set PartN=`$xcg/MAX3.01$X x=$PartNX y=$PartNY z=$PartNZ signe="$K_VIDE"` # $Z set PartN=`$xcg/MIN3.01$X x=$PartNX y=$PartNY z=$PartNZ signe="$K_VIDE"` $Z $xrv/AXPB.01$X \ $Z CAL1=FAUX \ $Z ne=$PartN \ $Z fichier=$xTV/COORDONNEES_01$COORD_X \ $Z homothetie=$EchelleX translation=$TranslationX \ $Z > $xTV/COORDONNEES$COORD_X $Z $xrv/AXPB.01$X \ $Z CAL1=FAUX \ $Z ne=$PartN \ $Z fichier=$xTV/COORDONNEES_01$COORD_Y \ $Z homothetie=$EchelleY translation=$TranslationY \ $Z > $xTV/COORDONNEES$COORD_Y $Z $xrv/AXPB.01$X \ $Z CAL1=FAUX \ $Z ne=$PartN \ $Z fichier=$xTV/COORDONNEES_01$COORD_Z \ $Z homothetie=$EchelleZ translation=$TranslationZ \ $Z > $xTV/COORDONNEES$COORD_Z $Z $DELETE $xTV/COORDONNEES_01$COORD_X $Z $DELETE $xTV/COORDONNEES_01$COORD_Y $Z $DELETE $xTV/COORDONNEES_01$COORD_Z $Z $xrv/particule.10$X \ $Z np=1 \ $Z iterations=$PartN \ $Z isoles=VRAI \ $Z LISTE_X=$xTV/COORDONNEES$COORD_X \ $Z LISTE_Y=$xTV/COORDONNEES$COORD_Y \ $Z LISTE_Z=$xTV/COORDONNEES$COORD_Z \ $Z LISTE_ROUGE=$BLANC \ $Z LISTE_VERTE=$BLANC \ $Z LISTE_VERTE=$BLANC \ $Z LISTE_RAYON=$_____RayonsP \ $Z Lz=100 \ $Z couronne=$_____Couronne \ $Z attenuation_au_bord=$_____Attenuation \ $Z Zminimum=$_____DepthCueing Zmaximum=1.0 \ $Z ZminimumT=$_____DepthCueing ZmaximumT=1.0 \ $Z zoom_automatique=FAUX ZOOM=0.85 \ $Z ROTATION_OX=$_____RotationOX \ $Z ROTATION_OY=$_____RotationOY \ $Z ROTATION_OZ=$_____RotationOZ \ $Z coordonnees_dans_0_1=VRAI \ $Z AXYZ=1 BXYZ=0.0 \ $Z N_au_carre=FAUX \ $Z R=$xTV/PART. \ $Z $formatI $Z set FirstPicture=`$xci/nombres$X A="$K_VIDE" premiere=1 derniere=1` $Z set Pgenere="en_tete=FAUX RVB=VRAI postfixes_RVB=FAUX separateur=VRAI" $Z eval `$xci/genere$X c='$xci/neutre$X A=$xTV/PART.$FirstPicture$%s R=$_____imageR$%s $formatI' $Pgenere`