/*************************************************************************************************************************************/ /* */ /* T E S T D E L A G E N E R A T I O N D E S N O M B R E S A L E A T O I R E S : */ /* */ /* */ /* Author of '$xtKg/rdn.01$K' : */ /* */ /* Jean-Francois COLONNA (LACTAMME, 1989??????????). */ /* */ /*************************************************************************************************************************************/ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* I N T E R F A C E ' listG ' : */ /* */ /* */ /* :Debut_listG: */ /* :Fin_listG: */ /* */ /*************************************************************************************************************************************/ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* D I R E C T I V E S S P E C I F I Q U E S D E C O M P I L A T I O N : */ /* */ /*************************************************************************************************************************************/ @define PRAGMA_CPP_____MODULE_NON_DERIVABLE /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* F I C H I E R S D ' I N C L U D E S : */ /* */ /*************************************************************************************************************************************/ #include INCLUDES_BASE /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* P A R A M E T R E S : */ /* */ /*************************************************************************************************************************************/ #define GRAINE 1234 \ /* Graine initiale du generateur aleatoire. */ #define NOMBRE_DE_POINTS \ PARE(100) \ /* Nombre de nombres aleatoires a generer. */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* M A C R O S U T I L E S : */ /* */ /*************************************************************************************************************************************/ #define GENERE_COORDONNEE_ALEATOIRE(coordonnee,borne_inferieure,borne_superieure) \ Bblock \ CALS(rdnaI2D(ADRESSE(pointI_spirale),UNDEF,RDN_INIT,FLOT(borne_inferieure),FLOT(borne_superieure))); \ /* Initialisation du generateur aleatoire. */ \ EGAL(coordonnee \ ,rdnaI2D(ADRESSE(pointI_spirale) \ ,graine,RDN_GENERE \ ,FLOT__ARGUMENT_ABSENT,FLOT__ARGUMENT_ABSENT \ ) \ ); \ CAL2(Prin3("%d dans [%d,%d]\n",coordonnee,PINTE(borne_inferieure),PINTE(borne_superieure))); \ INCR(graine,I); \ Eblock \ /* Generation d'une coordonnee aleatoire. */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* T E S T D E L A G E N E R A T I O N D E S N O M B R E S A L E A T O I R E S : */ /* */ /*************************************************************************************************************************************/ BCommande(nombre_d_arguments,arguments) /*-----------------------------------------------------------------------------------------------------------------------------------*/ Bblock DEFV(Int,INIT(graine,GRAINE)); /* Graine variable de generation des nombres aleatoires. */ DEFV(Int,INIT(coordonnee,UNDEF)); /* Nombre aleatoire courant. */ DEFV(pointI_2D,pointI_spirale); /* Point d'un espace en spirale destinee a generer des nombres aleatoires. */ SPIRALE_DEFINITION /* Donnees de generation d'une spirale de parcours d'une image. */ /*..............................................................................................................................*/ GET_ARGUMENTS_(nombre_d_arguments ,BLOC(VIDE;) ); SPIRALE_VALIDATION; /* Validation des pas de parcours (pasX,pasY) des images. */ INITIALISATION_POINT_2D(pointI_spirale,Xcentre,Ycentre); /* Initialisation de la spirale. */ GENERE_COORDONNEE_ALEATOIRE(coordonnee,0,0); Repe(NOMBRE_DE_POINTS) Bblock SPIRALE_INITIALISATION; /* Initialisation dynamique de 'spirale_nombre_de_points_a_traiter'. */ GENERE_COORDONNEE_ALEATOIRE(coordonnee,1,4); SPIRALE_DEPLACEMENT(ASD1(pointI_spirale,x),ASD1(pointI_spirale,y)); /* Deplacement du point courant de la spirale... */ SPIRALE_PARCOURS; /* Parcours de la spirale avec rotation eventuelle de PI/2 du bras courant... */ Eblock ERep Repe(NOMBRE_DE_POINTS) Bblock SPIRALE_INITIALISATION; /* Initialisation dynamique de 'spirale_nombre_de_points_a_traiter'. */ GENERE_COORDONNEE_ALEATOIRE(coordonnee,50,100); SPIRALE_DEPLACEMENT(ASD1(pointI_spirale,x),ASD1(pointI_spirale,y)); /* Deplacement du point courant de la spirale... */ SPIRALE_PARCOURS; /* Parcours de la spirale avec rotation eventuelle de PI/2 du bras courant... */ Eblock ERep Repe(NOMBRE_DE_POINTS) Bblock SPIRALE_INITIALISATION; /* Initialisation dynamique de 'spirale_nombre_de_points_a_traiter'. */ GENERE_COORDONNEE_ALEATOIRE(coordonnee,-100,50); SPIRALE_DEPLACEMENT(ASD1(pointI_spirale,x),ASD1(pointI_spirale,y)); /* Deplacement du point courant de la spirale... */ SPIRALE_PARCOURS; /* Parcours de la spirale avec rotation eventuelle de PI/2 du bras courant... */ Eblock ERep RETU_Commande; Eblock ECommande