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