#######################################################################################################################################
# #
# V I S U A L I S A T I O N D E S D I S T A N C E S D A N S L E S Y S T E M E S O L A I R E : #
# #
# #
# Author of '$xiak/.NCOS.9.23.$U' : #
# #
# Jean-Francois COLONNA (LACTAMME, 20210104143016). #
# #
#######################################################################################################################################
$Z SETParam _____Pas 1
$Z setParam _____Points 256
$Z setParam _____GrisDistancesMin $NOIR_PLANCHER
$Z setParam _____GrisDistancesMax $GRIS_8
$Z setParam _____Seuil 50
$Z # Parametre introduit le 20210104165038... #
$Z setParam _____Palette $xiP/rouge_orang.32
$Z # Parametre introduit le 20210104165038... #
$Z setParam _____AttenuationCouleurs 0.3
$Z setParam _____ParamParticule "$K_VIDE"
$Z set LId=`$CA $xTV/LISTE_POINTS | $SE -e 's/^.* \(IDENTITE=[^ ][^ ]*\) .*$/\1/' | $R "=" " " | $SOR -u --key=2 -n | $R " " "="`
$Z set NuMeRo___=1
$Z $DELETE $xTV/LISTE_POINTS.23* >& $nul
$Z $DELETE $xTV/LISTE_POINTS.24* >& $nul
$Z while ($NuMeRo___ < $#LId)
$Z @ NuMeRo_p1 = $NuMeRo___ + 1
$Z $DELETE $xTV/LISTE_POINTS.21* >& $nul
$Z $CA $xTV/LISTE_POINTS | \
$Z $GRE " $LId[$NuMeRo___] " \
$Z > $xTV/LISTE_POINTS.21
$Z $DELETE $xTV/LISTE_POINTS.22* >& $nul
$Z $CA $xTV/LISTE_POINTS | \
$Z $GRE " $LId[$NuMeRo_p1] " \
$Z > $xTV/LISTE_POINTS.22
#20220228082513____:$Z $CA $xTV/LISTE_POINTS.21 | \ #
#20220228082513____:$Z $SE -e "s/^.*X=//" -e 's/ .*$//' \ #
#20220228082513____:$Z > $xTV/LISTE_POINTS.21$COORD_X #
$Z $CA $xTV/LISTE_POINTS.21 | \
$Z $SE -e "s/^.* X=//" -e 's/ .*$//' \
$Z > $xTV/LISTE_POINTS.21$COORD_X
$Z # On notera le 20220226103249 que, par erreur, c'est "VX=" que l'on recupere au lieu de "X=". #
$Z # Cela a ete corrige le 20220228082513... #
#20220228082513____:$Z $CA $xTV/LISTE_POINTS.21 | \ #
#20220228082513____:$Z $SE -e "s/^.*Y=//" -e 's/ .*$//' \ #
#20220228082513____:$Z > $xTV/LISTE_POINTS.21$COORD_Y #
$Z $CA $xTV/LISTE_POINTS.21 | \
$Z $SE -e "s/^.* Y=//" -e 's/ .*$//' \
$Z > $xTV/LISTE_POINTS.21$COORD_Y
$Z # On notera le 20220226103249 que, par erreur, c'est "VY=" que l'on recupere au lieu de "Y=". #
$Z # Cela a ete corrige le 20220228082513... #
#20220228082513____:$Z $CA $xTV/LISTE_POINTS.21 | \ #
#20220228082513____:$Z $SE -e "s/^.*Z=//" -e 's/ .*$//' \ #
#20220228082513____:$Z > $xTV/LISTE_POINTS.21$COORD_Z #
$Z $CA $xTV/LISTE_POINTS.21 | \
$Z $SE -e "s/^.* Z=//" -e 's/ .*$//' \
$Z > $xTV/LISTE_POINTS.21$COORD_Z
$Z # On notera le 20220226103249 que, par erreur, c'est "VZ=" que l'on recupere au lieu de "Z=". #
$Z # Cela a ete corrige le 20220228082513... #
#20220228082513____:$Z $CA $xTV/LISTE_POINTS.22 | \ #
#20220228082513____:$Z $SE -e "s/^.*X=//" -e 's/ .*$//' \ #
#20220228082513____:$Z > $xTV/LISTE_POINTS.22$COORD_X #
$Z $CA $xTV/LISTE_POINTS.22 | \
$Z $SE -e "s/^.* X=//" -e 's/ .*$//' \
$Z > $xTV/LISTE_POINTS.22$COORD_X
$Z # On notera le 20220226103249 que, par erreur, c'est "VX=" que l'on recupere au lieu de "X=". #
$Z # Cela a ete corrige le 20220228082513... #
#20220228082513____:$Z $CA $xTV/LISTE_POINTS.22 | \ #
#20220228082513____:$Z $SE -e "s/^.*Y=//" -e 's/ .*$//' \ #
#20220228082513____:$Z > $xTV/LISTE_POINTS.22$COORD_Y #
$Z $CA $xTV/LISTE_POINTS.22 | \
$Z $SE -e "s/^.* Y=//" -e 's/ .*$//' \
$Z > $xTV/LISTE_POINTS.22$COORD_Y
$Z # On notera le 20220226103249 que, par erreur, c'est "VY=" que l'on recupere au lieu de "Y=". #
$Z # Cela a ete corrige le 20220228082513... #
#20220228082513____:$Z $CA $xTV/LISTE_POINTS.22 | \ #
#20220228082513____:$Z $SE -e "s/^.*Z=//" -e 's/ .*$//' \ #
#20220228082513____:$Z > $xTV/LISTE_POINTS.22$COORD_Z #
$Z $CA $xTV/LISTE_POINTS.22 | \
$Z $SE -e "s/^.* Z=//" -e 's/ .*$//' \
$Z > $xTV/LISTE_POINTS.22$COORD_Z
$Z # On notera le 20220226103249 que, par erreur, c'est "VZ=" que l'on recupere au lieu de "Z=". #
$Z # Cela a ete corrige le 20220228082513... #
$Z set PoSt___=`echo $LId[$NuMeRo___] | $SE -e "s/^.*=//" -e "s/^/0000/" -e 's/^.*\(....\)$/\1/'`
$Z set PoSt_p1=`echo $LId[$NuMeRo_p1] | $SE -e "s/^.*=//" -e "s/^/0000/" -e 's/^.*\(....\)$/\1/'`
$Z $xrv/distance.12$X \
$Z ne=0 \
$Z LISTE_XA=$xTV/LISTE_POINTS.21$COORD_X \
$Z LISTE_YA=$xTV/LISTE_POINTS.21$COORD_Y \
$Z LISTE_ZA=$xTV/LISTE_POINTS.21$COORD_Z \
$Z LISTE_XB=$xTV/LISTE_POINTS.22$COORD_X \
$Z LISTE_YB=$xTV/LISTE_POINTS.22$COORD_Y \
$Z LISTE_ZB=$xTV/LISTE_POINTS.22$COORD_Z \
$Z \
$Z > $xTV/LISTE_POINTS.23.$PoSt___.$PoSt_p1
$Z # Calcul des distances reelles entre {$PoSt___,$PoSt_p1}... #
$Z set EcArT=`$CA $xTV/LISTE_POINTS.23.$PoSt___.$PoSt_p1 | $xrv/extrema.01$X ne=0 fichier== ets=VRAI`
$Z IfBasic (`$xcg/IFGE.01$X x=$EcArT y=$_____Seuil` == $EXIST) then
$Z set NiVeAu_MiN=$_____GrisDistancesMin
$Z set NiVeAu_MaX=$_____GrisDistancesMax
$Z ElseBasic
$Z set NiVeAu_MiN=`calculINS ($_____GrisDistancesMin+$_____GrisDistancesMax)/2`
$Z set NiVeAu_MaX=$NiVeAu_MiN
$Z EndifBasic
$Z $CA $xTV/LISTE_POINTS.23.$PoSt___.$PoSt_p1 | \
$Z $xrv/normalise.01$X \
$Z ne=0 \
$Z fichier== \
$Z minimum=$NiVeAu_MiN maximum=$NiVeAu_MaX formater=VRAI entier=VRAI \
$Z \
$Z > $xTV/LISTE_POINTS.24.$PoSt___.$PoSt_p1
$Z # Conversion des distances entre {$PoSt___,$PoSt_p1} en niveaux de gris... #
$Z # #
$Z # On notera que cette renormalisation est faite pour chaque couple {$PoSt___,$PoSt_p1} et #
$Z # donc independemment des autres couples... #
$Z set NuMeRo___=$NuMeRo_p1
$Z end
$Z $DELETE $xTV/LISTE_POINTS.25
$Z $PAST $xTV/LISTE_POINTS.24.* | \
$Z $R "$K_TAB" "$K_NL" \
$Z > $xTV/LISTE_POINTS.25
$Z # Liste des distances en niveaux de gris pour les planetes de la liste '$xTV/VISIBILITE'. #
$Z set NuMeRo___=1
$Z $DELETE $xTV/LISTE_POINTS.26 >& $nul
$Z $DELETE $xTV/LISTE_POINTS.27 >& $nul
$Z $CA $xTV/LISTE_POINTS \
$Z > $xTV/LISTE_POINTS.26
$Z while ($NuMeRo___ < `calculINS $#LId-1`)
$Z @ NuMeRo_p1 = $NuMeRo___ + 1
$Z $CA $xTV/LISTE_POINTS.26 | \
$Z $xcp/substitue.01$X \
$Z c01="\([^\n][^\n]* $LId[$NuMeRo_p1] [^\n][^\n]*\n\)" s01="\1\1" \
$Z > $xTV/LISTE_POINTS.27
$Z # Dans '$xTV/LISTE_POINTS' les planetes sont dupliquees sauf la premiere (le Soleil) et la #
$Z # derniere (Neptune) de chaque "chaine" {le Soleil,la Terre,Jupiter,Saturne,Uranus,neptune}. #
$Z $DELETE $xTV/LISTE_POINTS.26* >& $nul
$Z $MV $xTV/LISTE_POINTS.27 $xTV/LISTE_POINTS.26
$Z set NuMeRo___=$NuMeRo_p1
$Z end
$Z $DELETE $xTV/LISTE_POINTS.27 >& $nul
$Z $CA $xTV/LISTE_POINTS.26 | \
$Z $SE -e 's/ ROUGE=[^ ][^ ]* *VERTE=[^ ][^ ]* *BLEUE=[^ ][^ ]* //' \
$Z > $xTV/LISTE_POINTS.27
$Z # Suppression des vraies couleurs des planetes... #
$Z $DELETE $xTV/LISTE_POINTS.28 >& $nul
#20210104165038____:$Z $CA $xTV/LISTE_POINTS.25 | \ #
#20210104165038____:$Z $AW ' { print " ROUGE=" $1 " VERTE=" $1 " BLEUE=" $1 " " } ' | \ #
#20210104165038____:$Z $AW ' { print $0 "\n" $0 } ' \ #
#20210104165038____:$Z > $xTV/LISTE_POINTS.28 #
$Z $CA $xTV/LISTE_POINTS.25 | \
$Z $AW ' { print " NIVEAU=" $1 " " } ' | \
$Z $AW ' { print $0 "\n" $0 } ' \
$Z > $xTV/LISTE_POINTS.28
$Z # Liste des couleurs fonctions croissantes des distances entre les planetes... #
$Z $DELETE $xTV/LISTE_POINTS.29 >& $nul
$Z $PAST $xTV/LISTE_POINTS.27 $xTV/LISTE_POINTS.28 | \
$Z $R "$K_TAB" "$K_BLANC" \
$Z > $xTV/LISTE_POINTS.29
$Z # Reconstitution d'une liste du type '$xTV/LISTE_POINTS' dans laquelle les vraies couleurs #
$Z # ont ete remplacees par des luminances fonctions croissantes des distances... #
$Z execRVB $xci/init$X \
$Z n=$NOIR \
$Z R=$xTV/FOND%s \
$Z $formatI
$Z set PaRaMeTrEs="$K_VIDE"
$Z set PaRaMeTrEs="$PaRaMeTrEs"" np=1"
$Z set PaRaMeTrEs="$PaRaMeTrEs"" Apoints=$_____Points"
$Z set PaRaMeTrEs="$PaRaMeTrEs"" Lz=100"
$Z set PaRaMeTrEs="$PaRaMeTrEs"" editer_extrema_hors=FAUX"
$Z set PaRaMeTrEs="$PaRaMeTrEs"" zoom_automatique=FAUX ZOOM=1.0"
$Z set PaRaMeTrEs="$PaRaMeTrEs"" coordonnees_dans_0_1=VRAI"
$Z set PaRaMeTrEs="$PaRaMeTrEs"" AXYZ=12.0e-14 BXYZ=0.5"
$Z set PaRaMeTrEs="$PaRaMeTrEs"" TRANSLATION_OX=0.0 TRANSLATION_OY=0.0"
$Z set PaRaMeTrEs="$PaRaMeTrEs"" fond=FAUX"
$Z set PaRaMeTrEs="$PaRaMeTrEs"" centrer=FAUX reference=$_____Reference"
$Z set PaRaMeTrEs="$PaRaMeTrEs"" attenuation_au_bord=0.25"
$Z set PaRaMeTrEs="$PaRaMeTrEs"" $_____ParamParticule"
$Z set PaRaMeTrEs="$PaRaMeTrEs"" fond=VRAI F=$xTV/FOND"
$Z set PaRaMeTrEs="$PaRaMeTrEs"" chiffres=0"
$c #define N0 Premiere
$c #define N Derniere
$c #define PAS _____Pas
$c
$c int main()
$c {
$c int n;
$c
$c for (n=N0 ; n<=N ; n=n+PAS)
$c {
$c printf("$DELETE $xTV/COORDONNEES_1\n");
$c printf("$DELETE $xTV/COORDONNEES_1$COORD_X\n");
$c printf("$DELETE $xTV/COORDONNEES_1$COORD_Y\n");
$c printf("$DELETE $xTV/COORDONNEES_1$COORD_Z\n");
$c printf("$DELETE $xTV/RAYONS_1\n");
$c printf("$DELETE $xTV/COULEURS_1$ROUGE\n");
$c printf("$DELETE $xTV/COULEURS_1$VERTE\n");
$c printf("$DELETE $xTV/COULEURS_1$BLEUE\n");
$c
$c printf("$CA $xTV/LISTE_POINTS |
$c $GRE 'periode=%d '
$c > $xTV/COORDONNEES_1\n"
$c ,n,'"','"'
$c );
$c
$c printf("set Particules_1=`$CA $xTV/COORDONNEES_1 | $WCl`\n");
$c
$c printf("$CA $xTV/COORDONNEES_1 |
$c $SE -e %cs/^.* X=//%c
$c -e %cs/ .*//%c
$c > $xTV/COORDONNEES_1$COORD_X\n"
$c ,'"','"','"','"'
$c );
$c printf("$CA $xTV/COORDONNEES_1 |
$c $SE -e %cs/^.* Y=//%c
$c -e %cs/ .*//%c
$c > $xTV/COORDONNEES_1$COORD_Y\n"
$c ,'"','"','"','"'
$c );
$c printf("$CA $xTV/COORDONNEES_1 |
$c $SE -e %cs/^.* Z=//%c
$c -e %cs/ .*//%c
$c > $xTV/COORDONNEES_1$COORD_Z\n"
$c ,'"','"','"','"'
$c );
$c
$c printf("$CA $xTV/COORDONNEES_1 |
$c $SE -e %cs/^.* RAYON=//%c
$c -e %cs/ .*//%c
$c > $xTV/RAYONS_1\n"
$c ,'"','"','"','"'
$c );
$c
$c printf("$CA $xTV/COORDONNEES_1 |
$c $SE -e %cs/^.* ROUGE=//%c
$c -e %cs/ .*//%c
$c > $xTV/COULEURS_1$ROUGE\n"
$c ,'"','"','"','"'
$c );
$c printf("$CA $xTV/COORDONNEES_1 |
$c $SE -e %cs/^.* VERTE=//%c
$c -e %cs/ .*//%c
$c > $xTV/COULEURS_1$VERTE\n"
$c ,'"','"','"','"'
$c );
$c printf("$CA $xTV/COORDONNEES_1 |
$c $SE -e %cs/^.* BLEUE=//%c
$c -e %cs/ .*//%c
$c > $xTV/COULEURS_1$BLEUE\n"
$c ,'"','"','"','"'
$c );
$c
$c printf("$DELETE $xTV/COORDONNEES_2\n");
$c printf("$DELETE $xTV/COORDONNEES_2$COORD_X\n");
$c printf("$DELETE $xTV/COORDONNEES_2$COORD_Y\n");
$c printf("$DELETE $xTV/COORDONNEES_2$COORD_Z\n");
$c printf("$DELETE $xTV/RAYONS_2\n");
#20210104165038____:$c printf("$DELETE $xTV/COULEURS_2$ROUGE\n"); #
#20210104165038____:$c printf("$DELETE $xTV/COULEURS_2$VERTE\n"); #
#20210104165038____:$c printf("$DELETE $xTV/COULEURS_2$BLEUE\n"); #
$c printf("$DELETE $xTV/COULEURS_2$NIVEAU\n");
$c
$c printf("$CA $xTV/LISTE_POINTS.29 |
$c $GRE 'periode=%d '
$c > $xTV/COORDONNEES_2\n"
$c ,n
$c );
$c
$c printf("set Particules_2=`$CA $xTV/COORDONNEES_2 | $WCl`\n");
$c
$c printf("$CA $xTV/COORDONNEES_2 |
$c $SE -e %cs/^.* X=//%c
$c -e %cs/ .*//%c
$c > $xTV/COORDONNEES_2$COORD_X\n"
$c ,'"','"','"','"'
$c );
$c printf("$CA $xTV/COORDONNEES_2 |
$c $SE -e %cs/^.* Y=//%c
$c -e %cs/ .*//%c
$c > $xTV/COORDONNEES_2$COORD_Y\n"
$c ,'"','"','"','"'
$c );
$c printf("$CA $xTV/COORDONNEES_2 |
$c $SE -e %cs/^.* Z=//%c
$c -e %cs/ .*//%c
$c > $xTV/COORDONNEES_2$COORD_Z\n"
$c ,'"','"','"','"'
$c );
$c
$c
$c printf("$CA $xTV/COORDONNEES_2 |
$c $SE -e %cs/^.* RAYON=//%c
$c -e %cs/ .*//%c
$c > $xTV/RAYONS_2\n"
$c ,'"','"','"','"'
$c );
#20210104165038____:$c printf("$CA $xTV/COORDONNEES_2 | #
#20210104165038____:$c $SE -e %cs/^.* ROUGE=//%c #
#20210104165038____:$c -e %cs/ .*//%c #
#20210104165038____:$c > $xTV/COULEURS_2$ROUGE\n" #
#20210104165038____:$c ,'"','"','"','"' #
#20210104165038____:$c ); #
#20210104165038____:$c printf("$CA $xTV/COORDONNEES_2 | #
#20210104165038____:$c $SE -e %cs/^.* VERTE=//%c #
#20210104165038____:$c -e %cs/ .*//%c #
#20210104165038____:$c > $xTV/COULEURS_2$VERTE\n" #
#20210104165038____:$c ,'"','"','"','"' #
#20210104165038____:$c ); #
#20210104165038____:$c printf("$CA $xTV/COORDONNEES_2 | #
#20210104165038____:$c $SE -e %cs/^.* BLEUE=//%c #
#20210104165038____:$c -e %cs/ .*//%c #
#20210104165038____:$c > $xTV/COULEURS_2$BLEUE\n" #
#20210104165038____:$c ,'"','"','"','"' #
#20210104165038____:$c ); #
$c printf("$CA $xTV/COORDONNEES_2 |
$c $SE -e %cs/^.* NIVEAU=//%c
$c -e %cs/ .*//%c
$c > $xTV/COULEURS_2$NIVEAU\n"
$c ,'"','"','"','"'
$c );
$c
$c printf("$xrv/particule.10$X
$c iterations=$Particules_1
$c $PaRaMeTrEs
$c LISTE_X=$xTV/COORDONNEES_1$COORD_X
$c LISTE_Y=$xTV/COORDONNEES_1$COORD_Y
$c LISTE_Z=$xTV/COORDONNEES_1$COORD_Z
$c LISTE_RAYON=$xTV/RAYONS_1
$c Ar=3.0e-14
$c isoles=VRAI
$c AR=$_____AttenuationCouleurs
$c LISTE_ROUGE=$xTV/COULEURS_1$ROUGE
$c AV=$_____AttenuationCouleurs
$c LISTE_VERTE=$xTV/COULEURS_1$VERTE
$c AB=$_____AttenuationCouleurs
$c LISTE_BLEUE=$xTV/COULEURS_1$BLEUE
$c R=$xTV/FOND
$c $formatI\n"
$c );
$c
#20210104165038____:$c printf("$xrv/particule.10$X #
#20210104165038____:$c iterations=$Particules_2 #
#20210104165038____:$c $PaRaMeTrEs #
#20210104165038____:$c LISTE_X=$xTV/COORDONNEES_2$COORD_X #
#20210104165038____:$c LISTE_Y=$xTV/COORDONNEES_2$COORD_Y #
#20210104165038____:$c LISTE_Z=$xTV/COORDONNEES_2$COORD_Z #
#20210104165038____:$c Ar=2.0e-14 #
#20210104165038____:$c isoles=FAUX chainer=VRAI #
#20210104165038____:$c LISTE_ROUGE=$xTV/COULEURS_2$ROUGE #
#20210104165038____:$c LISTE_VERTE=$xTV/COULEURS_2$VERTE #
#20210104165038____:$c LISTE_BLEUE=$xTV/COULEURS_2$BLEUE #
#20210104165038____:$c R=$_____ImageT.%04d #
#20210104165038____:$c $formatI\n" #
#20210104165038____:$c ,n #
#20210104165038____:$c ); #
$c
$c printf("$xrv/particule.10$X
$c iterations=$Particules_2
$c $PaRaMeTrEs
$c LISTE_X=$xTV/COORDONNEES_2$COORD_X
$c LISTE_Y=$xTV/COORDONNEES_2$COORD_Y
$c LISTE_Z=$xTV/COORDONNEES_2$COORD_Z
$c LISTE_RAYON=$xTV/RAYONS_2
$c Ar=2.0e-14
$c isoles=FAUX chainer=VRAI
$c LISTE_NIVEAU=$xTV/COULEURS_2$NIVEAU
$c p=$_____Palette
$c R=$_____ImageT.%04d
$c $formatI\n"
$c ,n
$c );
$c }
$c }