#######################################################################################################################################
# #
# C O N S T R U C T I O N D ' U N E S P I R A L E C A R R E E D E C H A M P S : #
# #
# #
# Author of '$xiirv/.PIAL.E1.1.$U' : #
# #
# Jean-Francois COLONNA (LACTAMME, 20240602081216). #
# #
#######################################################################################################################################
$Z setParam _____FDecimales $xrp/Decimales_Base10_Pi_____100000
$Z setParam _____NombreDisques 9
$Z setParam _____NChiffres `calculINS $_____NombreDisques*$_____NombreDisques`
$Z # ATTENTION : je note le 20240530154543 que '$_____NChiffres' ne peut pas etre remplace #
$Z # par le carre de '$_____NombreDisques' ('v $xiirv/.PIAL.61.3.$U _____NombreDisques') car, en #
$Z # effet, '$_____NChiffres' definit le nombre de points de la spirale que l'on va generer et #
$Z # certains de ses points peuvent etre en dehors de l'image ('v PIAL.69.pi.2$m'). Quant #
$Z # a '$_____NombreDisques' il ne sert qu'a definir '$_____FacteurX' et '$_____FacteurY' de #
$Z # facon a ce que les carres circonscrits aux disques remplissent exactement le carre de #
$Z # l'image... #
$Z setParam _____SpiraleR $GRIS_4
$Z setParam _____SpiraleV $GRIS_4
$Z setParam _____SpiraleB $GRIS_4
$Z setParam _____SpiraleRAYON 0.004
$Z setParam _____DistanceMini 0.002
$Z setParam _____GaussPara "c=800"
$Z setParam _____LChamps "$K_VIDE"
$Z setParam _____SepChamps ";"
$Z # L'usage du limiteur ";" (au lieu de ":") est destine a eviter le message d'erreur : #
$Z # #
$Z # Bad : modifier in $ (d). #
$Z # #
$Z setParam _____Escalier $xiP/escalier20
$Z setParam _____Passes 0
$Z setParam _____NiveauFond $GRIS_8
$Z setParam _____Echelle 0.2
$Z setParam _____TranslationY 0.994
$Z setParam _____Perspective 2.4
$Z setParam _____PaletteB $xiP/gris.41
$Z setParam _____Palette $xiP/arc_ciel.C2
$Z set _____FacteurX=`calculINS $dimX/$_____NombreDisques`
$Z set _____FacteurY=`calculINS $dimY/$_____NombreDisques`
$Z FilSTmpB FCoOrDoNnEeS
$Z $CA $_____FDecimales | \
$Z $SE -e "s/^ *//" \
$Z -e "s/\.//" | \
$Z $GRE -v '^ *$' | \
$Z $SE -e "s/ //g" \
$Z -e "s/\(.\)/\1@/g" | \
$Z $R "@" "$K_NL" | \
$Z $GRE -v '^ *$' | \
$Z $HEA -$_____NChiffres \
$Z > $FCoOrDoNnEeS.chiffres
$Z set CeNtRe_X=`calcul 1/2`
$Z set CeNtRe_Y=`calcul 1/2`
$Z set DeMi_CoTe_X=`$xci/valeurs_spir$X premiere=1 derniere=3 PX=1 PY=0 | $SOR -u`
$Z set DeMi_CoTe_X=`calcul ($_____FacteurX*($DeMi_CoTe_X[2]-$DeMi_CoTe_X[1]))/2`
$Z set DeMi_CoTe_Y=`$xci/valeurs_spir$X premiere=1 derniere=3 PX=0 PY=1 | $SOR -u`
$Z set DeMi_CoTe_Y=`calcul ($_____FacteurY*($DeMi_CoTe_Y[2]-$DeMi_CoTe_Y[1]))/2`
$Z $xci/valeurs_spir$X premiere=1 derniere=$_____NChiffres \
$Z PX=1 PY=0 | \
$Z $xrv/AXPB.01$X ne=0 \
$Z fichier== \
$Z a=$_____FacteurX \
$Z b=-$CeNtRe_X \
$Z XPBA=VRAI | \
$Z $xrv/ADD2.11$X ne=0 \
$Z fichier1== \
$Z fichier2=+$CeNtRe_X \
$Z > $FCoOrDoNnEeS$COORD_X
$Z $xci/valeurs_spir$X premiere=1 derniere=$_____NChiffres \
$Z PX=0 PY=1 | \
$Z $xrv/AXPB.01$X ne=0 \
$Z fichier== \
$Z a=$_____FacteurY \
$Z b=-$CeNtRe_Y \
$Z XPBA=VRAI | \
$Z $xrv/ADD2.11$X ne=0 \
$Z fichier1== \
$Z fichier2=+$CeNtRe_Y \
$Z > $FCoOrDoNnEeS$COORD_Y
$Z # Definition de la spirale carree... #
$Z set Npoints__X=`$CA $FCoOrDoNnEeS$COORD_X | $WCl`
$Z set Npoints__Y=`$CA $FCoOrDoNnEeS$COORD_Y | $WCl`
$Z set Npoints_XY=`$xcg/MIN2.01$X x=$Npoints__X y=$Npoints__Y`
$Z $xrv/particule.10$X npoints=$Npoints_XY \
$Z LISTE_X=$FCoOrDoNnEeS$COORD_X \
$Z LISTE_Y=$FCoOrDoNnEeS$COORD_Y \
$Z LISTE_Z=0.5 \
$Z LISTE_ROUGE=$_____SpiraleR \
$Z LISTE_VERTE=$_____SpiraleV \
$Z LISTE_BLEUE=$_____SpiraleB \
$Z LISTE_RAYON=$_____SpiraleRAYON \
$Z isoles=FAUX chainer=VRAI \
$Z ajuster_points=VRAI equidistance=VRAI \
$Z distance_minimale=$_____DistanceMini \
$Z Lz=1000 \
$Z ZOOM=1 \
$Z couronne=1 \
$Z N_au_carre=VRAI \
$Z editer_extrema_hors=FAUX \
$Z editer_mauvais_encadrement_niveaux_interpoles=FAUX \
$Z chiffres=0 \
$Z R=$xTV/SPIRALE_CARREE \
$Z $formatI
$Z # Visualisation la spirale carree... #
$m4 _____include(_____xiirv/.PIAL.91.1.2._____U)
$Z # Definition de la liste '$_____LChamps'... #
$Z set TrAnSlX=0
$Z set TrAnSlY=0
$Z $CA $FCoOrDoNnEeS$COORD_X | \
$Z $xrv/ADD2.11$X ne=0 \
$Z fichier1== \
$Z fichier2=+$TrAnSlX | \
$Z $xrv/SOUS.11$X ne=0 \
$Z fichier1== \
$Z fichier2=+$CeNtRe_X \
$Z > $FCoOrDoNnEeS.translatees$COORD_X
$Z $CA $FCoOrDoNnEeS$COORD_Y | \
$Z $xrv/ADD2.11$X ne=0 \
$Z fichier1== \
$Z fichier2=+$TrAnSlY | \
$Z $xrv/SOUS.11$X ne=0 \
$Z fichier1== \
$Z fichier2=+$CeNtRe_Y \
$Z > $FCoOrDoNnEeS.translatees$COORD_Y
$Z $DELETE $FCoOrDoNnEeS$COORD_X
$Z $DELETE $FCoOrDoNnEeS$COORD_Y
$Z $MV $FCoOrDoNnEeS.translatees$COORD_X $FCoOrDoNnEeS$COORD_X
$Z $MV $FCoOrDoNnEeS.translatees$COORD_Y $FCoOrDoNnEeS$COORD_Y
$Z $CA $FCoOrDoNnEeS$COORD_X | \
$Z $xrv/SOUS.11$X ne=0 \
$Z fichier1== \
$Z fichier2=+$DeMi_CoTe_X \
$Z > $FCoOrDoNnEeS.MiNiMuM$COORD_X
$Z $CA $FCoOrDoNnEeS$COORD_X | \
$Z $xrv/ADD2.11$X ne=0 \
$Z fichier1== \
$Z fichier2=+$DeMi_CoTe_X \
$Z > $FCoOrDoNnEeS.MaXiMuM$COORD_X
$Z $CA $FCoOrDoNnEeS$COORD_Y | \
$Z $xrv/SOUS.11$X ne=0 \
$Z fichier1== \
$Z fichier2=+$DeMi_CoTe_Y \
$Z > $FCoOrDoNnEeS.MiNiMuM$COORD_Y
$Z $CA $FCoOrDoNnEeS$COORD_Y | \
$Z $xrv/ADD2.11$X ne=0 \
$Z fichier1== \
$Z fichier2=+$DeMi_CoTe_Y \
$Z > $FCoOrDoNnEeS.MaXiMuM$COORD_Y
$Z set NPoInTsX=`$CA $FCoOrDoNnEeS$COORD_X | $WCl`
$Z set NPoInTsY=`$CA $FCoOrDoNnEeS$COORD_Y | $WCl`
$Z set NPoInTs_=`$xcg/MIN2.01$X x=$NPoInTsX y=$NPoInTsY`
$Z $xrv/BARY.11$X ne=$NPoInTs_ \
$Z fichier1=$FCoOrDoNnEeS.MiNiMuM$COORD_X \
$Z fichier2=$FCoOrDoNnEeS.MaXiMuM$COORD_X | \
$Z $xrv/MUL2.11$X ne=0 \
$Z fichier1== \
$Z fichier2=-1 \
$Z > $FCoOrDoNnEeS.TrAnSlAtIoN$COORD_X
$Z $xrv/BARY.11$X ne=$NPoInTs_ \
$Z fichier1=$FCoOrDoNnEeS.MiNiMuM$COORD_Y \
$Z fichier2=$FCoOrDoNnEeS.MaXiMuM$COORD_Y | \
$Z $xrv/MUL2.11$X ne=0 \
$Z fichier1== \
$Z fichier2=-1 \
$Z > $FCoOrDoNnEeS.TrAnSlAtIoN$COORD_Y
$Z set LCoOrDoNnEeS_X=`$CA $FCoOrDoNnEeS$COORD_X | $HEA -$_____NChiffres`
$Z set LCoOrDoNnEeS_Y=`$CA $FCoOrDoNnEeS$COORD_Y | $HEA -$_____NChiffres`
$Z set LMiNiMuM_X=`$CA $FCoOrDoNnEeS.MiNiMuM$COORD_X | $HEA -$_____NChiffres`
$Z set LMaXiMuM_X=`$CA $FCoOrDoNnEeS.MaXiMuM$COORD_X | $HEA -$_____NChiffres`
$Z set LMiNiMuM_Y=`$CA $FCoOrDoNnEeS.MiNiMuM$COORD_Y | $HEA -$_____NChiffres`
$Z set LMaXiMuM_Y=`$CA $FCoOrDoNnEeS.MaXiMuM$COORD_Y | $HEA -$_____NChiffres`
$Z set LTrAnSlAtIoN_X=`$CA $FCoOrDoNnEeS.TrAnSlAtIoN$COORD_X | $HEA -$_____NChiffres`
$Z set LTrAnSlAtIoN_Y=`$CA $FCoOrDoNnEeS.TrAnSlAtIoN$COORD_Y | $HEA -$_____NChiffres`
$Z set LChIfFrEs_____=`$CA $FCoOrDoNnEeS.chiffres | $HEA -$_____NChiffres`
$Z # Pour faire des tests : #
$Z # #
$Z # set LChIfFrEs_____=(0 1 2 3 4 5 6 7 8 9) #
$Z # set _____NChiffres=$#LChIfFrEs_____ #
$Z # #
$Z # peut etre utile... #
$Z $xci/init$X valeur=0 \
$Z standard=FAUX \
$Z R=$xTV/CHAMP_COMPLET \
$Z $formatI
$Z set DeCoMpTeUr=$_____NChiffres
$Z set index=1
$Z while ($DeCoMpTeUr > 0)
$Z set MiNiMuM_X=$LMiNiMuM_X[$index]
$Z set MaXiMuM_X=$LMaXiMuM_X[$index]
$Z set MiNiMuM_Y=$LMiNiMuM_Y[$index]
$Z set MaXiMuM_Y=$LMaXiMuM_Y[$index]
$Z set TrAnSlAtIoN_X=$LTrAnSlAtIoN_X[$index]
$Z set TrAnSlAtIoN_Y=$LTrAnSlAtIoN_Y[$index]
$Z set ArGuMeNtS="$K_VIDE"
$Z set ArGuMeNtS="$ArGuMeNtS"" carre_X_CHAMP_3D=FAUX"
$Z set ArGuMeNtS="$ArGuMeNtS"" TRANSLATION_OX=$TrAnSlAtIoN_X"
$Z set ArGuMeNtS="$ArGuMeNtS"" TRANSLATION_OY=$TrAnSlAtIoN_Y"
$Z set ArGuMeNtS="$ArGuMeNtS"" FTransformation_x_Minimal=$MiNiMuM_X"
$Z set ArGuMeNtS="$ArGuMeNtS"" FTransformation_x_Maximal=$MaXiMuM_X"
$Z set ArGuMeNtS="$ArGuMeNtS"" FTransformation_y_Minimal=$MiNiMuM_Y"
$Z set ArGuMeNtS="$ArGuMeNtS"" FTransformation_y_Maximal=$MaXiMuM_Y"
$Z $xci/gauss$X \
$Z $ArGuMeNtS \
$Z $_____GaussPara \
$Z standard=FAUX \
$Z R=$xTV/GAUSS \
$Z $formatI
$Z @ indexc = $LChIfFrEs_____[$index] + 1
$Z set ChAmP=`echo "$_____LChamps[$indexc]" | $R "$_____SepChamps" " "`
$Z eval $ChAmP \
$Z $ArGuMeNtS \
$Z standard=FAUX \
$Z $formatI | \
$Z $xci/multi_02.01$X A2=$xTV/GAUSS \
$Z standard=FAUX \
$Z message_extrema=FAUX \
$Z R=$xTV/CHAMP_ELEMENTAIRE \
$Z $formatI
$Z $xci/substitue$X \
$Z A=$xTV/CHAMP_ELEMENTAIRE \
$Z standard=FAUX \
$Z message_zones_plates=FAUX \
$Z substitution=L_SUBSTITUTION_ROUGE \
$Z p=$_____Escalier.$LChIfFrEs_____[$index] \
$Z $formatI | \
$Z $xci/maximum$X \
$Z standard=FAUX \
$Z A2=$xTV/CHAMP_COMPLET \
$Z R=$xTV/CHAMP_COMPLET \
$Z $formatI
$Z # Construction iterative du champ... #
$Z @ index = $index + 1
$Z @ DeCoMpTeUr = $DeCoMpTeUr - 1
$Z end
$Z FilSTmpE FCoOrDoNnEeS
$Z $xci/lissage$X \
$Z A=$xTV/CHAMP_COMPLET \
$Z standard=FAUX \
$Z passes=$_____Passes \
$Z navap=VRAI \
$Z R=$xTV/SURFACE \
$Z $formatI
$Z $xci/acces$X \
$Z A=$xTV/CHAMP_COMPLET \
$Z standard=FAUX zero=FAUX \
$Z $formatI | \
$Z $xci/vraies_C$X \
$Z p=$_____Palette \
$Z R=$xTV/CHAMP_COMPLET \
$Z $formatI
$Z execRVB $xci/init$X \
$Z n=$_____NiveauFond \
$Z R=$xTV/FOND%s \
$Z $formatI
$Z execRVB $xci/cache$X A=$xTV/FOND%s \
$Z M=$xTV/SPIRALE_CARREE%s \
$Z anti_aliasing=VRAI \
$Z R=$xTV/FOND%s \
$Z $formatI
$Z $xci/cache.21$Z $xTV/FOND $xTV/CHAMP_COMPLET $xTV/TEXTURE
$Z set PaRaMeTrEs="$K_VIDE"
$Z set PaRaMeTrEs="$PaRaMeTrEs"" echelle=$_____Echelle"
$Z execRVB $xci/montagne.01$X \
$Z A=$xTV/SURFACE \
$Z standard=FAUX \
$Z zero=FAUX \
$Z avion=VRAI \
$Z $PaRaMeTrEs \
$Z T=$xTV/TEXTURE%s \
$Z R=$_____ImageR$m%s \
$Z $formatI
$Z # Vue d'avion du champ... #
$Z set PaRaMeTrEs="$PaRaMeTrEs"" Ty=$_____TranslationY"
$Z set PaRaMeTrEs="$PaRaMeTrEs"" perspective=$_____Perspective"
$Z set PaRaMeTrEs="$PaRaMeTrEs"" falaise=VRAI"
$Z $xci/montagne.01$X \
$Z A=$xTV/SURFACE \
$Z standard=FAUX zero=FAUX \
$Z T=$BLANC \
$Z avion=FAUX \
$Z $PaRaMeTrEs \
$Z Z-Buffer=VRAI \
$Z R=$xTV/MONTAGNE \
$Z $formatI | \
$Z $xci/complement$X \
$Z $formatI | \
$Z $xci/multi_02.01$X \
$Z exponentiation_image=VRAI \
$Z exposant=1 \
$Z $formatI | \
$Z $xci/substitue$X \
$Z p=$_____PaletteB \
$Z substitution=L_SUBSTITUTION_ROUGE \
$Z R=$xTV/BRUME \
$Z $formatI
$Z execRVB $xci/montagne.01$X \
$Z A=$xTV/SURFACE \
$Z standard=FAUX \
$Z zero=FAUX \
$Z T=$xTV/TEXTURE%s \
$Z avion=FAUX \
$Z $PaRaMeTrEs \
$Z R=$_____ImageR$M%s \
$Z $formatI
$Z # Vue de cote du champ... #
$Z execRVB $xci/brume.11$X \
$Z A=$_____ImageR$M%s \
$Z B=$xTV/BRUME \
$Z R=$_____ImageR$M%s \
$Z $formatI
$Z # Vue de cote du champ dans la brume... #