#######################################################################################################################################
#                                                                                                                                     #
#         S I M U L A T I O N   D E S   P O M M I E R S   D E   M O N D R I A N  :                                                    #
#                                                                                                                                     #
#                                                                                                                                     #
#         Author of '$xiirv/.POMM.11.1.$U' :                                                                                          #
#                                                                                                                                     #
#                     Jean-Francois Colonna (LACTAMME, 20210525113645).                                                               #
#                                                                                                                                     #
#######################################################################################################################################

$Z                  setParam            _____NGenerations             50

$Z                  setParam            _____PIterations              8
$Z                                      # Parametre introduit le 20210602120112...                                                    #

$Z                  setParam            _____PGraine                  1311
$Z                                      # Parametre introduit le 20210602105007...                                                    #

$Z                  setParam            _____PMailleX                 0.05
$Z                                      # Parametre introduit le 20210602105007...                                                    #

$Z                  setParam            _____PMailleY                 0.05
$Z                                      # Parametre introduit le 20210602105007...                                                    #

$Z                  setParam            _____GParametres              "$K_VIDE"
$Z                                      # Parametre introduit le 20210606105420...                                                    #

$Z                  setParam            _____PFX                      0
$Z                                      # Parametre introduit le 20210602120112...                                                    #

$Z                  setParam            _____PFY                      0
$Z                                      # Parametre introduit le 20210602120112...                                                    #

$Z                  setParam            _____GBorneInfCx2             1.0

$Z                  setParam            _____GBorneSupCx2             8.0

$Z                  setParam            _____GGraineCx2               1789

$Z                  setParam            _____GBorneInfTrX             -0.5

$Z                  setParam            _____GBorneSupTrX             +0.5

$Z                  setParam            _____GGraineTrX               1515

$Z                  setParam            _____GBorneInfCy2             1.0

$Z                  setParam            _____GBorneSupCy2             8.0

$Z                  setParam            _____GGraineCy2               1947

$Z                  setParam            _____GBorneInfTrY             -0.5

$Z                  setParam            _____GBorneSupTrY             +0.5

$Z                  setParam            _____GGraineTrY               1941

$Z                  setParam            _____GBandeInf                40

$Z                  setParam            _____GBandeSup                45

$Z                  setParam            _____FIterations              2

$Z                  setParam            _____FGraine                  2001

$Z                  setParam            _____Distance_Cx2_Cy2         4.0
$Z                                      # Parametre introduit le 20210526092519...                                                    #

$Z                  setParam            _____F1MailleX                0.2

$Z                  setParam            _____F1MailleY                0.2

$Z                  setParam            _____FBandeInf                80

$Z                  setParam            _____FBandeSup                160

$Z                  setParam            _____Diagonale                FAUX

$Z                  setParam            _____OptimiserIncrement       VRAI

$Z                  setParam            _____UtiliserTaille           FAUX

$Z                  setParam            _____AvertirCouleurs          VRAI

$Z                  setParam            _____NiveauInitial            $NOIR_PLANCHER

$Z                  setParam            _____IncrementNiveau          1

$Z                  setParam            _____NiveauAleatoire          VRAI

$Z                  setParam            _____GraineNiveau             1821

$Z                  setParam            _____F2MailleX                0.1

$Z                  setParam            _____F2MailleY                0.1

$Z                  setParam            _____CAlpha                   0.9

$Z                  setParam            _____CBeta                    0.1

$Z                  setParam            _____Npoints                  9

$Z                  setParam            _____PaletteP                 $xiP/Mondrian.31

$Z   set  LGBorneCx2=`$xci/valeurs_alea$X p=1 d=$_____NGenerations bi=$_____GBorneInfCx2 bs=$_____GBorneSupCx2 graine=$_____GGraineCx2`
$Z   set  LGBorneTrX=`$xci/valeurs_alea$X p=1 d=$_____NGenerations bi=$_____GBorneInfTrX bs=$_____GBorneSupTrX graine=$_____GGraineTrX`
$Z   set  LGBorneCy2=`$xci/valeurs_alea$X p=1 d=$_____NGenerations bi=$_____GBorneInfCy2 bs=$_____GBorneSupCy2 graine=$_____GGraineCy2`
$Z   set  LGBorneTrY=`$xci/valeurs_alea$X p=1 d=$_____NGenerations bi=$_____GBorneInfTrY bs=$_____GBorneSupTrY graine=$_____GGraineTrY`

$Z                  FileTmpB            ImAgE

$Z                  $xci/init$X                                                                                                         \
$Z                                      niveau=$NOIR                                                                                    \
$Z                                      R=$ImAgE.GF                                                                                     \
$Z                                                                                                  $formatI

$Z                  IfBasic             (`$xcg/IFNE.01.x x=$_____PFX y=0` == $EXIST) ThenBasic
$Z                                      $xci/fract_2D.01$X                                                                              \
$Z                                                          graine=`calcul $_____PGraine+1`                                             \
$Z                                                          mx=$_____PMailleX my=$_____PMailleY                                         \
$Z                                                          iterations=$_____PIterations                                                \
$Z                                                          editer_message_extrema=FAUX                                                 \
$Z                                                          R=$ImAgE.P$COORD_X                                                          \
$Z                                                                                                                      $formatI
                                        # La perturbation eventuelle des gaussiennes a ete introduite le 20210602105007...            #
$Z                  ElseBasic
$Z                                      $xci/init$X                                                                                     \
$Z                                                          niveau=$NOIR                                                                \
$Z                                                          R=$ImAgE.P$COORD_X                                                          \
$Z                                                                                                                      $formatI
$Z                  EndifBasic

$Z                  IfBasic             (`$xcg/IFNE.01.x x=$_____PFY y=0` == $EXIST) ThenBasic
$Z                                      $xci/fract_2D.01$X                                                                              \
$Z                                                          graine=`calcul $_____PGraine+7`                                             \
$Z                                                          mx=$_____PMailleX my=$_____PMailleY                                         \
$Z                                                          iterations=$_____PIterations                                                \
$Z                                                          editer_message_extrema=FAUX                                                 \
$Z                                                          R=$ImAgE.P$COORD_Y                                                          \
$Z                                                                                                                      $formatI
                                        # La perturbation eventuelle des gaussiennes a ete introduite le 20210602105007...            #
$Z                  ElseBasic
$Z                                      $xci/init$X                                                                                     \
$Z                                                          niveau=$NOIR                                                                \
$Z                                                          R=$ImAgE.P$COORD_Y                                                          \
$Z                                                                                                                      $formatI
$Z                  EndifBasic

$Z                  set                 CoMpTeUr=1
$Z                  set                 FGrAiNe=$_____FGraine

$Z                  while               ($CoMpTeUr <= $_____NGenerations)
$Z                                      set                 CoEf_cx2=$LGBorneCx2[$CoMpTeUr]
$Z                                      set                 CoEf_cy2=$LGBorneCy2[$CoMpTeUr]

$Z                                      set                 DifF_cx2_cy2=`$xcg/SOUA.01$X x=$CoEf_cx2 y=$CoEf_cy2`
$Z                                      set                 MiN_cx2_cy2=`$xcg/MIN2.01$X x=$CoEf_cx2 y=$CoEf_cy2`
$Z                                      set                 MaX_cx2_cy2=`$xcg/MAX2.01$X x=$CoEf_cx2 y=$CoEf_cy2`
$Z                                      set                 SeUiL_cx2_cy2=$_____Distance_Cx2_Cy2
$Z                                      set                 MiN_cx2_cy2_s2=`$xcg/MOIT.01$X a=$MiN_cx2_cy2`
                                        # Ce qui suit est destine a faire que 'cx2' et 'cy2' soient assez differents l'un de l'autre  #
                                        # afin que la courbe engendree par 'v $xci/gauss$K' ci-apres soit differente d'un cercle...   #

$Z                                      IfBasic             (`$xcg/IFLT.01.x x=$DifF_cx2_cy2 y=$SeUiL_cx2_cy2` == $EXIST) ThenBasic
$Z                                                          IfBasic   (`$xcg/IFLT.01.x x=$CoEf_cx2 y=$CoEf_cy2` == $EXIST) ThenBasic
$Z                                                                    set       CoEf_cx2=`$xcg/SOUS.01$X a=$CoEf_cx2 b=$MiN_cx2_cy2_s2`
$Z                                                                    set       CoEf_cy2=`$xcg/ADD2.01$X a=$CoEf_cy2 b=$SeUiL_cx2_cy2`
$Z                                                                    set       CoEf_cy2=`$xcg/SOUS.01$X a=$CoEf_cy2 b=$MiN_cx2_cy2_s2`
$Z                                                          ElseBasic
$Z                                                                    set       CoEf_cx2=`$xcg/ADD2.01$X a=$CoEf_cx2 b=$SeUiL_cx2_cy2`
$Z                                                                    set       CoEf_cx2=`$xcg/SOUS.01$X a=$CoEf_cx2 b=$MiN_cx2_cy2_s2`
$Z                                                                    set       CoEf_cy2=`$xcg/SOUS.01$X a=$CoEf_cy2 b=$MiN_cx2_cy2_s2`
$Z                                                          EndifBasic
$Z                                      ElseBasic
$Z                                      EndifBasic

$Z                                      $xci/gauss$X                                                                                    \
$Z                                                          cx2=$CoEf_cx2                                                               \
$Z                                                          cy2=$CoEf_cy2                                                               \
$Z                                                          matrice=VRAI a11=1 a22=1 a33=1                                              \
$Z                                                          TRANSLATION_OX=$LGBorneTrX[$CoMpTeUr]                                       \
$Z                                                          TRANSLATION_OY=$LGBorneTrY[$CoMpTeUr]                                       \
$Z                                                          $_____GParametres                                                           \
$Z                                                                                                                      $formatI  |     \
$Z                                      $xci/distord.01$X                                                                               \
$Z                                                          fX=$_____PFX X=$ImAgE.P$COORD_X                                             \
$Z                                                          fY=$_____PFY Y=$ImAgE.P$COORD_Y                                             \
$Z                                                                                                                      $formatI  |     \
$Z                                      $xci/passe_bande$X                                                                              \
$Z                                                          seuil_inferieur=$_____GBandeInf                                             \
$Z                                                          seuil_superieur=$_____GBandeSup                                             \
$Z                                                          forcer_niveau_intermediaire=VRAI niveau_intermediaire=$BLANC                \
$Z                                                          R=$ImAgE.G                                                                  \
$Z                                                                                                                      $formatI

$Z                                      $xci/fract_2D.01$X                                                                              \
$Z                                                          graine=$FGrAiNe                                                             \
$Z                                                          mx=$_____F1MailleX my=$_____F1MailleY                                       \
$Z                                                          iterations=$_____FIterations                                                \
$Z                                                          editer_message_extrema=FAUX                                                 \
$Z                                                                                                                      $formatI  |     \
$Z                                      $xci/passe_bande$X                                                                              \
$Z                                                          seuil_inferieur=$_____FBandeInf                                             \
$Z                                                          seuil_superieur=$_____FBandeSup                                             \
$Z                                                          forcer_niveau_intermediaire=VRAI niveau_intermediaire=$BLANC                \
$Z                                                          R=$ImAgE.F                                                                  \
$Z                                                                                                                      $formatI
$Z                                      if                  ($?_____Masque == $EXIST) then
$Z                                                          $xci/and$X                                                                  \
$Z                                                                              A1=$ImAgE.F                                             \
$Z                                                                              A2=$_____Masque                                         \
$Z                                                                              R=$ImAgE.F                                              \
$Z                                                                                                                      $formatI
                                        # La possibilite d'avoir un masque pre-calcule a ete introduite le 20210614135041...          #
$Z                                      else
$Z                                      endif

$Z                                      $xci/and$X                                                                                      \
$Z                                                          A1=$ImAgE.G                                                                 \
$Z                                                          A2=$ImAgE.F                                                                 \
$Z                                                                                                                      $formatI  |     \
$Z                                      $xci/or_02$X                                                                                    \
$Z                                                          A1=$ImAgE.GF                                                                \
$Z                                                          R=$ImAgE.GF                                                                 \
$Z                                                                                                                      $formatI

$Z                                      @                   FGrAiNe = $FGrAiNe + 1
$Z                                      @                   CoMpTeUr = $CoMpTeUr + 1
$Z                  end

$Z                  set       DiReCtIoN_1="$K_VIDE"

$Z                  set       DiReCtIoN_1="$DiReCtIoN_1"" est=VRAI"
$Z                  set       DiReCtIoN_1="$DiReCtIoN_1"" nord=VRAI"
$Z                  set       DiReCtIoN_1="$DiReCtIoN_1"" ouest=VRAI"
$Z                  set       DiReCtIoN_1="$DiReCtIoN_1"" sud=VRAI"

$Z                  set       DiReCtIoN_2="$K_VIDE"

$Z                  set       DiReCtIoN_2="$DiReCtIoN_2"" nord___est=$_____Diagonale"
$Z                  set       DiReCtIoN_2="$DiReCtIoN_2"" nord_ouest=$_____Diagonale"
$Z                  set       DiReCtIoN_2="$DiReCtIoN_2"" sud_ouest=$_____Diagonale"
$Z                  set       DiReCtIoN_2="$DiReCtIoN_2"" sud___est=$_____Diagonale"

$Z                  $xci/contours.22$X                                                                                                  \
$Z                                      A=$ImAgE.GF                                                                                     \
$Z                                      utiliser_taille=$_____UtiliserTaille                                                            \
$Z                                      avertir_couleurs=$_____AvertirCouleurs                                                          \
$Z                                      optimiser_increment=$_____OptimiserIncrement                                                    \
$Z                                      niveau_initial=$_____NiveauInitial                                                              \
$Z                                      increment_niveau=$_____IncrementNiveau                                                          \
$Z                                      niveau_aleatoire=$_____NiveauAleatoire                                                          \
$Z                                      graine_niveau_aleatoire=$_____GraineNiveau                                                      \
$Z                                      $DiReCtIoN_1                                                                                    \
$Z                                      $DiReCtIoN_2                                                                                    \
$Z                                      R=$ImAgE.Contour                                                                                \
$Z                                                                                                  $formatI

$Z                  $xci/fract_2D.01$X                                                                                                  \
$Z                                      graine=$FGrAiNe                                                                                 \
$Z                                      mx=$_____F2MailleX my=$_____F2MailleY                                                           \
$Z                                      R=$ImAgE.Fractal                                                                                \
$Z                                                                                                  $formatI

$Z                  $xci/interpole.01$X                                                                                                 \
$Z                                      alpha=$_____CAlpha                                                                              \
$Z                                      A1=$ImAgE.Contour                                                                               \
$Z                                      beta=$_____CBeta                                                                                \
$Z                                      A2=$ImAgE.Fractal                                                                               \
$Z                                      R=$ImAgE.1                                                                                      \
$Z                                                                                                  $formatI

$Z                  $xci/complement$X                                                                                                   \
$Z                                      A=$ImAgE.GF                                                                                     \
$Z                                      R=$ImAgE.GF                                                                                     \
$Z                                                                                                  $formatI

$Z                  $xci/vraies_C$X                                                                                                     \
$Z                                      A=$ImAgE.1                                                                                      \
$Z                                      p=$_____PaletteP                                                                                \
$Z                                      R=$ImAgE.2                                                                                      \
$Z                                                                                                  $formatI

$Z        execRVB  "$xci/and$X                                                                                                          \
$Z                                      A1=$ImAgE.GF                                                                                    \
$Z                                      A2=$ImAgE.2%s                                                                                   \
$Z                                                                                                  $formatI                      |     \
$Z                  $xci/convol.01$X                                                                                                    \
$Z                                      points=$_____Npoints                                                                            \
$Z                                      R=$_____ImageR%s                                                                                \
$Z                                                                                                  $formatI"

$Z                  FileTmpE            ImAgE



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