#######################################################################################################################################
# #
# G E N E R A T I O N D ' U N E N T R E L A C S A L E A T O I R E : #
# #
# #
# Author of '$xiirv/.ENTR.51.1.$U' : #
# #
# Jean-Francois Colonna (LACTAMME, 20051120101230). #
# #
#######################################################################################################################################
$Z setParam _____NPoints 20
$Z # Donne le nombre de points qui vont etre generes ; le nombre d'arcs, lui sera fonction de #
$Z # $_____NPoints et de {$_____NInferieur,$_____NSuperieur}. On notera qu'evidemment, dans #
$Z # le processus aleatoire qui va suivre, un meme point peut etre duplique un nombre de fois #
$Z # choisi aleatoirement dans {$_____NInferieur,$_____NSuperieur}... #
$Z setParam _____NInferieur 1
$Z # Definit le nombre inferieur de duplications autorisees. #
$Z setParam _____NSuperieur 8
$Z # Definit le nombre superieur de duplications autorisees. #
$Z setParam _____Graine 1234567
$Z setParam _____Increment 123
$Z setParam _____MinX 0.0
$Z setParam _____MaxX 1.0
$Z setParam _____MinY 0.0
$Z setParam _____MaxY 1.0
$Z setParam _____MinZ 0.0
$Z setParam _____MaxZ 1.0
$Z setParam _____NiveauR_D $GRIS_1
$Z setParam _____NiveauV_D $GRIS_1
$Z setParam _____NiveauB_D $GRIS_1
$Z setParam _____NiveauR_A $GRIS_8
$Z setParam _____NiveauV_A $GRIS_8
$Z setParam _____NiveauB_A $GRIS_8
$Z setParam _____RayonInf 0.01
$Z setParam _____RayonSup $_____RayonInf
$Z setParam _____Grossissement 1
$Z # Parametre introduit le 20051123102537... #
$Z setParam _____Zoom 0.8
$Z setParam _____RotationOX 0.0
$Z setParam _____RotationOY 0.0
$Z setParam _____RotationOZ 0.0
$Z setParam _____Points 32
$Z setParam _____NombreR 8
$Z setParam _____Derivee 1.0
$Z alias Graines 'set VaRiAbLe="\!*" ; \\
$Z GenRdn ; \\
$Z eval "set $VaRiAbLe=$GenRdnValeur" ; \\
$Z unset VaRiAbLe FiLeT'
$Z # Generateur des differentes graines ... #
$Z
$Z set GenRdnGraine=$_____Graine
$Z set GenRdnIncrement=$_____Increment
$Z # Parametrage du generateur aleatoire... #
$Z
$Z Graines Graine_S
$Z Graines Graine_P
$Z
$Z Graines Graine_X
$Z Graines Graine_Y
$Z Graines Graine_Z
$Z
$Z Graines Graine_R
$Z Graines Graine_V
$Z Graines Graine_B
$Z
$Z Graines Graine_r
$Z $DELETE $xTV/DUPLICATEUR
$Z $xrv/val_alea.01$X ne=$_____NPoints \
$Z graine=$Graine_S \
$Z LISTE_BORNES_INFERIEURES=$_____NInferieur \
$Z LISTE_BORNES_SUPERIEURES=$_____NSuperieur \
$Z formater=VRAI entiers=VRAI \
$Z message_borne_superieure_entiere=FAUX \
$Z exemplaires=1 \
$Z > $xTV/DUPLICATEUR
$Z # Les valeurs aleatoires generees ci-apres via 'GenAlea' ou 'GenAleaC' seront dupliquees #
$Z # individuellement un nombre variable de fois defini par '$xTV/DUPLICATEUR'. #
$Z set PaRaMeTrEs="somme=VRAI produit=FAUX Men_tete=FAUX"
$Z set NParticules_s2=`$xrv/cumul.01$X ne=$_____NPoints fichier=$xTV/DUPLICATEUR $PaRaMeTrEs signe="$K_VIDE"`
$Z set NSegment=2
$Z @ NParticules = $NParticules_s2 * $NSegment
$Z $DELETE $xTV/PERMUTATEUR
$Z $xci/valeurs_alea$X premiere=1 derniere=$NParticules_s2 \
$Z graine=$Graine_P \
$Z inf=1 \
$Z sup=$NParticules_s2 \
$Z entiers=VRAI sans_collisions=VRAI \
$Z message_borne_superieure_entiere=FAUX |& \
$Z $xrv/SOUS.11$X ne=0 \
$Z fichier1="=" \
$Z fichier2=-1 \
$Z > $xTV/PERMUTATEUR
$Z # Ensuite, les valeurs aleatoires dupliquees via '$xTV/DUPLICATEUR' seront permutees #
$Z # aleatoirement via '$xTV/PERMUTATEUR'... #
$Z alias GenAlea 'set Gr=\!:1 ; set In=\!:2 ; set Su=\!:3 ; set FiR=\!:4 ; \\
$Z $DELETE $FiR ; \\
$Z $xrv/val_alea.01$X ne=$_____NPoints graine=$Gr \\
$Z LISTE_BORNES_INFERIEURES=$In LISTE_BORNES_SUPERIEURES=$Su \\
$Z > $FiR ; \\
$Z unset Gr In Su FiR'
$Z alias GenAleaC 'set Gr=\!:1 ; set In=\!:2 ; set Su=\!:3 ; set FiR=\!:4 ; \\
$Z $DELETE $FiR ; \\
$Z set InD=`calcul -($Su-$In)/$_____FBrownien` ; set SuD=`calcul +($Su-$In)/$_____FBrownien` ; \\
$Z $xrv/val_alea.01$X ne=$_____NPoints graine=$Gr brownien=VRAI iterer=VRAI \\
$Z LISTE_BORNES_INFERIEURES_CUMULEES=$In LISTE_BORNES_SUPERIEURES_CUMULEES=$Su \\
$Z LISTE_BORNES_INFERIEURES=$InD LISTE_BORNES_SUPERIEURES=$SuD \\
$Z > $FiR ; \\
$Z unset Gr In Su InD SuD FiR'
$Z alias GenDupl 'set FiA=\!:1 ; set FiR=\!:2 ; \\
$Z $DELETE $FiR ; \\
$Z $xrv/duplique.01$X ne=$_____NPoints \\
$Z exemplaires=$xTV/DUPLICATEUR \\
$Z fichier=$FiA | \\
$Z $xrv/permute.11$X ne=0 \\
$Z fichier== \\
$Z permutation=$xTV/PERMUTATEUR | \\
$Z $xrv/duplique.01$X ne=0 \\
$Z fichier== \\
$Z exemplaires=$NSegment > $FiR ; \\
$Z decaleC $FiR 1 ; \\
$Z unset FiA FiR'
$Z if ($?_____FBrownien == $EXIST) then
$Z GenAleaC $Graine_X $_____MinX $_____MaxX $xTV/ALEATOIRES$COORD_X
$Z GenAleaC $Graine_Y $_____MinY $_____MaxY $xTV/ALEATOIRES$COORD_Y
$Z GenAleaC $Graine_Z $_____MinZ $_____MaxZ $xTV/ALEATOIRES$COORD_Z
$Z else
$Z GenAlea $Graine_X $_____MinX $_____MaxX $xTV/ALEATOIRES$COORD_X
$Z GenAlea $Graine_Y $_____MinY $_____MaxY $xTV/ALEATOIRES$COORD_Y
$Z GenAlea $Graine_Z $_____MinZ $_____MaxZ $xTV/ALEATOIRES$COORD_Z
$Z endif
$Z GenDupl $xTV/ALEATOIRES$COORD_X $xTV/COORDONNEES$COORD_X
$Z GenDupl $xTV/ALEATOIRES$COORD_Y $xTV/COORDONNEES$COORD_Y
$Z GenDupl $xTV/ALEATOIRES$COORD_Z $xTV/COORDONNEES$COORD_Z
$Z # Generation des coordonnees des points... #
$Z GenAlea $Graine_R $_____NiveauR_D $_____NiveauR_A $xTV/ALEATOIRES$ROUGE
$Z GenAlea $Graine_V $_____NiveauV_D $_____NiveauV_A $xTV/ALEATOIRES$VERTE
$Z GenAlea $Graine_B $_____NiveauB_D $_____NiveauB_A $xTV/ALEATOIRES$BLEUE
$Z GenDupl $xTV/ALEATOIRES$ROUGE $xTV/COULEURS$ROUGE
$Z GenDupl $xTV/ALEATOIRES$VERTE $xTV/COULEURS$VERTE
$Z GenDupl $xTV/ALEATOIRES$BLEUE $xTV/COULEURS$BLEUE
$Z # Generation des couleurs des points... #
$Z GenAlea $Graine_r $_____RayonInf $_____RayonSup $xTV/ALEATOIRES
$Z GenDupl $xTV/ALEATOIRES $xTV/RAYONS
$Z # Generation des rayons des points... #
$Z $xrv/particule.10$X np=1 iterations=$NParticules \
$Z LISTE_X=$xTV/COORDONNEES$COORD_X \
$Z LISTE_Y=$xTV/COORDONNEES$COORD_Y \
$Z LISTE_Z=$xTV/COORDONNEES$COORD_Z \
$Z grossissement=$_____Grossissement \
$Z LISTE_RAYON=$xTV/RAYONS \
$Z LISTE_ROUGE=$xTV/COULEURS$ROUGE \
$Z LISTE_VERTE=$xTV/COULEURS$VERTE \
$Z LISTE_BLEUE=$xTV/COULEURS$BLEUE \
$Z Lz=1000 ZOOM=$_____Zoom \
$Z ROTATION_OX=$_____RotationOX \
$Z ROTATION_OY=$_____RotationOY \
$Z ROTATION_OZ=$_____RotationOZ \
$Z isoles=FAUX chainer=FAUX \
$Z ajuster_points=VRAI points=$_____Points nombreR=$_____NombreR \
$Z cubique=VRAI LISTE_dX=$_____Derivee LISTE_dY=$_____Derivee LISTE_dZ=$_____Derivee \
$Z RVB=VRAI \
$Z R=$_____ImageR \
$Z chiffres=0 \
$Z $formatI
$Z # Visualisation de l'entrelacs... #
$Z $DELETE $xTV/DUPLICATEUR
$Z $DELETE $xTV/PERMUTATEUR
$Z $DELETE $xTV/ALEATOIRES$COORD_X
$Z $DELETE $xTV/ALEATOIRES$COORD_Y
$Z $DELETE $xTV/ALEATOIRES$COORD_Z
$Z $DELETE $xTV/COORDONNEES$COORD_X
$Z $DELETE $xTV/COORDONNEES$COORD_Y
$Z $DELETE $xTV/COORDONNEES$COORD_Z
$Z $DELETE $xTV/ALEATOIRES$ROUGE
$Z $DELETE $xTV/ALEATOIRES$VERTE
$Z $DELETE $xTV/ALEATOIRES$BLEUE
$Z $DELETE $xTV/COULEURS$ROUGE
$Z $DELETE $xTV/COULEURS$VERTE
$Z $DELETE $xTV/COULEURS$BLEUE
$Z $DELETE $xTV/ALEATOIRES
$Z $DELETE $xTV/RAYONS