/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        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



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.