#######################################################################################################################################
# #
# G E N E R A T I O N D ' U N L A B Y R I N T H E : #
# #
# #
# Author of '$xiirv/.LABY.11.1.$U' : #
# #
# Jean-Francois Colonna (LACTAMME, 20161116170309). #
# #
#######################################################################################################################################
$Z setParam _____Graine 7
$Z setParam _____Taille 6
$Z setParam _____Dilatation 9
$Z # Argument introduit le 20161117080942... #
$Z setParam _____AttenuationI 0.8
$Z # Argument introduit le 20161117080942... #
$Z setParam _____AttenuationM 0.5
$Z # Argument introduit le 20161118122331... #
$Z setParam _____Palette $xiP/arc_ciel.B3
$Z # L'interet de la palette '$xiP/arc_ciel.G2' est d'etre a luminance constante et ainsi de #
$Z # permettre une visualisation "equitable" des differents sous-ensembles... #
$Z # #
$Z # La modification du 20161120091525 est due au fait que les deux palettes '$xiP/arc_ciel.G2' #
$Z # et '$xiP/arc_ciel.B2' sont strictement identiques, mais que pour des raisons expliquees #
$Z # dans 'v $xigP/arc_ciel.G2$Z 20161120090908', c'est '$xiP/arc_ciel.B2' qu'il convient #
$Z # d'utiliser... #
$Z set NoMbRe=$#_____Liste
$Z FilSTmpB FLaByRiNtHe
$Z alias GLaBy 'set GGrAiNe=\!:1 ; \\
$Z set LiStE=(\!:2*) ; \\
$Z (shuffle $GGrAiNe $LiStE) >>! $FLaByRiNtHe ; \\
$Z unset GGrAiNe LiStE'
$Z # Generation de la definition du labyrinthe... #
$Z set KoMpTeUr=0
$Z set GrAiNe=$_____Graine
$Z while ($KoMpTeUr < $NoMbRe)
$Z GLaBy $GrAiNe $_____Liste
$Z @ GrAiNe = $GrAiNe + 1
$Z @ KoMpTeUr = $KoMpTeUr + 1
$Z end
#20161125114351____:$Z $CA $FLaByRiNtHe | \ #
#20161125114351____:$Z $SE -e "s/ //g" \ #
#20161125114351____:$Z -e 's/$'"/$ReToUr/" \ #
#20161125114351____:$Z > $FLaByRiNtHe.1 #
$Z $CA $FLaByRiNtHe | \
$Z $SE -e "s/ //g" \
$Z -e "s/^/=/" \
$Z -e 's/$'"/,/" \
$Z > $FLaByRiNtHe.1
$Z set LaByRiNtHe=`$CA $FLaByRiNtHe.1 | $xcp/substitue.01$X c01="\n" s01=""`
$Z FilSTmpE FLaByRiNtHe
$Z FilSTmpB FILaByRiNtHe
$Z set ArGuMeNtS="$K_VIDE"
$Z set ArGuMeNtS="$ArGuMeNtS"" A=$NOIR"
$Z set ArGuMeNtS="$ArGuMeNtS"" message=$LaByRiNtHe"
$Z set ArGuMeNtS="$ArGuMeNtS"" bibliotheque=04"
$Z set ArGuMeNtS="$ArGuMeNtS"" taille=$_____Taille"
$Z set ArGuMeNtS="$ArGuMeNtS"" centrer=VRAI"
$Z $xci/message$X \
$Z $ArGuMeNtS \
$Z marquer_interieur_contours=FAUX \
$Z R=$FILaByRiNtHe.1 \
$Z $formatI
$Z # Generation du labyrinthe "narrow". #
$Z $xci/message$X \
$Z $ArGuMeNtS \
$Z marquer_interieur_contours=VRAI \
$Z R=$FILaByRiNtHe.2 \
$Z $formatI
$Z # Generation du labyrinthe "narrow" avec marquage de son interieur. #
$Z $xci/eor$X A1=$FILaByRiNtHe.1 \
$Z A2=$FILaByRiNtHe.2 \
$Z R=$FILaByRiNtHe.narrow \
$Z $formatI
$Z # Recuperation des marqueurs de l'interieur du labyrinthe "narrow". #
$Z $xci/dilate.01$X \
$Z A=$FILaByRiNtHe.1 \
$Z points=$_____Dilatation \
$Z dilater=VRAI \
$Z R=$_____ImageR \
$Z $formatI
$Z $xci/contours.22$X A=$_____ImageR \
$Z optimiser_increment=VRAI \
$Z R=$FILaByRiNtHe.1.all \
$Z $formatI
$Z $xci/seuil$X A=$FILaByRiNtHe.1.all \
$Z R=$FILaByRiNtHe.1.all.masque \
$Z $formatI
$Z # Remplissage de tous les contours. #
$Z $xci/contours.22$X A=$_____ImageR \
$Z M=$FILaByRiNtHe.narrow \
$Z optimiser_increment=VRAI \
$Z R=$FILaByRiNtHe.1.narrow \
$Z $formatI
$Z $xci/seuil$X A=$FILaByRiNtHe.1.narrow \
$Z R=$FILaByRiNtHe.1.narrow.masque \
$Z $formatI
$Z # Remplissage des contours du labyrinthe "narrow". #
$Z $xci/eor$X A1=$FILaByRiNtHe.1.all.masque \
$Z A2=$FILaByRiNtHe.1.narrow.masque \
$Z R=$FILaByRiNtHe.1.wide.masque \
$Z $formatI
$Z # Localisation du remplissage du labyrinthe "wide". #
$Z FilSTmpB FPaLeTtE
$Z $xciP/S_NIVEAU$X \
$Z paletteA=$_____Palette \
$Z niveau=$NOIR \
$Z ROUGE=VRAI nR=$NOIR \
$Z VERTE=VRAI nV=$NOIR \
$Z BLEUE=VRAI nB=$NOIR \
$Z paletteR=$FPaLeTtE
$Z # Il est imperatif que le NOIR reste NOIR car, en effet, il correspond aux interstices #
$Z # du carrelage (introduit le 20161030095958). #
$Z set FaCtEuR_PaRtAgE=0.5
$Z set TrAnS_PaLeTtE=$GRIS_4
$Z # Ainsi on partage en deux la palette '$_____Palette' : la partie [$GRIS_0,$GRIS_4[ pour #
$Z # '$FILaByRiNtHe.1.narrow' et [$GRIS_4,$GRIS_8] pour '$FILaByRiNtHe.1.wide'... #
$Z $xciP/S_NIVEAU$X \
$Z paletteA=$FPaLeTtE \
$Z niveau=$TrAnS_PaLeTtE \
$Z ROUGE=VRAI nR=$NOIR \
$Z VERTE=VRAI nV=$NOIR \
$Z BLEUE=VRAI nB=$NOIR \
$Z paletteR=$FPaLeTtE
$Z $xci/and$X A1=$FILaByRiNtHe.1.all \
$Z A2=$FILaByRiNtHe.1.narrow.masque \
$Z $formatI | \
$Z $xci/scale$X a=$FaCtEuR_PaRtAgE \
$Z b=$GRIS_0 \
$Z $formatI | \
$Z $xci/vraies_C$X \
$Z p=$FPaLeTtE \
$Z R=$FILaByRiNtHe.1.narrow \
$Z $formatI
$Z $xci/and$X A1=$FILaByRiNtHe.1.all \
$Z A2=$FILaByRiNtHe.1.wide.masque \
$Z $formatI | \
$Z $xci/scale$X a=$FaCtEuR_PaRtAgE \
$Z b=$TrAnS_PaLeTtE \
$Z $formatI | \
$Z $xci/vraies_C$X \
$Z p=$FPaLeTtE \
$Z R=$FILaByRiNtHe.1.wide \
$Z $formatI
$Z execRVB "$xci/or_02$X \
$Z A1=$FILaByRiNtHe.1.narrow%s \
$Z A2=$FILaByRiNtHe.1.wide%s \
$Z $formatI | \
$Z $xci/scale$X \
$Z a=$_____AttenuationI \
$Z $formatI | \
$Z $xci/cache$X \
$Z M=$_____ImageR \
$Z R=$_____ImageR.1%s \
$Z $formatI"
$Z # Generation de l'image Resultat montrant tous les contours remplis. #
$Z $xci/and$X A1=$FILaByRiNtHe.1.all \
$Z A2=$FILaByRiNtHe.1.narrow.masque \
$Z $formatI | \
$Z $xci/vraies_C$X \
$Z p=$FPaLeTtE \
$Z R=$_____ImageR.1.narrow \
$Z $formatI
$Z $xci/scale$X A=$FILaByRiNtHe.1.narrow.masque \
$Z a=$_____AttenuationM \
$Z R=$FILaByRiNtHe.1.narrow.masque.1 \
$Z $formatI
$Z $xci/scale$X A=$FILaByRiNtHe.1.wide.masque \
$Z a=$_____AttenuationM \
$Z R=$FILaByRiNtHe.1.wide.masque.1 \
$Z $formatI
$Z execRVB "$xci/scale$X \
$Z A=$FILaByRiNtHe.1.narrow%s \
$Z a=$_____AttenuationI \
$Z $formatI | \
$Z $xci/cache$X \
$Z M=$_____ImageR \
$Z $formatI | \
$Z $xci/or_02$X \
$Z A2=$FILaByRiNtHe.1.wide.masque.1 \
$Z R=$_____ImageR.1.narrow%s \
$Z $formatI"
$Z # Generation de l'image Resultat montrant le labyrinthe "narrow" rempli. #
$Z execRVB "$xci/scale$X \
$Z A=$FILaByRiNtHe.1.wide%s \
$Z a=$_____AttenuationI \
$Z $formatI | \
$Z $xci/cache$X \
$Z M=$_____ImageR \
$Z $formatI | \
$Z $xci/or_02$X \
$Z A2=$FILaByRiNtHe.1.narrow.masque.1 \
$Z R=$_____ImageR.1.wide%s \
$Z $formatI"
$Z # Generation de l'image Resultat montrant le labyrinthe "wide" rempli. #
$Z FilSTmpE FILaByRiNtHe
$Z FilSTmpE FPaLeTtE
Copyright © Jean-François Colonna, 2019-2021.
Copyright © CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / Ecole Polytechnique, 2019-2021.