/*************************************************************************************************************************************/ /* */ /* A P P L I C A T I O N D E L A T R A N S F O R M A T I O N H Y P E R B O L I Q U E 2 */ /* D A N S L E P L A N C O M P L E X E : */ /* */ /* */ /* Definition : */ /* */ /* Cette commande genere une image */ /* dont le nom est le premier argument */ /* d'appel ; elle est le resultat de */ /* la transformation de la deuxieme */ /* image par la transformation hyperbolique. */ /* */ /* */ /* Author of '$xci/z_hyperbol.02$K' : */ /* */ /* Jean-Francois COLONNA (LACTAMME, 20120526222857). */ /* */ /*************************************************************************************************************************************/ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* 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 GENERER_LES_GET_ARGUMENTS_DE_CONTROLE_DE_L_ARITHMETIQUE_ETENDUE_DES_NOMBRES_FLOTTANTS /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* F I C H I E R S D ' I N C L U D E S : */ /* */ /*************************************************************************************************************************************/ #include INCLUDES_BASE #include image_image_IMAGESF_EXT #include maths_compl_fonct_CONFORMES_EXT /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* P A R A M E T R E S : */ /* */ /*************************************************************************************************************************************/ #include xci/coordonne.01.I" #define TRAVAILLER_DANS_LE_PLAN_IMAGE \ VRAI \ /* Indique s'il faut travailler dans le plan image ('VRAI') ou bien dans le plan complexe */ \ /* ("FAUX'). */ #define FACTEUR \ PARE(1000) \ /* Facteur multiplicatif. */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* M A C R O S U T I L E S : */ /* */ /*************************************************************************************************************************************/ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* A P P L I C A T I O N D E L A T R A N S F O R M A T I O N H Y P E R B O L I Q U E 2 */ /* D A N S L E P L A N C O M P L E X E : */ /* */ /*************************************************************************************************************************************/ BCommande(nombre_d_arguments,arguments) /*-----------------------------------------------------------------------------------------------------------------------------------*/ Bblock #include xci/coordonne.02.I" DEFV(CHAR,INIC(POINTERc(nom_imageR),NOM_PIPE)); DEFV(CHAR,INIC(POINTERc(nom_imageA),NOM_PIPE)); DEFV(Logical,INIT(travailler_dans_le_plan_image,TRAVAILLER_DANS_LE_PLAN_IMAGE)); /* Indique s'il faut travailler dans le plan image ('VRAI') ou bien dans le plan complexe */ /* ("FAUX'). */ DEFV(Float,INIT(facteur,FACTEUR)); /* Facteur multiplicatif. */ DEFV(deltaF_2D,Atranslation); /* Translation de l'image Argument, */ DEFV(deltaF_2D,Rtranslation); /* Translation de l'image Resultat. */ /*..............................................................................................................................*/ #include xci/coordonne.04.I" #include xci/conformes.01.I" GET_ARGUMENTSi(nombre_d_arguments ,BLOC(GET_ARGUMENT_C("imageA=""A=",nom_imageA); GET_ARGUMENT_C("imageR=""R=",nom_imageR); GET_ARGUMENT_L("standard=",les_images_sont_standards); GET_ARGUMENT_L("plan_image=""image=",travailler_dans_le_plan_image); GET_ARGUMENT_N("plan_complexe=""complexe=",travailler_dans_le_plan_image); GET_ARGUMENT_F("facteur=""f=",facteur); GET_ARGUMENTS4_F("ARho=""AR=" ,Iz_hyperbolique_2_dans_le_plan_image_____ARho_ ,IFz_hyperbolique_2_dans_le_plan_image_____ARho_ ,Iz_hyperbolique_2_dans_le_plan_complexe_____ARho_ ,IFz_hyperbolique_2_dans_le_plan_complexe_____ARho_ ); GET_ARGUMENTS4_F("BRho=""BR=" ,Iz_hyperbolique_2_dans_le_plan_image_____BRho_ ,IFz_hyperbolique_2_dans_le_plan_image_____BRho_ ,Iz_hyperbolique_2_dans_le_plan_complexe_____BRho_ ,IFz_hyperbolique_2_dans_le_plan_complexe_____BRho_ ); GET_ARGUMENTS4_F("ATheta=""AT=" ,Iz_hyperbolique_2_dans_le_plan_image_____ATheta ,IFz_hyperbolique_2_dans_le_plan_image_____ATheta ,Iz_hyperbolique_2_dans_le_plan_complexe_____ATheta ,IFz_hyperbolique_2_dans_le_plan_complexe_____ATheta ); GET_ARGUMENTS4_F("BTheta=""BT=" ,Iz_hyperbolique_2_dans_le_plan_image_____BTheta ,IFz_hyperbolique_2_dans_le_plan_image_____BTheta ,Iz_hyperbolique_2_dans_le_plan_complexe_____BTheta ,IFz_hyperbolique_2_dans_le_plan_complexe_____BTheta ); /* Arguments introduits le 20120601092045... */ ARGUMENTS_DES_TRANSFORMATIONS_CONFORMES; CONTROLE_DE_L_ARITHMETIQUE_ETENDUE_DES_NOMBRES_COMPLEXES; ) ); #include xci/coordonne.03.I" CALi(gInettoyage(les_images_sont_standards,ImageR,IFmageR)); /* Initialisation de l'image Resultat. */ Test(PAS_D_ERREUR(CODE_ERROR(gIload_image(les_images_sont_standards,ImageA,IFmageA,nom_imageA)))) /* Chargement de l'image a transformer. */ Bblock INITIALISATION_ACCROISSEMENT_2D(Atranslation ,NEGA(SUPER_lNORMALISE_OX(MOIT(FLOT(dimX)))) ,NEGA(SUPER_lNORMALISE_OY(MOIT(FLOT(dimY)))) ); INITIALISATION_ACCROISSEMENT_2D(Rtranslation ,ZERO ,ZERO ); Test(IL_FAUT(travailler_dans_le_plan_image)) Bblock CALS(gIz_hyperbolique_2_dans_le_plan_image(les_images_sont_standards ,ImageR,IFmageR ,ADRESSE(Rtranslation) ,facteur ,ImageA,IFmageA ,ADRESSE(Atranslation) ) ); /* Et transformation de l'image Argument dans le plan image. */ Eblock ATes Bblock CALS(gIz_hyperbolique_2_dans_le_plan_complexe(les_images_sont_standards ,ImageR,IFmageR ,ADRESSE(Rtranslation) ,facteur ,ImageA,IFmageA ,ADRESSE(Atranslation) ) ); /* Et transformation de l'image Argument dans le plan Complexe. */ Eblock ETes CALi(gIupdate_image(les_images_sont_standards,nom_imageR,ImageR,IFmageR)); Eblock ATes Bblock Test__CODE_ERREUR__ERREUR07; Eblock ETes RETU_Commande; Eblock ECommande