/*************************************************************************************************************************************/ /* */ /* C O N V E R S I O N C A R T E S I E N N E - P O L A I R E D E S C O O R D O N N E E S : */ /* */ /* */ /* Author of '$xcg/XY_RT$K' : */ /* */ /* Jean-Francois COLONNA (LACTAMME, 1996??????????). */ /* */ /*************************************************************************************************************************************/ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* 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 COORDONNEE_X \ FZERO #define COORDONNEE_Y \ FZERO /* Coordonnees cartesiennes. */ #define COORDONNEE_RHO \ FZERO #define COORDONNEE_THETA \ FZERO /* Coordonnees polaires. */ #define CONVERTIR_DE_CARTESIENNES_EN_POLAIRES \ VRAI \ /* Indique si l'on convertit de cartesiennes en polaires ('VRAI') ou bien de polaires en */ \ /* cartesiennes ('FAUX'). */ #define EDITER_COORDONNEE_X \ VRAI #define EDITER_COORDONNEE_Y \ VRAI #define EDITER_COORDONNEE_RHO \ VRAI #define EDITER_COORDONNEE_THETA \ VRAI #define EDITER_LES_MESSAGES_D_EN_TETE \ VRAI /* Controle de l'edition. */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* M A C R O S U T I L E S : */ /* */ /*************************************************************************************************************************************/ #define EDITER(valeur,editer,message) \ Bblock \ Test(IL_FAUT(editer)) \ Bblock \ Test(IL_FAUT(editer_les_messages_d_en_tete)) \ /* Test introduit le 20160316134920... */ \ Bblock \ CAL2(Prin2("%s=%.^^^\n",message,valeur)); \ /* Le 20060105153103, le format "16g" est passe a "^^g" pour plus de souplesse... */ \ /* */ \ /* Le 20091123122958, le format "^^g" est passe a "^^^" pour plus de souplesse... */ \ Eblock \ ATes \ Bblock \ CAL2(Prin1("%.^^^\n",valeur)); \ Eblock \ ETes \ Eblock \ ATes \ Bblock \ Eblock \ ETes \ Eblock \ /* Procedure d'edition conditionnelle. */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* C O N V E R S I O N C A R T E S I E N N E - P O L A I R E D E S C O O R D O N N E E S : */ /* */ /*************************************************************************************************************************************/ BCommande(nombre_d_arguments,arguments) /*-----------------------------------------------------------------------------------------------------------------------------------*/ Bblock DEFV(Float,INIT(coordonnee_X,COORDONNEE_X)); DEFV(Float,INIT(coordonnee_Y,COORDONNEE_Y)); /* Coordonnees cartesiennes. */ DEFV(Float,INIT(coordonnee_RHO,COORDONNEE_RHO)); DEFV(Float,INIT(coordonnee_THETA,COORDONNEE_THETA)); /* Coordonnees polaires. */ DEFV(Logical,INIT(convertir_de_cartesiennes_en_polaires,CONVERTIR_DE_CARTESIENNES_EN_POLAIRES)); /* Indique si l'on convertit de cartesiennes en polaires ('VRAI') ou bien de polaires en */ /* cartesiennes ('FAUX'). */ DEFV(Logical,INIT(editer_coordonnee_X,EDITER_COORDONNEE_X)); DEFV(Logical,INIT(editer_coordonnee_Y,EDITER_COORDONNEE_Y)); DEFV(Logical,INIT(editer_coordonnee_RHO,EDITER_COORDONNEE_RHO)); DEFV(Logical,INIT(editer_coordonnee_THETA,EDITER_COORDONNEE_THETA)); DEFV(Logical,INIT(editer_les_messages_d_en_tete,EDITER_LES_MESSAGES_D_EN_TETE)); /* Controle de l'edition. */ /*..............................................................................................................................*/ GET_ARGUMENTSi(nombre_d_arguments ,BLOC(GET_ARGUMENT_F("x=""X=",coordonnee_X); GET_ARGUMENT_F("y=""Y=",coordonnee_Y); GET_ARGUMENT_F("rho=""r=""R=",coordonnee_RHO); GET_ARGUMENT_F("theta=""t=""T=",coordonnee_THETA); GET_ARGUMENT_L("cartesiennes_polaires=""cartesiennes=""cartesien=""cart=" ,convertir_de_cartesiennes_en_polaires ); GET_ARGUMENT_N("polaires_cartesiennes=""polaires=""polaire=""pol=" ,convertir_de_cartesiennes_en_polaires ); /* Ces arguments ont ete cmpletes le 20150217150622... */ GET_ARGUMENT_L("ex=""eX=",editer_coordonnee_X); GET_ARGUMENT_L("ey=""eY=",editer_coordonnee_Y); GET_ARGUMENT_L("erho=""eRHO=",editer_coordonnee_RHO); GET_ARGUMENT_L("etheta=""eTHETA=",editer_coordonnee_THETA); GET_ARGUMENT_L("messages=""message=""Men_tete=",editer_les_messages_d_en_tete); /* Arguments introduits le 20160316134920... */ ) ); Test(IL_FAUT(convertir_de_cartesiennes_en_polaires)) Bblock EDITER(coordonnee_X,editer_coordonnee_X,"x"); EDITER(coordonnee_Y,editer_coordonnee_Y,"y"); EDITER(Rho_2D(coordonnee_X,coordonnee_Y),editer_coordonnee_RHO,"rho"); EDITER(Theta_2D(coordonnee_X,coordonnee_Y),editer_coordonnee_THETA,"theta"); Eblock ATes Bblock EDITER(Xcartesienne_2D(coordonnee_RHO,coordonnee_THETA),editer_coordonnee_X,"x"); EDITER(Ycartesienne_2D(coordonnee_RHO,coordonnee_THETA),editer_coordonnee_Y,"y"); EDITER(coordonnee_RHO,editer_coordonnee_RHO,"rho"); EDITER(coordonnee_THETA,editer_coordonnee_THETA,"theta"); Eblock ETes RETU_Commande; Eblock ECommande