#######################################################################################################################################
#                                                                                                                                     #
#         V I S U A L I S A T I O N   T R I D I M E N S I O N N E L L E   D E   R E S E A U X  :                                      #
#                                                                                                                                     #
#                                                                                                                                     #
#         Author of '$xiird/.NETW.11.1.$U' :                                                                                          #
#                                                                                                                                     #
#                     Jean-Francois Colonna (LACTAMME, 20180518075521).                                                               #
#                                                                                                                                     #
#######################################################################################################################################

#######################################################################################################################################
#                                                                                                                                     #
#         P A R A M E T R E S   C O N T R O L A N T   L E S   C O N N E X I O N S  :                                                  #
#                                                                                                                                     #
#######################################################################################################################################

$Z                  setParam            _____TriangleSuperieur        VRAI
$Z                                      # Parametre introduit le 20180522094144...                                                    #
$Z                                      #                                                                                             #
$Z                                      # S'il vaut 'VRAI' seul le triangle superieur de la matrice des connexions (qui est alors     #
$Z                                      # suppose symetrique) est utilisee...                                                         #

#######################################################################################################################################
#                                                                                                                                     #
#         P A R A M E T R E S   C O N T R O L A N T   L E S   P O T E N T I E L S  :                                                  #
#                                                                                                                                     #
#######################################################################################################################################

$Z                  SETParam            _____DilaterPotentiel         $NEXIST
$Z                                      # Parametre introduit le 20180605072347...                                                    #
$Z                                      #                                                                                             #
$Z                                      # S'il vaut '$EXIST', l'histogramme du potentiel (controle par '$_____NHPotentiel') est       #
$Z                                      # calcule et ce potentiel subit alors une transformation non lineaire (controlee par          #
$Z                                      # '$_____EDilatationPotentiel') permettant de dilater la zone la plus "peuplee" de ce meme    #
$Z                                      # potentiel...                                                                                #

$Z                  setParam            _____NHPotentiel              1000
$Z                                      # Parametre introduit le 20180605113703...                                                    #

$Z                  setParam            _____EDilatationPotentiel     `calcul 1/2`
$Z                                      # Parametre introduit le 20180605102658...                                                    #
$Z                                      #                                                                                             #
$Z                                      # Le 20180716102732, j'ai change drastiquement la valeur de '$_____EDilatationPotentiel'      #
$Z                                      # car, en effet, l'utilisation de 1/5 provoquait la separation des donnees contenues dans     #
$Z                                      # '$FDoNnEeS.12$COORD_Z' (apres centrage sur la moyenne...) en deux paquets correspondant     #
$Z                                      # en haut aux valeurs positives et en bas aux valeurs negatives, avec donc au milieu un       #
$Z                                      # gros "trou" correspondant au zero (c'est-a-dire a la valeur moyenne '$MoYeNnE'...           #
$Z                                      #                                                                                             #
$Z                                      # A titre d'exemple, voici l'effet de '$_____EDilatationPotentiel=1/5' sur un fichier de      #
$Z                                      # test (avec l'option "valeurs_negatives=VRAI") :                                             #
$Z                                      #                                                                                             #
$Z                                      #                   -0.900              -0.97914836236098                                     #
$Z                                      #                   -0.800              -0.95635249979004                                     #
$Z                                      #                   -0.700              -0.93114991509484                                     #
$Z                                      #                   -0.600              -0.90288045144743                                     #
$Z                                      #                   -0.500              -0.87055056329612                                     #
$Z                                      #                   -0.400              -0.83255320740187                                     #
$Z                                      #                   -0.300              -0.78600308559662                                     #
$Z                                      #                   -0.200              -0.7247796636777                                      #
$Z                                      #                   -0.100              -0.63095734448019                                     #
$Z                                      #                   -0.010              -0.3981071705535                                      #
$Z                                      #                   -0.001              -0.25118864315096   <---                              #
$Z                                      #                   0                   0                       |---- TROU...                 #
$Z                                      #                   +0.001              +0.25118864315096   <---                              #
$Z                                      #                   +0.010              +0.3981071705535                                      #
$Z                                      #                   +0.100              +0.63095734448019                                     #
$Z                                      #                   +0.200              +0.7247796636777                                      #
$Z                                      #                   +0.300              +0.78600308559662                                     #
$Z                                      #                   +0.400              +0.83255320740187                                     #
$Z                                      #                   +0.500              +0.87055056329612                                     #
$Z                                      #                   +0.600              +0.90288045144743                                     #
$Z                                      #                   +0.700              +0.93114991509484                                     #
$Z                                      #                   +0.800              +0.95635249979004                                     #
$Z                                      #                   +0.900              +0.97914836236098                                     #
$Z                                      #                                                                                             #
$Z                                      # et l'on voit ainsi qu'il n'y a plus rien autour du 0. Meme les valeurs comme 0.01 et 0.001  #
$Z                                      # sont tres eloignees du 0 bien que tres faibles en valeur absolue...                         #

#######################################################################################################################################
#                                                                                                                                     #
#         P A R A M E T R E S   C O N T R O L A N T   L E S   C O U R A N T S  :                                                      #
#                                                                                                                                     #
#######################################################################################################################################

$Z                  SETParam            _____ValeurAbsolueC           $EXIST
$Z                                      # Parametre introduit le 20180601170617 ('v $xiird/.NETW.41.1.$U _____ValeurAbsolueC').       #
$Z                                      #                                                                                             #
$Z                                      # S'il vaut '$EXIST', ce sont les valeurs absolues des courants qui sont utilisees...         #

#######################################################################################################################################
#                                                                                                                                     #
#         P A R A M E T R E S   C O N T R O L A N T   L E S   C O O R D O N N E E S  :                                                #
#                                                                                                                                     #
#######################################################################################################################################

$Z                  setParam            _____ForcerXMinimum           `GetParam $xrv/normalise.01$X forcer_extrema`
$Z                                      # Parametre introduit le 20180705110716...                                                    #

$Z                  setParam            _____FXMinimum                `GetParam $xrv/normalise.01$X minimum_force`
$Z                                      # Parametre introduit le 20180601184747...                                                    #

$Z                  setParam            _____FXMaximum                `GetParam $xrv/normalise.01$X maximum_force`
$Z                                      # Parametre introduit le 20180601184747...                                                    #

$Z                  setParam            _____ForcerYMinimum           `GetParam $xrv/normalise.01$X forcer_extrema`
$Z                                      # Parametre introduit le 20180714094252 (un peu tard car oublie...).                          #

$Z                  setParam            _____FYMinimum                `GetParam $xrv/normalise.01$X minimum_force`
$Z                                      # Parametre introduit le 20180601184747...                                                    #

$Z                  setParam            _____FYMaximum                `GetParam $xrv/normalise.01$X maximum_force`
$Z                                      # Parametre introduit le 20180601184747...                                                    #

$Z                  setParam            _____ForcerZMinimum           `GetParam $xrv/normalise.01$X forcer_extrema`
$Z                                      # Parametre introduit le 20180714094252 (un peu tard car oublie...).                          #

$Z                  setParam            _____FZMinimum                `GetParam $xrv/normalise.01$X minimum_force`
$Z                                      # Parametre introduit le 20180601184747...                                                    #

$Z                  setParam            _____FZMaximum                `GetParam $xrv/normalise.01$X maximum_force`
$Z                                      # Parametre introduit le 20180601184747...                                                    #

$Z                  setParam            _____XMinimum                 `GetParam $xrv/normalise.01$X origine`
$Z                                      # Parametre introduit le 20180601184747...                                                    #

$Z                  setParam            _____XMaximum                 `GetParam $xrv/normalise.01$X extremite`
$Z                                      # Parametre introduit le 20180601184747...                                                    #

$Z                  setParam            _____YMinimum                 `GetParam $xrv/normalise.01$X origine`
$Z                                      # Parametre introduit le 20180601184747...                                                    #

$Z                  setParam            _____YMaximum                 `GetParam $xrv/normalise.01$X extremite`
$Z                                      # Parametre introduit le 20180601184747...                                                    #

$Z                  set                 CoOrDoNnEe_Z=0.5

$Z                  setParam            _____ZMinimum                 $CoOrDoNnEe_Z
$Z                                      # Parametre introduit le 20180522094144...                                                    #

$Z                  setParam            _____ZMaximum                 $CoOrDoNnEe_Z
$Z                                      # Parametre introduit le 20180522094144...                                                    #

#######################################################################################################################################
#                                                                                                                                     #
#         P A R A M E T R E S   C O N T R O L A N T   U N E   E V E N T U E L L E                                                     #
#         C O U R B U R E   A L E A T O I R E   D E S   C O N N E X I O N S  :                                                        #
#                                                                                                                                     #
#######################################################################################################################################

$Z                  setParam            _____GraineX                  1789
$Z                                      # Parametre introduit le 20180527063501...                                                    #

$Z                  SETParam            _____BinfX                    0
$Z                                      # Parametre introduit le 20180527063501...                                                    #

$Z                  SETParam            _____BsupX                    0
$Z                                      # Parametre introduit le 20180527063501...                                                    #

$Z                  setParam            _____ExclusionAX              1
$Z                                      # Parametre introduit le 20180529102145...                                                    #

$Z                  setParam            _____ExclusionBX              0
$Z                                      # Parametre introduit le 20180529102145...                                                    #

$Z                  setParam            _____GraineY                  1947
$Z                                      # Parametre introduit le 20180527063501...                                                    #

$Z                  SETParam            _____BinfY                    0
$Z                                      # Parametre introduit le 20180527063501...                                                    #

$Z                  SETParam            _____BsupY                    0
$Z                                      # Parametre introduit le 20180527063501...                                                    #

$Z                  setParam            _____ExclusionAY              1
$Z                                      # Parametre introduit le 20180529102145...                                                    #

$Z                  setParam            _____ExclusionBY              0
$Z                                      # Parametre introduit le 20180529102145...                                                    #

#######################################################################################################################################
#                                                                                                                                     #
#         P A R A M E T R E S   C O N T R O L A N T   L E   C O L O R I A G E   D E S   C O N N E X I O N S  :                        #
#                                                                                                                                     #
#######################################################################################################################################

$Z                  setParam            _____Palette1                 $xiP/bleu_roug.23
$Z                                      # Cette palette code les courants negatifs avec des couleurs froides et les courants          #
$Z                                      # positifs avec des couleurs chaudes...                                                       #

$Z                  setParam            _____Palette2                 $xiP/bleu_roug.23

#######################################################################################################################################
#                                                                                                                                     #
#         P A R A M E T R E S   C O N T R O L A N T   L A   V I S U A L I S A T I O N   D E S   S O M M E T S  :                      #
#                                                                                                                                     #
#######################################################################################################################################

$Z                  setParam            _____RougeMinimum             $GRIS_1
$Z                                      # Parametre introduit le 20180607110001...                                                    #

$Z                  setParam            _____RougeMaximum             $GRIS_8
$Z                                      # Parametre introduit le 20180607110001...                                                    #

$Z                  setParam            _____VerteMinimum             $GRIS_1
$Z                                      # Parametre introduit le 20180607110001...                                                    #

$Z                  setParam            _____VerteMaximum             $GRIS_8
$Z                                      # Parametre introduit le 20180607110001...                                                    #

$Z                  setParam            _____BleueMinimum             $GRIS_1
$Z                                      # Parametre introduit le 20180607110001...                                                    #

$Z                  setParam            _____BleueMaximum             $GRIS_8
$Z                                      # Parametre introduit le 20180607110001...                                                    #

#######################################################################################################################################
#                                                                                                                                     #
#         P A R A M E T R E S   C O N T R O L A N T   L A   V I S U A L I S A T I O N   D E S   C O N N E X I O N S  :                #
#                                                                                                                                     #
#######################################################################################################################################

$Z                  setParam            _____Rayon                    0.004

$Z                  setParam            _____Grossissement            3
$Z                                      # Parametre introduit le 20180524103306...                                                    #

$Z                  SETParam            _____RayonConnexionCourant    $NEXIST
$Z                                      # Parametre introduit le 20180606100418...                                                    #
$Z                                      #                                                                                             #
$Z                                      # S'il vaut '$EXIST', le rayon des connexions est fonction des courants et est controle       #
$Z                                      # par les parametres {$_____CMinimum,$_____CMaximum}.                                         #

$Z                  setParam            _____CMinimum                 0.5
$Z                                      # Parametre introduit le 20180607110001...                                                    #

$Z                  setParam            _____CMaximum                 1.0
$Z                                      # Parametre introduit le 20180607110001...                                                    #

$Z                  SETParam            _____RayonEgalPotentiel       $NEXIST
$Z                                      # Parametre introduit le 20180601131639 ('v $xiird/.NETW.41.1.$U _____RayonEgalPotentiel').   #
$Z                                      #                                                                                             #
$Z                                      # S'il vaut '$EXIST', le rayon des connexions est fonction des potentiels et est controle     #
$Z                                      # par les parametres {$_____RPotentiels,$_____EPotentiels,$_____PMinimum,$_____PMaximum}.     #
$Z                                      #                                                                                             #
$Z                                      # S'il vaut '$NEXIST', le rayon des connexions est proportionnel au nombre de connexions      #
$Z                                      # entrantes et sortantes en chaque noeud...                                                   #

$Z                  setParam            _____RPotentiels              0
$Z                                      # Parametre introduit le 20180525104526...                                                    #

$Z                  setParam            _____EPotentiels              1
$Z                                      # Parametre introduit le 20180527055932...                                                    #

$Z                  setParam            _____PMinimum                 1
$Z                                      # Parametre introduit le 20180527055932...                                                    #

$Z                  setParam            _____PMaximum                 1
$Z                                      # Parametre introduit le 20180527055932...                                                    #

#######################################################################################################################################
#                                                                                                                                     #
#         P A R A M E T R E S   C O N T R O L A N T   L A   " M I S E   E N   S C E N E "  :                                          #
#                                                                                                                                     #
#######################################################################################################################################

$Z                  setParam            _____Fond                     $GRIS_0
$Z                                      # Parametre introduit le 20180528144348...                                                    #

$Z                  setParam            _____Zoom                     0.8

$Z                  setParam            _____RotationX                0
$Z                                      # Parametre introduit le 20180522094144...                                                    #

$Z                  setParam            _____RotationY                0
$Z                                      # Parametre introduit le 20180522094144...                                                    #

$Z                  setParam            _____TranslationX             `GetParam $xrv/particule.10$X TRANSLATION_OX`
$Z                                      # Parametre introduit le 20180529115919...                                                    #

$Z                  setParam            _____TranslationY             `GetParam $xrv/particule.10$X TRANSLATION_OY`
$Z                                      # Parametre introduit le 20180529115919...                                                    #

$Z                  setParam            _____NAuCarre                 VRAI
$Z                                      # Parametre introduit le 20180529125836...                                                    #

$Z                  setParam            _____ParticulePara1           "$K_VIDE"
$Z                                      # Parametre introduit le 20180528104211...                                                    #

$Z                  setParam            _____Redirection              "$K_VIDE"
$Z                                      # Parametre introduit le 20180607133705...                                                    #

#######################################################################################################################################
#                                                                                                                                     #
#         T R A I T E M E N T   I N I T I A L   D E S   F I C H I E R S   A R G U M E N T S  :                                        #
#                                                                                                                                     #
#######################################################################################################################################

$Z                  FileTmpB            IFoNd

$Z                  execRVB             $xci/init$X         n=$_____Fond                                                                \
$Z                                                          R=$IFoNd%s                                                                  \
$Z                                                                              $formatI


$Z                  set                 DeFaUlT_CoUrAnTs__=0
$Z                  set                 DeFaUlT_PoTeNtIeLs=$CoOrDoNnEe_Z

$Z                  set                 DiReCtIoNs=".directions"
$Z                  set                 RaYoNs=".rayons"

$Z                  FileTmpB            FDoNnEeS
$Z                  FileTmpB            MaTrIcE_CoNnExIoN

$Z                  $CA                 $_____Fdescription$COORD_X                                                                |     \
$Z                  $R                  "[ ,;]" "$K_NL"                                                                           |     \
$Z                  $GRE                -v '^ *$'                                                                                       \
$Z                                                >  $FDoNnEeS.0$COORD_X

$Z                  $CA                 $_____Fdescription$COORD_Y                                                                |     \
$Z                  $R                  "[ ,;]" "$K_NL"                                                                           |     \
$Z                  $GRE                -v '^ *$'                                                                                       \
$Z                                                >  $FDoNnEeS.0$COORD_Y

#20180602091933____:$Z                  $CA                 $_____Fdescription$CoNnExIoNs                                    |     \  #
#20180602091933____:$Z                  $SE                 -e "s/ //g" -e "s/,//g" -e "s/0//g"                              |     \  #
#20180602091933____:$Z                  $GRE                -v '^ *$'                                                        |     \  #
#20180602091933____:$Z                  $AW                 ' { print length($1) } '                                               \  #
#20180602091933____:$Z                                                                    >  $FDoNnEeS.0$NCoNnExIoNs                  #
$Z                                      # Le nombre de connexions pour chaque noeud a ete introduit le 20180601121413...              #

$Z                  $CA                 $_____Fdescription$CoNnExIoNs                                                             |     \
$Z                  $R                  "[ ,;]" "$K_NL"                                                                           |     \
$Z                  $GRE                -v '^ *$'                                                                                       \
$Z                                                >  $FDoNnEeS.0$CoNnExIoNs

$Z                  if                  ($_____ValeurAbsolueC == $NEXIST) then
$Z                                      set                 Sup_Signe=neutre
$Z                                      # Ainsi, on conserve les valeurs positives et negatives (introduit le 20180601154122).        #
$Z                  else
$Z                                      set                 Sup_Signe=ABSO.01
$Z                                      # Ainsi, en supprimant le signe, on prend les valeurs absolues (introduit le 20180601154122). #
$Z                  endif

$Z                  if                  (-e $_____Fdescription$CoUrAnTs__) then
$Z                                      # Test introduit le 20180524092426...                                                         #
#20180603082029____:$Z                                      $CA                 $_____Fdescription$CoUrAnTs__                |     \  #
#20180603082029____:$Z                                      $R                  "[ ,;]" "$K_NL"                              |     \  #
#20180603082029____:$Z                                      $GRE                -v '^ *$'                                    |     \  #
#20180603082029____:$Z                                      $SE                 -e "s/$Sup_Signe//"                                \  #
#20180603082029____:$Z                                                                              >  $FDoNnEeS.0$CoUrAnTs__         #

$Z                                      $CA                 $_____Fdescription$CoUrAnTs__                                         |     \
$Z                                      $R                  "[ ,;]" "$K_NL"                                                       |     \
$Z                                      $GRE                -v '^ *$'                                                             |     \
$Z                                      $xrv/$Sup_Signe$X   ne=0 fichier==                                                              \
$Z                                                                    >  $FDoNnEeS.0$CoUrAnTs__
$Z                                      # En procedant ainsi, on autorise les fichiers arguments '$_____Fdescription' a etre dans un  #
$Z                                      # format beaucoup plus lisible. Ici, on met donc une valeur par ligne et ce sans ligne vide.  #
$Z                  else
$Z                                      $PAST               $FDoNnEeS.0$COORD_X $FDoNnEeS.0$COORD_Y                               |     \
$Z                                      $SE                 -e 's/^.*$'"/$DeFaUlT_CoUrAnTs__/"                                          \
$Z                                                                    >  $FDoNnEeS.0$CoUrAnTs__
$Z                                      # On genere ainsi un fichier de courants arbitraires. On notera le '$PAST' destine            #
$Z                                      # uniquement a un usage "symetrique" de '$COORD_X' et de '$COORD_Y'...                        #
$Z                  endif

$Z                  if                  (-e $_____Fdescription$PoTeNtIeLs) then
$Z                                      $CA                 $_____Fdescription$PoTeNtIeLs                                         |     \
$Z                                      $R                  "[ ,;]" "$K_NL"                                                       |     \
$Z                                      $GRE                -v '^ *$'                                                                   \
$Z                                                                    >  $FDoNnEeS.0$PoTeNtIeLs
$Z                                      # Le fichier des potentiels a ete introduit le 20180524093112 mais est inutile a cette date.  #
$Z                  else
$Z                                      $PAST               $FDoNnEeS.0$COORD_X $FDoNnEeS.0$COORD_Y                               |     \
$Z                                      $SE                 -e 's/^.*$'"/$DeFaUlT_PoTeNtIeLs/"                                          \
$Z                                                                    >  $FDoNnEeS.0$PoTeNtIeLs
$Z                                      # On genere ainsi un fichier de potentiels arbitraires. On notera le '$PAST' destine          #
$Z                                      # uniquement a un usage "symetrique" de '$COORD_X' et de '$COORD_Y'...                        #
$Z                  endif

#######################################################################################################################################
#                                                                                                                                     #
#         T R A I T E M E N T   D E S   C O O R D O N N E E S  :                                                                      #
#                                                                                                                                     #
#######################################################################################################################################

$Z                  set                 NBpointsX=`$CA $FDoNnEeS.0$COORD_X | $WCl`
$Z                  set                 NBpointsY=`$CA $FDoNnEeS.0$COORD_Y | $WCl`
$Z                  set                 NBpointsXY=`$xcg/MIN2.01$X x=$NBpointsX y=$NBpointsY`
$Z                  set                 NBpointsP=`$CA $FDoNnEeS.0$PoTeNtIeLs | $WCl`
$Z                  set                 NBpoints=`$xcg/MIN2.01$X a=$NBpointsXY b=$NBpointsP`

$Z                  set                 DiMeNsIoN_X=`$CA $FDoNnEeS.0$COORD_X | $WCl`
$Z                  set                 DiMeNsIoN_Y=`$CA $FDoNnEeS.0$COORD_Y | $WCl`

$Z                  SformatI
$Z                  XYmaxNe             `calculINS $DiMeNsIoN_X-1` `calculINS $DiMeNsIoN_Y-1`

$Z                  $xrv/store_niveau$X                                                                                                 \
$Z                                      ne=`calcul $DiMeNsIoN_X*$DiMeNsIoN_Y`                                                           \
$Z                                      LISTE_NIVEAU=$FDoNnEeS.0$CoNnExIoNs                                                             \
$Z                                      triangle_superieur=FAUX                                                                         \
$Z                                                                              $formatI                                          |     \
$Z                  $xrv/ComptageLignesColonnes.01$X                                                                                    \
$Z                                      comptage_lignes=VRAI                                                                            \
$Z                                                >  $FDoNnEeS.0$NCoNnExIoNs
$Z                                      # Comptage du nombre de connexions de chaque neoud (mis ici le 20180602091933 a cause du      #
$Z                                      # 'XYmaxNe' qui est necessaire...).                                                           #

$Z                  set                 PMiNiMuM=`$CA $FDoNnEeS.0$NCoNnExIoNs | $xrv/extrema.01$X ne=0 fichier== minimum_seul=VRAI`
$Z                  set                 PMaXiMuM=`$CA $FDoNnEeS.0$NCoNnExIoNs | $xrv/extrema.01$X ne=0 fichier== maximum_seul=VRAI`

$Z                  $xrv/store_niveau$X                                                                                                 \
$Z                                      ne=`calcul $DiMeNsIoN_X*$DiMeNsIoN_Y`                                                           \
$Z                                      LISTE_NIVEAU=$FDoNnEeS.0$CoNnExIoNs                                                             \
$Z                                      triangle_superieur=$_____TriangleSuperieur                                                      \
$Z                                      R=$MaTrIcE_CoNnExIoN                                                                            \
$Z                                                                              $formatI
$Z                                      # Ainsi, on transforme le triangle superieur de la matrice de connexion '$CoNnExIoNs'         #
$Z                                      # en une image...                                                                             #

$Z                  FileTmpB            CoOrDoNnEeS

$Z                  set                 ArGuMeNtS="$K_VIDE"
$Z                  set                 ArGuMeNtS="$ArGuMeNtS"" denormalisees=VRAI"
$Z                  set                 ArGuMeNtS="$ArGuMeNtS"" premiere=1"
$Z                  set                 ArGuMeNtS="$ArGuMeNtS"" derniere=$tailleI"

$Z                  $xci/valeurs_imag$X $ArGuMeNtS                                                                                      \
$Z                                      PX=1 PY=0                                                                                       \
$Z                                                                              $formatI                                                \
$Z                                                >  $CoOrDoNnEeS$COORD_X
$Z                  $xci/valeurs_imag$X $ArGuMeNtS                                                                                      \
$Z                                      PX=0 PY=1                                                                                       \
$Z                                                                              $formatI                                                \
$Z                                                >  $CoOrDoNnEeS$COORD_Y
$Z                                      # Afin de pouvoir convertir l'image '$MaTrIcE_CoNnExIoN' en une liste de niveaux '$EXIST'     #
$Z                                      # ci-apres...                                                                                 #

$Z                  unset               ArGuMeNtS

$Z                  $xrv/load_image$X                                                                                                   \
$Z                                      A=$MaTrIcE_CoNnExIoN                                                                            \
$Z                                      LISTE_X=$CoOrDoNnEeS$COORD_X                                                                    \
$Z                                      LISTE_Y=$CoOrDoNnEeS$COORD_Y                                                                    \
$Z                                                                              $formatI                                          |     \
$Z                  $xrv/normalise.01$X ne=0 fichier== minimum=$NEXIST maximum=$EXIST                                                   \
$Z                                                >   $FDoNnEeS.1$CoNnExIoNs
$Z                                      # On genere ici une liste de selection des points reellement utiles, c'est-a-dire ceux        #
$Z                                      # du triangle superieur de la matrice de connexion '$CoNnExIoNs'...                           #

$Z                  FileTmpE            CoOrDoNnEeS

$Z                  set                 ArGuMeNtS="$K_VIDE"
$Z                  set                 ArGuMeNtS="$ArGuMeNtS"" ne=0 fichier=="
$Z                  set                 ArGuMeNtS="$ArGuMeNtS"" minimum=0 maximum=1"

#20180705110716____:$Z                  $CA                 $FDoNnEeS.0$COORD_X                                              |     \  #
#20180705110716____:$Z                  $xrv/normalise.01$X $ArGuMeNtS                                                             \  #
#20180705110716____:$Z                                      origine=$_____XMinimum extremite=$_____XMaximum                        \  #
#20180705110716____:$Z                                                >  $FDoNnEeS$COORD_X                                            #

$Z                  $CA                 $FDoNnEeS.0$COORD_X                                                                       |     \
$Z                  $xrv/normalise.01$X $ArGuMeNtS                                                                                      \
$Z                                      forcer_extrema=$_____ForcerXMinimum                                                             \
$Z                                      minimum_force=$_____FXMinimum maximum_force=$_____FXMaximum                                     \
$Z                                      origine=$_____XMinimum extremite=$_____XMaximum                                                 \
$Z                                                >  $FDoNnEeS$COORD_X
$Z                                      # Recuperation de toutes les coordonnees 'X' normalisees dans [0,1]...                        #

#20180705110716____:$Z                  $CA                 $FDoNnEeS.0$COORD_Y                                              |     \  #
#20180705110716____:$Z                  $xrv/normalise.01$X $ArGuMeNtS                                                             \  #
#20180705110716____:$Z                                      origine=$_____YMinimum extremite=$_____YMaximum                        \  #
#20180705110716____:$Z                                                >  $FDoNnEeS$COORD_Y                                            #

$Z                  $CA                 $FDoNnEeS.0$COORD_Y                                                                       |     \
$Z                  $xrv/normalise.01$X $ArGuMeNtS                                                                                      \
$Z                                      forcer_extrema=$_____ForcerYMinimum                                                             \
$Z                                      minimum_force=$_____FYMinimum maximum_force=$_____FYMaximum                                     \
$Z                                      origine=$_____YMinimum extremite=$_____YMaximum                                                 \
$Z                                                >  $FDoNnEeS$COORD_Y
$Z                                      # Recuperation de toutes les coordonnees 'Y' normalisees dans [0,1]...                        #

$Z                  unset               ArGuMeNtS

$Z                  set                 ArGuMeNtS="$K_VIDE"
$Z                  set                 ArGuMeNtS="$ArGuMeNtS"" A=$MaTrIcE_CoNnExIoN"
$Z                  set                 ArGuMeNtS="$ArGuMeNtS"" LISTE_X=$FDoNnEeS$COORD_X"
$Z                  set                 ArGuMeNtS="$ArGuMeNtS"" LISTE_Y=$FDoNnEeS$COORD_Y"
$Z                  set                 ArGuMeNtS="$ArGuMeNtS"" LISTE_Z=$FDoNnEeS.0$PoTeNtIeLs"
$Z                  set                 ArGuMeNtS="$ArGuMeNtS"" connexion=$BLANC"

$Z                  $xrv/connexions.01$X                                                                                                \
$Z                                      $ArGuMeNtS                                                                                      \
$Z                                      pX1=1 pY1=0 pZ1=0 pX2=0 pY2=0 pZ2=0                                                             \
$Z                                                >  $FDoNnEeS.1$COORD_X
$Z                  $xrv/connexions.01$X                                                                                                \
$Z                                      $ArGuMeNtS                                                                                      \
$Z                                      pX1=0 pY1=0 pZ1=0 pX2=1 pY2=0 pZ2=0                                                             \
$Z                                                >  $FDoNnEeS.2$COORD_X
$Z                  $PAST               $FDoNnEeS.1$COORD_X $FDoNnEeS.2$COORD_X                                                   |     \
$Z                  $AW                 ' { print $1 " " $2 } ' | tr " " "$K_NL"                                                        \
$Z                                                >  $FDoNnEeS.12$COORD_X
$Z                                      # Recuperation des coordonnees 'X' utiles (celles du triangle superieur de la matrice de      #
$Z                                      # connexion '$CoNnExIoNs'...                                                                  #

$Z                  $xrv/connexions.01$X                                                                                                \
$Z                                      $ArGuMeNtS                                                                                      \
$Z                                      pX1=0 pY1=1 pZ1=0 pX2=0 pY2=0 pZ2=0                                                             \
$Z                                                >  $FDoNnEeS.1$COORD_Y
$Z                  $xrv/connexions.01$X                                                                                                \
$Z                                      $ArGuMeNtS                                                                                      \
$Z                                      pX1=0 pY1=0 pZ1=0 pX2=0 pY2=1 pZ2=0                                                             \
$Z                                                >  $FDoNnEeS.2$COORD_Y
$Z                  $PAST               $FDoNnEeS.1$COORD_Y $FDoNnEeS.2$COORD_Y                                                   |     \
$Z                  $AW                 ' { print $1 " " $2 } ' | tr " " "$K_NL"                                                        \
$Z                                                >  $FDoNnEeS.12$COORD_Y
$Z                                      # Recuperation des coordonnees 'Y' utiles (celles du triangle superieur de la matrice de      #
$Z                                      # connexion '$CoNnExIoNs'...                                                                  #

$Z                  $xrv/connexions.01$X                                                                                                \
$Z                                      $ArGuMeNtS                                                                                      \
$Z                                      pX1=0 pY1=0 pZ1=1 pX2=0 pY2=0 pZ2=0                                                             \
$Z                                                >  $FDoNnEeS.1$COORD_Z
$Z                  $xrv/connexions.01$X                                                                                                \
$Z                                      $ArGuMeNtS                                                                                      \
$Z                                      pX1=0 pY1=0 pZ1=0 pX2=0 pY2=0 pZ2=1                                                             \
$Z                                                >  $FDoNnEeS.2$COORD_Z
$Z                  $PAST               $FDoNnEeS.1$COORD_Z $FDoNnEeS.2$COORD_Z                                                   |     \
$Z                  $AW                 ' { print $1 " " $2 } ' | tr " " "$K_NL"                                                  |     \
$Z                  $xrv/normalise.01$X ne=0 fichier==                                                                                  \
$Z                                      minimum=$_____ZMinimum maximum=$_____ZMaximum                                                   \
$Z                                                >  $FDoNnEeS.12$COORD_Z
$Z                                      # Recuperation des coordonnees 'Z' utiles (celles du triangle superieur de la matrice de      #
$Z                                      # connexion '$CoNnExIoNs'...                                                                  #

$Z                  unset               ArGuMeNtS

$Z                  FileTmpE            MaTrIcE_CoNnExIoN

#######################################################################################################################################
#                                                                                                                                     #
#         G E N E R A T I O N   D E S   C O U L E U R S  :                                                                            #
#                                                                                                                                     #
#######################################################################################################################################

$Z                  $xrv/selection.01$X ne=0                                                                                            \
$Z                                      fichier=$FDoNnEeS.0$CoUrAnTs__                                                                  \
$Z                                      selection=$FDoNnEeS.1$CoNnExIoNs                                                                \
$Z                                                >  $FDoNnEeS.1$LUMIN
$Z                                      # Recuperation des courants utiles (ceux qui correspondent au triangle superieur de la        #
$Z                                      # matrice de connexion '$CoNnExIoNs'...                                                       #

$Z                  set                 MiNiMuM=`$CA $FDoNnEeS.1$LUMIN | $xrv/extrema.01$X ne=0 fichier== minimum_seul=VRAI`
$Z                  set                 MaXiMuM=`$CA $FDoNnEeS.1$LUMIN | $xrv/extrema.01$X ne=0 fichier== maximum_seul=VRAI`

#20180601111611____:$Z                  echo                "Les courants sont dans [$MiNiMuM,$MaXiMuM]."                             #

$Z                  set                 MiNiMuM=`$xcg/ABSO.01$X a=$MiNiMuM`
$Z                  set                 MaXiMuM=`$xcg/ABSO.01$X a=$MaXiMuM`

$Z                  set                 MiNiMuM=`$xcg/MAX2.01$X a=$MiNiMuM b=$MaXiMuM signe="$K_VIDE"`
$Z                  set                 MaXiMuM=`$xcg/MAX2.01$X a=$MiNiMuM b=$MaXiMuM signe="$K_VIDE"`

$Z                  if                  ($_____ValeurAbsolueC == $NEXIST) then
$Z                                      set                 MiNiMuM=-$MiNiMuM
$Z                  else
$Z                                      set                 MiNiMuM=0
$Z                  endif

$Z                  set                 MaXiMuM=+$MaXiMuM

$Z                  $xrv/normalise.01$X ne=0 fichier=$FDoNnEeS.1$LUMIN                                                                  \
$Z                                      minimum=$NOIR_PLANCHER maximum=$BLANC                                                           \
$Z                                      forcer_extrema=VRAI minimum_force=$MiNiMuM maximum_force=$MaXiMuM                               \
$Z                                      exemplaires=1                                                                                   \
$Z                                      formater=VRAI entiers=VRAI                                                                      \
$Z                                                >  $FDoNnEeS$LUMIN
$Z                                      # Conversion des courants en luminance en faisant en sorte que les courants nuls (a epsilon   #
$Z                                      # pres...) correspondent a '$GRIS_4'...                                                       #

$Z                  set                 ArGuMeNtS="$K_VIDE"
$Z                  set                 ArGuMeNtS="$ArGuMeNtS"" ne=0"
$Z                  set                 ArGuMeNtS="$ArGuMeNtS"" fichier1=$FDoNnEeS.1$LUMIN"
$Z                  set                 ArGuMeNtS="$ArGuMeNtS"" fichier2=0"
$Z                  set                 ArGuMeNtS="$ArGuMeNtS"" exemplaires=1"

$Z                  $xrv/IFGE.11$X      $ArGuMeNtS                                                                                      \
$Z                                                >  $FDoNnEeS.1$DiReCtIoNs

$Z                  $xrv/IFLT.11$X      $ArGuMeNtS                                                                                      \
$Z                                                >  $FDoNnEeS.2$DiReCtIoNs
$Z                                      # Recuperation de la direction du courant...                                                  #
$Z                                      #                                                                                             #
$Z                                      # On notera que lorsque c'est la valeur absolue des courants que l'on utilise, on a alors :   #
$Z                                      #                                                                                             #
$Z                                      #                   $FDoNnEeS.1$DiReCtIoNs = 1                                                #
$Z                                      #                   $FDoNnEeS.2$DiReCtIoNs = 0                                                #
$Z                                      #                                                                                             #

$Z                  unset               ArGuMeNtS

$Z                  set                 ArGuMeNtS="$K_VIDE"
$Z                  set                 ArGuMeNtS="$ArGuMeNtS"" ne=0"
$Z                  set                 ArGuMeNtS="$ArGuMeNtS"" LISTE_NIVEAU=$FDoNnEeS$LUMIN"
$Z                  set                 ArGuMeNtS="$ArGuMeNtS"" palette=$_____Palette1"
$Z                  set                 ArGuMeNtS="$ArGuMeNtS"" exemplaires=1"
$Z                  set                 ArGuMeNtS="$ArGuMeNtS"" formater=VRAI entiers=VRAI"

$Z                  $xrv/N_RVB.01$X     $ArGuMeNtS                                                                                      \
$Z                                      pR=1 pV=0 pB=0                                                                                  \
$Z                                                >  $FDoNnEeS.1$ROUGE
$Z                  $xrv/N_RVB.01$X     $ArGuMeNtS                                                                                      \
$Z                                      pR=0 pV=1 pB=0                                                                                  \
$Z                                                >  $FDoNnEeS.1$VERTE
$Z                  $xrv/N_RVB.01$X     $ArGuMeNtS                                                                                      \
$Z                                      pR=0 pV=0 pB=1                                                                                  \
$Z                                                >  $FDoNnEeS.1$BLEUE

$Z                  unset               ArGuMeNtS

$Z                  set                 ArGuMeNtS="$K_VIDE"
$Z                  set                 ArGuMeNtS="$ArGuMeNtS"" ne=0 LISTE_NIVEAU=$FDoNnEeS$LUMIN"
$Z                  set                 ArGuMeNtS="$ArGuMeNtS"" palette=$_____Palette2"
$Z                  set                 ArGuMeNtS="$ArGuMeNtS"" exemplaires=1"
$Z                  set                 ArGuMeNtS="$ArGuMeNtS"" formater=VRAI entiers=VRAI"

$Z                  $xrv/N_RVB.01$X     $ArGuMeNtS                                                                                      \
$Z                                      pR=1 pV=0 pB=0                                                                                  \
$Z                                                >  $FDoNnEeS.2$ROUGE
$Z                  $xrv/N_RVB.01$X     $ArGuMeNtS                                                                                      \
$Z                                      pR=0 pV=1 pB=0                                                                                  \
$Z                                                >  $FDoNnEeS.2$VERTE
$Z                  $xrv/N_RVB.01$X     $ArGuMeNtS                                                                                      \
$Z                                      pR=0 pV=0 pB=1                                                                                  \
$Z                                                >  $FDoNnEeS.2$BLEUE
$Z                                      # Le passage aux vraies couleurs a eu lieu le 20180525132117...                               #

$Z                  unset               ArGuMeNtS

$Z                  set                 ArGuMeNtS="$K_VIDE"
$Z                  set                 ArGuMeNtS="$ArGuMeNtS"" ne=0"
$Z                  set                 ArGuMeNtS="$ArGuMeNtS"" exemplaires=1"
$Z                  set                 ArGuMeNtS="$ArGuMeNtS"" formater=VRAI entiers=VRAI"

$Z                  $xrv/LIN2.21$X      $ArGuMeNtS                                                                                      \
$Z                                      ponderateur2=$FDoNnEeS.1$DiReCtIoNs fichier1=$FDoNnEeS.1$ROUGE                                  \
$Z                                      ponderateur1=$FDoNnEeS.2$DiReCtIoNs fichier2=$FDoNnEeS.2$ROUGE                                  \
$Z                                                >  $FDoNnEeS.21$ROUGE
$Z                  $xrv/LIN2.21$X      $ArGuMeNtS                                                                                      \
$Z                                      ponderateur2=$FDoNnEeS.1$DiReCtIoNs fichier1=$FDoNnEeS.1$VERTE                                  \
$Z                                      ponderateur1=$FDoNnEeS.2$DiReCtIoNs fichier2=$FDoNnEeS.2$VERTE                                  \
$Z                                                >  $FDoNnEeS.21$VERTE
$Z                  $xrv/LIN2.21$X      $ArGuMeNtS                                                                                      \
$Z                                      ponderateur2=$FDoNnEeS.1$DiReCtIoNs fichier1=$FDoNnEeS.1$BLEUE                                  \
$Z                                      ponderateur1=$FDoNnEeS.2$DiReCtIoNs fichier2=$FDoNnEeS.2$BLEUE                                  \
$Z                                                >  $FDoNnEeS.21$BLEUE

$Z                  $xrv/LIN2.21$X      $ArGuMeNtS                                                                                      \
$Z                                      ponderateur1=$FDoNnEeS.1$DiReCtIoNs fichier1=$FDoNnEeS.1$ROUGE                                  \
$Z                                      ponderateur2=$FDoNnEeS.2$DiReCtIoNs fichier2=$FDoNnEeS.2$ROUGE                                  \
$Z                                                >  $FDoNnEeS.12$ROUGE
$Z                  $xrv/LIN2.21$X      $ArGuMeNtS                                                                                      \
$Z                                      ponderateur1=$FDoNnEeS.1$DiReCtIoNs fichier1=$FDoNnEeS.1$VERTE                                  \
$Z                                      ponderateur2=$FDoNnEeS.2$DiReCtIoNs fichier2=$FDoNnEeS.2$VERTE                                  \
$Z                                                >  $FDoNnEeS.12$VERTE
$Z                  $xrv/LIN2.21$X      $ArGuMeNtS                                                                                      \
$Z                                      ponderateur1=$FDoNnEeS.1$DiReCtIoNs fichier1=$FDoNnEeS.1$BLEUE                                  \
$Z                                      ponderateur2=$FDoNnEeS.2$DiReCtIoNs fichier2=$FDoNnEeS.2$BLEUE                                  \
$Z                                                >  $FDoNnEeS.12$BLEUE
$Z                                      # Melange des palettes '$_____Palette1' et '$_____Palette2' suivant la direction du courant.  #
$Z                                      #                                                                                             #
$Z                                      # On notera le 20180602102211 que permuter les fichiers '$FDoNnEeS.12.*' et '$FDoNnEeS.21.*'  #
$Z                                      # permet d'inverser le sens des degrades...                                                   #

$Z                  unset               ArGuMeNtS

$Z                  $PAST               $FDoNnEeS.12$ROUGE $FDoNnEeS.21$ROUGE                                                     |     \
$Z                  $AW                 ' { print $1 " " $2 } ' | tr " " "$K_NL"                                                        \
$Z                                                >  $FDoNnEeS$ROUGE
$Z                  $PAST               $FDoNnEeS.12$VERTE $FDoNnEeS.21$VERTE                                                     |     \
$Z                  $AW                 ' { print $1 " " $2 } ' | tr " " "$K_NL"                                                        \
$Z                                                >  $FDoNnEeS$VERTE
$Z                  $PAST               $FDoNnEeS.12$BLEUE $FDoNnEeS.21$BLEUE                                                     |     \
$Z                  $AW                 ' { print $1 " " $2 } ' | tr " " "$K_NL"                                                        \
$Z                                                >  $FDoNnEeS$BLEUE
$Z                                      # Melange des palettes '$_____Palette1' et '$_____Palette2' suivant la direction du courant.  #

#######################################################################################################################################
#                                                                                                                                     #
#         P E R T U R B A T I O N S   A L E A T O I R E S   E V E N T U E L L E S  :                                                  #
#                                                                                                                                     #
#######################################################################################################################################

$Z                  set                 NpointsX=`$CA $FDoNnEeS.12$COORD_X | $WCl`
$Z                  set                 NpointsY=`$CA $FDoNnEeS.12$COORD_Y | $WCl`
$Z                  set                 Npoints=`$xcg/MIN2.01$X x=$NpointsX y=$NpointsY`
$Z                  set                 NpointsS2=`calculINS $Npoints/2`

$Z                  if                  (! -e $_____Fdescription$PoTeNtIeLs) then
$Z                                      $DELETE             $FDoNnEeS.12$COORD_Z

$Z                                      $xrv/val_alea.01$X                                                                              \
$Z                                                          ne=$NpointsS2                                                               \
$Z                                                          LISTE_BORNES_INFERIEURES=$_____ZMinimum                                     \
$Z                                                          LISTE_BORNES_SUPERIEURES=$_____ZMaximum                                     \
$Z                                                          exemplaires=2                                                               \
$Z                                                                    >  $FDoNnEeS.12$COORD_Z
$Z                                      # Generation eventuelle d'une coordonnee 'Z' aleatoire pour chaque segment de facon a         #
$Z                                      # pouvoir mettre en evidence les connexions colineaires (en s'aidant de plus d'une rotation   #
$Z                                      # '$_____RotationY' par exemple...).                                                          #
$Z                  else
$Z                  endif

$Z                  set                 ArGuMeNtS="$K_VIDE"
$Z                  set                 ArGuMeNtS="$ArGuMeNtS"" ne=0"
$Z                  set                 ArGuMeNtS="$ArGuMeNtS"" fichier=="
$Z                  set                 ArGuMeNtS="$ArGuMeNtS"" adapter_signe_translation=VRAI"
$Z                                      # Introduit le 20180529102145 et qui est explicite dans 'v $xiird/$Fnota 20180529102145'...   #

$Z                  $xrv/val_alea.01$X                                                                                                  \
$Z                                      ne=$Npoints                                                                                     \
$Z                                      LISTE_BORNES_INFERIEURES=$_____BinfX                                                            \
$Z                                      LISTE_BORNES_SUPERIEURES=$_____BsupX                                                            \
$Z                                      graine=$_____GraineX                                                                      |     \
$Z                  $xrv/AXPB.01$X                                                                                                      \
$Z                                      $ArGuMeNtS                                                                                      \
$Z                                      a=$_____ExclusionAX                                                                             \
$Z                                      b=$_____ExclusionBX                                                                             \
$Z                                                >  $FDoNnEeS.d$COORD_X

$Z                  $xrv/val_alea.01$X                                                                                                  \
$Z                                      ne=$Npoints                                                                                     \
$Z                                      LISTE_BORNES_INFERIEURES=$_____BinfY                                                            \
$Z                                      LISTE_BORNES_SUPERIEURES=$_____BsupY                                                            \
$Z                                      graine=$_____GraineY                                                                      |     \
$Z                  $xrv/AXPB.01$X                                                                                                      \
$Z                                      $ArGuMeNtS                                                                                      \
$Z                                      a=$_____ExclusionAY                                                                             \
$Z                                      b=$_____ExclusionBY                                                                             \
$Z                                                >  $FDoNnEeS.d$COORD_Y

$Z                  unset               ArGuMeNtS

$Z                  if                  ((($_____BinfX != 0) || ($_____BsupX != 0)) || (($_____BinfY != 0) || ($_____BsupY != 0))) then
$Z                                      set                 LiNeAiRe=FAUX
$Z                  else
$Z                                      set                 LiNeAiRe=VRAI
$Z                  endif

$Z                  RformatI

$Z                  if                  ($_____RayonConnexionCourant == $NEXIST) then
$Z                                      # Test introduit le 20180606100418...                                                         #
$Z                                      $xrv/neutre$X                                                                                   \
$Z                                                          ne=$Npoints                                                                 \
$Z                                                          fichier=$_____Rayon                                                         \
$Z                                                                    >  $FDoNnEeS$RaYoNs
$Z                  else
$Z                                      $xrv/selection.01$X ne=0                                                                        \
$Z                                                          fichier=$FDoNnEeS.0$CoUrAnTs__                                              \
$Z                                                          selection=$FDoNnEeS.1$CoNnExIoNs                                      |     \
$Z                                      $xrv/normalise.01$X                                                                             \
$Z                                                          ne=0                                                                        \
$Z                                                          fichier==                                                                   \
$Z                                                          minimum=$_____CMinimum maximum=$_____CMaximum                         |     \
$Z                                      $xrv/MUL2.11$X                                                                                  \
$Z                                                          ne=0                                                                        \
$Z                                                          fichier1==                                                                  \
$Z                                                          fichier2=$_____Rayon                                                        \
$Z                                                          exemplaires=2                                                               \
$Z                                                                    >  $FDoNnEeS$RaYoNs
$Z                                      # Introduit le 20180606100418 afin de moduler le rayon des connexions avec les courants...    #
$Z                                      # La normalisation se fait (arbitraiement) dans [1/2,1] pour en particulier eviter des        #
$Z                                      # rayons nuls...                                                                              #
$Z                                      #                                                                                             #
$Z                                      # Le 20181207105325, on passe ici pour 'v $xiird/NETW.42.40x40' et 'v $xiird/NETW.43.40x40'.  #
$Z                  endif

#######################################################################################################################################
#                                                                                                                                     #
#         G E S T I O N   D U   P O T E N T I E L  :                                                                                  #
#                                                                                                                                     #
#######################################################################################################################################

$Z                  if                  (-e $_____Fdescription$PoTeNtIeLs) then
$Z                                      if                  ($_____RPotentiels != 0) then
$Z                                                          if                  ($_____RayonEgalPotentiel == $EXIST) then
$Z                                      # Test introduit le 20180601121413 et modifie le 20180601131639...                            #
$Z                                                                              set                 FiChIeR=$FDoNnEeS.0$PoTeNtIeLs
$Z                                                                              set                 PMiNiMuM=$_____PMinimum
$Z                                                                              set                 PMaXiMuM=$_____PMaximum
$Z                                                                              set                 EPoTeNtIeLs=$_____EPotentiels
$Z                                                          else
$Z                                                                              set                 FiChIeR=$FDoNnEeS.0$NCoNnExIoNs
$Z                                                                              set                 EPoTeNtIeLs=$_____EPotentiels
$Z                                      # Le 20181207105325, on passe ici pour 'v $xiird/NETW.42.40x40' et 'v $xiird/NETW.43.40x40'.  #
$Z                                                          endif

$Z                                                          $xrv/normalise.01$X                                                         \
$Z                                                                              ne=$NBpoints                                            \
$Z                                                                              fichier=$FiChIeR                                        \
$Z                                                                              minimum=$PMiNiMuM maximum=$PMaXiMuM               |     \
$Z                                                          $xrv/PUIX.01$X                                                              \
$Z                                                                              ne=$NBpoints                                            \
$Z                                                                              fichier==                                               \
$Z                                                                              exposant=$EPoTeNtIeLs                             |     \
$Z                                                          $xrv/MUL2.11$X                                                              \
$Z                                                                              ne=$NBpoints                                            \
$Z                                                                              fichier1=$_____RPotentiels                              \
$Z                                                                              fichier2==                                              \
$Z                                                                                        >  $FDoNnEeS.12$RaYoNs
$Z                                      # On notera que le 20180605072347, j'ai essaye d'utiliser 'TAHX(...)' mais cela ne            #
$Z                                      # marchait pas du tout, C'est pourquoi, le 20180605102658 j'ai essaye 'PUIXfs(...)'           #
$Z                                      # qui donne exactement les resultats attendus...                                              #
$Z                                      #                                                                                             #
$Z                                      # Le 20181207105325, on passe ici pour 'v $xiird/NETW.42.40x40' et 'v $xiird/NETW.43.40x40'   #
$Z                                      # et par defaut, "exposant=0.5" ce qui fait que l'on prend la racine carree du nombre de      #
$Z                                      # connexions IN et OUT...                                                                     #

$Z                                                          set       ArGuMeNtS="$K_VIDE"
$Z                                                          set       ArGuMeNtS="$ArGuMeNtS"" ne=$NBpoints"
$Z                                                          set       ArGuMeNtS="$ArGuMeNtS"" fichier=$FDoNnEeS.0$PoTeNtIeLs"
$Z                                                          set       ArGuMeNtS="$ArGuMeNtS"" formater=VRAI entier=VRAI"

$Z                                                          $xrv/normalise.01$X                                                         \
$Z                                                                              $ArGuMeNtS                                              \
$Z                                                                              minimum=$_____RougeMinimum maximum=$_____RougeMaximum   \
$Z                                                                                        >  $FDoNnEeS.p$ROUGE
$Z                                                          $xrv/normalise.01$X                                                         \
$Z                                                                              $ArGuMeNtS                                              \
$Z                                                                              minimum=$_____VerteMinimum maximum=$_____VerteMaximum   \
$Z                                                                                        >  $FDoNnEeS.p$VERTE
$Z                                                          $xrv/normalise.01$X                                                         \
$Z                                                                              $ArGuMeNtS                                              \
$Z                                                                              minimum=$_____BleueMinimum maximum=$_____BleueMaximum   \
$Z                                                                                        >  $FDoNnEeS.p$BLEUE
$Z                                      # Ce coloriage a ete introduit le 20180528171221...                                           #

$Z                                                          unset     ArGuMeNtS


#20180529122526____:$Z                                                $xrv/particule.10$X                                          \  #
#20180529122526____:$Z                                                                    npoints=$NBpoints                        \  #
#20180529122526____:$Z                                                                    LISTE_X=$FDoNnEeS$COORD_X                \  #
#20180529122526____:$Z                                                                    LISTE_Y=$FDoNnEeS$COORD_Y                \  #
#20180529122526____:$Z                                                                    LISTE_Z=$ECoOrDoNnEe_Z                   \  #
#20180529122526____:$Z                                                                    LISTE_ROUGE=$FDoNnEeS.p$ROUGE            \  #
#20180529122526____:$Z                                                                    LISTE_VERTE=$FDoNnEeS.p$VERTE            \  #
#20180529122526____:$Z                                                                    LISTE_BLEUE=$FDoNnEeS.p$BLEUE            \  #
#20180529122526____:$Z                                                                    LISTE_RAYON=$FDoNnEeS.12$RaYoNs          \  #
#20180529122526____:$Z                                                                    isoles=VRAI                              \  #
#20180529122526____:$Z                                                                    ZOOM=$_____Zoom                          \  #
#20180529122526____:$Z                                                                    ROTATION_OX=$_____RotationX              \  #
#20180529122526____:$Z                                                                    ROTATION_OY=$_____RotationY              \  #
#20180529122526____:$Z                                                                    TRANSLATION_OX=$_____TranslationX        \  #
#20180529122526____:$Z                                                                    TRANSLATION_OY=$_____TranslationY        \  #
#20180529122526____:$Z                                                                    Lz=100                                   \  #
#20180529122526____:$Z                                                                    N_AU_CARRE=FAUX                          \  #
#20180529122526____:$Z                                                                    editer_extrema_hors=FAUX                 \  #
#20180529122526____:$Z                                                                    fond=VRAI F=$_____ImageR                 \  #
#20180529122526____:$Z                                                                    chiffres=0                               \  #
#20180529122526____:$Z                                                                    R=$_____ImageR                           \  #
#20180529122526____:$Z                                                                                                  $formatI      #

$Z                                                          $xrv/neutre$X                                                               \
$Z                                                                              ne=$NBpoints                                            \
$Z                                                                              fichier=$FDoNnEeS$COORD_X                               \
$Z                                                                              exemplaires=2                                           \
$Z                                                                              >> $FDoNnEeS.12$COORD_X

$Z                                                          $xrv/neutre$X                                                               \
$Z                                                                              ne=$NBpoints                                            \
$Z                                                                              fichier=$FDoNnEeS$COORD_Y                               \
$Z                                                                              exemplaires=2                                           \
$Z                                                                              >> $FDoNnEeS.12$COORD_Y
$Z                                                          $xrv/normalise.01$X                                                         \
$Z                                                                              ne=$NBpoints                                            \
$Z                                                                              fichier=$FDoNnEeS.0$PoTeNtIeLs                          \
$Z                                                                              minimum=$_____ZMinimum                                  \
$Z                                                                              maximum=$_____ZMaximum                                  \
$Z                                                                              exemplaires=2                                           \
$Z                                                                              >> $FDoNnEeS.12$COORD_Z

$Z                                                          if                  ($_____DilaterPotentiel == $NEXIST) then
$Z                                      # Test introduit le 20180605073051...                                                         #
$Z                                                          else
$Z                                                                    set       ArGuMeNtS="$K_VIDE"
$Z                                                                    set       ArGuMeNtS="$ArGuMeNtS"" ne=0"
$Z                                                                    set       ArGuMeNtS="$ArGuMeNtS"" fichier=$FDoNnEeS.12$COORD_Z"
$Z                                                                    set       ArGuMeNtS="$ArGuMeNtS"" elements=$_____NHPotentiel"

$Z                                                                              $xrv/histogram.01$X                                     \
$Z                                                                                                  $ArGuMeNtS                          \
$Z                                                                                                  editer=FAUX                         \
$Z                                                                                                  >  $FDoNnEeS.1$HPoTeNtIeLs

$Z             set       MaXiMuM=`$xrv/extrema.01$X ne=0 fichier=$FDoNnEeS.1$HPoTeNtIeLs maximum_seul=VRAI formater=VRAI signe=""`
$Z             set       HiStOgRaMmE=`$xrv/histogram.01$X $ArGuMeNtS editer=VRAI | $GRE "nombre=$MaXiMuM"'$'`
$Z             set       MoYeNnE=`echo "$HiStOgRaMmE" | $SE -e 's/^.* moyenne=\([^ ][^ ]*\) .*$/\1/'`
$Z             set       MoYeNnE=`$xcg/NEGA.01$X x=$MoYeNnE`
$Z                                      # Le 20181207112144, pour 'v $xiird/NETW.43.40x40', on a ici :                                #
$Z                                      #                                                                                             #
$Z                                      #    MaXiMuM=3764                                                                             #
$Z                                      #    HiStOgRaMmE="min=+0.36000 max=+0.3619 moyenne=+0.36099 amplitude=+0.00198 nombre=3764"   #
$Z                                      #    MoYeNnE=-0.36099                                                                         #
$Z                                      #    exposant=0.5                                                                             #
$Z                                      #                                                                                             #
$Z                                      #                   minimum($FDoNnEeS.12$COORD_Z) = -1                                        #
$Z                                      #                   maximum($FDoNnEeS.12$COORD_Z) = +1                                        #
$Z                                      #                                                                                             #
$Z                                      # ('v $Dcourrier_ou/20181207115152').                                                         #

$Z                                                                              unset     ArGuMeNtS

$Z                                                                              $xrv/AXPB.01$X                                          \
$Z                                                                                                  ne=0                                \
$Z                                                                                                  fichier=$FDoNnEeS.12$COORD_Z        \
$Z                                                                                                  a=1                                 \
$Z                                                                                                  b=$MoYeNnE                    |     \
$Z                                                                              $xrv/PUIX.01$X                                          \
$Z                                                                                                  ne=0                                \
$Z                                                                                                  fichier==                           \
$Z                                                                                                  exposant=$_____EDilatationPotentiel \
$Z                                                                                                  valeurs_negatives=VRAI        |     \
$Z                                                                              $xrv/normalise.01$X                                     \
$Z                                                                                                  ne=0                                \
$Z                                                                                                  fichier==                           \
$Z                                                                                                  minimum=$_____ZMinimum              \
$Z                                                                                                  maximum=$_____ZMaximum              \
$Z                                                                                                  >  $FDoNnEeS.3$COORD_Z

$Z                                                                              $DELETE             $FDoNnEeS.12$COORD_Z

$Z                                                                              $xrv/neutre$X                                           \
$Z                                                                                                  ne=0                                \
$Z                                                                                                  fichier=$FDoNnEeS.3$COORD_Z         \
$Z                                                                                                  >  $FDoNnEeS.12$COORD_Z
$Z                                      # Ainsi, on dilate la zone des coordonnees 'Z' ou s'entassent la plupart des potentiels.      #
$Z                                      # Cela a ete introduit le 20180605073051...                                                   #
$Z                                                          endif

$Z                                                          $xrv/neutre$X                                                               \
$Z                                                                              ne=$NBpoints                                            \
$Z                                                                              fichier=0                                               \
$Z                                                                              exemplaires=2                                           \
$Z                                                                              >> $FDoNnEeS.d$COORD_X

$Z                                                          $xrv/neutre$X                                                               \
$Z                                                                              ne=$NBpoints                                            \
$Z                                                                              fichier=0                                               \
$Z                                                                              exemplaires=2                                           \
$Z                                                                              >> $FDoNnEeS.d$COORD_Y

$Z                                                          $xrv/neutre$X                                                               \
$Z                                                                              ne=$NBpoints                                            \
$Z                                                                              fichier=$FDoNnEeS.p$ROUGE                               \
$Z                                                                              exemplaires=2                                           \
$Z                                                                              >> $FDoNnEeS$ROUGE

$Z                                                          $xrv/neutre$X                                                               \
$Z                                                                              ne=$NBpoints                                            \
$Z                                                                              fichier=$FDoNnEeS.p$VERTE                               \
$Z                                                                              exemplaires=2                                           \
$Z                                                                              >> $FDoNnEeS$VERTE

$Z                                                          $xrv/neutre$X                                                               \
$Z                                                                              ne=$NBpoints                                            \
$Z                                                                              fichier=$FDoNnEeS.p$BLEUE                               \
$Z                                                                              exemplaires=2                                           \
$Z                                                                              >> $FDoNnEeS$BLEUE

$Z                                                          $xrv/neutre$X                                                               \
$Z                                                                              ne=$NBpoints                                            \
$Z                                                                              fichier=$FDoNnEeS.12$RaYoNs                             \
$Z                                                                              exemplaires=2                                           \
$Z                                                                              >> $FDoNnEeS$RaYoNs
$Z                                      # Le 20181207105325, on passe ici pour 'v $xiird/NETW.42.40x40' et 'v $xiird/NETW.43.40x40'.  #

$Z                                      else
$Z                                      endif
$Z                  else
$Z                  endif

#######################################################################################################################################
#                                                                                                                                     #
#         V I S U A L I S A T I O N  :                                                                                                #
#                                                                                                                                     #
#######################################################################################################################################

$Z                  set                 NpointsX=`$CA $FDoNnEeS.12$COORD_X | $WCl`
$Z                  set                 NpointsY=`$CA $FDoNnEeS.12$COORD_Y | $WCl`
$Z                  set                 NpointsZ=`$CA $FDoNnEeS.12$COORD_Z | $WCl`
$Z                  set                 Npoints=`$xcg/MIN3.01$X x=$NpointsX y=$NpointsY z=$NpointsZ`
$Z                                      # En effet, '$Npoints' doit etre recalcule a cause des ajouts eventuels des boules blanches   #
$Z                                      # materialisant le potentiel (cas ou '$_____RPotentiels' n'est pas nul...).                   #

$Z                  eval      $xrv/particule.10$X                                                                                       \
$Z                                      npoints=$Npoints                                                                                \
$Z                                      LISTE_X=$FDoNnEeS.12$COORD_X                                                                    \
$Z                                      LISTE_Y=$FDoNnEeS.12$COORD_Y                                                                    \
$Z                                      LISTE_Z=$FDoNnEeS.12$COORD_Z                                                                    \
$Z                                      LISTE_dX=$FDoNnEeS.d$COORD_X                                                                    \
$Z                                      LISTE_dY=$FDoNnEeS.d$COORD_Y                                                                    \
$Z                                      LISTE_dZ=0                                                                                      \
$Z                                      lineaire=$LiNeAiRe                                                                              \
$Z                                      isoles=FAUX chainer=FAUX                                                                        \
$Z                                      LISTE_ROUGE=$FDoNnEeS$ROUGE                                                                     \
$Z                                      LISTE_VERTE=$FDoNnEeS$VERTE                                                                     \
$Z                                      LISTE_BLEUE=$FDoNnEeS$BLEUE                                                                     \
$Z                                      LISTE_RAYON=$FDoNnEeS$RaYoNs                                                                    \
$Z                                      siR=$GRIS_0 siV=$GRIS_0 siB=$GRIS_0                                                             \
$Z                                      ajuster_points=VRAI equidistance=VRAI                                                           \
$Z                                      ZOOM=$_____Zoom                                                                                 \
$Z                                      ROTATION_OX=$_____RotationX                                                                     \
$Z                                      ROTATION_OY=$_____RotationY                                                                     \
$Z                                      TRANSLATION_OX=$_____TranslationX                                                               \
$Z                                      TRANSLATION_OY=$_____TranslationY                                                               \
$Z                                      grossissement=$_____Grossissement                                                               \
$Z                                      Lz=100                                                                                          \
$Z                                      N_AU_CARRE=$_____NAuCarre                                                                       \
$Z                                      editer_extrema_hors=FAUX                                                                        \
$Z                                      fond=VRAI F=$IFoNd                                                                              \
$Z                                      $_____ParticulePara1                                                                            \
$Z                                      chiffres=0                                                                                      \
$Z                                      R=$_____ImageR                                                                                  \
$Z                                                                              $formatI                                                \
$Z                                                                                                            $_____Redirection
$Z                                      # Et enfin, visualisation du reseau et de ses courants...                                     #
$Z                                      #                                                                                             #
$Z                                      # On notera le 20180527091021 qu'il est imperatif que les composantes chromatiques            #
$Z                                      # disposent de l'amplitude maximale [$GRIS_0,$GRIS_8], d'ou les parametres                    #
$Z                                      # {"siR=","siV=","siB="}...                                                                   #
$Z                                      #                                                                                             #
$Z                                      # Le 'eval' a ete introduit le 20180607133705 a cause de l'eventuelle '$_____Redirection'...  #
$Z                                      #                                                                                             #
$Z                                      # Voici les conventions de visualisation par defaut :                                         #
$Z                                      #                                                                                             #
$Z                                      #                   RayonNoeud                  = sqrt(NombreConnexionsInOutNoeud)            #
$Z                                      #                   LuminanceNoeud              = PotentielNoeud                              #
$Z                                      #                   RayonArcConnexion           = |Courant|                                   #
$Z                                      #                   CouleurArcConnexion         = fonction(|Courant|)                         #
$Z                                      #                   CoordonneeVerticaleZ        = PotentielNoeud                              #
$Z                                      #                                                                                             #
$Z                                      # ou 'fonction' est une fonction telle que la luminance est une fonction croissante de        #
$Z                                      # 'Courant'.                                                                                  #

$Z                  FileTmpE            FDoNnEeS

$Z                  FileTmpE            IFoNd



Copyright © Jean-François Colonna, 2019-2021.
Copyright © CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / Ecole Polytechnique, 2019-2021.