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