#######################################################################################################################################
#                                                                                                                                     #
#         D I F F U S I O N   T R I D I M E N S I O N N E L L E   " D O U C E "                                                       #
#         ( G E N E R A T I O N   D U   G R A D I E N T   D E   P A R T I C U L E S )  :                                              #
#                                                                                                                                     #
#                                                                                                                                     #
#         Author of '$xiirk/.DIFZ.11.1.$U' :                                                                                          #
#                                                                                                                                     #
#                     Jean-Francois COLONNA (LACTAMME, 20070601184256).                                                               #
#                                                                                                                                     #
#######################################################################################################################################

$Z                  SETParam            _____PremiereZ                $_____Premiere
$Z                                      # Parametre introduit le 20070703090302 pour decoupler le nombre de plans perpendiculaires    #
$Z                                      # a l'axe 'OZ' dans lesquels se fait la generation aleatoire du nombre de plans dans lesquels #
$Z                                      # se fait le calcul de la densite...                                                          #

$Z                  SETParam            _____DerniereZ                $_____Derniere
$Z                                      # Parametre introduit le 20070703090302 pour decoupler le nombre de plans perpendiculaires    #
$Z                                      # a l'axe 'OZ' dans lesquels se fait la generation aleatoire du nombre de plans dans lesquels #
$Z                                      # se fait le calcul de la densite...                                                          #

$Z                  setParam            _____DRotationX               0
$Z                                      # Parametre introduit le 20070702131125...                                                    #

$Z                  setParam            _____DRotationY               0
$Z                                      # Parametre introduit le 20070702131125...                                                    #

$Z                  setParam            _____DRotationZ               0
$Z                                      # Parametre introduit le 20070702131125...                                                    #

$Z                  setParam            _____DTranslationX            0
$Z                                      # Parametre introduit le 20070703121312...                                                    #

$Z                  setParam            _____DTranslationY            0
$Z                                      # Parametre introduit le 20070703121312...                                                    #

$Z                  setParam            _____DTranslationZ            0
$Z                                      # Parametre introduit le 20070703121312...                                                    #

$Z                  $xci/lineaire$X                                                                                                     \
$Z                                      A=$_____CoefficientA B=$_____CoefficientB C=0                                                   \
$Z                                      standard=FAUX                                                                                   \
$Z                                                                                                  $formatI                      |     \
$Z                  $xci/acces$X                                                                                                        \
$Z                                      standard=FAUX zero=FAUX                                                                         \
$Z                                      R=$xTV/GRADIENT                                                                                 \
$Z                                                                                                  $formatI
$Z                                      # Generation d'un gradient vertical (par defaut, les fortes valeurs etant en haut et les      #
$Z                                      # faibles en bas, afin que lors de la mise en '$M', les montagnes elevees etant en arriere    #
$Z                                      # plan...).                                                                                   #

$c                  #include  <stdio.h>
$c
$c                  extern    int       atoi();
$c                  extern    char      *getenv();
$c
$c                  #define   N0        _____PremiereZ
$c                  #define   N         _____DerniereZ
$c
$c                  #define   GRAINE    _____Graine
$c                  #define   IGRAINE   _____IGraine
$c
$c                  #define   Z0        (atoi(getenv("Zmin")))
$c                  #define   ZN        (atoi(getenv("Zmax")))
$c
$c                  int       main()
$c                            {
$c                            int       n;
$c                            int       graine=GRAINE;
$c
$c                            for       (n=N0 ; n<=N ; n++)
$c                                      {
$c                                      int       coordonnee_Z=((ZN*(n-N0))+(Z0*(N-n)))/(N-N0);
$c
$c                                      printf("$xci/random.03$X
$c                                                                  C=$xTV/GRADIENT
$c                                                                  graine=%d
$c                                                                  facteur=$_____Facteur
$c                                                                  R=$_____imagesWR.%04d
$c                                                                                                  $formatI\n"
$c                                            ,graine
$c                                            ,n
$c                                             );
$c                                      /* Generation d'un champ aleatoire suivant le gradient.                                      */
$c
$c                                      printf("$xci/liste_points$X
$c                                                                  A=$_____imagesWR.%04d
$c                                                                  Z=%d
$c                                                                  en_tete=FAUX
$c                                                                  eX=VRAI eY=FAUX eZ=FAUX eNIVEAU=FAUX epoints=FAUX
$c                                                                                                  >>! $FLiStE_XY$COORD_X\n"
$c                                            ,n
$c                                            ,coordonnee_Z
$c                                             );
$c                                      printf("$xci/liste_points$X
$c                                                                  A=$_____imagesWR.%04d
$c                                                                  Z=%d
$c                                                                  en_tete=FAUX
$c                                                                  eX=FAUX eY=VRAI eZ=FAUX eNIVEAU=FAUX epoints=FAUX
$c                                                                                                  >>! $FLiStE_XY$COORD_Y\n"
$c                                            ,n
$c                                            ,coordonnee_Z
$c                                             );
$c                                      printf("$xci/liste_points$X
$c                                                                  A=$_____imagesWR.%04d
$c                                                                  Z=%d
$c                                                                  en_tete=FAUX
$c                                                                  eX=FAUX eY=FAUX eZ=VRAI eNIVEAU=FAUX epoints=FAUX
$c                                                                                                  >>! $FLiStE_XY$COORD_Z\n"
$c                                            ,n
$c                                            ,coordonnee_Z
$c                                             );
$c
$c                                      graine = graine + IGRAINE;
$c                                      }
$c                            }

$Z                  $xrv/ROTATION.01$X                                                                                                  \
$Z                                      ne=0                                                                                            \
$Z                                      LISTE_X=$FLiStE_XY$COORD_X                                                                      \
$Z                                      LISTE_Y=$FLiStE_XY$COORD_Y                                                                      \
$Z                                      LISTE_Z=$FLiStE_XY$COORD_Z                                                                      \
$Z                                      rotation=VRAI                                                                                   \
$Z                                      ROTATION_OX=$_____DRotationX                                                                    \
$Z                                      ROTATION_OY=$_____DRotationY                                                                    \
$Z                                      ROTATION_OZ=$_____DRotationZ                                                                    \
$Z                                      TRANSLATION_OX=$_____DTranslationX                                                              \
$Z                                      TRANSLATION_OY=$_____DTranslationY                                                              \
$Z                                      TRANSLATION_OZ=$_____DTranslationZ                                                              \
$Z                                      pX=1 pY=0 pZ=0                                                                                  \
$Z                                                                                                  >   $FDLiStE_XY$COORD_X
$Z                                      # Possibilite de rotation introduite le 20070702131423...                                     #

$Z                  $xrv/ROTATION.01$X                                                                                                  \
$Z                                      ne=0                                                                                            \
$Z                                      LISTE_X=$FLiStE_XY$COORD_X                                                                      \
$Z                                      LISTE_Y=$FLiStE_XY$COORD_Y                                                                      \
$Z                                      LISTE_Z=$FLiStE_XY$COORD_Z                                                                      \
$Z                                      rotation=VRAI                                                                                   \
$Z                                      ROTATION_OX=$_____DRotationX                                                                    \
$Z                                      ROTATION_OY=$_____DRotationY                                                                    \
$Z                                      ROTATION_OZ=$_____DRotationZ                                                                    \
$Z                                      TRANSLATION_OX=$_____DTranslationX                                                              \
$Z                                      TRANSLATION_OY=$_____DTranslationY                                                              \
$Z                                      TRANSLATION_OZ=$_____DTranslationZ                                                              \
$Z                                      pX=0 pY=1 pZ=0                                                                                  \
$Z                                                                                                  >   $FDLiStE_XY$COORD_Y
$Z                                      # Possibilite de rotation introduite le 20070702131423...                                     #

$Z                  $xrv/ROTATION.01$X                                                                                                  \
$Z                                      ne=0                                                                                            \
$Z                                      LISTE_X=$FLiStE_XY$COORD_X                                                                      \
$Z                                      LISTE_Y=$FLiStE_XY$COORD_Y                                                                      \
$Z                                      LISTE_Z=$FLiStE_XY$COORD_Z                                                                      \
$Z                                      rotation=VRAI                                                                                   \
$Z                                      ROTATION_OX=$_____DRotationX                                                                    \
$Z                                      ROTATION_OY=$_____DRotationY                                                                    \
$Z                                      ROTATION_OZ=$_____DRotationZ                                                                    \
$Z                                      TRANSLATION_OX=$_____DTranslationX                                                              \
$Z                                      TRANSLATION_OY=$_____DTranslationY                                                              \
$Z                                      TRANSLATION_OZ=$_____DTranslationZ                                                              \
$Z                                      pX=0 pY=0 pZ=1                                                                                  \
$Z                                                                                                  >   $FDLiStE_XY$COORD_Z
$Z                                      # Possibilite de rotation introduite le 20070702131423...                                     #



Copyright © Jean-François COLONNA, 2019-2024.
Copyright © CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / École polytechnique, Institut Polytechnique de Paris, 2019-2024.