/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        G E N E R A T I O N   D ' U N E   S P I R A L E   C A R R E E  :                                                           */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Definition :                                                                                                               */
/*                                                                                                                                   */
/*                    Cette commande genere une image                                                                                */
/*                  dont le nom est l'argument d'appel,                                                                              */
/*                  et qui contient une spirale carree                                                                               */
/*                  de centre (X_CENTRE,Y_CENTRE).                                                                                   */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Author of '$xci/spirale.21$K' :                                                                                            */
/*                                                                                                                                   */
/*                    Jean-Francois COLONNA (LACTAMME, 20150331110245).                                                              */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

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

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        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   X_CENTRE                                                                                                                      \
                    Xcentre
#define   Y_CENTRE                                                                                                                      \
                    Ycentre
#define   Z_CENTRE                                                                                                                      \
                    Zorigine
                                        /* Definition du centre...                                                                   */

#define   SCALE_OX                                                                                                                      \
                    FU
#define   SCALE_OY                                                                                                                      \
                    FU
#define   SCALE_OZ                                                                                                                      \
                    FU
#define   SCALE_GLOBALE                                                                                                                 \
                    FU
                                        /* Definition des echelles.                                                                  */
                                        /*                                                                                           */
                                        /* Le 20220628095416, passage de 'UN' a 'FU'...                                              */

#define   NIVEAU_DE_LA_SPIRALE                                                                                                          \
                    BLANC                                                                                                               \
                                        /* Niveau de trace de la spirale...                                                          */

#define   NOMBRE_DE_TOURS                                                                                                               \
                    CENT                                                                                                                \
                                        /* Nombre de tours de la spirale...                                                          */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        M A C R O S   U T I L E S  :                                                                                               */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        G E N E R A T I O N   D ' U N E   S P I R A L E   C A R R E E  :                                                           */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
BCommande(nombre_d_arguments,arguments)
/*-----------------------------------------------------------------------------------------------------------------------------------*/
     Bblock
     DEFV(CHAR,INIC(POINTERc(nom_imageA),NOM_PIPE));
     DEFV(CHAR,INIC(POINTERc(nom_imageR),NOM_PIPE));

     DEFV(Int,INIT(X_centre,X_CENTRE));
     DEFV(Int,INIT(Y_centre,Y_CENTRE));
     DEFV(Int,INIT(Z_centre,Z_CENTRE));
                                        /* Definition du centre...                                                                   */
     DEFV(Float,INIT(scale_OX,SCALE_OX));
     DEFV(Float,INIT(scale_OY,SCALE_OY));
     DEFV(Float,INIT(scale_OZ,SCALE_OZ));
     DEFV(Float,INIT(scale_globale,SCALE_GLOBALE));
                                        /* Definition des echelles.                                                                  */
                                        /*                                                                                           */
                                        /* Le 20220628095416 je note quelque chose d'etrange. En effet, les quatre definitions       */
                                        /* precedentes sont de type 'Int', alors qu'elles servent a definir des elements qui sont    */
                                        /* eux de type 'Float' ('v $xiii/vecteurs$FON DEFV.Float.ZINT.vecteurs_____scale_'). Je      */
                                        /* corrige donc cela a cette date...                                                         */

     DEFV(genere_p,INIT(niveau_de_la_spirale,NIVEAU_DE_LA_SPIRALE));
                                        /* Niveau de trace de la spirale...                                                          */
     DEFV(Int,INIT(nombre_de_tours,NOMBRE_DE_TOURS));
                                        /* Nombre de tours de la spirale...                                                          */
     /*..............................................................................................................................*/
     GET_ARGUMENTSg(nombre_d_arguments
                   ,BLOC(GET_ARGUMENT_L("SX_SY_SZ_____compatibilite_20070416=""compatibilite_20070416="
                                       ,SX_SY_SZ_____compatibilite_20070416
                                        );

                         GET_ARGUMENT_C("imageA=""A=",nom_imageA);
                         GET_ARGUMENT_C("imageR=""R=",nom_imageR);

                         GET_ARGUMENT_I("X_centre=""Xc=""xc",X_centre);
                         GET_ARGUMENT_I("Y_centre=""Yc=""yc",Y_centre);
                                        /* On notera qu'evidemment 'Z_centre' n'a pas a etre un argument...                          */

                         GET_ARGUMENT_F("K=""k=",scale_globale);
                         GET_ARGUMENT_F("KX=""kx=",scale_OX);
                         GET_ARGUMENT_F("KY=""ky=",scale_OY);
                         GET_ARGUMENT_F("KZ=""kz=",scale_OZ);
                                        /* Le 20220628095416, passage de 'GET_ARGUMENT_I(...)' a 'GET_ARGUMENT_F(...)'...            */

                         GET_ARGUMENT_P("niveau_spirale=""n=",niveau_de_la_spirale);
                         GET_ARGUMENT_I("nombre_tours=""tours=""t=",nombre_de_tours);
                         )
                    );

     SET_CURSOR(_____cNORMALISE_OX(X_centre),_____cNORMALISE_OY(Y_centre),_____cNORMALISE_OZ(Z_centre));

     EGAL(vecteurs_____scale_globale,NEUT(scale_globale));
     EGAL(vecteurs_____scale_OX,_____lNORMALISE_OX(scale_OX));
     EGAL(vecteurs_____scale_OY,_____lNORMALISE_OY(scale_OY));
     EGAL(vecteurs_____scale_OZ,_____lNORMALISE_OZ(scale_OZ));
                                        /* Pour les valeurs a donner a {K,KX,KY}, voir 'v $xiirv/.PRIM.H1.1.$U 20150401155810'...    */

     Test(PAS_D_ERREUR(CODE_ERROR(Iload_image(ImageG,nom_imageA))))
          Bblock
                                        /* Chargement de l'image Argument.                                                           */
          SET_COULEURS(niveau_de_la_spirale,niveau_de_la_spirale);

          gA;

          Repe(nombre_de_tours)
               Bblock
               g1;gB;
               g2;gB;
                                        /* On trace deux cotes orthogonaux et egaux de la spirale...                                 */

               CALS(FgXADDI());
               CALS(FgYADDI());
                                        /* Et on change d'echelle...                                                                 */

               g3;gB;
               g4;gB;
                                        /* On trace deux cotes orthogonaux et egaux de la spirale...                                 */

               CALS(FgXADDI());
               CALS(FgYADDI());
                                        /* Et on change d'echelle...                                                                 */
               Eblock
          ERep

          CALi(Iupdate_image(nom_imageR,ImageG));
          Eblock
     ATes
          Bblock
          Test__CODE_ERREUR__ERREUR07;
          Eblock
     ETes

     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.