#######################################################################################################################################
# #
# C O N S T R U C T I O N D U T R I A N G L E D E S I E R P I N S K I A L ' A I D E #
# D E " I T E R A T E D F U N C T I O N S E T " S : #
# #
# #
# Author of '$xiirk/.IFS2S.11.5.$U' : #
# #
# Jean-Francois COLONNA (LACTAMME, 20050614094131). #
# #
#######################################################################################################################################
$Z set NtransformsX=`$CA $xTV/TRANSLATION_OX | $WCl`
$Z set NtransformsY=`$CA $xTV/TRANSLATION_OY | $WCl`
$Z set NtransformsZ=`$CA $xTV/TRANSLATION_OZ | $WCl`
#20220615102814__:$Z set Ntransforms=`$xcg/MAX3.01$X x=$NtransformsX y=$NtransformsY z=$NtransformsZ entier=VRAI signe="$K_VIDE"` #
$Z set Ntransforms=`$xcg/MIN3.01$X x=$NtransformsX y=$NtransformsY z=$NtransformsZ entier=VRAI signe="$K_VIDE"`
$Z # Calcul du nombre de transformations definies. On notera que l'on fait cela en examinant #
$Z # uniquement les trois fichiers des translations (et ce pour simplifier...). #
$Z if (! -e $xTV/PROBABILITES) then
$Z # Lorsque '$xTV/PROBABILITES' n'existe pas et n'a donc pas ete genere par un certain #
$Z # processus, alors il est initialise ci-apres avec des "equi-probabilites". Ceci a ete #
$Z # introduit le 20050614115235... #
$Z set CoMpTeUr=1
$Z while ($CoMpTeUr <= $Ntransforms)
$Z # Bouclage sur l'ensemble des transformations... #
$Z genere `$xcg/INVZ.01$X x=$Ntransforms` $xTV/PROBABILITES
$Z @ CoMpTeUr = $CoMpTeUr + 1
$Z end
$Z else
$Z endif
$Z $DELETE $xTV/SPHERES$COORD_X
$Z $DELETE $xTV/SPHERES$COORD_Y
$Z $DELETE $xTV/SPHERES$COORD_Z
$Z set Lpoints="$K_VIDE"
$Z set Lpoints="$Lpoints"" ne=$Npoints"
$Z set Lpoints="$Lpoints"" LISTE_X=$xTV/POINTS$COORD_X"
$Z set Lpoints="$Lpoints"" LISTE_Y=$xTV/POINTS$COORD_Y"
$Z set Lpoints="$Lpoints"" LISTE_Z=$xTV/POINTS$COORD_Z"
$Z set Ltransformations="$K_VIDE"
$Z set Ltransformations="$Ltransformations"" nt=$Ntransforms"
$Z set Ltransformations="$Ltransformations"" ELEMENT_M11=$xTV/ELEMENT_M11"
$Z set Ltransformations="$Ltransformations"" ELEMENT_M12=$xTV/ELEMENT_M12"
$Z set Ltransformations="$Ltransformations"" ELEMENT_M13=$xTV/ELEMENT_M13"
$Z set Ltransformations="$Ltransformations"" ELEMENT_M21=$xTV/ELEMENT_M21"
$Z set Ltransformations="$Ltransformations"" ELEMENT_M22=$xTV/ELEMENT_M22"
$Z set Ltransformations="$Ltransformations"" ELEMENT_M23=$xTV/ELEMENT_M23"
$Z set Ltransformations="$Ltransformations"" ELEMENT_M31=$xTV/ELEMENT_M31"
$Z set Ltransformations="$Ltransformations"" ELEMENT_M32=$xTV/ELEMENT_M32"
$Z set Ltransformations="$Ltransformations"" ELEMENT_M33=$xTV/ELEMENT_M33"
$Z set Ltransformations="$Ltransformations"" TRANSLATION_OX=$xTV/TRANSLATION_OX"
$Z set Ltransformations="$Ltransformations"" TRANSLATION_OY=$xTV/TRANSLATION_OY"
$Z set Ltransformations="$Ltransformations"" TRANSLATION_OZ=$xTV/TRANSLATION_OZ"
$Z set Ltransformations="$Ltransformations"" PROBABILITE=$xTV/PROBABILITES"
$Z set Arguments="iterations=$_____Iterations toutes=VRAI"
$Z $xrv/IFS.01$X \
$Z $Lpoints \
$Z $Ltransformations \
$Z $Arguments \
$Z px=1 py=0 pz=0 \
$Z > $xTV/SPHERES$COORD_X
$Z # Iteration generant les coordonnees 'X'... #
$Z $xrv/IFS.01$X \
$Z $Lpoints \
$Z $Ltransformations \
$Z $Arguments \
$Z px=0 py=1 pz=0 \
$Z > $xTV/SPHERES$COORD_Y
$Z # Iteration generant les coordonnees 'Y'... #
$Z $xrv/IFS.01$X \
$Z $Lpoints \
$Z $Ltransformations \
$Z $Arguments \
$Z px=0 py=0 pz=1 \
$Z > $xTV/SPHERES$COORD_Z
$Z # Iteration generant les coordonnees 'Z'... #
$Z $DELETE $xTV/POINTS$COORD_X
$Z $DELETE $xTV/POINTS$COORD_Y
$Z $DELETE $xTV/POINTS$COORD_Z
$Z if ("$_____ImagesR" != "$K_VIDE") then
$Z # Test introduit le 20121127105537 afin de pouvoir ne generer que les listes de coordonnees #
$Z # '$xTV/SPHERES'... #
$Z set NspheresX=`$CA $xTV/SPHERES$COORD_X | $WCl`
$Z set NspheresY=`$CA $xTV/SPHERES$COORD_Y | $WCl`
$Z set NspheresZ=`$CA $xTV/SPHERES$COORD_Z | $WCl`
#20220615102814____:$Z set Nspheres=`$xcg/MAX3.01$X x=$NspheresX y=$NspheresY z=$NspheresZ entier=VRAI signe="$K_VIDE"` #
$Z set Nspheres=`$xcg/MIN3.01$X x=$NspheresX y=$NspheresY z=$NspheresZ entier=VRAI signe="$K_VIDE"`
$Z set Nspheres_sN=`$xcg/DIVZ.01$X x=$Nspheres y=$Npoints entier=VRAI signe="$K_VIDE"`
$Z $DELETE $xTV/COULEURS$ROUGE
$Z $DELETE $xTV/COULEURS$VERTE
$Z $DELETE $xTV/COULEURS$BLEUE
$Z $DELETE $xTV/RAYONS
$Z set Nspheres_sN_m1=`$xcg/SOUS.01$X a=$Nspheres_sN b=1 entier=VRAI signe="$K_VIDE"`
$Z set CoMpTeUr=1
$Z set NiVeAu1=$GRIS_8
$Z set NiVeAu2=$GRIS_0
$Z set NiVeAu3=$GRIS_0
$Z while ($CoMpTeUr <= $Npoints)
$Z # Bouclage sur l'ensemble des points de depart... #
$Z if ($_____Palette == "$K_VIDE") then
$Z # Possibilite introduite le 20130304164949... #
$Z $xci/valeurs_inte$X \
$Z premiere=1 derniere=$Nspheres_sN \
$Z vD=$NiVeAu1 vA=$NiVeAu1 \
$Z cubique=FAUX \
$Z >>! $xTV/COULEURS$ROUGE
$Z $xci/valeurs_inte$X \
$Z premiere=1 derniere=$Nspheres_sN \
$Z vD=$NiVeAu2 vA=$NiVeAu2 \
$Z cubique=FAUX \
$Z >>! $xTV/COULEURS$VERTE
$Z $xci/valeurs_inte$X \
$Z premiere=1 derniere=$Nspheres_sN \
$Z vD=$NiVeAu3 vA=$NiVeAu3 \
$Z cubique=FAUX \
$Z >>! $xTV/COULEURS$BLEUE
$Z # Definition de la couleur d'un premier point de depart et de ses transformees... #
$Z set NiVeAu4=$NiVeAu3
$Z set NiVeAu3=$NiVeAu2
$Z set NiVeAu2=$NiVeAu1
$Z set NiVeAu1=$NiVeAu4
$Z # Decalage circulaire des couleurs... #
$Z set CoLoRiAgE="$K_VIDE"
$Z set CoLoRiAgE="$CoLoRiAgE"" LISTE_ROUGE=$xTV/COULEURS$ROUGE"
$Z set CoLoRiAgE="$CoLoRiAgE"" LISTE_VERTE=$xTV/COULEURS$VERTE"
$Z set CoLoRiAgE="$CoLoRiAgE"" LISTE_BLEUE=$xTV/COULEURS$BLEUE"
$Z else
$Z $xci/valeurs_inte$X \
$Z premiere=1 derniere=$Nspheres_sN \
$Z vD=$NOIR_PLANCHER vA=$BLANC \
$Z cubique=FAUX \
$Z >>! $xTV/NIVEAUX
$Z set CoLoRiAgE="$K_VIDE"
$Z set CoLoRiAgE="$CoLoRiAgE"" LISTE_NIVEAU=$xTV/NIVEAUX"
$Z set CoLoRiAgE="$CoLoRiAgE"" palette=$_____Palette"
$Z endif
$Z echo $_____Rayon_0 \
$Z >>! $xTV/RAYONS
$Z $xci/valeurs_inte$X \
$Z premiere=1 derniere=$Nspheres_sN_m1 \
$Z vD=$_____Rayon_N vA=$_____Rayon_N \
$Z cubique=FAUX \
$Z >>! $xTV/RAYONS
$Z # Definition des RAYONs de marquage en mettant en valeur les deux points de depart... #
$Z @ CoMpTeUr = $CoMpTeUr + 1
$Z end
$Z set HomothetieX=`$xrv/extrema.01$X ne=0 fichier=$xTV/SPHERES$COORD_X | $GRE "homothetie *="`
$Z set HomothetieX=`echo "$HomothetieX" | $SE -e "s/^.*= *//"`
$Z set TranslationX=`$xrv/extrema.01$X ne=0 fichier=$xTV/SPHERES$COORD_X | $GRE "translation\.* *="`
$Z set TranslationX=`echo "$TranslationX" | $SE -e "s/^.*= *//"`
$Z set HomothetieY=`$xrv/extrema.01$X ne=0 fichier=$xTV/SPHERES$COORD_Y | $GRE "homothetie *="`
$Z set HomothetieY=`echo "$HomothetieY" | $SE -e "s/^.*= *//"`
$Z set TranslationY=`$xrv/extrema.01$X ne=0 fichier=$xTV/SPHERES$COORD_Y | $GRE "translation\.* *="`
$Z set TranslationY=`echo "$TranslationY" | $SE -e "s/^.*= *//"`
$Z set HomothetieZ=`$xrv/extrema.01$X ne=0 fichier=$xTV/SPHERES$COORD_Z | $GRE "homothetie *="`
$Z set HomothetieZ=`echo "$HomothetieZ" | $SE -e "s/^.*= *//"`
$Z set TranslationZ=`$xrv/extrema.01$X ne=0 fichier=$xTV/SPHERES$COORD_Z | $GRE "translation\.* *="`
$Z set TranslationZ=`echo "$TranslationZ" | $SE -e "s/^.*= *//"`
$Z $xrv/particule.10$X \
$Z np=1 \
$Z iterations=$Nspheres \
$Z AX=$HomothetieX BX=$TranslationX \
$Z LISTE_X=$xTV/SPHERES$COORD_X \
$Z AY=$HomothetieY BY=$TranslationY \
$Z LISTE_Y=$xTV/SPHERES$COORD_Y \
$Z AZ=$HomothetieZ BZ=$TranslationZ \
$Z LISTE_Z=$xTV/SPHERES$COORD_Z \
$Z N_AU_CARRE=$_____NAuCarre \
$Z $CoLoRiAgE \
$Z LISTE_RAYON=$xTV/RAYONS \
$Z zoom_automatique=FAUX ZOOM=0.95 \
$Z isoles=VRAI \
$Z Lz=100 \
$Z Zminimum=$_____DepthCueing Zmaximum=1.0 \
$Z ZminimumT=$_____DepthCueing ZmaximumT=1.0 \
$Z editer_hors=FAUX \
$Z chiffres=0 \
$Z R=$_____ImagesR \
$Z $formatI
$Z else
$Z endif