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



Copyright © Jean-François COLONNA, 2019-2024.
Copyright © CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / École polytechnique, Institut Polytechnique de Paris, 2019-2024.