#!/bin/csh ####################################################################################################################################### # # # V I S U A L I S A T I O N D E P L U S I E U R S A T T R A C T E U R S D E L O R E N Z : # # # # # # Utilisation : # # # # $xrk/lorenz.11$Z <CondInit> <ImageR> [<LArgs> [<PArgs> [<CRdn> [<mR> [<MR> [<mV> [<MV> [<mB> [<MB> [<Gr>]]]]]]]]]] # # # # # # Author of '$xrk/lorenz.11$Z' : # # # # Jean-Francois Colonna (LACTAMME, 20070818093103). # # # ####################################################################################################################################### set CondInit=$1 # Nom des trois fichiers {$COORD_X,$COORD_Y,$COORD_Z}. # set ImageR=$2 set LArguments=($3) # Arguments de '$xrk/lorenz.11$X'. # set PArguments=($4) # Arguments de '$xrv/particule.10$X'. # set CouleursRDN=$5 set MinimumR=$6 set MaximumR=$7 set MinimumV=$8 set MaximumV=$9 set MinimumB=$10 set MaximumB=$11 set Graine=$12 setArgum CouleursRDN $NEXIST # Introduit le 20070818175318... # #20111214083423____:set ArGuMeNtS="abscisse=FAUX ordonnee=FAUX profondeur=FAUX niveau=VRAI normaliser=VRAI" # SET1 ArGuMeNtS = "abscisse=FAUX ordonnee=FAUX profondeur=FAUX niveau=VRAI normaliser=VRAI" #20111214083423____:set MinimumRVB=`$xci/coordonnees$X $ArGuMeNtS n=$GRIS_0` # SET1 MinimumRVB = `$xci/coordonnees$X $ArGuMeNtS n=$GRIS_0` #20111214083423____:set MaximumRVB=`$xci/coordonnees$X $ArGuMeNtS n=$GRIS_8` # SET1 MaximumRVB = `$xci/coordonnees$X $ArGuMeNtS n=$GRIS_8` # La modification du 20111214083423 est due a 'v $Falias_use 20111214083546'... # setArgum MinimumR `$xci/coordonnees$X $ArGuMeNtS n=$GRIS_1` # Introduit le 20070818175318... # setArgum MaximumR `$xci/coordonnees$X $ArGuMeNtS n=$GRIS_8` # Introduit le 20070818175318... # setArgum MinimumV `$xci/coordonnees$X $ArGuMeNtS n=$GRIS_1` # Introduit le 20070818175318... # setArgum MaximumV `$xci/coordonnees$X $ArGuMeNtS n=$GRIS_8` # Introduit le 20070818175318... # setArgum MinimumB `$xci/coordonnees$X $ArGuMeNtS n=$GRIS_1` # Introduit le 20070818175318... # setArgum MaximumB `$xci/coordonnees$X $ArGuMeNtS n=$GRIS_8` # Introduit le 20070818175318... # setArgum Graine 1789 # Introduit le 20070818175318... # set NCondInitX=`$CA $CondInit$COORD_X | $WCl` set NCondInitY=`$CA $CondInit$COORD_Y | $WCl` set NCondInitZ=`$CA $CondInit$COORD_Z | $WCl` set NCondInitXYZ=`$xcg/MAX3.01$X x=$NCondInitX y=$NCondInitY z=$NCondInitZ entier=VRAI signe="$K_VIDE"` echo "Nombre de conditions initiales (differentes ou pas) pour l'attracteur de Lorenz : ""$NCondInitXYZ" # Message introduit le 20070819103621... # FileTmpB LiStE_PoInTs set NuMeRo=1 while ($NuMeRo <= $NCondInitXYZ) set CondInitX=`(listMN $CondInit$COORD_X $NuMeRo $NuMeRo)` set CondInitY=`(listMN $CondInit$COORD_Y $NuMeRo $NuMeRo)` set CondInitZ=`(listMN $CondInit$COORD_Z $NuMeRo $NuMeRo)` # Recuperation de la condition initiale courante... # if ($CouleursRDN == $NEXIST) then # Test introduit le 20070818175318... # set CoLoRiAgE="RVB=VRAI" else @ GrAiNe_R = $Graine + 0 @ GrAiNe_V = $Graine + 1 @ GrAiNe_B = $Graine + 2 set CoLoRiAgE_R=`$xci/valeurs_alea$X premiere=1 derniere=1 graine=$GrAiNe_R inf=$MinimumRVB sup=$MaximumRVB` set CoLoRiAgE_V=`$xci/valeurs_alea$X premiere=1 derniere=1 graine=$GrAiNe_V inf=$MinimumRVB sup=$MaximumRVB` set CoLoRiAgE_B=`$xci/valeurs_alea$X premiere=1 derniere=1 graine=$GrAiNe_B inf=$MinimumRVB sup=$MaximumRVB` set CoLoRiAgE="$K_VIDE" set CoLoRiAgE="$CoLoRiAgE"" RVB=FAUX N_et_B_luminance=FAUX colorier_N_et_B=VRAI" set CoLoRiAgE="$CoLoRiAgE"" RVB_R=$CoLoRiAgE_R RVB_V=$CoLoRiAgE_V RVB_B=$CoLoRiAgE_B" @ Graine = $Graine + 11 endif FileTmpB imageT $xrk/lorenz.11$X np=1 \ $LArguments \ $CoLoRiAgE \ VARIABLE_cx0=$CondInitX \ VARIABLE_cy0=$CondInitY \ VARIABLE_cz0=$CondInitZ \ lister_les_points=VRAI lister_les_points_apres=FAUX \ editer_extrema_hors=FAUX \ R=$imageT \ chiffres=0 \ $formatI \ >>! $LiStE_PoInTs # Et enfin, visualisation de la surface... # FileTmpE imageT @ NuMeRo = $NuMeRo + 1 # Passage a la condition initiale suivante (si elle existe...). # end $CA $LiStE_PoInTs | \ $SE -e 's/^.* X=\([^ ]*\) .*$/\1/' \ > $LiStE_PoInTs$COORD_X $CA $LiStE_PoInTs | \ $SE -e 's/^.* Y=\([^ ]*\) .*$/\1/' \ > $LiStE_PoInTs$COORD_Y $CA $LiStE_PoInTs | \ $SE -e 's/^.* Z=\([^ ]*\) .*$/\1/' \ > $LiStE_PoInTs$COORD_Z $CA $LiStE_PoInTs | \ $SE -e 's/^.* ROUGE=\([^ ]*\) .*$/\1/' \ > $LiStE_PoInTs$ROUGE $CA $LiStE_PoInTs | \ $SE -e 's/^.* VERTE=\([^ ]*\) .*$/\1/' \ > $LiStE_PoInTs$VERTE $CA $LiStE_PoInTs | \ $SE -e 's/^.* BLEUE=\([^ ]*\) .*$/\1/' \ > $LiStE_PoInTs$BLEUE set NPointsX=`$CA $LiStE_PoInTs$COORD_X | $WCl` set NPointsY=`$CA $LiStE_PoInTs$COORD_Y | $WCl` set NPointsZ=`$CA $LiStE_PoInTs$COORD_Z | $WCl` set NPointsXYZ=`$xcg/MAX3.01$X x=$NPointsX y=$NPointsY z=$NPointsZ entier=VRAI` set FaCtEuR_X=`$xrv/extrema.01$X ne=0 fichier=$LiStE_PoInTs$COORD_X | $GRE -i "homothetie" | $SE -e 's/^.*= *\([^ ]*\)$/\1/'` set FaCtEuR_Y=`$xrv/extrema.01$X ne=0 fichier=$LiStE_PoInTs$COORD_Y | $GRE -i "homothetie" | $SE -e 's/^.*= *\([^ ]*\)$/\1/'` set FaCtEuR_Z=`$xrv/extrema.01$X ne=0 fichier=$LiStE_PoInTs$COORD_Z | $GRE -i "homothetie" | $SE -e 's/^.*= *\([^ ]*\)$/\1/'` set ZoOm=`$xcg/MAX3.01$X x=$FaCtEuR_X y=$FaCtEuR_Y z=$FaCtEuR_Z` $xrv/particule.10$X np=1 iterations=$NPointsXYZ \ coordonnees_dans_0_1=VRAI \ AXYZ=1 BXYZ=0 \ zoom_automatique=FAUX ZOOM=$ZoOm \ LISTE_X=$LiStE_PoInTs$COORD_X \ LISTE_Y=$LiStE_PoInTs$COORD_Y \ LISTE_Z=$LiStE_PoInTs$COORD_Z \ LISTE_ROUGE=$LiStE_PoInTs$ROUGE \ LISTE_VERTE=$LiStE_PoInTs$VERTE \ LISTE_BLEUE=$LiStE_PoInTs$BLEUE \ Lz=1000 \ isoles=VRAI \ Vrayon=0.5 \ RVB=VRAI \ extrema_hors=FAUX \ $PArguments \ R=$ImageR \ chiffres=0 \ $formatI # Et enfin, visualisation de l'ensemble des attracteurs de Lorenz... # FileTmpE LiStE_PoInTs