#######################################################################################################################################
#                                                                                                                                     #
#         C O N S T R U C T I O N   D ' U N E   S T R U C T U R E   T R I D I M E N S I O N N E L L E   P A R                         #
#         D E C O U P A G E   A U T O - S I M I L A I R E   D E   T R I A N G L E S   D ' O R  :                                      #
#                                                                                                                                     #
#                                                                                                                                     #
#         Author of '$xiirv/.TROR.C2.$U' :                                                                                            #
#                                                                                                                                     #
#                     Jean-Francois Colonna (LACTAMME, 20190916094036).                                                               #
#                                                                                                                                     #
#######################################################################################################################################

$Z                  setParam            _____ParticulePara2           "$K_VIDE"

$Z                  setParam            _____Redirection              "$K_VIDE"
$Z                                      # Parametre introduit le 20190916105042...                                                    #

$Z                  set                 _____PseudoPeriodique=VRAI
$Z                  SET                 _____Segments=VRAI
$Z                  set                 _____Centrer=FAUX
$Z                  SET                 _____Symetrique=VRAI
$Z                  SET                 _____Etoile=$EXIST
$Z                  SET                 _____Simplifier=$EXIST
$Z                  set                 _____Tquelconque=FAUX
$Z                  set                 _____Couronne=2.0
$Z                  set                 _____DistanceMini=0.004
$Z                  set                 _____Zoom=0.5
$Z                  set                 _____RotationZ=`calcul $pi/10`
$Z                  set                 _____Palette=$xiP/blanc

$Z                  set                 ListeR=(0.030 0.025 0.020 0.015 0.010 0.005)
$Z                  set                 ListeZ=(+1.00 +0.50 0.00 -0.50 -1.00 -1.50)

$Z                  set                 ProfondeurMin=1
$Z                  set                 ProfondeurMax=`$xcg/MIN2.01$X a=$#ListeR b=$#ListeZ signe="$K_VIDE"`
$Z                  set                 _____Profondeur=$ProfondeurMin

$Z                  set                 index=1

$Z                  FilSTmpB  FPaVaGe

$Z                  while     ($_____Profondeur <= $ProfondeurMax)
$Z                            FilSTmpB  DSavePavage $Y
$Z                            set       PrOf=$_____Profondeur
$Z                            set       NuMeRo=`$xci/nombres$X A="$K_VIDE" p=$PrOf d=$PrOf`
$Z                            $CA       $xcs/csh$Y                                                                                      \
$Z                                                                                                            >> $DSavePavage
$Z                            echo      "SET       _____FSavePavage=$FPaVaGe.$NuMeRo"                                                   \
$Z                                                                                                            >> $DSavePavage
$Z                            source    $DSavePavage

                                        # On notera que l'on ne peut pas utiliser directement "SET       _____FSavePavage=..."        #
                                        # car, en effet, cette definition utilise en particulier '$FPaVaGe' qui est defini par        #
                                        # 'FilSTmpB' et non pas par un 'set' (ou un 'SET'). La seule solution que j'ai trouvee        #
                                        # est donc de passer par ce '$Y'...                                                           #

$Z                            FilSTmpE  DSavePavage
$Z                            set       _____Rayon=$ListeR[$index]
$Z                            set       _____ImageR=$_____ImagesR.$NuMeRo
m4                           _____include(_____xiirv/.TROR.11._____U)

$Z                            @         index = $index + 1
$Z                            @         _____Profondeur = $_____Profondeur + 1
$Z                  end

$Z                  FilSTmpB  FObJeT

$Z                  set                 _____Profondeur=$ProfondeurMin
$Z                  set                 index=1

$Z                  while     ($_____Profondeur <= $ProfondeurMax)
$Z                            set       PrOf=$_____Profondeur
$Z                            set       NuMeRo=`$xci/nombres$X A="$K_VIDE" p=$PrOf d=$PrOf`
$Z                            set       NPointsX=`$CA $FPaVaGe.$NuMeRo$COORD_X | $WCl`
$Z                            set       NPointsY=`$CA $FPaVaGe.$NuMeRo$COORD_Y | $WCl`
$Z                            set       NPoints_=`$xcg/MIN2.01$X x=$NPointsX y=$NPointsY`

$Z                            $xrv/neutre$X       ne=$NPoints_                                                                          \
$Z                                                fichier=$FPaVaGe.$NuMeRo$COORD_X                                                      \
$Z                                                                                                            >>! $FObJeT$COORD_X

$Z                            $xrv/neutre$X       ne=$NPoints_                                                                          \
$Z                                                fichier=$FPaVaGe.$NuMeRo$COORD_Y                                                      \
$Z                                                                                                            >>! $FObJeT$COORD_Y

$Z                            $xrv/neutre$X       ne=$NPoints_                                                                          \
$Z                                                fichier=$ListeZ[$index]                                                               \
$Z                                                                                                            >>! $FObJeT$COORD_Z

$Z                            $xrv/neutre$X       ne=$NPoints_                                                                          \
$Z                                                fichier=$ListeR[$index]                                                               \
$Z                                                                                                            >>! $FObJeT$RAYON

                                        # Generation successive de chacune des six etoiles...                                         #

$Z                            @         index = $index + 1
$Z                            @         _____Profondeur = $_____Profondeur + 1
$Z                  end

$Z                  set                 index=1
$Z                  set                 _____Profondeur=$ProfondeurMin

$Z                  while     ($_____Profondeur < $ProfondeurMax)
$Z                            set       PrOf=$_____Profondeur
$Z                            set       NuMeRo=`$xci/nombres$X A="$K_VIDE" p=$PrOf d=$PrOf`
$Z                            set       NPointsX=`$CA $FPaVaGe.$NuMeRo$COORD_X | $WCl`
$Z                            set       NPointsY=`$CA $FPaVaGe.$NuMeRo$COORD_Y | $WCl`
$Z                            set       NPoints_=`$xcg/MIN2.01$X x=$NPointsX y=$NPointsY signe="$K_VIDE"`

$Z                            $xrv/neutre$X       ne=$NPoints_                                                                          \
$Z                                                fichier=$FPaVaGe.$NuMeRo$COORD_X                                                      \
$Z                                                exemplaires=2                                                                         \
$Z                                                                                                            >>! $FObJeT$COORD_X

$Z                            $xrv/neutre$X       ne=$NPoints_                                                                          \
$Z                                                fichier=$FPaVaGe.$NuMeRo$COORD_Y                                                      \
$Z                                                exemplaires=2                                                                         \
$Z                                                                                                            >>! $FObJeT$COORD_Y

$Z                            @         index1 = $index
$Z                            @         index2 = $index + 1

$Z                            @         NPoints2 = 2 * $NPoints_

$Z                            set       ArG_inte="$K_VIDE"
$Z                            set       ArG_inte="$ArG_inte"" p=1 d=$NPoints2"
$Z                            set       ArG_inte="$ArG_inte"" vD=0 vA=`calcul $NPoints2-1`"
$Z                            set       ArG_inte="$ArG_inte"" lineaire=VRAI"
$Z                            set       ArG_inte="$ArG_inte"" entiers=FAUX"

                                        # On notera le "entiers=FAUX" (et non pas "entiers=VRAI") afin de garantir que les nombres    #
                                        # generes par 'v $xci/valeurs_inte$K 20180623121923' soient tous differents...                #

$Z                            set       ArG_REST="$K_VIDE"
$Z                            set       ArG_REST="$ArG_REST"" ne=0 fichier1== fichier2=2"
$Z                            set       ArG_REST="$ArG_REST"" pQ=0 pR=1"
$Z                            set       ArG_REST="$ArG_REST"" formater=VRAI"
$Z                            set       ArG_REST="$ArG_REST"" signe=$K_QS$K_VIDE$K_QS"

$Z                            $xci/valeurs_inte$X $ArG_inte                                                                       |     \
$Z                            $xrv/DivisionEuclidienne.11$X                                                                             \
$Z                                      $ArG_REST                                                                                 |     \
$Z                            $SE       -e 's/^0$'"/$ListeZ[$index1]/"                                                                  \
$Z                                      -e 's/^1$'"/$ListeZ[$index2]/"                                                                  \
$Z                                                                                                            >>! $FObJeT$COORD_Z

$Z                            $xci/valeurs_inte$X $ArG_inte                                                                       |     \
$Z                            $xrv/DivisionEuclidienne.11$X                                                                             \
$Z                                      $ArG_REST                                                                                 |     \
$Z                            $SE       -e 's/^0$'"/$ListeR[$index1]/"                                                                  \
$Z                                      -e 's/^1$'"/$ListeR[$index2]/"                                                                  \
$Z                                                                                                            >>! $FObJeT$RAYON

                                        # Connexion des six etoiles...                                                                #

$Z                            @         index = $index + 1
$Z                            @         _____Profondeur = $_____Profondeur + 1
$Z                  end

$Z                  set       NPointsX=`$CA $FObJeT$COORD_X | $WCl`
$Z                  set       NPointsY=`$CA $FObJeT$COORD_Y | $WCl`
$Z                  set       NPointsZ=`$CA $FObJeT$COORD_Z | $WCl`
$Z                  set       NPoints_=`$xcg/MIN3.01$X x=$NPointsX y=$NPointsY z=$NPointsZ`

$Z                  $xci/valeurs_inte$X p=1 d=$NPoints_                                                                                 \
$Z                                      vD=$NOIR_PLANCHER vA=$BLANC                                                                     \
$Z                                      lineaire=VRAI                                                                                   \
$Z                                      entiers=VRAI                                                                                    \
$Z                                                                                                  >>! $FObJeT$NIVEAU

$Z                  set                 _____Palette=$xiP/random.A5

$Z                  set                 _____RotationX=0.7
$Z                  set                 _____TranslationY=-0.25

$Z                  set                 DepthMax=1.0
$Z                  set                 DepthMin=0.1

$Z                  eval                $xrv/particule.10$X np=1 iterations=$NPoints_                                                   \
$Z                                                          dernier_premier=VRAI                                                        \
$Z                                                          AXYZ=1 BXYZ=0                                                               \
$Z                                                          LISTE_X=$FObJeT$COORD_X                                                     \
$Z                                                          LISTE_Y=$FObJeT$COORD_Y                                                     \
$Z                                                          LISTE_Z=$FObJeT$COORD_Z                                                     \
$Z                                                          LISTE_RAYON=$FObJeT$RAYON                                                   \
$Z                                                          LISTE_NIVEAU=$FObJeT$NIVEAU                                                 \
$Z                                                          p=$_____Palette                                                             \
$Z                                                          grossissement=$_____Grossissement                                           \
$Z                                                          Lz=1000                                                                     \
$Z                                                          ZOOM=$_____Zoom                                                             \
$Z                                                          ROTATION_OX=$_____RotationX                                                 \
$Z                                                          ROTATION_OY=$_____RotationY                                                 \
$Z                                                          ROTATION_OZ=$_____RotationZ                                                 \
$Z                                                          TRANSLATION_OX=$_____TranslationX                                           \
$Z                                                          TRANSLATION_OY=$_____TranslationY                                           \
$Z                                                          TRANSLATION_OZ=$_____TranslationZ                                           \
$Z                                                          minimum=$DepthMin  Zminimum=$DepthMin                                       \
$Z                                                          maximum=$DepthMax  Zmaximum=$DepthMax                                       \
$Z                                                          minimumT=$DepthMin ZminimumT=$DepthMin                                      \
$Z                                                          maximumT=$DepthMax ZmaximumT=$DepthMax                                      \
$Z                                                          isoles=FAUX chainer=FAUX                                                    \
$Z                                                          ajuster_points=VRAI                                                         \
$Z                                                          equidistance=VRAI compatibilite_20051230=FAUX                               \
$Z                                                          couronne=$_____Couronne                                                     \
$Z                                                          distance_minimale=$_____DistanceMini                                        \
$Z                                                          cubique=$_____Cubique                                                       \
$Z                                                          derivees_automatiques=FAUX                                                  \
$Z                                                          LISTE_dX=$_____DeriveeX                                                     \
$Z                                                          LISTE_dY=$_____DeriveeY                                                     \
$Z                                                          LISTE_dZ=$_____DeriveeZ                                                     \
$Z                                                          RVB=VRAI                                                                    \
$Z                                                          N_AU_CARRE=$_____NAuCarre                                                   \
$Z                                                          message_N_AU_CARRE=FAUX                                                     \
$Z                                                          editer_extrema_hors=FAUX                                                    \
$Z                                                          editer_mauvais_encadrement_niveaux_interpoles=FAUX                          \
$Z                                                          $_____ParticulePara2                                                        \
$Z                                                          R=$_____ImagesR                                                             \
$Z                                                          chiffres=0                                                                  \
$Z                                                                                                  $formatI                            \
$Z                                                                                                            $_____Redirection
$Z                                      # Le 'eval' a ete introduit le 20190916105042 a cause de l'eventuelle '$_____Redirection'...  #

$Z                  FilSTmpE  FObJeT

$Z                  FilSTmpE  FPaVaGe



Copyright © Jean-François Colonna, 2019-2021.
Copyright © CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / Ecole Polytechnique, 2019-2021.