/*************************************************************************************************************************************/ /* */ /* 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 C O N F O R M E Z * * 2 */ /* D A N S L E P L A N C O M P L E X E */ /* S U R U N E I M A G E C O M P L E X E : */ /* */ /* */ /* Definition : */ /* */ /* Cette commande genere une image Complexe */ /* dont le nom est le premier argument */ /* d'appel ; elle est le resultat de */ /* la transformation de la deuxieme */ /* image par la transformation z --> z**2. */ /* */ /* */ /* Author of '$xci/z_carre.11$K' : */ /* */ /* Jean-Francois COLONNA (LACTAMME, 1992??????????). */ /* */ /*************************************************************************************************************************************/ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* 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 #include image_image_IMAGESJ_EXT #include maths_compl_fonct_CONFORMES_EXT /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* P A R A M E T R E S : */ /* */ /*************************************************************************************************************************************/ #include xci/coordonne.01.I" /* Introduit le 20050912130135... */ #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(0.010) \ /* Facteur multiplicatif lorsqu'il faut 'TRAVAILLER_DANS_LE_PLAN_IMAGE'. Dans le cas */ \ /* contraire, on pourra prendre une valeur proche de '5.0', c'est a dire la valeur */ \ /* precedente 'FACTEUR' multipliee par 'CHOI(dimX,dimY)'... */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* 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 C O N F O R M E Z * * 2 */ /* D A N S L E P L A N C O M P L E X E */ /* S U R U N E I M A G E C O M P L E X E : */ /* */ /*************************************************************************************************************************************/ BCommande(nombre_d_arguments,arguments) /*-----------------------------------------------------------------------------------------------------------------------------------*/ Bblock #include xci/coordonne.02.I" /* Introduit le 20050912130135... */ #include xci/conformes.01.I" /* Ceci a ete introduit le 20120521174428... */ 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. */ DEFV(complexe,valeur_initiale); /* Valeur initiale de l'image Resultat. */ /*..............................................................................................................................*/ #include xci/coordonne.04.I" /* Ceci a ete introduit le 20051218183534... */ GET_ARGUMENTSi(nombre_d_arguments ,BLOC(GET_ARGUMENT_C("imageA=""A=",nom_imageA); GET_ARGUMENT_C("imageR=""R=",nom_imageR); 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); /* L'argument abrege "f=" a ete introduit le 20101029101740... */ ARGUMENTS_DES_TRANSFORMATIONS_CONFORMES; /* Arguments introduits sous cette forme le 20120521174428... */ CONTROLE_DE_L_ARITHMETIQUE_ETENDUE_DES_NOMBRES_COMPLEXES; /* Cette extension a ete introduite le 20120521174428... */ ) ); #include xci/coordonne.03.I" /* Introduit le 20050912130135... */ Cinitialisation(valeur_initiale,R0_Complexe,I0_Complexe); CALi(IJinitialisation(IJmageR,ADRESSE(valeur_initiale))); /* Initialisation de l'image Resultat. */ Test(PAS_D_ERREUR(CODE_ERROR(IloadJ_image(IJmageA,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(IJz_au_carre_dans_le_plan_image(IJmageR,ADRESSE(Rtranslation),facteur,IJmageA,ADRESSE(Atranslation))); /* Et transformation de l'image Argument dans le plan image. */ Eblock ATes Bblock CALS(IJz_au_carre_dans_le_plan_complexe(IJmageR,ADRESSE(Rtranslation),facteur,IJmageA,ADRESSE(Atranslation))); /* Et transformation de l'image Argument dans le plan Complexe. */ Eblock ETes CALi(IupdateJ_image(nom_imageR,IJmageR)); Eblock ATes Bblock Test__CODE_ERREUR__ERREUR07; Eblock ETes RETU_Commande; Eblock ECommande