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