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