####################################################################################################################################### # # # G E N E R A T I O N D ' U N " R O B E R T & S O N I A D E L A U N A Y " : # # # # # # Author of '$xiirv/.DELA.11.1.$U' : # # # # Jean-Francois COLONNA (LACTAMME, 20220628104423). # # # ####################################################################################################################################### #20220628152824____:$Z setParam _____Fond $NOIR # $Z setParam _____Fond $BLANC #20220628152732____:$Z setParam _____Nombre 20 # #20220629080156____:$Z setParam _____Nombre 40 # #20220629095043____:$Z setParam _____Nombre 20 # $Z setParam _____Nombre 40 $Z setParam _____GraineX 1789 $Z setParam _____GraineY 1947 $Z setParam _____GraineR 2001 #20220628153840____:$Z setParam _____MinimumT 16 # #20220628182038____:$Z setParam _____MinimumR 2 # #20220628183622____:$Z setParam _____MinimumR 5 # #20220629080156____:$Z setParam _____MinimumR 8 # #20220629093621____:$Z setParam _____MinimumR 5.5 # $Z setParam _____MinimumG 5.0 #20220628181554____:$Z setParam _____MaximumR 8 # #20220628182038____:$Z setParam _____MaximumR 6 # #20220628183622____:$Z setParam _____MaximumR 8 # #20220629080156____:$Z setParam _____MaximumR 3 # #20220629093621____:$Z setParam _____MaximumR 2.6 # $Z setParam _____MaximumG 1.6 $Z # Le rayon de chaque disque sera egal a 2.71828 eleve a une puissance aleatoire comprise # $Z # dans [$_____MaximumG,$_____MinimumG]... # $Z # # $Z # On notera qu'un temps [$_____MaximumG,$_____MinimumG] definissait l'amplitude de tirage # $Z # aleatoire des rayons eux-memes. Cela faisait que il y avait tres peu de petits rayons... # $Z # # $Z # On notera aussi la relation d'ordre inversee entre '$_____MinimumG' et '$_____MaximumG' # $Z # qui vient du fait de la definition du champ gaussien (une exponentielle de MOINS quelque # $Z # chose, d'ou l'inversion...). # $Z setParam _____Seuil $GRIS_3 $Z setParam _____GraineQ 1515 #20220628153840____:$Z setParam _____MinimumQ 0.04 # $Z setParam _____MinimumQ 0.01 #20220628153840____:$Z setParam _____MaximumQ 0.20 # $Z setParam _____MaximumQ 0.05 $Z setParam _____GraineP 2061 $Z setParam _____GraineF 3001 $Z set FoRmE_circulaire='arithmetique_etendue_gauss=FAUX' $Z set FoRmE_carree='arithmetique_etendue_gauss=VRAI pxADD2_ADD2=0 pxMIN2_ADD2=0 pxMAX2_ADD2=1' $Z set LFoRmEs="$K_VIDE" $Z set LFoRmEs=($LFoRmEs '$FoRmE_circulaire') $Z set LFoRmEs=($LFoRmEs '$FoRmE_circulaire') $Z set LFoRmEs=($LFoRmEs '$FoRmE_circulaire') $Z set LFoRmEs=($LFoRmEs '$FoRmE_circulaire') $Z set LFoRmEs=($LFoRmEs '$FoRmE_circulaire') $Z set LFoRmEs=($LFoRmEs '$FoRmE_circulaire') $Z set LFoRmEs=($LFoRmEs '$FoRmE_circulaire') $Z set LFoRmEs=($LFoRmEs '$FoRmE_circulaire') #20220628181554____:$Z set LFoRmEs=($LFoRmEs '$FoRmE_carree') # $Z set LFoRmEs=($LFoRmEs '$FoRmE_circulaire') $Z set LFoRmEs=($LFoRmEs '$FoRmE_circulaire') $Z set LFoRmEs=($LFoRmEs '$FoRmE_circulaire') $Z set LFoRmEs=($LFoRmEs '$FoRmE_circulaire') $Z set LFoRmEs=($LFoRmEs '$FoRmE_circulaire') $Z set LFoRmEs=($LFoRmEs '$FoRmE_circulaire') $Z set LFoRmEs=($LFoRmEs '$FoRmE_circulaire') $Z set LFoRmEs=($LFoRmEs '$FoRmE_circulaire') $Z # La liste '$LFoRmEs' est arbitraire et permet de definir la proportion de gaussiennes # $Z # circulaires (via '$FoRmE_circulaire') et de gaussiennes carrees (via '$FoRmE_carree')... # $Z set LPaLeTtEs="$K_VIDE" $Z set LPaLeTtEs=($LPaLeTtEs arc_ciel.C1) $Z set LPaLeTtEs=($LPaLeTtEs fractal.B2) $Z set LPaLeTtEs=($LPaLeTtEs rouge_vert) $Z set LPaLeTtEs=($LPaLeTtEs trou_noir.11) $Z set LPaLeTtEs=($LPaLeTtEs inter.02.11) $Z set LPaLeTtEs=($LPaLeTtEs inter.02.12) $Z set LPaLeTtEs=($LPaLeTtEs random.06) $Z set LPaLeTtEs=($LPaLeTtEs random.86) $Z set LPaLeTtEs=($LPaLeTtEs random.A5) $Z set LPaLeTtEs=($LPaLeTtEs random.B3$Fi) $Z set LPaLeTtEs=($LPaLeTtEs random.B7$Fi) $Z set LPaLeTtEs=($LPaLeTtEs PEA3.35) $Z set LPaLeTtEs=($LPaLeTtEs RubikSCube.02) $Z set LPaLeTtEs=($LPaLeTtEs inter.02.21) $Z set LPaLeTtEs=($LPaLeTtEs rac3.12) $Z set CoMpTeUr=1 $Z set ArGs1="$K_VIDE" $Z set ArGs1="$ArGs1"" premiere=1 derniere=$_____Nombre" $Z set MinXY=-0.5 $Z set MaxXY=+0.5 $Z set MaxG=$_____MinimumG $Z set MinG=$_____MaximumG $Z set MinQ=$_____MinimumQ $Z set MaxQ=$_____MaximumQ $Z set LCeNtRe_X=`$xci/valeurs_alea$X inferieur=$MinXY superieur=$MaxXY $ArGs1 graine=$_____GraineX` $Z set LCeNtRe_Y=`$xci/valeurs_alea$X inferieur=$MinXY superieur=$MaxXY $ArGs1 graine=$_____GraineY` $Z set LCGaUsS=`$xci/valeurs_alea$X inferieur=$MinG superieur=$MaxG $ArGs1 graine=$_____GraineR` $Z set QuAnTiF=`$xci/valeurs_alea$X inferieur=$MinQ superieur=$MaxQ $ArGs1 graine=$_____GraineQ` $Z set ArGs2="$K_VIDE" $Z set ArGs2="$ArGs2"" $ArGs1" $Z set ArGs2="$ArGs2"" entiers=VRAI" $Z set ArGs2="$ArGs2"" mbse=FAUX" $Z set ArGs2="$ArGs2"" signe="$K_VIDE"" $Z set NPaLeTtE=`$xci/valeurs_alea$X inferieur=1 superieur=$#LPaLeTtEs $ArGs2 graine=$_____GraineP` $Z set NFoRmE=`$xci/valeurs_alea$X inferieur=1 superieur=$#LFoRmEs $ArGs2 graine=$_____GraineF` $Z execRVB $xci/init$X \ $Z niveau=$_____Fond \ $Z R=$_____ImageR%s \ $Z $formatI $Z while ($CoMpTeUr <= $_____Nombre) $Z FilSTmpB GaUsS $Z FilSTmpB PaLeTtE $Z $xciP/S_NIVEAU$X \ $Z pA=$LPaLeTtEs[$NPaLeTtE[$CoMpTeUr]] \ $Z niveau=$NOIR \ $Z nR=$NOIR \ $Z nV=$NOIR \ $Z nB=$NOIR \ $Z pR=$PaLeTtE #20220629080156____:$Z set RaYoN=`calcul pow(2,$LRaYoNs[$CoMpTeUr])` # $Z set CGaUsS=`calcul pow($en,$LCGaUsS[$CoMpTeUr])` $Z # Le rayon de chaque disque sera egal a 2.71828 eleve a une puissance aleatoire comprise # $Z # dans [$_____MaximumG,$_____MinimumG]... # $Z # # $Z # On notera qu'un temps [$_____MaximumG,$_____MinimumG] definissait l'amplitude de tirage # $Z # aleatoire des rayons eux-memes. Cela faisait que il y avait tres peu de petits rayons... # $Z # # $Z # On notera aussi la relation d'ordre inversee entre '$_____MinimumG' et '$_____MaximumG' # $Z # qui vient du fait de la definition du champ gaussien (une exponentielle de MOINS quelque # $Z # chose, d'ou l'inversion...). # $Z set FoRmE=`eval echo "$LFoRmEs[$NFoRmE[$CoMpTeUr]]"` $Z $xci/gauss$X \ $Z c=$CGaUsS \ $Z TRANSLATION_OX=$LCeNtRe_X[$CoMpTeUr] \ $Z TRANSLATION_OY=$LCeNtRe_Y[$CoMpTeUr] \ $Z $FoRmE \ $Z $formatI | \ $Z $xci/passe_bande$X \ $Z seuil_inferieur=$_____Seuil \ $Z seuil_superieur=$BLANC \ $Z $formatI | \ $Z $xci/scale$X \ $Z a=$QuAnTiF[$CoMpTeUr] \ $Z message_hors_NOIR_BLANC=FAUX \ $Z $formatI | \ $Z $xci/scale$X \ $Z a=`calcul 1/$QuAnTiF[$CoMpTeUr]` \ $Z message_hors_NOIR_BLANC=FAUX \ $Z $formatI | \ $Z $xci/vraies_C$X \ $Z p=$PaLeTtE \ $Z R=$GaUsS \ $Z $formatI #20220630114446____:$Z $xci/cache.21$Z $_____ImageR $GaUsS $_____ImageR # $Z execZ $xci/cache.21$Z $_____ImageR $GaUsS $_____ImageR $Z # L'introduction de 'execZ' le 20220630114446 a permis, avec '$_____Nombre=10' et en # $Z # mode 'Std', de passer de 00:00:38 a 00:00:20 secondes ! Avec '$_____Nombre=40' et en # $Z # mode 'Squ', le temps de calcul est passe de 00:02:56 a 00:01:37 secondes ! # $Z FilSTmpE GaUsS $Z FilSTmpE PaLeTtE $Z @ CoMpTeUr = $CoMpTeUr + 1 $Z end $Z execRVB $xci/convol.01$X \ $Z A=$_____ImageR%s \ $Z points=25 \ $Z R=$_____ImageR%s \ $Z $formatI