/*************************************************************************************************************************************/ /* */ /* D E F I N I T I O N S D E S E L E M E N T S G E O M E T R I Q U E S A L E A T O I R E S : */ /* */ /* */ /* Author of '$xrq/nucleon.LC$I' : */ /* */ /* Jean-Francois Colonna (LACTAMME, 1991??????????). */ /* */ /*************************************************************************************************************************************/ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* G E N E R A T I O N D ' E L E M E N T S G E O M E T R I Q U E S : */ /* */ /*************************************************************************************************************************************/ #define GENERATION_D_UNE_COORDONNEE(coordonnee,type) \ Bblock \ GENERATION_D_UNE_VALEUR(coordonnee \ ,ASD2(espace_physique,origine,type) \ ,ASD2(espace_physique,extremite,type) \ ); \ Eblock \ /* Generation d'une coordonnee aleatoire quelconque {x,y,z} d'un point contenu dans */ \ /* l'espace physique de la simulation. */ #define GENERATION_D_UN_POINT(point_aleatoire) \ Bblock \ GENERATION_D_UNE_COORDONNEE(ASD1(point_aleatoire,x),x); \ GENERATION_D_UNE_COORDONNEE(ASD1(point_aleatoire,y),y); \ GENERATION_D_UNE_COORDONNEE(ASD1(point_aleatoire,z),z); \ Eblock \ /* Generation d'un point aleatoire contenu dans l'espace physique de la simulation. */ #define GENERATION_D_UN_DEMI_ANGLE(demi_angle) \ Bblock \ GENERATION_D_UNE_VALEUR(demi_angle \ ,FZERO \ ,MOIT(CERCLE_TRIGONOMETRIQUE) \ ); \ Eblock \ /* Generation d'un angle aleatoire dans [0,PI]. */ #define GENERATION_D_UN_ANGLE(angle) \ Bblock \ GENERATION_D_UNE_VALEUR(angle \ ,FZERO \ ,NEUT(CERCLE_TRIGONOMETRIQUE) \ ); \ Eblock \ /* Generation d'un angle aleatoire dans [0,2.PI]. */ #define GENERATION_D_UNE_DIRECTION_2D(theta) \ Bblock \ GENERATION_D_UN_ANGLE(theta); \ Eblock \ /* Generation d'une direction aleatoire (theta) dans l'espace bidimensionnel. */ #define GENERATION_D_UNE_DIRECTION_3D(theta,phi) \ Bblock \ GENERATION_D_UN_ANGLE(theta); \ GENERATION_D_UN_ANGLE(phi); \ Eblock \ /* Generation d'une direction aleatoire (theta,phi) dans l'espace tridimensionnel. */