#######################################################################################################################################
#                                                                                                                                     #
#         G E N E R A T I O N   D ' U N E   S U R F A C E   T R I P L E M E N T   F R A C T A L E                                     #
#         P A R   L A   M E T H O D E   D E S   P R O J E C T O R S  :                                                                #
#                                                                                                                                     #
#                                                                                                                                     #
#         Author of '$xiirs/.PROJ.41.1.$U' :                                                                                          #
#                                                                                                                                     #
#                     Jean-Francois Colonna (LACTAMME, 20041121105613).                                                               #
#                                                                                                                                     #
#######################################################################################################################################

$Z                  setParam            _____MailleX                  0.50

$Z                  setParam            _____MailleY                  0.50

$Z                  setParam            _____Iterations               `GetParam $xci/fract_2D.01 niveau`
$Z                                      # Parametre introduit le 20041121134151...                                                    #

$Z                  setParam            _____Zoom                     1.0

$Z                  setParam            _____RotationX                0

$Z                  setParam            _____RotationY                0

$Z                  setParam            _____RotationZ                0

$Z                  setParam            _____TranslationX             0
$Z                                      # Parametre introduit le 20060206181808...                                                    #

$Z                  setParam            _____TranslationY             0
$Z                                      # Parametre introduit le 20060206181808...                                                    #

$Z                  setParam            _____TranslationZ             0
$Z                                      # Parametre introduit le 20060206181808...                                                    #

$Z                  setParam            _____Arguments                "$K_VIDE"
$Z                                      # Parametre introduit le 20060130141149 pour permettre, par exemple, de generer les normales. #

#20150610102020____:$Z                  Pal                                                                                           #

$Z                  FilSTmpB  FFrAcTaL

$Z                  echo               "$xci/fract_2D.01$X                                                                              \
$Z                                                          standard=FAUX                                                               \
$Z                                                          OX=0 EX=1.0 mX=$_____MailleX                                                \
$Z                                                          OY=0 EY=1.0 mY=$_____MailleY                                                \
$Z                                                          graine=1111                                                                 \
$Z                                                          niveau=$_____Iterations                                                     \
$Z                                                                                                                      $formatI  |     \
$Z                                      $xci/normalise.01$X                                                                             \
$Z                                                                                                                      $formatI  |     \
$Z                                      $xci/scale$X                                                                                    \
$Z                                                          standard=FAUX                                                               \
$Z                                                          a=2                                                                         \
$Z                                                          b=-1                                                                        \
$Z                                                          R=$xTV/Fx                                                                   \
$Z                                                                                                                      $formatI"       \
$Z                                                                                        >> $FFrAcTaL

$Z                  echo               "$xci/fract_2D.01$X                                                                              \
$Z                                                          standard=FAUX                                                               \
$Z                                                          OX=0 EX=1.0 mX=$_____MailleX                                                \
$Z                                                          OY=0 EY=1.0 mY=$_____MailleY                                                \
$Z                                                          graine=3333                                                                 \
$Z                                                          niveau=$_____Iterations                                                     \
$Z                                                                                                                      $formatI  |     \
$Z                                      $xci/normalise.01$X                                                                             \
$Z                                                                                                                      $formatI  |     \
$Z                                      $xci/scale$X                                                                                    \
$Z                                                          standard=FAUX                                                               \
$Z                                                          a=2                                                                         \
$Z                                                          b=-1                                                                        \
$Z                                                          R=$xTV/Fy                                                                   \
$Z                                                                                                                      $formatI"       \
$Z                                                                                        >> $FFrAcTaL

$Z                  echo               "$xci/fract_2D.01$X                                                                              \
$Z                                                          standard=FAUX                                                               \
$Z                                                          OX=0 EX=1.0 mX=$_____MailleX                                                \
$Z                                                          OY=0 EY=1.0 mY=$_____MailleY                                                \
$Z                                                          graine=5555                                                                 \
$Z                                                          niveau=$_____Iterations                                                     \
$Z                                                                                                                      $formatI  |     \
$Z                                      $xci/normalise.01$X                                                                             \
$Z                                                                                                                      $formatI  |     \
$Z                                      $xci/scale$X                                                                                    \
$Z                                                          standard=FAUX                                                               \
$Z                                                          a=2                                                                         \
$Z                                                          b=-1                                                                        \
$Z                                                          R=$xTV/Fz                                                                   \
$Z                                                                                                                      $formatI"       \
$Z                                                                                        >> $FFrAcTaL

$Z                  $xcg/ExecParallele.01$Z       $FFrAcTaL                                                                             \
$Z                                                                    >& $nul

$Z                  FilSTmpE  FFrAcTaL

$Z                  if                  ($?_____imagesRFx == $EXIST) then
$Z                                      $xci/acces$X                                                                                    \
$Z                                                          A=$xTV/Fx                                                                   \
$Z                                                          standard=FAUX                                                               \
$Z                                                          zero=FAUX                                                                   \
$Z                                                          R=$_____imagesRFx                                                           \
$Z                                                                                                                      $formatI
$Z                  else
$Z                  endif

$Z                  if                  ($?_____imagesRFy == $EXIST) then
$Z                                      $xci/acces$X                                                                                    \
$Z                                                          A=$xTV/Fy                                                                   \
$Z                                                          standard=FAUX                                                               \
$Z                                                          zero=FAUX                                                                   \
$Z                                                          R=$_____imagesRFy                                                           \
$Z                                                                                                                      $formatI
$Z                  else
$Z                  endif

$Z                  if                  ($?_____imagesRFz == $EXIST) then
$Z                                      $xci/acces$X                                                                                    \
$Z                                                          A=$xTV/Fz                                                                   \
$Z                                                          standard=FAUX                                                               \
$Z                                                          zero=FAUX                                                                   \
$Z                                                          R=$_____imagesRFz                                                           \
$Z                                                                                                                      $formatI
$Z                  else
$Z                  endif

$Z                  set                 Parametres="$K_VIDE"
$Z                  set                 Parametres="$Parametres"" np=1"
$Z                  set                 Parametres="$Parametres"" brume=FAUX"
$Z                  set                 Parametres="$Parametres"" pu=0.020   pv=0.020"
$Z                  set                 Parametres="$Parametres"" eu=40      ev=40"
$Z                  set                 Parametres="$Parametres"" dpu=40     dpv=40"
$Z                  set                 Parametres="$Parametres"" dxFxuv=0   dxFzu=1"
$Z                  set                 Parametres="$Parametres"" dyFyuv=0   dyFzv=1"
$Z                  set                 Parametres="$Parametres"" ddu=0.0004 ddv=0.0004"
$Z                  set                 Parametres="$Parametres"" ZOOM=$_____Zoom"
$Z                  set                 Parametres="$Parametres"" ROTATION_OX=$_____RotationX"
$Z                  set                 Parametres="$Parametres"" ROTATION_OY=$_____RotationY"
$Z                  set                 Parametres="$Parametres"" ROTATION_OZ=$_____RotationZ"
$Z                  set                 Parametres="$Parametres"" TRANSLATION_OX=$_____TranslationX"
$Z                  set                 Parametres="$Parametres"" TRANSLATION_OY=$_____TranslationY"
$Z                  set                 Parametres="$Parametres"" TRANSLATION_OZ=$_____TranslationZ"
$Z                  set                 Parametres="$Parametres"" Lz=100"
$Z                  set                 Parametres="$Parametres"" rayon_de_visualisation=0.012"
$Z                  set                 Parametres="$Parametres"" N_AU_CARRE=VRAI"
$Z                  set                 Parametres="$Parametres"" edc=VRAI"

$Z                  $xrs/project2D.11$X                                                                                                 \
$Z                                      aFx=1.0           Fx=$xTV/Fx                                                                    \
$Z                                      aFy=1.0           Fy=$xTV/Fy                                                                    \
$Z                                      aFz=1.0           Fz=$xTV/Fz                                                                    \
$Z                                      mu=0 Mu=1.0                                                                                     \
$Z                                      mv=0 Mv=1.0                                                                                     \
$Z                                      Fx_periodiser_u=VRAI Fy_periodiser_u=VRAI Fz_periodiser_u=VRAI                                  \
$Z                                      Fx_symetriser_u=FAUX Fy_symetriser_u=FAUX Fz_symetriser_u=FAUX                                  \
$Z                                      Fx_prolonger_u=FAUX  Fy_prolonger_u=FAUX  Fz_prolonger_u=FAUX                                   \
$Z                                      Fx_periodiser_v=VRAI Fy_periodiser_v=VRAI Fz_periodiser_v=VRAI                                  \
$Z                                      Fx_symetriser_v=FAUX Fy_symetriser_v=FAUX Fz_symetriser_v=FAUX                                  \
$Z                                      Fx_prolonger_v=FAUX  Fy_prolonger_v=FAUX  Fz_prolonger_v=FAUX                                   \
$Z                                      $Parametres                                                                                     \
$Z                                      chiffres=0                                                                                      \
$Z                                      R=$_____imagesR                                                                                 \
$Z                                      $_____Arguments                                                                                 \
$Z                                                                                                  $formatI
$Z                                      # Les champs {Fx,Fy} n'etant pas periodiques (contrairement a {Fz}) ne doivent pas etre       #
$Z                                      # "periodises" mais "prolonges". Dans le cas contraire, cela donne des artefacts (des points  #
$Z                                      # "incoherents") lies a des problemes d'interpolations aux bords des champs, lorsqu'il faut   #
$Z                                      # utiliser la periodicite supposee mais inexistante...                                        #
$Z                                      #                                                                                             #
$Z                                      # On notera le 20041122212744 que les surfaces ainsi generees peuvent avoir des plis ; c'est  #
$Z                                      # le cas de 'v $xiirs/PROJ.42.2'. L'explication a ete trouvee avec les parametres suivants :  #
$Z                                      #                                                                                             #
$Z                                      #                   pu=0.050  pv=0.050                                                        #
$Z                                      #                   eu=1      ev=1                                                            #
$Z                                      #                   dpu=1     dpv=1                                                           #
$Z                                      #                   mu=0.9    Mu=1.1                                                          #
$Z                                      #                   mv=0.7    Mv=0.72                                                         #
$Z                                      #                                                                                             #
$Z                                      # et dans 'v $xrs/surfaces.12$I GENERATION_D_UNE_IMAGE_DE_LA_SURFACE_AVEC_DIFFERENCES____'    #
$Z                                      # en editant {u,v} et {cx,cy,cz}. Le resultat fut le suivant :                                #
$Z                                      #                                                                                             #
$Z                                      #                   u=+0.900000 v=+0.700000       Fx=+0.408148 Fy=-0.218798 Fz=-0.097719      #
$Z                                      #                   u=+0.950000 v=+0.700000       Fx=+0.597691 Fy=-0.246351 Fz=+0.037005      #
$Z                                      #                   u=+1.000000 v=+0.700000       Fx=+0.677763 Fy=-0.259725 Fz=+0.097890      #
$Z                                      #                                                                                             #
$Z                                      # pour la gauche du champ (u={+0.90,+0.95,1.00}), alors qu'a droite (u={+1.05,+1.10}) par     #
$Z                                      # periodisation, on trouve :                                                                  #
$Z                                      #                                                                                             #
$Z                                      #                   u=+1.050000 v=+0.700000       Fx=+0.684564 Fy=-0.200189 Fz=+0.073212      #
$Z                                      #                   u=+1.100000 v=+0.700000       Fx=+0.695948 Fy=-0.055914 Fz=+0.017930      #
$Z                                      #                                                                                             #
$Z                                      # On voit que 'Fy' decroit {-0.218798,-0.246351,-0.259725} puis croit {-0.200189,-0.055914}.  #
$Z                                      # C'est ce changement de sens de variation qui est le responsable de ce type de plis. On      #
$Z                                      # pourra regarder l'image 'v $xiirs/PROJ.42.2$COORD_Y p=$xiP/cercle.35' a l'ordonnnee +0.7    #
$Z                                      # et on verra qu'effectivement a droite le niveau decroit alors qu'a gauche (c'est-a-dire     #
$Z                                      # la "suite" de la droite par periodisation) il remonte...                                    #
$Z                                      #                                                                                             #
$Z                                      # On notera bien que l'exemple precedent est "a cheval" et fait reference a la periodicite    #
$Z                                      # du champ ; mais le phenomene de "plis" n'est pas associe a la periodicite et peut donc se   #
$Z                                      # rencontrer n'importe ou dans un champ...                                                    #

$Z                  $DELETE             $xTV/Fx
$Z                  $DELETE             $xTV/Fy
$Z                  $DELETE             $xTV/Fz



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