/*************************************************************************************************************************************/ /* */ /* F O N C T I O N S C O M P L E X E S D E T R A N S F O R M A T I O N D E S I M A G E S : */ /* */ /* */ /* Definition : */ /* */ /* Ce fichier contient toutes les definitions */ /* des fonctions de manipulation des images par */ /* transformations conformes. */ /* */ /* */ /* Author of '$ximcf/conformes$DEF' : */ /* */ /* Jean-Francois COLONNA (LACTAMME, 20041225173122). */ /* */ /*************************************************************************************************************************************/ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* D E F I N I T I O N S G E N E R A L E S D E S T R A N S F O R M A T I O N S C O N F O R M E S : */ /* */ /*************************************************************************************************************************************/ #define TRANSFORMATION__ZQO_AU_CARRE(p,p1,produit) \ Bblock \ produit(p,p1,p1); \ Eblock \ /* Transformation conforme 'p1.p1' (introduite le 20120520112554). */ #define TRANSFORMATION__UN_SUR_ZQO(p,p1,unite,quotient) \ Bblock \ quotient(p,unite,p1); \ Eblock \ /* Transformation conforme '1/p1' (introduite le 20120520112554). */ #define TRANSFORMATION__ZQO_HOMOGRAPHIQUE(p,p1,type,somme,produit,quotient,puissance,exposantN,exposantD,nA,nB,nC,nD,ACCES) \ /* La generalisation des transformations homographiques a ete introduite le 20210325104426 */ \ /* en permettant d'elever 'p1' a une certaine puissance aussi bien au Numerateur qu'au */ \ /* Denominateur... */ \ Bblock \ DEFV(type,p1N); \ DEFV(type,p1D); \ DEFV(type,pmA); \ DEFV(type,pmB); \ DEFV(type,pmC); \ DEFV(type,pmD); \ \ puissance(p1N,p1,exposantN); \ /* Calcul de : */ \ /* */ \ /* expN */ \ /* p1N = p1 */ \ /* */ \ \ puissance(p1D,p1,exposantD); \ /* Calcul de : */ \ /* */ \ /* expD */ \ /* p1D = p1 */ \ /* */ \ \ produit(pmA,ACCES(nA),p1N); \ somme(pmB,pmA,ACCES(nB)); \ /* Calcul de : */ \ /* */ \ /* A.p1N + B */ \ /* */ \ \ produit(pmC,ACCES(nC),p1D); \ somme(pmD,pmC,ACCES(nD)); \ /* Calcul de : */ \ /* */ \ /* C.p1D + D */ \ /* */ \ \ quotient(p,pmB,pmD); \ /* Calcul de : */ \ /* */ \ /* A.p1N + B */ \ /* ----------- */ \ /* C.p1D + D */ \ /* */ \ Eblock \ /* Transformation conforme '((A.p1)+B)/((C.p1)+D)' (introduite le 20120520112554). */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* D E F I N I T I O N S G E N E R A L E S D E S T R A N S F O R M A T I O N S C O N F O R M E S */ /* D A N S L E P L A N C O M P L E X E : */ /* */ /*************************************************************************************************************************************/ #define TRANSFORMATION__Z_AU_CARRE(z,z1) \ Bblock \ TRANSFORMATION__ZQO_AU_CARRE(z,z1,Cproduit); \ Eblock \ /* Transformation conforme 'z.z' (introduite le 20120520112554). */ #define TRANSFORMATION__UN_SUR_Z(z,z1) \ Bblock \ TRANSFORMATION__UN_SUR_ZQO(z,z1,C_____nombre_complexe_p1__0,Cquotient); \ Eblock \ /* Transformation conforme '1/z' (introduite le 20120520112554). */ #define TRANSFORMATION__Z_HOMOGRAPHIQUE(z,z1,nA,nB,nC,nD,ACCES) \ Bblock \ TRANSFORMATION__ZQO_HOMOGRAPHIQUE(z,z1 \ ,complexe \ ,Csomme \ ,Cproduit \ ,Cquotient \ ,Cpuissance \ ,TRANSFORMATION__Z_HOMOGRAPHIQUE_____exposant_du_numerateur__ \ ,TRANSFORMATION__Z_HOMOGRAPHIQUE_____exposant_du_denominateur \ ,nA,nB,nC,nD \ ,ACCES \ ); \ Eblock \ /* Transformation conforme '((A.z)+B)/((C.z)+D)' (introduite le 20120520112554). */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* D E F I N I T I O N S G E N E R A L E S D E S T R A N S F O R M A T I O N S C O N F O R M E S */ /* D A N S L E P L A N H Y P E R - C O M P L E X E : */ /* */ /*************************************************************************************************************************************/ #define TRANSFORMATION__Q_AU_CARRE(q,q1) \ Bblock \ TRANSFORMATION__ZQO_AU_CARRE(q,q1,aHCproduit); \ Eblock \ /* Transformation conforme 'q.q' (introduite le 20120520112554). */ #define TRANSFORMATION__UN_SUR_Q(q,q1) \ Bblock \ TRANSFORMATION__UN_SUR_ZQO(q,q1,HC_____quaternion_p1__0__0__0,aHCquotient); \ Eblock \ /* Transformation conforme '1/q' (introduite le 20120520112554). */ #define TRANSFORMATION__Q_HOMOGRAPHIQUE(q,q1,nA,nB,nC,nD,ACCES) \ Bblock \ TRANSFORMATION__ZQO_HOMOGRAPHIQUE(q,q1 \ ,hyper_complexe \ ,aHCsomme \ ,aHCproduit \ ,aHCquotient \ ,aHCpuissance \ ,TRANSFORMATION__Q_HOMOGRAPHIQUE_____exposant_du_numerateur__ \ ,TRANSFORMATION__Q_HOMOGRAPHIQUE_____exposant_du_denominateur \ ,nA,nB,nC,nD \ ,ACCES \ ); \ Eblock \ /* Transformation conforme '((A.q)+B)/((C.q)+D)' (introduite le 20120520112554). */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* D E F I N I T I O N S G E N E R A L E S D E S T R A N S F O R M A T I O N S C O N F O R M E S */ /* D A N S L E P L A N H Y P E R - H Y P E R - C O M P L E X E : */ /* */ /*************************************************************************************************************************************/ #define TRANSFORMATION__O_AU_CARRE(o,o1) \ Bblock \ TRANSFORMATION__ZQO_AU_CARRE(o,o1,aHHCproduit); \ Eblock \ /* Transformation conforme 'o.o' (introduite le 20120520112554). */ #define TRANSFORMATION__UN_SUR_O(o,o1) \ Bblock \ TRANSFORMATION__UN_SUR_ZQO(o,o1,HHC_____octonion_p1__0__0__0__0__0__0__0,aHHCquotient); \ Eblock \ /* Transformation conforme '1/o' (introduite le 20120520112554). */ #define TRANSFORMATION__O_HOMOGRAPHIQUE(o,o1,nA,nB,nC,nD,ACCES) \ Bblock \ TRANSFORMATION__ZQO_HOMOGRAPHIQUE(o,o1 \ ,hyper_hyper_complexe \ ,aHHCsomme \ ,aHHCproduit \ ,aHHCquotient \ ,aHHCpuissance \ ,TRANSFORMATION__O_HOMOGRAPHIQUE_____exposant_du_numerateur__ \ ,TRANSFORMATION__O_HOMOGRAPHIQUE_____exposant_du_denominateur \ ,nA,nB,nC,nD \ ,ACCES \ ); \ Eblock \ /* Transformation conforme '((A.o)+B)/((C.o)+D)' (introduite le 20120520112554). */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* 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 K * ( Z * * 2 ) */ /* E N C O O R D O N N E E S D ' E C R A N [Xmin,Xmax] x [Ymin,Ymax] : */ /* */ /*************************************************************************************************************************************/ #define gIz_au_carre_dans_le_plan_image(les_images_sont_standards,imageR,FimageR,R_translat,facteur,imageA,FimageA,A_translat) \ gCALC(EST_VRAI(les_images_sont_standards) \ ,Iz_au_carre_dans_le_plan_image(imageR,R_translat,facteur,imageA,A_translat) \ ,IFz_au_carre_dans_le_plan_image(FimageR,R_translat,facteur,FimageA,A_translat) \ ) \ /* Transformation conforme "z au carre" ("standard" ou "flottante"). */ #define gIz_au_carre_dans_le_plan_complexe(les_images_sont_standards,imageR,FimageR,R_translat,facteur,imageA,FimageA,A_translat) \ gCALC(EST_VRAI(les_images_sont_standards) \ ,Iz_au_carre_dans_le_plan_complexe(imageR,R_translat,facteur,imageA,A_translat) \ ,IFz_au_carre_dans_le_plan_complexe(FimageR,R_translat,facteur,FimageA,A_translat) \ ) \ /* Transformation conforme "z au carre" ("standard" ou "flottante"). */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* 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 K * ( 1 / Z ) */ /* E N C O O R D O N N E E S D ' E C R A N [Xmin,Xmax] x [Ymin,Ymax] : */ /* */ /*************************************************************************************************************************************/ #define gIun_sur_z_dans_le_plan_image(les_images_sont_standards,imageR,FimageR,R_translat,facteur,imageA,FimageA,A_translat) \ gCALC(EST_VRAI(les_images_sont_standards) \ ,Iun_sur_z_dans_le_plan_image(imageR,R_translat,facteur,imageA,A_translat) \ ,IFun_sur_z_dans_le_plan_image(FimageR,R_translat,facteur,FimageA,A_translat) \ ) \ /* Transformation conforme "un sur z" ("standard" ou "flottante"). */ #define gIun_sur_z_dans_le_plan_complexe(les_images_sont_standards,imageR,FimageR,R_translat,facteur,imageA,FimageA,A_translat) \ gCALC(EST_VRAI(les_images_sont_standards) \ ,Iun_sur_z_dans_le_plan_complexe(imageR,R_translat,facteur,imageA,A_translat) \ ,IFun_sur_z_dans_le_plan_complexe(FimageR,R_translat,facteur,FimageA,A_translat) \ ) \ /* Transformation conforme "un sur z" ("standard" ou "flottante"). */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* 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 H O M O G R A P H I Q U E */ /* E N C O O R D O N N E E S D ' E C R A N [Xmin,Xmax] x [Ymin,Ymax] : */ /* */ /*************************************************************************************************************************************/ /* Ceci a ete introduit le 20041228085125 : */ #define gIz_homographique_dans_le_plan_image(les_images_sont_standards,imageR,FimageR,R_tr,fact,imageA,FimageA,A_tr,nA,nB,nC,nD) \ gCALC(EST_VRAI(les_images_sont_standards) \ ,Iz_homographique_dans_le_plan_image(imageR,R_tr,fact,imageA,A_tr,nA,nB,nC,nD) \ ,IFz_homographique_dans_le_plan_image(FimageR,R_tr,fact,FimageA,A_tr,nA,nB,nC,nD) \ ) \ /* Transformation conforme homographique ("standard" ou "flottante"). */ #define gIz_homographique_dans_le_plan_complexe(les_images_sont_standards,imageR,FimageR,R_tr,fact,imageA,FimageA,A_tr,nA,nB,nC,nD) \ gCALC(EST_VRAI(les_images_sont_standards) \ ,Iz_homographique_dans_le_plan_complexe(imageR,R_tr,fact,imageA,A_tr,nA,nB,nC,nD) \ ,IFz_homographique_dans_le_plan_complexe(FimageR,R_tr,fact,FimageA,A_tr,nA,nB,nC,nD) \ ) \ /* Transformation conforme homographique ("standard" ou "flottante"). */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* 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 " A U T O - S I M I L A I R E " C O M P L E X E */ /* E N C O O R D O N N E E S D ' E C R A N [Xmin,Xmax] x [Ymin,Ymax] : */ /* */ /*************************************************************************************************************************************/ /* Ceci a ete introduit le 20200705121006 : */ #define gIz_auto_similaire_dans_le_plan_image(les_images_sont_standards,imageR,FimageR,R_tr,fact,imageA,FimageA,A_tr,pd,prd) \ gCALC(EST_VRAI(les_images_sont_standards) \ ,Iz_auto_similaire_dans_le_plan_image(imageR,R_tr,fact,imageA,A_tr,pd,prd) \ ,IFz_auto_similaire_dans_le_plan_image(FimageR,R_tr,fact,FimageA,A_tr,pd,prd) \ ) \ /* Transformation conforme "auto-similaire" ("standard" ou "flottante"). */ #define gIz_auto_similaire_dans_le_plan_complexe(les_images_sont_standards,imageR,FimageR,R_tr,fact,imageA,FimageA,A_tr,pd,prd) \ gCALC(EST_VRAI(les_images_sont_standards) \ ,Iz_auto_similaire_dans_le_plan_complexe(imageR,R_tr,fact,imageA,A_tr,pd,prd) \ ,IFz_auto_similaire_dans_le_plan_complexe(FimageR,R_tr,fact,FimageA,A_tr,pd,prd) \ ) \ /* Transformation conforme "auto-similaire" ("standard" ou "flottante"). */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* 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 1 */ /* E N C O O R D O N N E E S D ' E C R A N [Xmin,Xmax] x [Ymin,Ymax] : */ /* */ /*************************************************************************************************************************************/ /* Ceci a ete introduit le 20111228112148 : */ #define gIz_hyperbolique_1_dans_le_plan_image(les_images_sont_standards,imageR,FimageR,R_tr,fact,imageA,FimageA,A_tr) \ gCALC(EST_VRAI(les_images_sont_standards) \ ,Iz_hyperbolique_1_dans_le_plan_image(imageR,R_tr,fact,imageA,A_tr) \ ,IFz_hyperbolique_1_dans_le_plan_image(FimageR,R_tr,fact,FimageA,A_tr) \ ) \ /* Transformation conforme hyperbolique 1 ("standard" ou "flottante"). */ #define gIz_hyperbolique_1_dans_le_plan_complexe(les_images_sont_standards,imageR,FimageR,R_tr,fact,imageA,FimageA,A_tr) \ gCALC(EST_VRAI(les_images_sont_standards) \ ,Iz_hyperbolique_1_dans_le_plan_complexe(imageR,R_tr,fact,imageA,A_tr) \ ,IFz_hyperbolique_1_dans_le_plan_complexe(FimageR,R_tr,fact,FimageA,A_tr) \ ) \ /* Transformation conforme hyperbolique 1 ("standard" ou "flottante"). */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* 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 */ /* E N C O O R D O N N E E S D ' E C R A N [Xmin,Xmax] x [Ymin,Ymax] : */ /* */ /*************************************************************************************************************************************/ /* Ceci a ete introduit le 20120526223509 : */ #define gIz_hyperbolique_2_dans_le_plan_image(les_images_sont_standards,imageR,FimageR,R_tr,fact,imageA,FimageA,A_tr) \ gCALC(EST_VRAI(les_images_sont_standards) \ ,Iz_hyperbolique_2_dans_le_plan_image(imageR,R_tr,fact,imageA,A_tr) \ ,IFz_hyperbolique_2_dans_le_plan_image(FimageR,R_tr,fact,FimageA,A_tr) \ ) \ /* Transformation conforme hyperbolique 2 ("standard" ou "flottante"). */ #define gIz_hyperbolique_2_dans_le_plan_complexe(les_images_sont_standards,imageR,FimageR,R_tr,fact,imageA,FimageA,A_tr) \ gCALC(EST_VRAI(les_images_sont_standards) \ ,Iz_hyperbolique_2_dans_le_plan_complexe(imageR,R_tr,fact,imageA,A_tr) \ ,IFz_hyperbolique_2_dans_le_plan_complexe(FimageR,R_tr,fact,FimageA,A_tr) \ ) \ /* Transformation conforme hyperbolique 2 ("standard" ou "flottante"). */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* 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 K * ( Q * * 2 ) */ /* E N C O O R D O N N E E S D ' E C R A N [Xmin,Xmax] x [Ymin,Ymax] : */ /* */ /*************************************************************************************************************************************/ /* Ceci a ete introduit le 20070116154207 : */ #define gIq_au_carre_dans_le_plan_hyper_image(les_images_sont_standards,imageR,FimageR,R_trans,facteur,imageA,FimageA,A_trans) \ gCALC(EST_VRAI(les_images_sont_standards) \ ,Iq_au_carre_dans_le_plan_hyper_image(imageR,R_trans,facteur,imageA,A_trans) \ ,IFq_au_carre_dans_le_plan_hyper_image(FimageR,R_trans,facteur,FimageA,A_trans) \ ) \ /* Transformation conforme "q au carre" ("standard" ou "flottante"). */ #define gIq_au_carre_dans_le_plan_hyper_complexe(les_images_sont_standards,imageR,FimageR,R_trans,facteur,imageA,FimageA,A_trans) \ gCALC(EST_VRAI(les_images_sont_standards) \ ,Iq_au_carre_dans_le_plan_hyper_complexe(imageR,R_trans,facteur,imageA,A_trans) \ ,IFq_au_carre_dans_le_plan_hyper_complexe(FimageR,R_trans,facteur,FimageA,A_trans) \ ) \ /* Transformation conforme "q au carre" ("standard" ou "flottante"). */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* 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 K * ( 1 / Q ) */ /* E N C O O R D O N N E E S D ' E C R A N [Xmin,Xmax] x [Ymin,Ymax] : */ /* */ /*************************************************************************************************************************************/ /* Ceci a ete introduit le 20070116154207 : */ #define gIun_sur_q_dans_le_plan_hyper_image(les_images_sont_standards,imageR,FimageR,R_trans,facteur,imageA,FimageA,A_trans) \ gCALC(EST_VRAI(les_images_sont_standards) \ ,Iun_sur_q_dans_le_plan_hyper_image(imageR,R_trans,facteur,imageA,A_trans) \ ,IFun_sur_q_dans_le_plan_hyper_image(FimageR,R_trans,facteur,FimageA,A_trans) \ ) \ /* Transformation conforme "un sur q" ("standard" ou "flottante"). */ #define gIun_sur_q_dans_le_plan_hyper_complexe(les_images_sont_standards,imageR,FimageR,R_trans,facteur,imageA,FimageA,A_trans) \ gCALC(EST_VRAI(les_images_sont_standards) \ ,Iun_sur_q_dans_le_plan_hyper_complexe(imageR,R_trans,facteur,imageA,A_trans) \ ,IFun_sur_q_dans_le_plan_hyper_complexe(FimageR,R_trans,facteur,FimageA,A_trans) \ ) \ /* Transformation conforme "un sur q" ("standard" ou "flottante"). */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* 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 H O M O G R A P H I Q U E */ /* E N C O O R D O N N E E S D ' E C R A N [Xmin,Xmax] x [Ymin,Ymax] : */ /* */ /*************************************************************************************************************************************/ /* Ceci a ete introduit le 20070116154207 : */ #define gIq_homographique_dans_le_plan_hyper_image(images_sont_standards,imageR,FimageR,R_tr,fact,imageA,FimageA,A_tr,nA,nB,nC,nD) \ gCALC(EST_VRAI(images_sont_standards) \ ,Iq_homographique_dans_le_plan_hyper_image(imageR,R_tr,fact,imageA,A_tr,nA,nB,nC,nD) \ ,IFq_homographique_dans_le_plan_hyper_image(FimageR,R_tr,fact,FimageA,A_tr,nA,nB,nC,nD) \ ) \ /* Transformation conforme homographique ("standard" ou "flottante"). */ #define gIq_homographique_dans_le_plan_hyper_complexe(images_sont_standards,imageR,FimageR,R_tr,fact,imageA,FimageA,A_tr,nA,nB,nC,nD) \ gCALC(EST_VRAI(images_sont_standards) \ ,Iq_homographique_dans_le_plan_hyper_complexe(imageR,R_tr,fact,imageA,A_tr,nA,nB,nC,nD) \ ,IFq_homographique_dans_le_plan_hyper_complexe(FimageR,R_tr,fact,FimageA,A_tr,nA,nB,nC,nD) \ ) \ /* Transformation conforme homographique ("standard" ou "flottante"). */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* 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 1 */ /* E N C O O R D O N N E E S D ' E C R A N [Xmin,Xmax] x [Ymin,Ymax] : */ /* */ /*************************************************************************************************************************************/ /* Ceci a ete introduit le 20111229175602 : */ #define gIq_hyperbolique_1_dans_le_plan_hyper_image(images_sont_standards,imageR,FimageR,R_tr,fact,imageA,FimageA,A_tr) \ gCALC(EST_VRAI(images_sont_standards) \ ,Iq_hyperbolique_1_dans_le_plan_hyper_image(imageR,R_tr,fact,imageA,A_tr) \ ,IFq_hyperbolique_1_dans_le_plan_hyper_image(FimageR,R_tr,fact,FimageA,A_tr) \ ) \ /* Transformation conforme hyperbolique 1 ("standard" ou "flottante"). */ #define gIq_hyperbolique_1_dans_le_plan_hyper_complexe(images_sont_standards,imageR,FimageR,R_tr,fact,imageA,FimageA,A_tr) \ gCALC(EST_VRAI(images_sont_standards) \ ,Iq_hyperbolique_1_dans_le_plan_hyper_complexe(imageR,R_tr,fact,imageA,A_tr) \ ,IFq_hyperbolique_1_dans_le_plan_hyper_complexe(FimageR,R_tr,fact,FimageA,A_tr) \ ) \ /* Transformation conforme hyperbolique 1 ("standard" ou "flottante"). */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* 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 K * ( O * * 2 ) */ /* E N C O O R D O N N E E S D ' E C R A N [Xmin,Xmax] x [Ymin,Ymax] : */ /* */ /*************************************************************************************************************************************/ /* Ceci a ete introduit le 20070116154207 : */ #define gIo_au_carre_dans_le_plan_hyper_hyper_image(i_standards,imageR,FimageR,R_trans,facteur,imageA,FimageA,A_trans) \ gCALC(EST_VRAI(i_standards) \ ,Io_au_carre_dans_le_plan_hyper_hyper_image(imageR,R_trans,facteur,imageA,A_trans) \ ,IFo_au_carre_dans_le_plan_hyper_hyper_image(FimageR,R_trans,facteur,FimageA,A_trans) \ ) \ /* Transformation conforme "o au carre" ("standard" ou "flottante"). */ #define gIo_au_carre_dans_le_plan_hyper_hyper_complexe(i_standards,imageR,FimageR,R_trans,facteur,imageA,FimageA,A_trans) \ gCALC(EST_VRAI(i_standards) \ ,Io_au_carre_dans_le_plan_hyper_hyper_complexe(imageR,R_trans,facteur,imageA,A_trans) \ ,IFo_au_carre_dans_le_plan_hyper_hyper_complexe(FimageR,R_trans,facteur,FimageA,A_trans) \ ) \ /* Transformation conforme "o au carre" ("standard" ou "flottante"). */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* 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 K * ( 1 / O ) */ /* E N C O O R D O N N E E S D ' E C R A N [Xmin,Xmax] x [Ymin,Ymax] : */ /* */ /*************************************************************************************************************************************/ /* Ceci a ete introduit le 20070116154207 : */ #define gIun_sur_o_dans_le_plan_hyper_hyper_image(i_standards,imageR,FimageR,R_trans,facteur,imageA,FimageA,A_trans) \ gCALC(EST_VRAI(i_standards) \ ,Iun_sur_o_dans_le_plan_hyper_hyper_image(imageR,R_trans,facteur,imageA,A_trans) \ ,IFun_sur_o_dans_le_plan_hyper_hyper_image(FimageR,R_trans,facteur,FimageA,A_trans) \ ) \ /* Transformation conforme "un sur o" ("standard" ou "flottante"). */ #define gIun_sur_o_dans_le_plan_hyper_hyper_complexe(i_standards,imageR,FimageR,R_trans,facteur,imageA,FimageA,A_trans) \ gCALC(EST_VRAI(i_standards) \ ,Iun_sur_o_dans_le_plan_hyper_hyper_complexe(imageR,R_trans,facteur,imageA,A_trans) \ ,IFun_sur_o_dans_le_plan_hyper_hyper_complexe(FimageR,R_trans,facteur,FimageA,A_trans) \ ) \ /* Transformation conforme "un sur o" ("standard" ou "flottante"). */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* 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 H O M O G R A P H I Q U E */ /* E N C O O R D O N N E E S D ' E C R A N [Xmin,Xmax] x [Ymin,Ymax] : */ /* */ /*************************************************************************************************************************************/ /* Ceci a ete introduit le 20070116154207 : */ #define gIo_homographique_dans_le_plan_hyper_hyper_image(i_standards,imageR,FimageR,R_tr,fact,imageA,FimageA,A_tr,nA,nB,nC,nD) \ gCALC(EST_VRAI(i_standards) \ ,Io_homographique_dans_le_plan_hyper_hyper_image(imageR,R_tr,fact,imageA,A_tr,nA,nB,nC,nD) \ ,IFo_homographique_dans_le_plan_hyper_hyper_image(FimageR,R_tr,fact,FimageA,A_tr,nA,nB,nC,nD) \ ) \ /* Transformation conforme homographique ("standard" ou "flottante"). */ #define gIo_homographique_dans_le_plan_hyper_hyper_complexe(i_standards,imageR,FimageR,R_tr,fact,imageA,FimageA,A_tr,nA,nB,nC,nD) \ gCALC(EST_VRAI(i_standards) \ ,Io_homographique_dans_le_plan_hyper_hyper_complexe(imageR,R_tr,fact,imageA,A_tr,nA,nB,nC,nD) \ ,IFo_homographique_dans_le_plan_hyper_hyper_complexe(FimageR,R_tr,fact,FimageA,A_tr,nA,nB,nC,nD) \ ) \ /* Transformation conforme homographique ("standard" ou "flottante"). */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* 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 1 */ /* E N C O O R D O N N E E S D ' E C R A N [Xmin,Xmax] x [Ymin,Ymax] : */ /* */ /*************************************************************************************************************************************/ /* Ceci a ete introduit le 20111229175602 : */ #define gIo_hyperbolique_1_dans_le_plan_hyper_hyper_image(i_standards,imageR,FimageR,R_tr,fact,imageA,FimageA,A_tr) \ gCALC(EST_VRAI(i_standards) \ ,Io_hyperbolique_1_dans_le_plan_hyper_hyper_image(imageR,R_tr,fact,imageA,A_tr) \ ,IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image(FimageR,R_tr,fact,FimageA,A_tr) \ ) \ /* Transformation conforme hyperbolique 1 ("standard" ou "flottante"). */ #define gIo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe(i_standards,imageR,FimageR,R_tr,fact,imageA,FimageA,A_tr) \ gCALC(EST_VRAI(i_standards) \ ,Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe(imageR,R_tr,fact,imageA,A_tr) \ ,IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe(FimageR,R_tr,fact,FimageA,A_tr) \ ) \ /* Transformation conforme hyperbolique 1 ("standard" ou "flottante"). */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* D E F I N I T I O N S G E N E R A L E S D E S T R A N S F O R M A T I O N S Q U E L C O N Q U E S : */ /* */ /*************************************************************************************************************************************/ #define TRANSFORMATION__ZQO_AUTO_SIMILAIRE(p,p1,pd,prd,type,egal,produit,quotient,logarithme,exponentielle,base,ACCES) \ Bblock \ DEFV(type,pmA); \ DEFV(type,pmB); \ \ quotient(pmA,p1,ACCES(pd)); \ /* Calcul de : */ \ /* */ \ /* p1 */ \ /* ---- */ \ /* pd */ \ /* */ \ /* le nombre 'pd' etant le "Diviseur"... */ \ logarithme(pmB,pmA); \ /* Calcul de : */ \ /* */ \ /* p1 */ \ /* log(----) */ \ /* pd */ \ /* */ \ \ Test(IL_FAUT(TRANSFORMATION__ZQO_AUTO_SIMILAIRE_____ne_calculer_que_le_logarithme)) \ /* Test introduit le 20200724124859 a des fins de test... */ \ Bblock \ egal(p,pmB); \ /* Calcul seul du logarithme... */ \ Eblock \ ATes \ Bblock \ DEFV(type,pmC); \ \ produit(pmC,ACCES(prd),pmB); \ /* Calcul de : */ \ /* */ \ /* p1 */ \ /* prd.log(----) */ \ /* pd */ \ /* */ \ /* le nombre 'prd' effectuant la "Rotation-Dilatation"... */ \ exponentielle(p,base,pmC); \ /* */ \ /* p1 */ \ /* prd.log(----) */ \ /* pd */ \ /* base */ \ /* */ \ Eblock \ ETes \ Eblock \ /* Transformation "auto-similaire" (introduite le 20200705103242)... */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* D E F I N I T I O N S G E N E R A L E S D E S T R A N S F O R M A T I O N S Q U E L C O N Q U E S */ /* D A N S L E P L A N C O M P L E X E : */ /* */ /*************************************************************************************************************************************/ #define TRANSFORMATION__Z_AUTO_SIMILAIRE(z,z1,zd,zrd,ACCES) \ Bblock \ TRANSFORMATION__ZQO_AUTO_SIMILAIRE(z \ ,z1 \ ,zd \ ,zrd \ ,complexe \ ,Cegal \ ,Cproduit \ ,Cquotient \ ,Clogarithme \ ,Cexponentielle,EN \ ,ACCES \ ); \ Eblock \ /* Transformation dite "auto-similaire" (introduite le 20200705103242). */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* D E F I N I T I O N S G E N E R A L E S D E S T R A N S F O R M A T I O N S Q U E L C O N Q U E S */ /* D A N S L E P L A N H Y P E R - C O M P L E X E : */ /* */ /*************************************************************************************************************************************/ #define TRANSFORMATION__Q_AUTO_SIMILAIRE(q,q1,qd,qrd) \ Bblock \ TRANSFORMATION__ZQO_AUTO_SIMILAIRE(q \ ,q1 \ ,qd \ ,qrd \ ,hyper_complexe \ ,HCegal \ ,aHCproduit \ ,aHCquotient \ ,HClogarithme \ ,HCexponentielle,EN \ ); \ Eblock \ /* Transformation dite "auto-similaire" (introduite le 20200705103242). */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* D E F I N I T I O N S G E N E R A L E S D E S T R A N S F O R M A T I O N S Q U E L C O N Q U E S */ /* D A N S L E P L A N H Y P E R - H Y P E R - C O M P L E X E : */ /* */ /*************************************************************************************************************************************/ #define TRANSFORMATION__O_AUTO_SIMILAIRE(o,o1,od,ord) \ Bblock \ TRANSFORMATION__ZQO_AUTO_SIMILAIRE(o \ ,o1 \ ,od \ ,ord \ ,hyper_hyper_complexe \ ,HHCegal \ ,aHHCproduit \ ,aHHCquotient \ ,HHClogarithme \ ,HHCexponentielle,EN \ ); \ Eblock \ /* Transformation dite "auto-similaire" (introduite le 20200705103242). */