_______________________________________________________________________________________________________________________________________
/*************************************************************************************************************************************/
/* */
/* F O N C T I O N S C O M P L E X E S E T H Y P E R - 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 : */
/* */
/* Dans ce fichier se trouvent un */
/* certain nombre de fonctions de */
/* manipulation des images par */
/* transformations conformes. */
/* */
/* */
/* Notations : */
/* */
/* Par ces fonctions, on va passer */
/* d'un espace bidimensionnel a un autre */
/* espace bidimensionnel en notant : */
/* */
/* NORM_X : cNORMALISE_OX */
/* NORM_Y : cNORMALISE_OY */
/* */
/* DENORM_X : lDENORMALISE_OX */
/* DENORM_Y : lDENORMALISE_OY */
/* */
/* pc : point_courant */
/* pm : point_manoeuvre */
/* np : {new_X,new_Y} */
/* */
/* f : facteur_multiplicatif[_effectif] */
/* */
/* RhX : R_facteur_homothetie_X */
/* RhY : R_facteur_homothetie_Y */
/* */
/* AhX : A_facteur_homothetie_X */
/* AhY : A_facteur_homothetie_Y */
/* */
/* AtrX : A_translation__dX_____ */
/* AtrY : A_translation__dY_____ */
/* RtrX : R_translation__dX_____ */
/* RtrY : R_translation__dY_____ */
/* */
/* avec symboliquement : */
/* */
/* pm = TransformationConforme(pc) */
/* */
/* et : */
/* */
/* LoadPoint(pc) --> StorePoint(np) par defaut, */
/* LoadPoint(np) --> StorePoint(pc) si 'IL_FAUT(..._permuter_les_coordonnees_...)' */
/* */
/* */
/* 1-Cas dit du "PLAN_IMAGE" : */
/* */
/* */
/* YMAX1 ------------------ YMAX2 ------------------ */
/* | | | | */
/* | | | | */
/* | * | | | */
/* | pc | | | */
/* | | | | */
/* | | | * | */
/* | | | pm | */
/* | | | | */
/* | | | | */
/* YMIN1 ------------------ YMIN2 ------------------ */
/* */
/* XMIN1 XMAX1 XMIN2 XMAX2 */
/* */
/* */
/* Reelle(pc) = X +DENORM_X(AtrX) Reelle(np) = RhX.f.Reelle(pm) +DENORM_X(RtrX) */
/* Imaginaire(pc) = Y +DENORM_Y(AtrY) Imaginaire(np) = RhY.f.Imaginaire(pm)+DENORM_X(RtrX) */
/* */
/* XMIN1 = Xmin+DENORM_X(AtrX) */
/* XMAX1 = Xmax+DENORM_X(AtrX) */
/* */
/* YMIN1 = Ymin+DENORM_Y(AtrY) */
/* YMAY1 = Ymax+DENORM_Y(AtrY) */
/* */
/* */
/* 2-Cas dit du "PLAN_COMPLEXE" : */
/* */
/* */
/* YMAX1 ------------------ YMAX2 ------------------ */
/* | | | | */
/* | | | | */
/* | * | | | */
/* | pc | | | */
/* | | | | */
/* | | | * | */
/* | | | pm | */
/* | | | | */
/* | | | | */
/* YMIN1 ------------------ YMIN2 ------------------ */
/* */
/* XMIN1 XMAX1 XMIN2 XMAX2 */
/* */
/* */
/* Reelle(pc) = AhX.NORM_X(X) +AtrX Reelle(np) = RhX.f.Reelle(pm) +RtrX */
/* Imaginaire(pc) = AhY.NORM_Y(Y) +AtrY Imaginaire(np) = RhY.f.Imaginaire(pm)+RtrX */
/* */
/* XMIN1 = AhX.NORM_X(Xmin)+AtrX */
/* = 0 +AtrX */
/* XMAX1 = AhX.NORM_X(Xmax)+AtrX */
/* = AhX +AtrX */
/* */
/* YMIN1 = AhY.NORM_Y(Ymin)+AtrY */
/* = 0 +AtrY */
/* YMAY1 = AhY.NORM_Y(Ymax)+AtrY */
/* = AhY +AtrY */
/* */
/* */
/* Author of '$ximcf/conformes$FON' : */
/* */
/* Jean-Francois COLONNA (LACTAMME, 19870000000000). */
/* */
/*************************************************************************************************************************************/
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* C O N T R O L E D E L ' A R I T H M E T I Q U E E T E N D U E */
/* L O R S D E C A L C U L S S U R L E S N O M B R E S C O M P L E X E S : */
/* */
/*************************************************************************************************************************************/
#ifdef FAIRE_EVENTUELLEMENT_DE_L_ARITHMETIQUE_ETENDUE_DANS_LES_NOMBRES_COMPLEXES
DEFV(Common,DEFV(Logical,_______VERSION__ximcf_conformes_____ARITHMETIQUE_ETENDUE_DANS_LES_NOMBRES_COMPLEXES));
/* Indicateur introduit le 20070129121935... */
#Aifdef FAIRE_EVENTUELLEMENT_DE_L_ARITHMETIQUE_ETENDUE_DANS_LES_NOMBRES_COMPLEXES
DEFV(Common,DEFV(Logical,_______VERSION__ximcf_conformes_____ARITHMETIQUE_DE_BASE_DANS_LES_NOMBRES_COMPLEXES));
/* Indicateur introduit le 20070129132455... */
#Eifdef FAIRE_EVENTUELLEMENT_DE_L_ARITHMETIQUE_ETENDUE_DANS_LES_NOMBRES_COMPLEXES
_______________________________________________________________________________________________________________________________________
_______________________________________________________________________________________________________________________________________
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* D E F I N I T I O N G E N E R A L E 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 S P L A N S I M A G E E T C O M P L E X E R E S P E C T I V E M E N T : */
/* */
/*************************************************************************************************************************************/
/* ATTENTION : 'TRANSFORMATIONS_CONFORMES_____permuter_les_coordonnees_de_load_et_de_store' */
/* ne peut etre defini ici puisqu'il est reference dans chacun des blocs de fonctions qui */
/* suivent alors qu'il ne peut etre defini qu'une seule fois (dans le premier bloc...). */
#define COORDONNEES_EFFECTIVES_DE_store_load(new_X,new_Y,old_X,old_Y) \
/* On notera les correspondances suivantes : */ \
/* */ \
/* {old_X,old_Y} --> point_courant ('store(...)' par defaut) */ \
/* */ \
/* /\ */ \
/* et : || */ \
/* || */ \
/* */ \
/* {new_X,new_Y} --> point_manoeuvre ('load(...)' par defaut) */ \
/* */ \
/* "par defaut" signifiant que les coordonnees de 'load' et de 'store' ne sont pas permutees */ \
/* ('IL_NE_FAUT_PAS(..._____permuter_les_coordonnees_de_load_et_de_store)'). */ \
DEFV(Int,INIT(new_X_effectif,new_X)); \
DEFV(Int,INIT(new_Y_effectif,new_Y)); \
DEFV(Int,INIT(old_X_effectif,old_X)); \
DEFV(Int,INIT(old_Y_effectif,old_Y)); \
\
Test(IL_FAUT(TRANSFORMATIONS_CONFORMES_____permuter_les_coordonnees_de_load_et_de_store)) \
Bblock \
EGAL(new_X_effectif,old_X); \
EGAL(new_Y_effectif,old_Y); \
EGAL(old_X_effectif,new_X); \
EGAL(old_Y_effectif,new_Y); \
Eblock \
ATes \
Bblock \
Eblock \
ETes \
\
Test(IL_FAUT(TRANSFORMATIONS_CONFORMES_____editer_les_extrema_des_coordonnees_de_load_et_de_store)) \
Bblock \
Test(IFET(IFEQ(X,Xmin),IFEQ(Y,Ymin))) \
Bblock \
EGAL(TRANSFORMATIONS_CONFORMES_____minimum__old_X__de_load_et_de_store,INFINI); \
EGAL(TRANSFORMATIONS_CONFORMES_____maximum__old_X__de_load_et_de_store,MOINS_L_INFINI); \
\
EGAL(TRANSFORMATIONS_CONFORMES_____minimum__old_Y__de_load_et_de_store,INFINI); \
EGAL(TRANSFORMATIONS_CONFORMES_____maximum__old_Y__de_load_et_de_store,MOINS_L_INFINI); \
\
EGAL(TRANSFORMATIONS_CONFORMES_____minimum__new_X__de_load_et_de_store,INFINI); \
EGAL(TRANSFORMATIONS_CONFORMES_____maximum__new_X__de_load_et_de_store,MOINS_L_INFINI); \
\
EGAL(TRANSFORMATIONS_CONFORMES_____minimum__new_Y__de_load_et_de_store,INFINI); \
EGAL(TRANSFORMATIONS_CONFORMES_____maximum__new_Y__de_load_et_de_store,MOINS_L_INFINI); \
/* Initialisation du processus... */ \
Eblock \
ATes \
Bblock \
Eblock \
ETes \
Eblock \
ATes \
Bblock \
Eblock \
ETes \
\
Test(IL_FAUT(TRANSFORMATIONS_CONFORMES_____editer_les_extrema_des_coordonnees_de_load_et_de_store)) \
Bblock \
EGAL(TRANSFORMATIONS_CONFORMES_____minimum__old_X__de_load_et_de_store \
,MIN2(TRANSFORMATIONS_CONFORMES_____minimum__old_X__de_load_et_de_store,old_X) \
); \
EGAL(TRANSFORMATIONS_CONFORMES_____maximum__old_X__de_load_et_de_store \
,MAX2(TRANSFORMATIONS_CONFORMES_____maximum__old_X__de_load_et_de_store,old_X) \
); \
\
EGAL(TRANSFORMATIONS_CONFORMES_____minimum__old_Y__de_load_et_de_store \
,MIN2(TRANSFORMATIONS_CONFORMES_____minimum__old_Y__de_load_et_de_store,old_Y) \
); \
EGAL(TRANSFORMATIONS_CONFORMES_____maximum__old_Y__de_load_et_de_store \
,MAX2(TRANSFORMATIONS_CONFORMES_____maximum__old_Y__de_load_et_de_store,old_Y) \
); \
\
EGAL(TRANSFORMATIONS_CONFORMES_____minimum__new_X__de_load_et_de_store \
,MIN2(TRANSFORMATIONS_CONFORMES_____minimum__new_X__de_load_et_de_store,new_X) \
); \
EGAL(TRANSFORMATIONS_CONFORMES_____maximum__new_X__de_load_et_de_store \
,MAX2(TRANSFORMATIONS_CONFORMES_____maximum__new_X__de_load_et_de_store,new_X) \
); \
\
EGAL(TRANSFORMATIONS_CONFORMES_____minimum__new_Y__de_load_et_de_store \
,MIN2(TRANSFORMATIONS_CONFORMES_____minimum__new_Y__de_load_et_de_store,new_Y) \
); \
EGAL(TRANSFORMATIONS_CONFORMES_____maximum__new_Y__de_load_et_de_store \
,MAX2(TRANSFORMATIONS_CONFORMES_____maximum__new_Y__de_load_et_de_store,new_Y) \
); \
/* Recherche des extrema... */ \
Eblock \
ATes \
Bblock \
Eblock \
ETes \
\
Test(IL_FAUT(TRANSFORMATIONS_CONFORMES_____editer_les_extrema_des_coordonnees_de_load_et_de_store)) \
Bblock \
Test(IFET(IFEQ(X,Xmax),IFEQ(Y,Ymax))) \
Bblock \
CAL3(Prme4("[%d,%d]x[%d,%d]" \
,TRANSFORMATIONS_CONFORMES_____minimum__new_X__de_load_et_de_store \
,TRANSFORMATIONS_CONFORMES_____maximum__new_X__de_load_et_de_store \
,TRANSFORMATIONS_CONFORMES_____minimum__new_Y__de_load_et_de_store \
,TRANSFORMATIONS_CONFORMES_____maximum__new_Y__de_load_et_de_store \
) \
); \
\
Test(IL_NE_FAUT_PAS(TRANSFORMATIONS_CONFORMES_____permuter_les_coordonnees_de_load_et_de_store)) \
Bblock \
CALS(FPrme0(" --> ")); \
Eblock \
ATes \
Bblock \
CALS(FPrme0(" <-- ")); \
Eblock \
ETes \
\
CAL3(Prme4("[%d,%d]x[%d,%d]" \
,TRANSFORMATIONS_CONFORMES_____minimum__old_X__de_load_et_de_store \
,TRANSFORMATIONS_CONFORMES_____maximum__old_X__de_load_et_de_store \
,TRANSFORMATIONS_CONFORMES_____minimum__old_Y__de_load_et_de_store \
,TRANSFORMATIONS_CONFORMES_____maximum__old_Y__de_load_et_de_store \
) \
); \
\
CALS(Fsauts_de_lignes(UN)); \
Eblock \
ATes \
Bblock \
Eblock \
ETes \
Eblock \
ATes \
Bblock \
Eblock \
ETes \
\
Test(IL_FAUT(TRANSFORMATIONS_CONFORMES_____editer_les_coordonnees_de_load_et_de_store)) \
Bblock \
CALS(FPrme0("PlanImage... : ")); \
\
CAL3(Prme2("{%d,%d}" \
,new_X \
,new_Y \
) \
); \
\
Test(IL_NE_FAUT_PAS(TRANSFORMATIONS_CONFORMES_____permuter_les_coordonnees_de_load_et_de_store)) \
Bblock \
CALS(FPrme0(" --> ")); \
Eblock \
ATes \
Bblock \
CALS(FPrme0(" <-- ")); \
Eblock \
ETes \
\
CAL3(Prme2("{%d,%d}" \
,old_X \
,old_Y \
) \
); \
\
CALS(Fsauts_de_lignes(UN)); \
Eblock \
ATes \
Bblock \
Eblock \
ETes \
/* Procedure de permutation eventuelle des coordonnees (introduite le 20120521150042) et */ \
/* completee le 20120528091800 pour editer eventuellement les "extrema" des coordonnees */ \
/* (le mot 'extrema' est entre quotes car, en effet, pour 'point_manoeuvre' cela peut ne */ \
/* pas etre les extrema...), puis encore completee le 20120604120312 afin de pouvoir */ \
/* editer les coordonnees elles-memes... */
#define store_point_load_point(imageA,new_X,new_Y,imageR,old_X,old_Y) \
Bblock \
COORDONNEES_EFFECTIVES_DE_store_load(new_X,new_Y,old_X,old_Y); \
/* Permutation eventuelle de {old_X,old_Y} et de {new_X,new_Y}... */ \
\
OPC5(IL_NE_FAUT_PAS(TRANSFORMATIONS_CONFORMES_____store_point_modulo__plutot_que__store_point_valide) \
,store_point_valide \
,store_point_modulo \
,OPC3(IL_NE_FAUT_PAS(TRANSFORMATIONS_CONFORMES_____load_point_valide__plutot_que__load_point_modulo) \
,load_point_modulo \
,load_point_valide \
,imageA \
,new_X_effectif \
,new_Y_effectif \
) \
,imageR \
,old_X_effectif \
,old_Y_effectif \
,FVARIABLE \
); \
Eblock \
/* Procedure de load puis de store "standard" (introduite le 20120521150042). */
#define storeF_point_loadF_point(imageA,new_X,new_Y,imageR,old_X,old_Y) \
Bblock \
COORDONNEES_EFFECTIVES_DE_store_load(new_X,new_Y,old_X,old_Y); \
/* Permutation eventuelle de {old_X,old_Y} et de {new_X,new_Y}... */ \
\
OPC4(IL_NE_FAUT_PAS(TRANSFORMATIONS_CONFORMES_____store_point_modulo__plutot_que__store_point_valide) \
,storeF_point_valide \
,storeF_point_modulo \
,OPC3(IL_NE_FAUT_PAS(TRANSFORMATIONS_CONFORMES_____load_point_valide__plutot_que__load_point_modulo) \
,loadF_point_modulo \
,loadF_point_valide \
,imageA \
,new_X_effectif \
,new_Y_effectif \
) \
,imageR \
,old_X_effectif \
,old_Y_effectif \
); \
Eblock \
/* Procedure de load puis de store "flottant" (introduite le 20120521150042). */
#define storeJ_point_loadJ_point(imageA,new_X,new_Y,imageR,old_X,old_Y) \
Bblock \
COORDONNEES_EFFECTIVES_DE_store_load(new_X,new_Y,old_X,old_Y); \
/* Permutation eventuelle de {old_X,old_Y} et de {new_X,new_Y}... */ \
\
OPC4(IL_NE_FAUT_PAS(TRANSFORMATIONS_CONFORMES_____store_point_modulo__plutot_que__store_point_valide) \
,storeRJ_point_valide \
,storeRJ_point_valide \
/* ATTENTION : 'storeRJ_point_modulo(...)' n'existe pas a la date du 20120604154933... */ \
,OPC3(IL_NE_FAUT_PAS(TRANSFORMATIONS_CONFORMES_____load_point_valide__plutot_que__load_point_modulo) \
,loadRJ_point_modulo \
,loadRJ_point_modulo \
/* ATTENTION : 'loadRJ_point_valide(...)' n'existe pas a la date du 20120604154933... */ \
,imageA \
,new_X_effectif \
,new_Y_effectif \
) \
,imageR \
,old_X_effectif \
,old_Y_effectif \
); \
OPC4(IL_NE_FAUT_PAS(TRANSFORMATIONS_CONFORMES_____store_point_modulo__plutot_que__store_point_valide) \
,storeIJ_point_valide \
,storeIJ_point_valide \
/* ATTENTION : 'storeIJ_point_modulo(...)' n'existe pas a la date du 20120604154933... */ \
,OPC3(IL_NE_FAUT_PAS(TRANSFORMATIONS_CONFORMES_____load_point_valide__plutot_que__load_point_modulo) \
,loadIJ_point_modulo \
,loadIJ_point_modulo \
/* ATTENTION : 'loadIJ_point_valide(...)' n'existe pas a la date du 20120604154933... */ \
,imageA \
,new_X_effectif \
,new_Y_effectif \
) \
,imageR \
,old_X_effectif \
,old_Y_effectif \
); \
Eblock \
/* Procedure de load puis de store "complexe" (introduite le 20120521150042). */
DEFV(Common,DEFV(Int,ZINT(TRANSFORMATION_CONFORME_DANS_LE_PLAN_IMAGE_____Xmin_reference,k___Xmin)));
DEFV(Common,DEFV(Int,ZINT(TRANSFORMATION_CONFORME_DANS_LE_PLAN_IMAGE_____Xmax_reference,k___Xmax)));
DEFV(Common,DEFV(Int,ZINT(TRANSFORMATION_CONFORME_DANS_LE_PLAN_IMAGE_____Ymin_reference,k___Ymin)));
DEFV(Common,DEFV(Int,ZINT(TRANSFORMATION_CONFORME_DANS_LE_PLAN_IMAGE_____Ymax_reference,k___Ymax)));
/* Definition d'un format d'image dit "reference" utilise pour calculer un facteur */
/* homothetique multiplicatif (introduit le 20100408174856). */
/* */
/* ATTENTION : je note le 20111014104900 que le format de reference est le format 'Std' */
/* et non pas le format 'Pal'... */
/* */
/* ATTENTION : je note le 20170322102617 l'existence de six nouvelles variables dans */
/* 'v $xiii/Images$STR _reference.k___'. Mais celles-ci ne peuvent remplacer les quatre */
/* qui sont definies ci-dessus et ce pour de possibles problemes de compatibilite (au cas */
/* ou, par exemple, les variables 'v $xiii/Images$STR _reference.k___' passaient du format */
/* 'Std' au format 'Pal'...). */
DEFV(Common,DEFV(Logical,ZINT(TRANSFORMATION_CONFORME_DANS_LE_PLAN_IMAGE_____facteur_multiplicatif_homothetique,FAUX)));
/* Introduit le 20100408174856, la valeur par defaut garantissant la compatibilite */
/* anterieure... */
DEFV(Common,DEFV(Float,ZINT(TRANSFORMATION_CONFORME_DANS_LE_PLAN_COMPLEXE_____A_facteur_homothetie_X,FU)));
DEFV(Common,DEFV(Float,ZINT(TRANSFORMATION_CONFORME_DANS_LE_PLAN_COMPLEXE_____A_facteur_homothetie_Y,FU)));
/* Parametres destines uniquement a 'TRANSFORMATION_CONFORME_DANS_LE_PLAN_COMPLEXE(...)' */
/* permettant de faire une homothetie sur le domaine de calcul (via 'point_courant') et */
/* introduits le 20120527181002... */
DEFV(Common,DEFV(Float,ZINT(TRANSFORMATION_CONFORME_DANS_LES_PLANS_____R_facteur_homothetie_X,FU)));
DEFV(Common,DEFV(Float,ZINT(TRANSFORMATION_CONFORME_DANS_LES_PLANS_____R_facteur_homothetie_Y,FU)));
/* Parametres destines a faire une homothetie (via 'point_manoeuvre') introduits le */
/* 20120527184309... */
#define A_translation__dX_____ \
AXPB(TRANSFORMATION_CONFORME_DANS_LES_PLANS_____A_translation_AX \
,ASI1(A_translation,dx) \
,TRANSFORMATION_CONFORME_DANS_LES_PLANS_____A_translation_BX \
)
#define A_translation__dY_____ \
AXPB(TRANSFORMATION_CONFORME_DANS_LES_PLANS_____A_translation_AY \
,ASI1(A_translation,dy) \
,TRANSFORMATION_CONFORME_DANS_LES_PLANS_____A_translation_BY \
)
DEFV(Common,DEFV(Float,ZINT(TRANSFORMATION_CONFORME_DANS_LES_PLANS_____A_translation_AX,FU)));
DEFV(Common,DEFV(Float,ZINT(TRANSFORMATION_CONFORME_DANS_LES_PLANS_____A_translation_BX,FZERO)));
DEFV(Common,DEFV(Float,ZINT(TRANSFORMATION_CONFORME_DANS_LES_PLANS_____A_translation_AY,FU)));
DEFV(Common,DEFV(Float,ZINT(TRANSFORMATION_CONFORME_DANS_LES_PLANS_____A_translation_BY,FZERO)));
#define R_translation__dX_____ \
AXPB(TRANSFORMATION_CONFORME_DANS_LES_PLANS_____R_translation_AX \
,ASI1(R_translation,dx) \
,TRANSFORMATION_CONFORME_DANS_LES_PLANS_____R_translation_BX \
)
#define R_translation__dY_____ \
AXPB(TRANSFORMATION_CONFORME_DANS_LES_PLANS_____R_translation_AY \
,ASI1(R_translation,dy) \
,TRANSFORMATION_CONFORME_DANS_LES_PLANS_____R_translation_BY \
)
DEFV(Common,DEFV(Float,ZINT(TRANSFORMATION_CONFORME_DANS_LES_PLANS_____R_translation_AX,FU)));
DEFV(Common,DEFV(Float,ZINT(TRANSFORMATION_CONFORME_DANS_LES_PLANS_____R_translation_BX,FZERO)));
DEFV(Common,DEFV(Float,ZINT(TRANSFORMATION_CONFORME_DANS_LES_PLANS_____R_translation_AY,FU)));
DEFV(Common,DEFV(Float,ZINT(TRANSFORMATION_CONFORME_DANS_LES_PLANS_____R_translation_BY,FZERO)));
/* Definition des facteurs de corrections des translations 'A' et 'R' (ceci fut introduit */
/* le 20111228152543... */
#define EDITION_DES_COORDONNEES_D_UNE_TRANSFORMATION_CONFORME \
Bblock \
Test(IL_FAUT(TRANSFORMATIONS_CONFORMES_____editer_les_coordonnees_de_load_et_de_store)) \
Bblock \
CALS(FPrme0("PlanComplexe : ")); \
\
CAL3(Prme2("{%+.^^^,%+.^^^}" \
,Reelle(point_manoeuvre) \
,Imaginaire(point_manoeuvre) \
) \
); \
\
Test(IL_NE_FAUT_PAS(TRANSFORMATIONS_CONFORMES_____permuter_les_coordonnees_de_load_et_de_store)) \
Bblock \
CALS(FPrme0(" --> ")); \
Eblock \
ATes \
Bblock \
CALS(FPrme0(" <-- ")); \
Eblock \
ETes \
\
CAL3(Prme2("{%+.^^^,%+.^^^}" \
,Reelle(point_courant) \
,Imaginaire(point_courant) \
) \
); \
\
CALS(Fsauts_de_lignes(UN)); \
Eblock \
ATes \
Bblock \
Eblock \
ETes \
Eblock \
/* Edition eventuelle des coordonnees et de leur transformation conforme afin d'en verifier */ \
/* le bon fonctionnement (introduite le 20120604114352...) */
#define TRANSFORMATION_CONFORME_DANS_LE_PLAN_IMAGE(variables_specifiques,condition,transformation,action_de_rangement,fme) \
/* Procedure generale introduite le 20070116092344... */ \
/* */ \
/* L'argument 'fme' ("Facteur_Multiplicatif_Effectif") a ete introduit le 20100408174856... */ \
Bblock \
DEFV(Float,INIT(facteur_multiplicatif_effectif,facteur_multiplicatif)); \
/* Facteur multiplicatif effectif introduit le 20100408173148 afin de rendre ce facteur */ \
/* "homothetique" ce qui permettra alors d'obtenir le meme resultat quel que soit la */ \
/* resolution de l'image (par exemple 'Puq' et 'Pqu'...). Ceci n'a evidemment de sens */ \
/* que pour 'TRANSFORMATION_CONFORME_DANS_LE_PLAN_IMAGE(...)' et n'en a pas pour */ \
/* 'TRANSFORMATION_CONFORME_DANS_LE_PLAN_COMPLEXE(...)' puisque les coordonnees {X,Y} */ \
/* sont alors normalisees dans [0,1], cette normalisation etant evidemment independante */ \
/* de resolution de l'image... */ \
\
Test(IL_FAUT(TRANSFORMATION_CONFORME_DANS_LE_PLAN_IMAGE_____facteur_multiplicatif_homothetique)) \
Bblock \
DEFV(Float,INIT(facteur_correctif \
,DIVI(RACX(FLOT(MUL2(DIMENSION(TRANSFORMATION_CONFORME_DANS_LE_PLAN_IMAGE_____Xmin_reference \
,TRANSFORMATION_CONFORME_DANS_LE_PLAN_IMAGE_____Xmax_reference \
) \
,DIMENSION(TRANSFORMATION_CONFORME_DANS_LE_PLAN_IMAGE_____Ymin_reference \
,TRANSFORMATION_CONFORME_DANS_LE_PLAN_IMAGE_____Ymax_reference \
) \
) \
) \
) \
,RACX(FLOT(dimXY)) \
) \
) \
); \
EGAL(facteur_multiplicatif_effectif,fme); \
/* Ainsi, le facteur mutiplicatif est rendu independant de la resolution de l'image par */ \
/* rapport a la resolution dite "reference"... */ \
Eblock \
ATes \
Bblock \
Eblock \
ETes \
\
begin_image \
Bblock \
DEFV(complexe,point_courant); \
/* Point complexe courant. */ \
DEFV(complexe,point_manoeuvre); \
/* Point complexe resultat de la transformation. */ \
BLOC(variables_specifiques); \
/* Variables specifiques eventuellement (introduites le 20070116095630)... */ \
\
Cinitialisation(point_courant \
,ADD2(FLOT(X) \
,F__lDENORMALISE_OX(A_translation__dX_____) \
) \
,ADD2(FLOT(Y) \
,F__lDENORMALISE_OY(A_translation__dY_____) \
) \
); \
/* Le "point_courant" est le point courant {X,Y} sur le maillage de l'image. */ \
\
Test(condition) \
Bblock \
DEFV(Int,INIT(new_X,UNDEF)); \
/* Nouvelle coordonnee horizontale apres transformation, */ \
DEFV(Int,INIT(new_Y,UNDEF)); \
/* Nouvelle coordonnee verticale apres transformation, */ \
\
BLOC(transformation); \
/* Transformation du nombre complexe courant. */ \
\
EDITION_DES_COORDONNEES_D_UNE_TRANSFORMATION_CONFORME; \
/* Edition eventuelle des coordonnees introduite le 20120604114352... */ \
\
EGAL(new_X \
,ADD2(VINTE(MUL3(TRANSFORMATION_CONFORME_DANS_LES_PLANS_____R_facteur_homothetie_X \
,facteur_multiplicatif_effectif \
,Reelle(point_manoeuvre) \
) \
) \
,_lDENORMALISE_OX(R_translation__dX_____) \
) \
); \
EGAL(new_Y \
,ADD2(VINTE(MUL3(TRANSFORMATION_CONFORME_DANS_LES_PLANS_____R_facteur_homothetie_Y \
,facteur_multiplicatif_effectif \
,Imaginaire(point_manoeuvre) \
) \
) \
,_lDENORMALISE_OY(R_translation__dY_____) \
) \
); \
/* Calcul des coordonnees transformees dans le plan image. */ \
\
BLOC(action_de_rangement); \
/* Et enfin, deplacement du point courant... */ \
Eblock \
ATes \
Bblock \
Eblock \
ETes \
Eblock \
end_image \
Eblock \
/* Definition de la transformation conforme en coordonnees d'ecran [Xmin,Xmax]x[Ymin,Ymax]. */
#define TRANSFORMATION_CONFORME_DANS_LE_PLAN_COMPLEXE(variables_specifiques,condition,transformation,action_de_rangement) \
/* Procedure generale introduite le 20070116092344... */ \
Bblock \
begin_image \
Bblock \
DEFV(Float,INIT(new_X,FLOT__UNDEF)); \
/* Nouvelle coordonnee horizontale apres transformation, */ \
DEFV(Float,INIT(new_Y,FLOT__UNDEF)); \
/* Nouvelle coordonnee verticale apres transformation, */ \
DEFV(complexe,point_courant); \
/* Point complexe courant. */ \
DEFV(complexe,point_manoeuvre); \
/* Point complexe resultat de la transformation. */ \
BLOC(variables_specifiques); \
/* Variables specifiques eventuellement (introduites le 20070116095630)... */ \
\
Cinitialisation(point_courant \
,AXPB(TRANSFORMATION_CONFORME_DANS_LE_PLAN_COMPLEXE_____A_facteur_homothetie_X \
,SUPER_cNORMALISE_OX(X) \
,A_translation__dX_____ \
) \
,AXPB(TRANSFORMATION_CONFORME_DANS_LE_PLAN_COMPLEXE_____A_facteur_homothetie_Y \
,SUPER_cNORMALISE_OY(Y) \
,A_translation__dY_____ \
) \
); \
/* Le "point_courant" est le point courant {X,Y} ramene dans le plan Complexe. */ \
/* */ \
/* Le passage de '_____cNORMALISE_O?(...)' a 'SUPER_cNORMALISE_O?(...)' a eu lieu */ \
/* le 20050912125230... */ \
\
Test(condition) \
Bblock \
BLOC(transformation); \
/* Transformation du nombre complexe courant. */ \
\
EDITION_DES_COORDONNEES_D_UNE_TRANSFORMATION_CONFORME; \
/* Edition eventuelle des coordonnees introduite le 20120604114352... */ \
\
EGAL(new_X \
,ADD2(MUL3(TRANSFORMATION_CONFORME_DANS_LES_PLANS_____R_facteur_homothetie_X \
,facteur_multiplicatif \
,Reelle(point_manoeuvre) \
) \
,R_translation__dX_____ \
) \
); \
EGAL(new_Y \
,ADD2(MUL3(TRANSFORMATION_CONFORME_DANS_LES_PLANS_____R_facteur_homothetie_Y \
,facteur_multiplicatif \
,Imaginaire(point_manoeuvre) \
) \
,R_translation__dY_____ \
) \
); \
/* Calcul des coordonnees transformees dans le plan Complexe. */ \
\
BLOC(action_de_rangement); \
/* Et enfin, deplacement du point courant... */ \
Eblock \
ATes \
Bblock \
Eblock \
ETes \
Eblock \
end_image \
Eblock \
/* Definition de la transformation conforme en coordonnees d'ecran [Xmin,Xmax]x[Ymin,Ymax]. */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 ) : */
/* */
/* */
/* *** ** ********* *** ********* ** *** */
/* *** ** *************** ** *** */
/* *** *** ** *** ** *** ** */
/* * *** *** *** *** *** */
/* *** *** *** *** *** */
/* *** *** * * */
/* **** **** **** **** **** */
/* * ***** ***** ***** ***** ** ** */
/* ****** ***** ***** ***** ***** */
/* *** ****** ****** ****** ** */
/* * * ******** ******* ******** * * */
/* ** *********************** ** */
/* *** ********************* *** */
/* ** ******************* ** */
/* ** ***************** * **************** ** */
/* **************************************************************** */
/* ** **************** * ***************** ** */
/* ** ******************* ** */
/* *** ********************* *** */
/* ** *********************** ** */
/* * * ******** ******* ******** * * */
/* *** ****** ****** ****** ** */
/* ****** ***** ***** ***** ***** */
/* * ** ** ***** ***** ***** ***** */
/* **** **** **** **** **** */
/* * * *** *** */
/* *** *** *** *** *** */
/* * *** *** *** *** *** */
/* *** *** ** *** ** *** ** */
/* *** ** *************** ** *** */
/* *** ** ********* *** ********* ** *** */
/* ** * * ****** *** ****** *** * */
/* */
/* */
/* .+**+**+.. ...+********+++++**++++++********+... ..+**+**+ */
/* ..+***+... ..+**+...+++*************+++...+**+.. ...+***+. */
/* +**++***+......+**+...........+***+...........+**+......+***++** */
/* ++....+***+..++**+... ...+***+... ...+**++..+***+....+ */
/* .. ...+***+***+... ...+***+... ...+***+***+... . */
/* .. ...++***++..... ...++***+.... .....++* *+.... . */
/* +......++***+***++...........++***++...........++***+***++...... */
/* *+..++***++..++****++........++***++........++****++..++* *++..+ */
/* ******++.......++****+++....++*****++....+++****++.......++***** */
/* ***+...... ....++*****+++++++*****+++++++*****++.... ......+** */
/* .+ *+.. ....++******+++******++++******++.... ..+* + */
/* .+**+... ....++***********************++.... ...+**+ */
/* ..+**+.. .........+++*******************+++......... ..+**+. */
/* ..+**+...........+++++++*****************++++++............+**+. */
/* ..+**++++++++++++************** * *************+++++++++++++**+. */
/* **************************************************************** */
/* ..+**+++++++++++++************* * **************++++++++++++**+. */
/* ..+**+............++++++*****************+++++++...........+**+. */
/* ..+**+.. .........+++*******************+++......... ..+**+. */
/* .+**+... ....++***********************++.... ...+**+ */
/* .+ *+.. ....++******++++******+++******++.... ..+* + */
/* ***+...... ....++*****+++++++*****+++++++*****++.... ......+** */
/* ******++.......++****+++....++*****++....+++****++.......++***** */
/* *+..++* *++..++****++........++***++........++****++..++***++..+ */
/* +......++***+***++...........++***++...........++***+***++...... */
/* .. ....+* *++..... ....+***++... .....++***++... . */
/* .. ...+***+***+... ...+***+... ...+***+***+... . */
/* ++....+***+..++**+... ...+***+... ...+**++..+***+....+ */
/* +**++***+......+**+...........+***+...........+**+......+***++** */
/* ..+***+... ..+**+...+++*************+++...+**+.. ...+***+. */
/* .+**+**+.. ...+********++++++**+++++********+... ..+**+**+ */
/* *+....+ +.....++*****+.........+*+.........+*****++.....+*+....+ */
/* */
/* */
/*************************************************************************************************************************************/
#define Z_AU_CARRE_DANS_PLANS_IMAGE_OU_COMPLEXE \
Bblock \
TRANSFORMATION__Z_AU_CARRE(point_manoeuvre,point_courant); \
Eblock \
/* Definition generale de la transformation 'z' au carre dans les plans image ou */ \
/* complexe (introduite le 20070118102622). */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* D E F I N I 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 Z_AU_CARRE_DANS_LE_PLAN_IMAGE(action_de_rangement) \
Bblock \
TRANSFORMATION_CONFORME_DANS_LE_PLAN_IMAGE(BLOC(VIDE;) \
,TOUJOURS_VRAI \
,BLOC(Z_AU_CARRE_DANS_PLANS_IMAGE_OU_COMPLEXE;) \
,BLOC(action_de_rangement) \
,MUL2(facteur_multiplicatif,NEUT(facteur_correctif)) \
); \
Eblock \
/* Definition de la transformation conforme en coordonnees d'ecran [Xmin,Xmax]x[Ymin,Ymax]. */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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] : */
/* */
/*************************************************************************************************************************************/
BFonctionP
DEFV(Common,DEFV(FonctionP,POINTERp(Iz_au_carre_dans_le_plan_image(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
)
)
)
)
DEFV(Argument,DEFV(image,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K' (une valeur de l'ordre de 0.01 donne de bons resultats). */
DEFV(Argument,DEFV(image,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
Z_AU_CARRE_DANS_LE_PLAN_IMAGE(BLOC(store_point_load_point(imageA
,new_X
,new_Y
,imageR
,X
,Y
);
)
);
RETI(imageR);
Eblock
EFonctionP
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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] : */
/* */
/*************************************************************************************************************************************/
BFonctionF
DEFV(Common,DEFV(FonctionF,POINTERF(IFz_au_carre_dans_le_plan_image(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
)
)
)
)
/* Fonction introduite le 20041225171429. */
DEFV(Argument,DEFV(imageF,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K' (une valeur de l'ordre de 0.01 donne de bons resultats). */
DEFV(Argument,DEFV(imageF,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
Z_AU_CARRE_DANS_LE_PLAN_IMAGE(BLOC(storeF_point_loadF_point(imageA
,new_X
,new_Y
,imageR
,X
,Y
);
)
);
RETIF(imageR);
Eblock
EFonctionF
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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] : */
/* */
/*************************************************************************************************************************************/
BFonctionJ
DEFV(Common,DEFV(FonctionJ,POINTERJ(IJz_au_carre_dans_le_plan_image(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
)
)
)
)
DEFV(Argument,DEFV(imageJ,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K' (une valeur de l'ordre de 0.01 donne de bons resultats). */
DEFV(Argument,DEFV(imageJ,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
Z_AU_CARRE_DANS_LE_PLAN_IMAGE(BLOC(storeJ_point_loadJ_point(imageA
,new_X
,new_Y
,imageR
,X
,Y
);
)
);
RETIJ(imageR);
Eblock
EFonctionJ
#undef Z_AU_CARRE_DANS_LE_PLAN_IMAGE
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* D E F I N I 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 U P L A N C O M P L E X E [0,1] x [0,1] : */
/* */
/*************************************************************************************************************************************/
#define Z_AU_CARRE_DANS_LE_PLAN_COMPLEXE(action_de_rangement) \
Bblock \
TRANSFORMATION_CONFORME_DANS_LE_PLAN_COMPLEXE(BLOC(VIDE;) \
,TOUJOURS_VRAI \
,BLOC(Z_AU_CARRE_DANS_PLANS_IMAGE_OU_COMPLEXE;) \
,BLOC(action_de_rangement) \
); \
Eblock \
/* Definition de la transformation conforme en coordonnees d'ecran [Xmin,Xmax]x[Ymin,Ymax]. */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 U P L A N C O M P L E X E [0,1] x [0,1] : */
/* */
/*************************************************************************************************************************************/
BFonctionP
DEFV(Common,DEFV(FonctionP,POINTERp(Iz_au_carre_dans_le_plan_complexe(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
)
)
)
)
DEFV(Argument,DEFV(image,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K' (une valeur de l'ordre de 5.0 donne de bons resultats) ; voir */
/* a ce propos les commentaires de 'v $xci/z_carre.01$K'... */
DEFV(Argument,DEFV(image,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
Z_AU_CARRE_DANS_LE_PLAN_COMPLEXE(BLOC(store_point_load_point(imageA
,fV_cDENORMALISE_OX(new_X)
,fV_cDENORMALISE_OY(new_Y)
,imageR
,X
,Y
);
)
);
RETI(imageR);
Eblock
EFonctionP
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 U P L A N C O M P L E X E [0,1] x [0,1] : */
/* */
/*************************************************************************************************************************************/
BFonctionF
DEFV(Common,DEFV(FonctionF,POINTERF(IFz_au_carre_dans_le_plan_complexe(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
)
)
)
)
/* Fonction introduite le 20041225171429. */
DEFV(Argument,DEFV(imageF,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K' (une valeur de l'ordre de 5.0 donne de bons resultats) ; voir */
/* a ce propos les commentaires de 'v $xci/z_carre.01$K'... */
DEFV(Argument,DEFV(imageF,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
Z_AU_CARRE_DANS_LE_PLAN_COMPLEXE(BLOC(storeF_point_loadF_point(imageA
,fV_cDENORMALISE_OX(new_X)
,fV_cDENORMALISE_OY(new_Y)
,imageR
,X
,Y
);
)
);
RETIF(imageR);
Eblock
EFonctionF
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 U P L A N C O M P L E X E [0,1] x [0,1] : */
/* */
/*************************************************************************************************************************************/
BFonctionJ
DEFV(Common,DEFV(FonctionJ,POINTERJ(IJz_au_carre_dans_le_plan_complexe(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
)
)
)
)
DEFV(Argument,DEFV(imageJ,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K' (une valeur de l'ordre de 5.0 donne de bons resultats) ; voir */
/* a ce propos les commentaires de 'v $xci/z_carre.01$K'... */
DEFV(Argument,DEFV(imageJ,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
Z_AU_CARRE_DANS_LE_PLAN_COMPLEXE(BLOC(storeJ_point_loadJ_point(imageA
,fV_cDENORMALISE_OX(new_X)
,fV_cDENORMALISE_OY(new_Y)
,imageR
,X
,Y
);
)
);
RETIJ(imageR);
Eblock
EFonctionJ
#undef Z_AU_CARRE_DANS_LE_PLAN_COMPLEXE
#undef Z_AU_CARRE_DANS_PLANS_IMAGE_OU_COMPLEXE
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 ) : */
/* */
/* */
/* *********** */
/* ********* */
/* ******** */
/* ******* */
/* ***** */
/* ***** */
/* *** */
/* ********* */
/* **** *** **** */
/* ** * ** */
/* ** * ** */
/* ****** *** ****** */
/* * *** * * * * * *** */
/* ******* *** * * *** * * *** ****** */
/* ************** ** * * * * * ** ************* */
/* ******************************** ******************************* */
/* ************** ** * * * * * ** ************* */
/* ****** *** * * *** * * *** ***** */
/* *** * * * * * *** */
/* ****** *** ****** */
/* ** * ** */
/* ** * ** */
/* **** *** **** */
/* ********* */
/* *** */
/* ***** */
/* ***** */
/* ******* */
/* ******** */
/* ********* */
/* *********** */
/* ************ */
/* */
/* */
/* .......................+++++*********+++++...................... */
/* ........................+++++*******++++........................ */
/* ..........................+++*******+++......................... */
/* ...........................+++*****+++............... ........ */
/* ......... ..........++*****++.......... ........ */
/* ......... ......++****++....... ........ */
/* ......... ......++***++...... ........ */
/* .......... ....+++*******+++.... ......... */
/* ........... ....+****++*++****+.... .......... */
/* ............ ...+**+...+*+...+**+... ........... */
/* ++........... ........+**+. ..*.. .+**+........ ...........+ */
/* +++++..............++******+...+*+...+******++..............++++ */
/* ++++++++........++***++.*+...*. * .*...+*..+***++........+++++++ */
/* ****+++++++++..++**+.. .*.+*+++*+++*+.*. ..+**++..+++++++++*** */
/* *************+++**+.... .*.*+ ++*++ +*.*. ....+**+++************ */
/* ******************************** ******************************* */
/* ************++++**+.... .*.++ ++*++ ++.*. ....+**++++*********** */
/* ****++++++++...++**+.. .*.+*+++*+++*+.*. ..+**++...++++++++*** */
/* ++++++++........++***++.*+...*. * .*...+*..+***++........+++++++ */
/* ++++...............++******+...+*+...+******++...............+++ */
/* +............ ........+**.. ..*.. ..**+........ ............ */
/* ............ ...+**+...+*+...+**+... ........... */
/* ........... ....+****++*++****+.... .......... */
/* .......... ....+++*******+++.... ......... */
/* ......... ......++***++...... ........ */
/* ......... ......++****++....... ........ */
/* ........ ..........++*****++.......... ....... */
/* ...........................+++*****+++............... ....... */
/* ..........................+++*******+++......................... */
/* ........................+++++*******++++........................ */
/* .......................+++++*********+++++...................... */
/* .....................++++++**********++++++..................... */
/* */
/* */
/*************************************************************************************************************************************/
#define UN_SUR_Z_DANS_PLANS_IMAGE_OU_COMPLEXE \
Bblock \
TRANSFORMATION__UN_SUR_Z(point_manoeuvre,point_courant); \
/* Avant le 20070115102032, le 'Cquotient(...)' n'etait pas present et l'inverse du */ \
/* nombre courant etait calcule "a la main" via : */ \
/* */ \
/* Cconjugaison(point_manoeuvre,point_courant); */ \
/* EGAL(module_au_carre,Cmodule2(point_manoeuvre)); */ \
/* */ \
/* et (ci-apres pour le calcul de {new_X,new_Y}) : */ \
/* */ \
/* SCAL(Reelle(point_manoeuvre) */ \
/* ,module_au_carre */ \
/* ,facteur_multiplicatif */ \
/* ) */ \
/* */ \
/* SCAL(Imaginaire(point_manoeuvre) */ \
/* ,module_au_carre */ \
/* ,facteur_multiplicatif */ \
/* ) */ \
/* */ \
/* L'utilisation (logique...) de 'Cquotient(...)' a introduit une legere incompatibilite */ \
/* anterieure visible, par exemple, sur quelques points d'un champ gaussien au format 'Pal'. */ \
Eblock \
/* Definition generale de la transformation un sur 'z' dans les plans image ou */ \
/* complexe (introduite le 20070118103318). */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* D E F I N I 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 UN_SUR_Z_DANS_LE_PLAN_IMAGE(action_de_rangement) \
Bblock \
TRANSFORMATION_CONFORME_DANS_LE_PLAN_IMAGE(BLOC(VIDE;) \
,IZNE(Cmodule2(point_courant)) \
,BLOC(UN_SUR_Z_DANS_PLANS_IMAGE_OU_COMPLEXE;) \
,BLOC(action_de_rangement) \
,DIVI(facteur_multiplicatif,EXP2(facteur_correctif)) \
); \
Eblock \
/* Definition de la transformation conforme en coordonnees d'ecran [Xmin,Xmax]x[Ymin,Ymax]. */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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] : */
/* */
/*************************************************************************************************************************************/
BFonctionP
DEFV(Common,DEFV(FonctionP,POINTERp(Iun_sur_z_dans_le_plan_image(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
)
)
)
)
DEFV(Argument,DEFV(image,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K' (une valeur de l'ordre de 64000.0 donne de bons resultats). */
DEFV(Argument,DEFV(image,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
CALS(Inoir(imageR));
/* L'image Resultat est nettoye ici (contrairement a la transformation z**2), */
/* a cause du test de nullite du carre du module du nombre complexe courant ; */
/* dans ce cas aucun point n'est marque... */
UN_SUR_Z_DANS_LE_PLAN_IMAGE(BLOC(store_point_load_point(imageA
,new_X
,new_Y
,imageR
,X
,Y
);
)
);
RETI(imageR);
Eblock
EFonctionP
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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] : */
/* */
/*************************************************************************************************************************************/
BFonctionF
DEFV(Common,DEFV(FonctionF,POINTERF(IFun_sur_z_dans_le_plan_image(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
)
)
)
)
/* Fonction introduite le 20041225171429. */
DEFV(Argument,DEFV(imageF,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K' (une valeur de l'ordre de 64000.0 donne de bons resultats). */
DEFV(Argument,DEFV(imageF,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
CALS(IFinitialisation(imageR,FZERO));
/* L'image Resultat est nettoye ici (contrairement a la transformation z**2), */
/* a cause du test de nullite du carre du module du nombre complexe courant ; */
/* dans ce cas aucun point n'est marque... */
UN_SUR_Z_DANS_LE_PLAN_IMAGE(BLOC(storeF_point_loadF_point(imageA
,new_X
,new_Y
,imageR
,X
,Y
);
)
);
RETIF(imageR);
Eblock
EFonctionF
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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] : */
/* */
/*************************************************************************************************************************************/
BFonctionJ
DEFV(Common,DEFV(FonctionJ,POINTERJ(IJun_sur_z_dans_le_plan_image(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
)
)
)
)
DEFV(Argument,DEFV(imageJ,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K' (une valeur de l'ordre de 64000.0 donne de bons resultats). */
DEFV(Argument,DEFV(imageJ,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
DEFV(complexe,valeur_initiale);
/* Valeur initiale de l'image Resultat. */
/*..............................................................................................................................*/
Cinitialisation(valeur_initiale,FZERO,FZERO);
CALS(IJinitialisation(imageR,ADRESSE(valeur_initiale)));
/* L'image Resultat est nettoye ici (contrairement a la transformation z**2), */
/* a cause du test de nullite du carre du module du nombre complexe courant ; */
/* dans ce cas aucun point n'est marque... */
UN_SUR_Z_DANS_LE_PLAN_IMAGE(BLOC(storeJ_point_loadJ_point(imageA
,new_X
,new_Y
,imageR
,X
,Y
);
)
);
RETIJ(imageR);
Eblock
EFonctionJ
#undef UN_SUR_Z_DANS_LE_PLAN_IMAGE
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* D E F I N I 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 U P L A N C O M P L E X E [0,1] x [0,1] : */
/* */
/*************************************************************************************************************************************/
#define UN_SUR_Z_DANS_LE_PLAN_COMPLEXE(action_de_rangement) \
Bblock \
TRANSFORMATION_CONFORME_DANS_LE_PLAN_COMPLEXE(BLOC(VIDE;) \
,IZNE(Cmodule2(point_courant)) \
,BLOC(UN_SUR_Z_DANS_PLANS_IMAGE_OU_COMPLEXE;) \
,BLOC(action_de_rangement) \
); \
Eblock \
/* Definition de la transformation conforme en coordonnees d'ecran [Xmin,Xmax]x[Ymin,Ymax]. */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 U P L A N C O M P L E X E [0,1] x [0,1] : */
/* */
/*************************************************************************************************************************************/
BFonctionP
DEFV(Common,DEFV(FonctionP,POINTERp(Iun_sur_z_dans_le_plan_complexe(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
)
)
)
)
DEFV(Argument,DEFV(image,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K' (une valeur de l'ordre de 0.25 donne de bons resultats) ; voir */
/* a ce propos les commentaires de 'v $xci/un_sur_z.01$K'... */
DEFV(Argument,DEFV(image,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
CALS(Inoir(imageR));
/* L'image Resultat est nettoye ici (contrairement a la transformation z**2), */
/* a cause du test de nullite du carre du module du nombre complexe courant ; */
/* dans ce cas aucun point n'est marque... */
UN_SUR_Z_DANS_LE_PLAN_COMPLEXE(BLOC(store_point_load_point(imageA
,fV_cDENORMALISE_OX(new_X)
,fV_cDENORMALISE_OY(new_Y)
,imageR
,X
,Y
);
)
);
RETI(imageR);
Eblock
EFonctionP
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 U P L A N C O M P L E X E [0,1] x [0,1] : */
/* */
/*************************************************************************************************************************************/
BFonctionF
DEFV(Common,DEFV(FonctionF,POINTERF(IFun_sur_z_dans_le_plan_complexe(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
)
)
)
)
/* Fonction introduite le 20041225171429. */
DEFV(Argument,DEFV(imageF,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K' (une valeur de l'ordre de 0.25 donne de bons resultats) ; voir */
/* a ce propos les commentaires de 'v $xci/un_sur_z.01$K'... */
DEFV(Argument,DEFV(imageF,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
CALS(IFinitialisation(imageR,FZERO));
/* L'image Resultat est nettoye ici (contrairement a la transformation z**2), */
/* a cause du test de nullite du carre du module du nombre complexe courant ; */
/* dans ce cas aucun point n'est marque... */
UN_SUR_Z_DANS_LE_PLAN_COMPLEXE(BLOC(storeF_point_loadF_point(imageA
,fV_cDENORMALISE_OX(new_X)
,fV_cDENORMALISE_OY(new_Y)
,imageR
,X
,Y
);
)
);
RETIF(imageR);
Eblock
EFonctionF
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 U P L A N C O M P L E X E [0,1] x [0,1] : */
/* */
/*************************************************************************************************************************************/
BFonctionJ
DEFV(Common,DEFV(FonctionJ,POINTERJ(IJun_sur_z_dans_le_plan_complexe(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
)
)
)
)
DEFV(Argument,DEFV(imageJ,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K' (une valeur de l'ordre de 0.25 donne de bons resultats) ; voir */
/* a ce propos les commentaires de 'v $xci/un_sur_z.01$K'... */
DEFV(Argument,DEFV(imageJ,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
DEFV(complexe,valeur_initiale);
/* Valeur initiale de l'image Resultat. */
/*..............................................................................................................................*/
Cinitialisation(valeur_initiale,FZERO,FZERO);
CALS(IJinitialisation(imageR,ADRESSE(valeur_initiale)));
/* L'image Resultat est nettoye ici (contrairement a la transformation z**2), */
/* a cause du test de nullite du carre du module du nombre complexe courant ; */
/* dans ce cas aucun point n'est marque... */
UN_SUR_Z_DANS_LE_PLAN_COMPLEXE(BLOC(storeJ_point_loadJ_point(imageA
,fV_cDENORMALISE_OX(new_X)
,fV_cDENORMALISE_OY(new_Y)
,imageR
,X
,Y
);
)
);
RETIJ(imageR);
Eblock
EFonctionJ
#undef UN_SUR_Z_DANS_LE_PLAN_COMPLEXE
#undef UN_SUR_Z_DANS_PLANS_IMAGE_OU_COMPLEXE
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 */
/* ( O U " T R A N S F O R M A T I O N D E M O B I U S " ) : */
/* */
/* */
/* *********** */
/* ********* */
/* ******** */
/* ******* */
/* ***** */
/* ***** */
/* *** */
/* ********* */
/* **** *** **** */
/* ** * ** */
/* ** * ** */
/* ****** *** ****** */
/* * *** * * * * * *** */
/* ******* *** * * *** * * *** ****** */
/* ************** ** * * * * * ** ************* */
/* ******************************** ******************************* */
/* ************** ** * * * * * ** ************* */
/* ****** *** * * *** * * *** ***** */
/* *** * * * * * *** */
/* ****** *** ****** */
/* ** * ** */
/* ** * ** */
/* **** *** **** */
/* ********* */
/* *** */
/* ***** */
/* ***** */
/* ******* */
/* ******** */
/* ********* */
/* *********** */
/* ************ */
/* */
/* */
/* .......................+++++*********+++++...................... */
/* ........................+++++*******++++........................ */
/* ..........................+++*******+++......................... */
/* ...........................+++*****+++............... ........ */
/* ......... ..........++*****++.......... ........ */
/* ......... ......++****++....... ........ */
/* ......... ......++***++...... ........ */
/* .......... ....+++*******+++.... ......... */
/* ........... ....+****++*++****+.... .......... */
/* ............ ...+**+...+*+...+**+... ........... */
/* ++........... ........+**+. ..*.. .+**+........ ...........+ */
/* +++++..............++******+...+*+...+******++..............++++ */
/* ++++++++........++***++.*+...*. * .*...+*..+***++........+++++++ */
/* ****+++++++++..++**+.. .*.+*+++*+++*+.*. ..+**++..+++++++++*** */
/* *************+++**+.... .*.*+ ++*++ +*.*. ....+**+++************ */
/* ******************************** ******************************* */
/* ************++++**+.... .*.++ ++*++ ++.*. ....+**++++*********** */
/* ****++++++++...++**+.. .*.+*+++*+++*+.*. ..+**++...++++++++*** */
/* ++++++++........++***++.*+...*. * .*...+*..+***++........+++++++ */
/* ++++...............++******+...+*+...+******++...............+++ */
/* +............ ........+**.. ..*.. ..**+........ ............ */
/* ............ ...+**+...+*+...+**+... ........... */
/* ........... ....+****++*++****+.... .......... */
/* .......... ....+++*******+++.... ......... */
/* ......... ......++***++...... ........ */
/* ......... ......++****++....... ........ */
/* ........ ..........++*****++.......... ....... */
/* ...........................+++*****+++............... ....... */
/* ..........................+++*******+++......................... */
/* ........................+++++*******++++........................ */
/* .......................+++++*********+++++...................... */
/* .....................++++++**********++++++..................... */
/* */
/* (initialisee ici telle qu'elle soit identique a l'inversion) */
/* */
/* */
/*************************************************************************************************************************************/
#define Z_HOMOGRAPHIQUE_DANS_PLANS_IMAGE_OU_COMPLEXE \
Bblock \
TRANSFORMATION__Z_HOMOGRAPHIQUE(point_manoeuvre,point_courant,nombre_A,nombre_B,nombre_C,nombre_D,INDIRECT); \
/* Calcul de : */ \
/* */ \
/* A.z + B */ \
/* --------- */ \
/* C.z + D */ \
/* */ \
Eblock \
/* Definition generale de la transformation homographique dans les plans image ou */ \
/* complexe (introduite le 20070118100909). */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* D E F I N I 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] : */
/* */
/*************************************************************************************************************************************/
#define Z_HOMOGRAPHIQUE_DANS_LE_PLAN_IMAGE(action_de_rangement) \
Bblock \
TRANSFORMATION_CONFORME_DANS_LE_PLAN_IMAGE(BLOC(DEFV(complexe,point_manoeuvre_A); \
DEFV(complexe,point_manoeuvre_B); \
DEFV(complexe,point_manoeuvre_C); \
DEFV(complexe,point_manoeuvre_D); \
/* Nombres complexes intermediaires... */ \
) \
,TOUJOURS_VRAI \
,BLOC(Z_HOMOGRAPHIQUE_DANS_PLANS_IMAGE_OU_COMPLEXE;) \
,BLOC(action_de_rangement) \
,NEUT(facteur_multiplicatif) \
); \
Eblock \
/* Definition de la transformation conforme en coordonnees d'ecran [Xmin,Xmax]x[Ymin,Ymax]. */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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] : */
/* */
/*************************************************************************************************************************************/
BFonctionP
DEFV(Common,DEFV(FonctionP,POINTERp(Iz_homographique_dans_le_plan_image(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
,ARGUMENT_POINTERs(nombre_A)
,ARGUMENT_POINTERs(nombre_B)
,ARGUMENT_POINTERs(nombre_C)
,ARGUMENT_POINTERs(nombre_D)
)
)
)
)
DEFV(Argument,DEFV(image,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K' (une valeur de l'ordre de 0.01 donne de bons resultats). */
DEFV(Argument,DEFV(image,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(complexe,POINTERs(nombre_A)));
DEFV(Argument,DEFV(complexe,POINTERs(nombre_B)));
DEFV(Argument,DEFV(complexe,POINTERs(nombre_C)));
DEFV(Argument,DEFV(complexe,POINTERs(nombre_D)));
/* Definition des quatre coefficients complexes de la transformation homographique : */
/* */
/* A.z + B */
/* --------- */
/* C.z + D */
/* */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
Z_HOMOGRAPHIQUE_DANS_LE_PLAN_IMAGE(BLOC(store_point_load_point(imageA
,new_X
,new_Y
,imageR
,X
,Y
);
)
);
RETI(imageR);
Eblock
EFonctionP
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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] : */
/* */
/*************************************************************************************************************************************/
BFonctionF
DEFV(Common,DEFV(FonctionF,POINTERF(IFz_homographique_dans_le_plan_image(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
,ARGUMENT_POINTERs(nombre_A)
,ARGUMENT_POINTERs(nombre_B)
,ARGUMENT_POINTERs(nombre_C)
,ARGUMENT_POINTERs(nombre_D)
)
)
)
)
/* Fonction introduite le 20041228084443. */
DEFV(Argument,DEFV(imageF,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K' (une valeur de l'ordre de 0.01 donne de bons resultats). */
DEFV(Argument,DEFV(imageF,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(complexe,POINTERs(nombre_A)));
DEFV(Argument,DEFV(complexe,POINTERs(nombre_B)));
DEFV(Argument,DEFV(complexe,POINTERs(nombre_C)));
DEFV(Argument,DEFV(complexe,POINTERs(nombre_D)));
/* Definition des quatre coefficients complexes de la transformation homographique : */
/* */
/* A.z + B */
/* --------- */
/* C.z + D */
/* */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
Z_HOMOGRAPHIQUE_DANS_LE_PLAN_IMAGE(BLOC(storeF_point_loadF_point(imageA
,new_X
,new_Y
,imageR
,X
,Y
);
)
);
RETIF(imageR);
Eblock
EFonctionF
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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] : */
/* */
/*************************************************************************************************************************************/
BFonctionJ
DEFV(Common,DEFV(FonctionJ,POINTERJ(IJz_homographique_dans_le_plan_image(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
,ARGUMENT_POINTERs(nombre_A)
,ARGUMENT_POINTERs(nombre_B)
,ARGUMENT_POINTERs(nombre_C)
,ARGUMENT_POINTERs(nombre_D)
)
)
)
)
DEFV(Argument,DEFV(imageJ,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K' (une valeur de l'ordre de 0.01 donne de bons resultats). */
DEFV(Argument,DEFV(imageJ,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(complexe,POINTERs(nombre_A)));
DEFV(Argument,DEFV(complexe,POINTERs(nombre_B)));
DEFV(Argument,DEFV(complexe,POINTERs(nombre_C)));
DEFV(Argument,DEFV(complexe,POINTERs(nombre_D)));
/* Definition des quatre coefficients complexes de la transformation homographique : */
/* */
/* A.z + B */
/* --------- */
/* C.z + D */
/* */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
Z_HOMOGRAPHIQUE_DANS_LE_PLAN_IMAGE(BLOC(storeJ_point_loadJ_point(imageA
,new_X
,new_Y
,imageR
,X
,Y
);
)
);
RETIJ(imageR);
Eblock
EFonctionJ
#undef Z_HOMOGRAPHIQUE_DANS_LE_PLAN_IMAGE
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* D E F I N I 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 U P L A N C O M P L E X E [0,1] x [0,1] : */
/* */
/*************************************************************************************************************************************/
#define Z_HOMOGRAPHIQUE_DANS_LE_PLAN_COMPLEXE(action_de_rangement) \
Bblock \
TRANSFORMATION_CONFORME_DANS_LE_PLAN_COMPLEXE(BLOC(DEFV(complexe,point_manoeuvre_A); \
DEFV(complexe,point_manoeuvre_B); \
DEFV(complexe,point_manoeuvre_C); \
DEFV(complexe,point_manoeuvre_D); \
/* Nombres complexes intermediaires... */ \
) \
,TOUJOURS_VRAI \
,BLOC(Z_HOMOGRAPHIQUE_DANS_PLANS_IMAGE_OU_COMPLEXE;) \
,BLOC(action_de_rangement) \
); \
Eblock \
/* Definition de la transformation conforme en coordonnees d'ecran [Xmin,Xmax]x[Ymin,Ymax]. */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 U P L A N C O M P L E X E [0,1] x [0,1] : */
/* */
/*************************************************************************************************************************************/
BFonctionP
DEFV(Common,DEFV(FonctionP,POINTERp(Iz_homographique_dans_le_plan_complexe(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
,ARGUMENT_POINTERs(nombre_A)
,ARGUMENT_POINTERs(nombre_B)
,ARGUMENT_POINTERs(nombre_C)
,ARGUMENT_POINTERs(nombre_D)
)
)
)
)
DEFV(Argument,DEFV(image,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K' (une valeur de l'ordre de 5.0 donne de bons resultats) ; voir */
/* a ce propos les commentaires de 'v $xci/z_homogra.01$K'... */
DEFV(Argument,DEFV(image,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(complexe,POINTERs(nombre_A)));
DEFV(Argument,DEFV(complexe,POINTERs(nombre_B)));
DEFV(Argument,DEFV(complexe,POINTERs(nombre_C)));
DEFV(Argument,DEFV(complexe,POINTERs(nombre_D)));
/* Definition des quatre coefficients complexes de la transformation homographique : */
/* */
/* A.z + B */
/* --------- */
/* C.z + D */
/* */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
Z_HOMOGRAPHIQUE_DANS_LE_PLAN_COMPLEXE(BLOC(store_point_load_point(imageA
,fV_cDENORMALISE_OX(new_X)
,fV_cDENORMALISE_OY(new_Y)
,imageR
,X
,Y
);
)
);
RETI(imageR);
Eblock
EFonctionP
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 U P L A N C O M P L E X E [0,1] x [0,1] : */
/* */
/*************************************************************************************************************************************/
BFonctionF
DEFV(Common,DEFV(FonctionF,POINTERF(IFz_homographique_dans_le_plan_complexe(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
,ARGUMENT_POINTERs(nombre_A)
,ARGUMENT_POINTERs(nombre_B)
,ARGUMENT_POINTERs(nombre_C)
,ARGUMENT_POINTERs(nombre_D)
)
)
)
)
/* Fonction introduite le 20041228084443. */
DEFV(Argument,DEFV(imageF,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K' (une valeur de l'ordre de 5.0 donne de bons resultats) ; voir */
/* a ce propos les commentaires de 'v $xci/z_homogra.01$K'... */
DEFV(Argument,DEFV(imageF,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(complexe,POINTERs(nombre_A)));
DEFV(Argument,DEFV(complexe,POINTERs(nombre_B)));
DEFV(Argument,DEFV(complexe,POINTERs(nombre_C)));
DEFV(Argument,DEFV(complexe,POINTERs(nombre_D)));
/* Definition des quatre coefficients complexes de la transformation homographique : */
/* */
/* A.z + B */
/* --------- */
/* C.z + D */
/* */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
Z_HOMOGRAPHIQUE_DANS_LE_PLAN_COMPLEXE(BLOC(storeF_point_loadF_point(imageA
,fV_cDENORMALISE_OX(new_X)
,fV_cDENORMALISE_OY(new_Y)
,imageR
,X
,Y
);
)
);
RETIF(imageR);
Eblock
EFonctionF
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 U P L A N C O M P L E X E [0,1] x [0,1] : */
/* */
/*************************************************************************************************************************************/
BFonctionJ
DEFV(Common,DEFV(FonctionJ,POINTERJ(IJz_homographique_dans_le_plan_complexe(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
,ARGUMENT_POINTERs(nombre_A)
,ARGUMENT_POINTERs(nombre_B)
,ARGUMENT_POINTERs(nombre_C)
,ARGUMENT_POINTERs(nombre_D)
)
)
)
)
DEFV(Argument,DEFV(imageJ,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K' (une valeur de l'ordre de 5.0 donne de bons resultats) ; voir */
/* a ce propos les commentaires de 'v $xci/z_homogra.01$K'... */
DEFV(Argument,DEFV(imageJ,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(complexe,POINTERs(nombre_A)));
DEFV(Argument,DEFV(complexe,POINTERs(nombre_B)));
DEFV(Argument,DEFV(complexe,POINTERs(nombre_C)));
DEFV(Argument,DEFV(complexe,POINTERs(nombre_D)));
/* Definition des quatre coefficients complexes de la transformation homographique : */
/* */
/* A.z + B */
/* --------- */
/* C.z + D */
/* */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
Z_HOMOGRAPHIQUE_DANS_LE_PLAN_COMPLEXE(BLOC(storeJ_point_loadJ_point(imageA
,fV_cDENORMALISE_OX(new_X)
,fV_cDENORMALISE_OY(new_Y)
,imageR
,X
,Y
);
)
);
RETIJ(imageR);
Eblock
EFonctionJ
#undef Z_HOMOGRAPHIQUE_DANS_LE_PLAN_COMPLEXE
#undef Z_HOMOGRAPHIQUE_DANS_PLANS_IMAGE_OU_COMPLEXE
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 G E N E R A L I S E E : */
/* */
/*************************************************************************************************************************************/
#define Z_HYPERBOLIQUE_1_DANS_PLANS_IMAGE_OU_COMPLEXE \
Bblock \
DEFV(complexe_etendu,point_courant_etendu); \
DEFV(complexe_etendu,point_manoeuvre_etendu); \
\
Cextension_directe(point_courant_etendu,point_courant); \
\
EGAL(CP_Rho(point_manoeuvre_etendu) \
,FfABSO(LIN2(NomDeLaFonctionCourante QD@@__ _____ponderation_TAHX \
,TAHX(AXPB(NomDeLaFonctionCourante QD@@__ _____A_TAHX_du_module \
,CP_Rho(point_courant_etendu) \
,NomDeLaFonctionCourante QD@@__ _____B_TAHX_du_module \
) \
) \
,NomDeLaFonctionCourante QD@@__ _____ponderation_SINX \
,SINX(AXPB(NomDeLaFonctionCourante QD@@__ _____A_SINX_du_module \
,CP_Rho(point_courant_etendu) \
,NomDeLaFonctionCourante QD@@__ _____B_SINX_du_module \
) \
) \
,NomDeLaFonctionCourante QD@@__ _____translation_du_module \
) \
) \
); \
/* Par l'usage de 'TAHX(...)', le module de 'point_courant_etendu', quelle que soit sa */ \
/* valeur, est ramene dans [0,1['... */ \
/* */ \
/* On rappelle le 20111229091704 que 'TAHX(...)' atteint tres vite, "a epsilon pres", */ \
/* son maximum (1.0) : */ \
/* */ \
/* TAHX(0.0)=0.000000 */ \
/* TAHX(0.2)=0.197375 */ \
/* TAHX(0.4)=0.379949 */ \
/* TAHX(0.6)=0.537050 */ \
/* TAHX(0.8)=0.664037 */ \
/* TAHX(1.0)=0.761594 */ \
/* TAHX(1.2)=0.833655 */ \
/* TAHX(1.4)=0.885352 */ \
/* TAHX(1.6)=0.921669 */ \
/* TAHX(1.8)=0.946806 */ \
/* TAHX(2.0)=0.964028 */ \
/* TAHX(2.2)=0.975743 */ \
/* TAHX(2.4)=0.983675 */ \
/* TAHX(2.6)=0.989027 */ \
/* TAHX(2.8)=0.992632 <-- a 0.01 pres... */ \
/* TAHX(3.0)=0.995055 */ \
/* TAHX(3.2)=0.996682 */ \
/* TAHX(3.4)=0.997775 */ \
/* TAHX(3.6)=0.998508 */ \
/* TAHX(3.8)=0.999000 */ \
/* TAHX(4.0)=0.999329 */ \
/* */ \
/* Le 20111230170628 la fonction 'FfABSO(...)' fut introduite car, en effet, un module */ \
/* ne peut etre que positif ou nul... */ \
EGAL(CP_Theta(point_manoeuvre_etendu),NEUT(CP_Theta(point_courant_etendu))); \
\
Cextension_inverse(point_manoeuvre,point_manoeuvre_etendu); \
Eblock \
/* Definition generale de la transformation 'z' hyperbolique dans les plans image ou */ \
/* complexe (introduite le 20111228111203). */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* D E F I N I 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 G E N E R A L I S E 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] : */
/* */
/*************************************************************************************************************************************/
#define Z_HYPERBOLIQUE_1_DANS_LE_PLAN_IMAGE(action_de_rangement) \
Bblock \
TRANSFORMATION_CONFORME_DANS_LE_PLAN_IMAGE(BLOC(VIDE;) \
,TOUJOURS_VRAI \
,BLOC(Z_HYPERBOLIQUE_1_DANS_PLANS_IMAGE_OU_COMPLEXE;) \
,BLOC(action_de_rangement) \
,MUL2(facteur_multiplicatif,NEUT(facteur_correctif)) \
); \
Eblock \
/* Definition de la transformation en coordonnees d'ecran [Xmin,Xmax]x[Ymin,Ymax]. */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 G E N E R A L I S E 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] : */
/* */
/*************************************************************************************************************************************/
BFonctionP
DEFV(Common,DEFV(Float,SINT(Iz_hyperbolique_1_dans_le_plan_image_____ponderation_TAHX,FU)));
DEFV(Common,DEFV(Float,SINT(Iz_hyperbolique_1_dans_le_plan_image_____A_TAHX_du_module,FU)));
DEFV(Common,DEFV(Float,SINT(Iz_hyperbolique_1_dans_le_plan_image_____B_TAHX_du_module,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iz_hyperbolique_1_dans_le_plan_image_____ponderation_SINX,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iz_hyperbolique_1_dans_le_plan_image_____A_SINX_du_module,FU)));
DEFV(Common,DEFV(Float,SINT(Iz_hyperbolique_1_dans_le_plan_image_____B_SINX_du_module,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iz_hyperbolique_1_dans_le_plan_image_____translation_du_module,FZERO)));
/* Parametre introduit le 20111228142846 et completes le 20111229143729... */
DEFV(Common,DEFV(FonctionP,POINTERp(Iz_hyperbolique_1_dans_le_plan_image(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
)
)
)
)
/* Fonction introduite le 20111228111203. */
DEFV(Argument,DEFV(image,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K' (une valeur de l'ordre de 0.01 donne de bons resultats). */
DEFV(Argument,DEFV(image,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
Z_HYPERBOLIQUE_1_DANS_LE_PLAN_IMAGE(BLOC(store_point_load_point(imageA
,new_X
,new_Y
,imageR
,X
,Y
);
)
);
RETI(imageR);
Eblock
EFonctionP
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 G E N E R A L I S E 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] : */
/* */
/*************************************************************************************************************************************/
BFonctionF
DEFV(Common,DEFV(Float,SINT(IFz_hyperbolique_1_dans_le_plan_image_____ponderation_TAHX,FU)));
DEFV(Common,DEFV(Float,SINT(IFz_hyperbolique_1_dans_le_plan_image_____A_TAHX_du_module,FU)));
DEFV(Common,DEFV(Float,SINT(IFz_hyperbolique_1_dans_le_plan_image_____B_TAHX_du_module,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFz_hyperbolique_1_dans_le_plan_image_____ponderation_SINX,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFz_hyperbolique_1_dans_le_plan_image_____A_SINX_du_module,FU)));
DEFV(Common,DEFV(Float,SINT(IFz_hyperbolique_1_dans_le_plan_image_____B_SINX_du_module,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFz_hyperbolique_1_dans_le_plan_image_____translation_du_module,FZERO)));
/* Parametre introduit le 20111228142846 et completes le 20111229143729... */
DEFV(Common,DEFV(FonctionF,POINTERF(IFz_hyperbolique_1_dans_le_plan_image(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
)
)
)
)
/* Fonction introduite le 20111228111203. */
DEFV(Argument,DEFV(imageF,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K' (une valeur de l'ordre de 0.01 donne de bons resultats). */
DEFV(Argument,DEFV(imageF,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
Z_HYPERBOLIQUE_1_DANS_LE_PLAN_IMAGE(BLOC(storeF_point_loadF_point(imageA
,new_X
,new_Y
,imageR
,X
,Y
);
)
);
RETIF(imageR);
Eblock
EFonctionF
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 G E N E R A L I S E 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] : */
/* */
/*************************************************************************************************************************************/
BFonctionJ
DEFV(Common,DEFV(Float,SINT(IJz_hyperbolique_1_dans_le_plan_image_____ponderation_TAHX,FU)));
DEFV(Common,DEFV(Float,SINT(IJz_hyperbolique_1_dans_le_plan_image_____A_TAHX_du_module,FU)));
DEFV(Common,DEFV(Float,SINT(IJz_hyperbolique_1_dans_le_plan_image_____B_TAHX_du_module,FZERO)));
DEFV(Common,DEFV(Float,SINT(IJz_hyperbolique_1_dans_le_plan_image_____ponderation_SINX,FZERO)));
DEFV(Common,DEFV(Float,SINT(IJz_hyperbolique_1_dans_le_plan_image_____A_SINX_du_module,FU)));
DEFV(Common,DEFV(Float,SINT(IJz_hyperbolique_1_dans_le_plan_image_____B_SINX_du_module,FZERO)));
DEFV(Common,DEFV(Float,SINT(IJz_hyperbolique_1_dans_le_plan_image_____translation_du_module,FZERO)));
/* Parametre introduit le 20111228142846 et completes le 20111229143729... */
DEFV(Common,DEFV(FonctionJ,POINTERJ(IJz_hyperbolique_1_dans_le_plan_image(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
)
)
)
)
/* Fonction introduite le 20111228111203. */
DEFV(Argument,DEFV(imageJ,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K' (une valeur de l'ordre de 0.01 donne de bons resultats). */
DEFV(Argument,DEFV(imageJ,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
Z_HYPERBOLIQUE_1_DANS_LE_PLAN_IMAGE(BLOC(storeJ_point_loadJ_point(imageA
,new_X
,new_Y
,imageR
,X
,Y
);
)
);
RETIJ(imageR);
Eblock
EFonctionJ
#undef Z_HYPERBOLIQUE_1_DANS_LE_PLAN_IMAGE
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* D E F I N I 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 G E N E R A L I S E E */
/* E N C O O R D O N N E E S D U P L A N C O M P L E X E [0,1] x [0,1] : */
/* */
/*************************************************************************************************************************************/
#define Z_HYPERBOLIQUE_1_DANS_LE_PLAN_COMPLEXE(action_de_rangement) \
Bblock \
TRANSFORMATION_CONFORME_DANS_LE_PLAN_COMPLEXE(BLOC(VIDE;) \
,TOUJOURS_VRAI \
,BLOC(Z_HYPERBOLIQUE_1_DANS_PLANS_IMAGE_OU_COMPLEXE;) \
,BLOC(action_de_rangement) \
); \
Eblock \
/* Definition de la transformation en coordonnees d'ecran [Xmin,Xmax]x[Ymin,Ymax]. */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 G E N E R A L I S E E */
/* E N C O O R D O N N E E S D U P L A N C O M P L E X E [0,1] x [0,1] : */
/* */
/*************************************************************************************************************************************/
BFonctionP
DEFV(Common,DEFV(Float,SINT(Iz_hyperbolique_1_dans_le_plan_complexe_____ponderation_TAHX,FU)));
DEFV(Common,DEFV(Float,SINT(Iz_hyperbolique_1_dans_le_plan_complexe_____A_TAHX_du_module,FU)));
DEFV(Common,DEFV(Float,SINT(Iz_hyperbolique_1_dans_le_plan_complexe_____B_TAHX_du_module,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iz_hyperbolique_1_dans_le_plan_complexe_____ponderation_SINX,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iz_hyperbolique_1_dans_le_plan_complexe_____A_SINX_du_module,FU)));
DEFV(Common,DEFV(Float,SINT(Iz_hyperbolique_1_dans_le_plan_complexe_____B_SINX_du_module,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iz_hyperbolique_1_dans_le_plan_complexe_____translation_du_module,FZERO)));
/* Parametre introduit le 20111228142846 et completes le 20111229143729... */
DEFV(Common,DEFV(FonctionP,POINTERp(Iz_hyperbolique_1_dans_le_plan_complexe(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
)
)
)
)
/* Fonction introduite le 20111228111203. */
DEFV(Argument,DEFV(image,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K'. */
DEFV(Argument,DEFV(image,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
Z_HYPERBOLIQUE_1_DANS_LE_PLAN_COMPLEXE(BLOC(store_point_load_point(imageA
,fV_cDENORMALISE_OX(new_X)
,fV_cDENORMALISE_OY(new_Y)
,imageR
,X
,Y
);
)
);
RETI(imageR);
Eblock
EFonctionP
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 G E N E R A L I S E E */
/* E N C O O R D O N N E E S D U P L A N C O M P L E X E [0,1] x [0,1] : */
/* */
/*************************************************************************************************************************************/
BFonctionF
DEFV(Common,DEFV(Float,SINT(IFz_hyperbolique_1_dans_le_plan_complexe_____ponderation_TAHX,FU)));
DEFV(Common,DEFV(Float,SINT(IFz_hyperbolique_1_dans_le_plan_complexe_____A_TAHX_du_module,FU)));
DEFV(Common,DEFV(Float,SINT(IFz_hyperbolique_1_dans_le_plan_complexe_____B_TAHX_du_module,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFz_hyperbolique_1_dans_le_plan_complexe_____ponderation_SINX,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFz_hyperbolique_1_dans_le_plan_complexe_____A_SINX_du_module,FU)));
DEFV(Common,DEFV(Float,SINT(IFz_hyperbolique_1_dans_le_plan_complexe_____B_SINX_du_module,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFz_hyperbolique_1_dans_le_plan_complexe_____translation_du_module,FZERO)));
/* Parametre introduit le 20111228142846 et completes le 20111229143729... */
DEFV(Common,DEFV(FonctionF,POINTERF(IFz_hyperbolique_1_dans_le_plan_complexe(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
)
)
)
)
/* Fonction introduite le 20111228111203. */
DEFV(Argument,DEFV(imageF,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K'. */
DEFV(Argument,DEFV(imageF,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
Z_HYPERBOLIQUE_1_DANS_LE_PLAN_COMPLEXE(BLOC(storeF_point_loadF_point(imageA
,fV_cDENORMALISE_OX(new_X)
,fV_cDENORMALISE_OY(new_Y)
,imageR
,X
,Y
);
)
);
RETIF(imageR);
Eblock
EFonctionF
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 G E N E R A L I S E E */
/* E N C O O R D O N N E E S D U P L A N C O M P L E X E [0,1] x [0,1] : */
/* */
/*************************************************************************************************************************************/
BFonctionJ
DEFV(Common,DEFV(Float,SINT(IJz_hyperbolique_1_dans_le_plan_complexe_____ponderation_TAHX,FU)));
DEFV(Common,DEFV(Float,SINT(IJz_hyperbolique_1_dans_le_plan_complexe_____A_TAHX_du_module,FU)));
DEFV(Common,DEFV(Float,SINT(IJz_hyperbolique_1_dans_le_plan_complexe_____B_TAHX_du_module,FZERO)));
DEFV(Common,DEFV(Float,SINT(IJz_hyperbolique_1_dans_le_plan_complexe_____ponderation_SINX,FZERO)));
DEFV(Common,DEFV(Float,SINT(IJz_hyperbolique_1_dans_le_plan_complexe_____A_SINX_du_module,FU)));
DEFV(Common,DEFV(Float,SINT(IJz_hyperbolique_1_dans_le_plan_complexe_____B_SINX_du_module,FZERO)));
DEFV(Common,DEFV(Float,SINT(IJz_hyperbolique_1_dans_le_plan_complexe_____translation_du_module,FZERO)));
/* Parametre introduit le 20111228142846 et completes le 20111229143729... */
DEFV(Common,DEFV(FonctionJ,POINTERJ(IJz_hyperbolique_1_dans_le_plan_complexe(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
)
)
)
)
/* Fonction introduite le 20111228111203. */
DEFV(Argument,DEFV(imageJ,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K'. */
DEFV(Argument,DEFV(imageJ,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
Z_HYPERBOLIQUE_1_DANS_LE_PLAN_COMPLEXE(BLOC(storeJ_point_loadJ_point(imageA
,fV_cDENORMALISE_OX(new_X)
,fV_cDENORMALISE_OY(new_Y)
,imageR
,X
,Y
);
)
);
RETIJ(imageR);
Eblock
EFonctionJ
#undef Z_HYPERBOLIQUE_1_DANS_LE_PLAN_COMPLEXE
#undef Z_HYPERBOLIQUE_1_DANS_PLANS_IMAGE_OU_COMPLEXE
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 G E N E R A L I S E E : */
/* */
/*************************************************************************************************************************************/
#define Z_HYPERBOLIQUE_2_DANS_PLANS_IMAGE_OU_COMPLEXE \
Bblock \
DEFV(complexe_etendu,point_manoeuvre_etendu); \
\
EGAL(CP_Rho(point_manoeuvre_etendu) \
,AXPB(NomDeLaFonctionCourante QD@@__ _____ARho_ \
,ABSO(TANH(Reelle(point_courant))) \
,NomDeLaFonctionCourante QD@@__ _____BRho_ \
) \
); \
EGAL(CP_Theta(point_manoeuvre_etendu) \
,AXPB(NomDeLaFonctionCourante QD@@__ _____ATheta \
,ATAD(TANG(Imaginaire(point_courant))) \
,NomDeLaFonctionCourante QD@@__ _____BTheta \
) \
); \
/* Le principe de cette transformation est le suivant : */ \
/* */ \
/* 1-Soit l'hyperboloide 'H' a deux nappes : */ \
/* */ \
/* X(u,v) = a.sh(u).cos(v) */ \
/* Y(u,v) = b.sh(u).sin(v) */ \
/* Z(u,v) = c.ch(u) */ \
/* */ \
/* dont on ne prend donc que la nappe superieure (d'ou le "+c") et que l'on suppose de */ \
/* revolution autour de l'axe 'OZ', d'ou : */ \
/* */ \
/* a = b */ \
/* */ \
/* 2-Soit le cercle 'K' situe dans un plan parallele a 'OXY' : */ \
/* */ \
/* X = r.cos(t) */ \
/* Y = r.sin(t) */ \
/* Z = c/a */ \
/* */ \
/* Le faisceau de droites passant par l'origine 'O' et la circonference de ce cercle 'K' */ \
/* est le cone asymptote de l'hyperboloide 'H'. */ \
/* */ \
/* 3-Soit 'OP' une droite passant par l'origine 'O' et un point 'P' quelconque du disque */ \
/* delimite par le cercle 'K'. Etudions l'intersection de 'OP' 'O' et un point 'P' */ \
/* quelconque du cercle 'K' : */ \
/* */ \
/* a.sh(u).cos(v) = q.r.cos(t) */ \
/* b.sh(u).sin(v) = q.r.sin(t) */ \
/* c.ch(u) = q.(c/a) */ \
/* */ \
/* ou 'q' est un nombre reel qui permet de parametrer la doite 'OP'. Du systeme de trois */ \
/* equations precedents, on tire : */ \
/* */ \
/* t = arctg(tg(v)) */ \
/* r = |th(u)| */ \
/* */ \
/* (qui correspondemt aux affectations 'CP_Rho(...)' et 'CP_Theta(...)' ci-dessus) et */ \
/* */ \
/* 1 */ \
/* u = arcsh(------------) */ \
/* _______ */ \
/* / 2 */ \
/* \/ 1 - r */ \
/* */ \
/* a */ \
/* v = arctg(---.tg(t)) = arctg(tg(t)) */ \
/* b */ \
/* */ \
/* a */ \
/* q = ------------) */ \
/* _______ */ \
/* / 2 */ \
/* \/ 1 - r */ \
/* */ \
/* d'ou le mapping : */ \
/* */ \
/* H <--> K */ \
/* */ \
/* {u,v} <--> {r,t} */ \
/* */ \
/* avec : */ \
/* */ \
/* u <--> Relle(point_courant) */ \
/* v <--> Imaginaire(point_courant) */ \
/* */ \
/* */ \
/* Enfin, on notera qu'evidemment dans la definition de 'CP_Theta(...)' ci-dessus : */ \
/* */ \
/* ATAD(TANG(...)) = NEUT(...) */ \
/* */ \
/* mais que, malgre tout, cette forme est conservee afin de garantir l'intervalle du */ \
/* resultat... */ \
\
Cextension_inverse(point_manoeuvre,point_manoeuvre_etendu); \
Eblock \
/* Definition generale de la transformation 'z' hyperbolique dans les plans image ou */ \
/* complexe. */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* D E F I N I 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 G E N E R A L I S E 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] : */
/* */
/*************************************************************************************************************************************/
#define Z_HYPERBOLIQUE_2_DANS_LE_PLAN_IMAGE(action_de_rangement) \
Bblock \
TRANSFORMATION_CONFORME_DANS_LE_PLAN_IMAGE(BLOC(VIDE;) \
,TOUJOURS_VRAI \
,BLOC(Z_HYPERBOLIQUE_2_DANS_PLANS_IMAGE_OU_COMPLEXE;) \
,BLOC(action_de_rangement) \
,MUL2(facteur_multiplicatif,NEUT(facteur_correctif)) \
); \
Eblock \
/* Definition de la transformation en coordonnees d'ecran [Xmin,Xmax]x[Ymin,Ymax]. */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 G E N E R A L I S E 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] : */
/* */
/*************************************************************************************************************************************/
BFonctionP
DEFV(Common,DEFV(Float,SINT(Iz_hyperbolique_2_dans_le_plan_image_____ARho_,FU)));
DEFV(Common,DEFV(Float,SINT(Iz_hyperbolique_2_dans_le_plan_image_____BRho_,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iz_hyperbolique_2_dans_le_plan_image_____ATheta,CERCLE_TRIGONOMETRIQUE)));
DEFV(Common,DEFV(Float,SINT(Iz_hyperbolique_2_dans_le_plan_image_____BTheta,FZERO)));
/* Arguments introduits le 20120601090927... */
DEFV(Common,DEFV(FonctionP,POINTERp(Iz_hyperbolique_2_dans_le_plan_image(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
)
)
)
)
/* Fonction introduite le 20120526222445. */
DEFV(Argument,DEFV(image,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K' (une valeur de l'ordre de 0.01 donne de bons resultats). */
DEFV(Argument,DEFV(image,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
Z_HYPERBOLIQUE_2_DANS_LE_PLAN_IMAGE(BLOC(store_point_load_point(imageA
,new_X
,new_Y
,imageR
,X
,Y
);
)
);
RETI(imageR);
Eblock
EFonctionP
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 G E N E R A L I S E 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] : */
/* */
/*************************************************************************************************************************************/
BFonctionF
DEFV(Common,DEFV(Float,SINT(IFz_hyperbolique_2_dans_le_plan_image_____ARho_,FU)));
DEFV(Common,DEFV(Float,SINT(IFz_hyperbolique_2_dans_le_plan_image_____BRho_,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFz_hyperbolique_2_dans_le_plan_image_____ATheta,CERCLE_TRIGONOMETRIQUE)));
DEFV(Common,DEFV(Float,SINT(IFz_hyperbolique_2_dans_le_plan_image_____BTheta,FZERO)));
/* Arguments introduits le 20120601090927... */
DEFV(Common,DEFV(FonctionF,POINTERF(IFz_hyperbolique_2_dans_le_plan_image(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
)
)
)
)
/* Fonction introduite le 20120526222445. */
DEFV(Argument,DEFV(imageF,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K' (une valeur de l'ordre de 0.01 donne de bons resultats). */
DEFV(Argument,DEFV(imageF,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
Z_HYPERBOLIQUE_2_DANS_LE_PLAN_IMAGE(BLOC(storeF_point_loadF_point(imageA
,new_X
,new_Y
,imageR
,X
,Y
);
)
);
RETIF(imageR);
Eblock
EFonctionF
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 G E N E R A L I S E 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] : */
/* */
/*************************************************************************************************************************************/
BFonctionJ
DEFV(Common,DEFV(Float,SINT(IJz_hyperbolique_2_dans_le_plan_image_____ARho_,FU)));
DEFV(Common,DEFV(Float,SINT(IJz_hyperbolique_2_dans_le_plan_image_____BRho_,FZERO)));
DEFV(Common,DEFV(Float,SINT(IJz_hyperbolique_2_dans_le_plan_image_____ATheta,CERCLE_TRIGONOMETRIQUE)));
DEFV(Common,DEFV(Float,SINT(IJz_hyperbolique_2_dans_le_plan_image_____BTheta,FZERO)));
/* Arguments introduits le 20120601090927... */
DEFV(Common,DEFV(FonctionJ,POINTERJ(IJz_hyperbolique_2_dans_le_plan_image(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
)
)
)
)
/* Fonction introduite le 20120526222445. */
DEFV(Argument,DEFV(imageJ,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K' (une valeur de l'ordre de 0.01 donne de bons resultats). */
DEFV(Argument,DEFV(imageJ,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
Z_HYPERBOLIQUE_2_DANS_LE_PLAN_IMAGE(BLOC(storeJ_point_loadJ_point(imageA
,new_X
,new_Y
,imageR
,X
,Y
);
)
);
RETIJ(imageR);
Eblock
EFonctionJ
#undef Z_HYPERBOLIQUE_2_DANS_LE_PLAN_IMAGE
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* D E F I N I 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 G E N E R A L I S E E */
/* E N C O O R D O N N E E S D U P L A N C O M P L E X E [0,1] x [0,1] : */
/* */
/*************************************************************************************************************************************/
#define Z_HYPERBOLIQUE_2_DANS_LE_PLAN_COMPLEXE(action_de_rangement) \
Bblock \
TRANSFORMATION_CONFORME_DANS_LE_PLAN_COMPLEXE(BLOC(VIDE;) \
,TOUJOURS_VRAI \
,BLOC(Z_HYPERBOLIQUE_2_DANS_PLANS_IMAGE_OU_COMPLEXE;) \
,BLOC(action_de_rangement) \
); \
Eblock \
/* Definition de la transformation en coordonnees d'ecran [Xmin,Xmax]x[Ymin,Ymax]. */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 G E N E R A L I S E E */
/* E N C O O R D O N N E E S D U P L A N C O M P L E X E [0,1] x [0,1] : */
/* */
/*************************************************************************************************************************************/
BFonctionP
DEFV(Common,DEFV(Float,SINT(Iz_hyperbolique_2_dans_le_plan_complexe_____ARho_,FU)));
DEFV(Common,DEFV(Float,SINT(Iz_hyperbolique_2_dans_le_plan_complexe_____BRho_,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iz_hyperbolique_2_dans_le_plan_complexe_____ATheta,CERCLE_TRIGONOMETRIQUE)));
DEFV(Common,DEFV(Float,SINT(Iz_hyperbolique_2_dans_le_plan_complexe_____BTheta,FZERO)));
/* Arguments introduits le 20120601090927... */
DEFV(Common,DEFV(FonctionP,POINTERp(Iz_hyperbolique_2_dans_le_plan_complexe(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
)
)
)
)
/* Fonction introduite le 20120526222445. */
DEFV(Argument,DEFV(image,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K'. */
DEFV(Argument,DEFV(image,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
Z_HYPERBOLIQUE_2_DANS_LE_PLAN_COMPLEXE(BLOC(store_point_load_point(imageA
,fV_cDENORMALISE_OX(new_X)
,fV_cDENORMALISE_OY(new_Y)
,imageR
,X
,Y
);
)
);
RETI(imageR);
Eblock
EFonctionP
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 G E N E R A L I S E E */
/* E N C O O R D O N N E E S D U P L A N C O M P L E X E [0,1] x [0,1] : */
/* */
/*************************************************************************************************************************************/
BFonctionF
DEFV(Common,DEFV(Float,SINT(IFz_hyperbolique_2_dans_le_plan_complexe_____ARho_,FU)));
DEFV(Common,DEFV(Float,SINT(IFz_hyperbolique_2_dans_le_plan_complexe_____BRho_,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFz_hyperbolique_2_dans_le_plan_complexe_____ATheta,CERCLE_TRIGONOMETRIQUE)));
DEFV(Common,DEFV(Float,SINT(IFz_hyperbolique_2_dans_le_plan_complexe_____BTheta,FZERO)));
/* Arguments introduits le 20120601090927... */
DEFV(Common,DEFV(FonctionF,POINTERF(IFz_hyperbolique_2_dans_le_plan_complexe(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
)
)
)
)
/* Fonction introduite le 20120526222445. */
DEFV(Argument,DEFV(imageF,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K'. */
DEFV(Argument,DEFV(imageF,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
Z_HYPERBOLIQUE_2_DANS_LE_PLAN_COMPLEXE(BLOC(storeF_point_loadF_point(imageA
,fV_cDENORMALISE_OX(new_X)
,fV_cDENORMALISE_OY(new_Y)
,imageR
,X
,Y
);
)
);
RETIF(imageR);
Eblock
EFonctionF
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 G E N E R A L I S E E */
/* E N C O O R D O N N E E S D U P L A N C O M P L E X E [0,1] x [0,1] : */
/* */
/*************************************************************************************************************************************/
BFonctionJ
DEFV(Common,DEFV(Float,SINT(IJz_hyperbolique_2_dans_le_plan_complexe_____ARho_,FU)));
DEFV(Common,DEFV(Float,SINT(IJz_hyperbolique_2_dans_le_plan_complexe_____BRho_,FZERO)));
DEFV(Common,DEFV(Float,SINT(IJz_hyperbolique_2_dans_le_plan_complexe_____ATheta,CERCLE_TRIGONOMETRIQUE)));
DEFV(Common,DEFV(Float,SINT(IJz_hyperbolique_2_dans_le_plan_complexe_____BTheta,FZERO)));
/* Arguments introduits le 20120601090927... */
DEFV(Common,DEFV(FonctionJ,POINTERJ(IJz_hyperbolique_2_dans_le_plan_complexe(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
)
)
)
)
/* Fonction introduite le 20120526222445. */
DEFV(Argument,DEFV(imageJ,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K'. */
DEFV(Argument,DEFV(imageJ,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
Z_HYPERBOLIQUE_2_DANS_LE_PLAN_COMPLEXE(BLOC(storeJ_point_loadJ_point(imageA
,fV_cDENORMALISE_OX(new_X)
,fV_cDENORMALISE_OY(new_Y)
,imageR
,X
,Y
);
)
);
RETIJ(imageR);
Eblock
EFonctionJ
#undef Z_HYPERBOLIQUE_2_DANS_LE_PLAN_COMPLEXE
#undef Z_HYPERBOLIQUE_2_DANS_PLANS_IMAGE_OU_COMPLEXE
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* C O N T R O L E D E S T R A N S F O R M A T I O N S " A U T O - S I M I L A I R E " S : */
/* */
/*************************************************************************************************************************************/
DEFV(Common,DEFV(Int,ZINT(TRANSFORMATION__ZQO_AUTO_SIMILAIRE_____ne_calculer_que_le_logarithme,FAUX)));
/* Introduit le 20200724163254 ades fins de test... */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 : */
/* */
/*************************************************************************************************************************************/
#define Z_AUTO_SIMILAIRE_DANS_PLANS_IMAGE_OU_COMPLEXE \
Bblock \
TRANSFORMATION__Z_AUTO_SIMILAIRE(point_manoeuvre,point_courant,nombre_pd,nombre_prd,INDIRECT); \
/* Calcul de : */ \
/* */ \
/* p1 */ \
/* prd.log(----) */ \
/* pd */ \
/* e */ \
/* */ \
Eblock \
/* Definition generale de la transformation auto_similaire dans les plans image ou */ \
/* complexe (introduite le 20070118100909). */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* D E F I N I 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] : */
/* */
/*************************************************************************************************************************************/
#define Z_AUTO_SIMILAIRE_DANS_LE_PLAN_IMAGE(action_de_rangement) \
Bblock \
TRANSFORMATION_CONFORME_DANS_LE_PLAN_IMAGE(BLOC(VIDE;) \
,TOUJOURS_VRAI \
,BLOC(Z_AUTO_SIMILAIRE_DANS_PLANS_IMAGE_OU_COMPLEXE;) \
,BLOC(action_de_rangement) \
,NEUT(facteur_multiplicatif) \
); \
Eblock \
/* Definition de la transformation conforme en coordonnees d'ecran [Xmin,Xmax]x[Ymin,Ymax]. */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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] : */
/* */
/*************************************************************************************************************************************/
BFonctionP
DEFV(Common,DEFV(FonctionP,POINTERp(Iz_auto_similaire_dans_le_plan_image(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
,ARGUMENT_POINTERs(nombre_pd)
,ARGUMENT_POINTERs(nombre_prd)
)
)
)
)
/* Fonction introduite le 20200705113415. */
DEFV(Argument,DEFV(image,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K' (une valeur de l'ordre de 0.01 donne de bons resultats). */
DEFV(Argument,DEFV(image,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(complexe,POINTERs(nombre_pd)));
DEFV(Argument,DEFV(complexe,POINTERs(nombre_prd)));
/* Definition deux deux parametres complexes de la transformation "auto-similaire" : */
/* */
/* p1 */
/* prd.log(----) */
/* pd */
/* e */
/* */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
Z_AUTO_SIMILAIRE_DANS_LE_PLAN_IMAGE(BLOC(store_point_load_point(imageA
,new_X
,new_Y
,imageR
,X
,Y
);
)
);
RETI(imageR);
Eblock
EFonctionP
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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] : */
/* */
/*************************************************************************************************************************************/
BFonctionF
DEFV(Common,DEFV(FonctionF,POINTERF(IFz_auto_similaire_dans_le_plan_image(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
,ARGUMENT_POINTERs(nombre_pd)
,ARGUMENT_POINTERs(nombre_prd)
)
)
)
)
/* Fonction introduite le 20200705113415. */
DEFV(Argument,DEFV(imageF,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K' (une valeur de l'ordre de 0.01 donne de bons resultats). */
DEFV(Argument,DEFV(imageF,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(complexe,POINTERs(nombre_pd)));
DEFV(Argument,DEFV(complexe,POINTERs(nombre_prd)));
/* Definition deux deux parametres complexes de la transformation "auto-similaire" : */
/* */
/* p1 */
/* prd.log(----) */
/* pd */
/* e */
/* */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
Z_AUTO_SIMILAIRE_DANS_LE_PLAN_IMAGE(BLOC(storeF_point_loadF_point(imageA
,new_X
,new_Y
,imageR
,X
,Y
);
)
);
RETIF(imageR);
Eblock
EFonctionF
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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] : */
/* */
/*************************************************************************************************************************************/
BFonctionJ
DEFV(Common,DEFV(FonctionJ,POINTERJ(IJz_auto_similaire_dans_le_plan_image(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
,ARGUMENT_POINTERs(nombre_pd)
,ARGUMENT_POINTERs(nombre_prd)
)
)
)
)
/* Fonction introduite le 20200705113415. */
DEFV(Argument,DEFV(imageJ,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K' (une valeur de l'ordre de 0.01 donne de bons resultats). */
DEFV(Argument,DEFV(imageJ,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(complexe,POINTERs(nombre_pd)));
DEFV(Argument,DEFV(complexe,POINTERs(nombre_prd)));
/* Definition deux deux parametres complexes de la transformation "auto-similaire" : */
/* */
/* p1 */
/* prd.log(----) */
/* pd */
/* e */
/* */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
Z_AUTO_SIMILAIRE_DANS_LE_PLAN_IMAGE(BLOC(storeJ_point_loadJ_point(imageA
,new_X
,new_Y
,imageR
,X
,Y
);
)
);
RETIJ(imageR);
Eblock
EFonctionJ
#undef Z_AUTO_SIMILAIRE_DANS_LE_PLAN_IMAGE
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* D E F I N I 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 U P L A N C O M P L E X E [0,1] x [0,1] : */
/* */
/*************************************************************************************************************************************/
#define Z_AUTO_SIMILAIRE_DANS_LE_PLAN_COMPLEXE(action_de_rangement) \
Bblock \
TRANSFORMATION_CONFORME_DANS_LE_PLAN_COMPLEXE(BLOC(VIDE;) \
,TOUJOURS_VRAI \
,BLOC(Z_AUTO_SIMILAIRE_DANS_PLANS_IMAGE_OU_COMPLEXE;) \
,BLOC(action_de_rangement) \
); \
Eblock \
/* Definition de la transformation conforme en coordonnees d'ecran [Xmin,Xmax]x[Ymin,Ymax]. */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 U P L A N C O M P L E X E [0,1] x [0,1] : */
/* */
/*************************************************************************************************************************************/
BFonctionP
DEFV(Common,DEFV(FonctionP,POINTERp(Iz_auto_similaire_dans_le_plan_complexe(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
,ARGUMENT_POINTERs(nombre_pd)
,ARGUMENT_POINTERs(nombre_prd)
)
)
)
)
/* Fonction introduite le 20200705113415. */
DEFV(Argument,DEFV(image,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K' (une valeur de l'ordre de 5.0 donne de bons resultats) ; voir */
/* a ce propos les commentaires de 'v $xci/z_homogra.01$K'... */
DEFV(Argument,DEFV(image,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(complexe,POINTERs(nombre_pd)));
DEFV(Argument,DEFV(complexe,POINTERs(nombre_prd)));
/* Definition deux deux parametres complexes de la transformation "auto-similaire" : */
/* */
/* p1 */
/* prd.log(----) */
/* pd */
/* e */
/* */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
Z_AUTO_SIMILAIRE_DANS_LE_PLAN_COMPLEXE(BLOC(store_point_load_point(imageA
,fV_cDENORMALISE_OX(new_X)
,fV_cDENORMALISE_OY(new_Y)
,imageR
,X
,Y
);
)
);
RETI(imageR);
Eblock
EFonctionP
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 U P L A N C O M P L E X E [0,1] x [0,1] : */
/* */
/*************************************************************************************************************************************/
BFonctionF
DEFV(Common,DEFV(FonctionF,POINTERF(IFz_auto_similaire_dans_le_plan_complexe(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
,ARGUMENT_POINTERs(nombre_pd)
,ARGUMENT_POINTERs(nombre_prd)
)
)
)
)
/* Fonction introduite le 20200705113415. */
DEFV(Argument,DEFV(imageF,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K' (une valeur de l'ordre de 5.0 donne de bons resultats) ; voir */
/* a ce propos les commentaires de 'v $xci/z_homogra.01$K'... */
DEFV(Argument,DEFV(imageF,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(complexe,POINTERs(nombre_pd)));
DEFV(Argument,DEFV(complexe,POINTERs(nombre_prd)));
/* Definition deux deux parametres complexes de la transformation "auto-similaire" : */
/* */
/* p1 */
/* prd.log(----) */
/* pd */
/* e */
/* */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
Z_AUTO_SIMILAIRE_DANS_LE_PLAN_COMPLEXE(BLOC(storeF_point_loadF_point(imageA
,fV_cDENORMALISE_OX(new_X)
,fV_cDENORMALISE_OY(new_Y)
,imageR
,X
,Y
);
)
);
RETIF(imageR);
Eblock
EFonctionF
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 U P L A N C O M P L E X E [0,1] x [0,1] : */
/* */
/*************************************************************************************************************************************/
BFonctionJ
DEFV(Common,DEFV(FonctionJ,POINTERJ(IJz_auto_similaire_dans_le_plan_complexe(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
,ARGUMENT_POINTERs(nombre_pd)
,ARGUMENT_POINTERs(nombre_prd)
)
)
)
)
/* Fonction introduite le 20200705113415. */
DEFV(Argument,DEFV(imageJ,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K' (une valeur de l'ordre de 5.0 donne de bons resultats) ; voir */
/* a ce propos les commentaires de 'v $xci/z_homogra.01$K'... */
DEFV(Argument,DEFV(imageJ,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(complexe,POINTERs(nombre_pd)));
DEFV(Argument,DEFV(complexe,POINTERs(nombre_prd)));
/* Definition deux deux parametres complexes de la transformation "auto-similaire" : */
/* */
/* p1 */
/* prd.log(----) */
/* pd */
/* e */
/* */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
Z_AUTO_SIMILAIRE_DANS_LE_PLAN_COMPLEXE(BLOC(storeJ_point_loadJ_point(imageA
,fV_cDENORMALISE_OX(new_X)
,fV_cDENORMALISE_OY(new_Y)
,imageR
,X
,Y
);
)
);
RETIJ(imageR);
Eblock
EFonctionJ
#undef Z_AUTO_SIMILAIRE_DANS_LE_PLAN_COMPLEXE
#undef Z_AUTO_SIMILAIRE_DANS_PLANS_IMAGE_OU_COMPLEXE
#undef TRANSFORMATION_CONFORME_DANS_LE_PLAN_COMPLEXE
#undef TRANSFORMATION_CONFORME_DANS_LE_PLAN_IMAGE
#undef EDITION_DES_COORDONNEES_D_UNE_TRANSFORMATION_CONFORME
#undef A_translation__dX_____
#undef A_translation__dY_____
#undef R_translation__dX_____
#undef R_translation__dY_____
_______________________________________________________________________________________________________________________________________
_______________________________________________________________________________________________________________________________________
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* C O N T R O L E D E L ' A R I T H M E T I Q U E E T E N D U E */
/* L O R S D E C A L C U L S S U R L E S N O M B R E S H Y P E R - C O M P L E X E S : */
/* */
/*************************************************************************************************************************************/
#ifdef FAIRE_EVENTUELLEMENT_DE_L_ARITHMETIQUE_ETENDUE_DANS_LES_NOMBRES_HYPER_COMPLEXES
DEFV(Common,DEFV(Logical,_______VERSION__ximcf_conformes_____ARITHMETIQUE_ETENDUE_DANS_LES_NOMBRES_HYPER_COMPLEXES));
/* Indicateur introduit le 20070129121935... */
#Aifdef FAIRE_EVENTUELLEMENT_DE_L_ARITHMETIQUE_ETENDUE_DANS_LES_NOMBRES_HYPER_COMPLEXES
DEFV(Common,DEFV(Logical,_______VERSION__ximcf_conformes_____ARITHMETIQUE_DE_BASE_DANS_LES_NOMBRES_HYPER_COMPLEXES));
/* Indicateur introduit le 20070129132455... */
#Eifdef FAIRE_EVENTUELLEMENT_DE_L_ARITHMETIQUE_ETENDUE_DANS_LES_NOMBRES_HYPER_COMPLEXES
_______________________________________________________________________________________________________________________________________
_______________________________________________________________________________________________________________________________________
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* D E F I N I T I O N G E N E R A L E 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 S P L A N S H Y P E R - I M A G E E T H Y P E R - C O M P L E X E R E S P E C T I V E M E N T : */
/* */
/*************************************************************************************************************************************/
DEFV(Common,DEFV(Int,ZINT(TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_IMAGE_____Xmin_reference,k___Xmin)));
DEFV(Common,DEFV(Int,ZINT(TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_IMAGE_____Xmax_reference,k___Xmax)));
DEFV(Common,DEFV(Int,ZINT(TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_IMAGE_____Ymin_reference,k___Ymin)));
DEFV(Common,DEFV(Int,ZINT(TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_IMAGE_____Ymax_reference,k___Ymax)));
/* Definition d'un format d'image dit "reference" utilise pour calculer un facteur */
/* homothetique multiplicatif (introduit le 20100408174856). */
/* */
/* ATTENTION : je note le 20111016114151 que le format de reference est le format 'Std' */
/* et non pas le format 'Pal'... */
/* */
/* ATTENTION : je note le 20170322102617 l'existence de six nouvelles variables dans */
/* 'v $xiii/Images$STR _reference.k___'. Mais celles-ci ne peuvent remplacer les quatre */
/* qui sont definies ci-dessus et ce pour de possibles problemes de compatibilite (au cas */
/* ou, par exemple, les variables 'v $xiii/Images$STR _reference.k___' passaient du format */
/* 'Std' au format 'Pal'...). */
DEFV(Common,DEFV(Logical,ZINT(TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_IMAGE_____facteur_multiplicatif_homothetique,FAUX)));
/* Introduit le 20111016114151, la valeur par defaut garantissant la compatibilite */
/* anterieure... */
DEFV(Common,DEFV(Float,ZINT(TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_COMPLEXE_____A_facteur_homothetie_X,FU)));
DEFV(Common,DEFV(Float,ZINT(TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_COMPLEXE_____A_facteur_homothetie_Y,FU)));
/* Parametres destines a 'TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_COMPLEXE(...)' */
/* permettant de faire une homothetie sur le domaine de calcul (via 'point_courant') et */
/* introduits le 20120527183514... */
DEFV(Common,DEFV(Float,ZINT(TRANSFORMATION_CONFORME_DANS_LES_PLANS_HYPER_____R_facteur_homothetie_X,FU)));
DEFV(Common,DEFV(Float,ZINT(TRANSFORMATION_CONFORME_DANS_LES_PLANS_HYPER_____R_facteur_homothetie_Y,FU)));
/* Parametres destines a faire une homothetie (via 'point_manoeuvre') introduits le */
/* 20120527184309... */
#define A_translation__dX_____ \
AXPB(TRANSFORMATION_CONFORME_DANS_LES_PLANS_HYPER_____A_translation_AX \
,ASI1(A_translation,dx) \
,TRANSFORMATION_CONFORME_DANS_LES_PLANS_HYPER_____A_translation_BX \
)
#define A_translation__dY_____ \
AXPB(TRANSFORMATION_CONFORME_DANS_LES_PLANS_HYPER_____A_translation_AY \
,ASI1(A_translation,dy) \
,TRANSFORMATION_CONFORME_DANS_LES_PLANS_HYPER_____A_translation_BY \
)
DEFV(Common,DEFV(Float,ZINT(TRANSFORMATION_CONFORME_DANS_LES_PLANS_HYPER_____A_translation_AX,FU)));
DEFV(Common,DEFV(Float,ZINT(TRANSFORMATION_CONFORME_DANS_LES_PLANS_HYPER_____A_translation_BX,FZERO)));
DEFV(Common,DEFV(Float,ZINT(TRANSFORMATION_CONFORME_DANS_LES_PLANS_HYPER_____A_translation_AY,FU)));
DEFV(Common,DEFV(Float,ZINT(TRANSFORMATION_CONFORME_DANS_LES_PLANS_HYPER_____A_translation_BY,FZERO)));
#define R_translation__dX_____ \
AXPB(TRANSFORMATION_CONFORME_DANS_LES_PLANS_HYPER_____R_translation_AX \
,ASI1(R_translation,dx) \
,TRANSFORMATION_CONFORME_DANS_LES_PLANS_HYPER_____R_translation_BX \
)
#define R_translation__dY_____ \
AXPB(TRANSFORMATION_CONFORME_DANS_LES_PLANS_HYPER_____R_translation_AY \
,ASI1(R_translation,dy) \
,TRANSFORMATION_CONFORME_DANS_LES_PLANS_HYPER_____R_translation_BY \
)
DEFV(Common,DEFV(Float,ZINT(TRANSFORMATION_CONFORME_DANS_LES_PLANS_HYPER_____R_translation_AX,FU)));
DEFV(Common,DEFV(Float,ZINT(TRANSFORMATION_CONFORME_DANS_LES_PLANS_HYPER_____R_translation_BX,FZERO)));
DEFV(Common,DEFV(Float,ZINT(TRANSFORMATION_CONFORME_DANS_LES_PLANS_HYPER_____R_translation_AY,FU)));
DEFV(Common,DEFV(Float,ZINT(TRANSFORMATION_CONFORME_DANS_LES_PLANS_HYPER_____R_translation_BY,FZERO)));
/* Definition des facteurs de corrections des translations 'A' et 'R' (ceci fut introduit */
/* le 20111228152543... */
#define NomFonctionCourant \
NomDeLaFonctionCourante \
/* Introduit le 20070117180640 pour raccourcir les lignes 'LIN4(...)' suivantes... */
#define TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_IMAGE(variables_specifiques,condition,transformation,action_de_rangement,fme) \
/* Procedure generale introduite le 20070116112558... */ \
/* */ \
/* L'argument 'fme' ("Facteur_Multiplicatif_Effectif") a ete introduit le 20111016114151... */ \
Bblock \
DEFV(Float,INIT(facteur_multiplicatif_effectif,facteur_multiplicatif)); \
/* Facteur multiplicatif effectif introduit le 20111016114151 afin de rendre ce facteur */ \
/* "homothetique" ce qui permettra alors d'obtenir le meme resultat quel que soit la */ \
/* resolution de l'image (par exemple 'Puq' et 'Pqu'...). Ceci n'a evidemment de sens */ \
/* que pour 'TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_IMAGE(...)' et n'en a pas pour */ \
/* 'TRANSFORMATION_CONFORME_DANS_LE_PLAN_COMPLEXE(...)' puisque les coordonnees {X,Y} */ \
/* sont alors normalisees dans [0,1], cette normalisation etant evidemment independante */ \
/* de resolution de l'image... */ \
\
Test(IL_FAUT(TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_IMAGE_____facteur_multiplicatif_homothetique)) \
/* Test introduit le 20111016114151... */ \
Bblock \
DEFV(Float,INIT(facteur_correctif \
,DIVI(RACX(FLOT(MUL2(DIMENSION \
(TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_IMAGE_____Xmin_reference \
,TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_IMAGE_____Xmax_reference \
) \
,DIMENSION \
(TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_IMAGE_____Ymin_reference \
,TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_IMAGE_____Ymax_reference \
) \
) \
) \
) \
,RACX(FLOT(dimXY)) \
) \
) \
); \
EGAL(facteur_multiplicatif_effectif,fme); \
/* Ainsi, le facteur mutiplicatif est rendu independant de la resolution de l'image par */ \
/* rapport a la resolution dite "reference"... */ \
Eblock \
ATes \
Bblock \
Eblock \
ETes \
\
begin_image \
Bblock \
DEFV(Float,INIT(composante_R,FLOT__UNDEF)); \
DEFV(Float,INIT(composante_I,FLOT__UNDEF)); \
/* Coordonnees translatees... */ \
DEFV(hyper_complexe,point_courant); \
/* Point hyper-complexe courant. */ \
DEFV(hyper_complexe,point_manoeuvre); \
/* Point hyper-complexe resultat de la transformation. */ \
BLOC(variables_specifiques); \
/* Variables specifiques eventuellement (introduites le 20070116095630)... */ \
\
EGAL(composante_R \
,ADD2(FLOT(X) \
,F__lDENORMALISE_OX(A_translation__dX_____) \
) \
); \
EGAL(composante_I \
,ADD2(FLOT(Y) \
,F__lDENORMALISE_OY(A_translation__dY_____) \
) \
); \
\
HCinitialisation(point_courant \
,LIZ4(NomFonctionCourant QD@@__ _____matrice1_RR,composante_R \
,NomFonctionCourant QD@@__ _____matrice1_RI,composante_I \
,NomFonctionCourant QD@@__ _____matrice1_RJ,NomFonctionCourant QD@@__ _____composante_J \
,NomFonctionCourant QD@@__ _____matrice1_RK,NomFonctionCourant QD@@__ _____composante_K \
) \
,LIZ4(NomFonctionCourant QD@@__ _____matrice1_IR,composante_R \
,NomFonctionCourant QD@@__ _____matrice1_II,composante_I \
,NomFonctionCourant QD@@__ _____matrice1_IJ,NomFonctionCourant QD@@__ _____composante_J \
,NomFonctionCourant QD@@__ _____matrice1_IK,NomFonctionCourant QD@@__ _____composante_K \
) \
,LIZ4(NomFonctionCourant QD@@__ _____matrice1_JR,composante_R \
,NomFonctionCourant QD@@__ _____matrice1_JI,composante_I \
,NomFonctionCourant QD@@__ _____matrice1_JJ,NomFonctionCourant QD@@__ _____composante_J \
,NomFonctionCourant QD@@__ _____matrice1_JK,NomFonctionCourant QD@@__ _____composante_K \
) \
,LIZ4(NomFonctionCourant QD@@__ _____matrice1_KR,composante_R \
,NomFonctionCourant QD@@__ _____matrice1_KI,composante_I \
,NomFonctionCourant QD@@__ _____matrice1_KJ,NomFonctionCourant QD@@__ _____composante_J \
,NomFonctionCourant QD@@__ _____matrice1_KK,NomFonctionCourant QD@@__ _____composante_K \
) \
); \
/* Le "point_courant" est associe au point courant {X,Y} sur le maillage de l'image */ \
/* de facon que : */ \
/* */ \
/* point_courant = {X,Y,0,0} */ \
/* */ \
/* par defaut (voir la valeur des ponderations des 'LIN4(...)'). Les composantes */ \
/* {_____composante_J,_____composante_K} sont arbitraires et nulles par defaut... */ \
\
Test(condition) \
Bblock \
DEFV(Int,INIT(new_X,UNDEF)); \
/* Nouvelle coordonnee horizontale apres transformation, */ \
DEFV(Int,INIT(new_Y,UNDEF)); \
/* Nouvelle coordonnee verticale apres transformation, */ \
\
BLOC(transformation); \
/* Transformation du nombre hyper-complexe courant. */ \
\
EGAL(new_X \
,ADD2(VINTE(MUL3(TRANSFORMATION_CONFORME_DANS_LES_PLANS_HYPER_____R_facteur_homothetie_X \
,facteur_multiplicatif_effectif \
,LIZ4(NomFonctionCourant QD@@__ _____matrice2_RR,HReelle(point_manoeuvre) \
,NomFonctionCourant QD@@__ _____matrice2_RI,HImaginaire(point_manoeuvre) \
,NomFonctionCourant QD@@__ _____matrice2_RJ,HJmaginaire(point_manoeuvre) \
,NomFonctionCourant QD@@__ _____matrice2_RK,HKmaginaire(point_manoeuvre) \
) \
) \
) \
,_lDENORMALISE_OX(R_translation__dX_____) \
) \
); \
EGAL(new_Y \
,ADD2(VINTE(MUL3(TRANSFORMATION_CONFORME_DANS_LES_PLANS_HYPER_____R_facteur_homothetie_Y \
,facteur_multiplicatif_effectif \
,LIZ4(NomFonctionCourant QD@@__ _____matrice2_IR,HReelle(point_manoeuvre) \
,NomFonctionCourant QD@@__ _____matrice2_II,HImaginaire(point_manoeuvre) \
,NomFonctionCourant QD@@__ _____matrice2_IJ,HJmaginaire(point_manoeuvre) \
,NomFonctionCourant QD@@__ _____matrice2_IK,HKmaginaire(point_manoeuvre) \
) \
) \
) \
,_lDENORMALISE_OY(R_translation__dY_____) \
) \
); \
/* Calcul des coordonnees transformees dans le plan image en recuperant, par defaut (voir */ \
/* la valeur des ponderations des 'LIN4(...)'), les composantes {R,I} du quaternion */ \
/* 'point_manoeuvre'... */ \
\
BLOC(action_de_rangement); \
/* Et enfin, deplacement du point courant... */ \
Eblock \
ATes \
Bblock \
Eblock \
ETes \
Eblock \
end_image \
Eblock \
/* Definition de la transformation conforme en coordonnees d'ecran [Xmin,Xmax]x[Ymin,Ymax]. */
#define TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_COMPLEXE(variables_specifiques,condition,transformation,action_de_rangement) \
/* Procedure generale introduite le 20070116112558... */ \
Bblock \
begin_image \
Bblock \
DEFV(Float,INIT(new_X,FLOT__UNDEF)); \
/* Nouvelle coordonnee horizontale apres transformation, */ \
DEFV(Float,INIT(new_Y,FLOT__UNDEF)); \
/* Nouvelle coordonnee verticale apres transformation, */ \
DEFV(Float,INIT(composante_R,FLOT__UNDEF)); \
DEFV(Float,INIT(composante_I,FLOT__UNDEF)); \
/* Coordonnees translatees... */ \
DEFV(hyper_complexe,point_courant); \
/* Point hyper-complexe courant. */ \
DEFV(hyper_complexe,point_manoeuvre); \
/* Point hyper-complexe resultat de la transformation. */ \
BLOC(variables_specifiques); \
/* Variables specifiques eventuellement (introduites le 20070116095630)... */ \
\
EGAL(composante_R \
,AXPB(TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_COMPLEXE_____A_facteur_homothetie_X \
,SUPER_cNORMALISE_OX(X) \
,A_translation__dX_____ \
) \
); \
EGAL(composante_I \
,AXPB(TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_COMPLEXE_____A_facteur_homothetie_Y \
,SUPER_cNORMALISE_OY(Y) \
,A_translation__dY_____ \
) \
); \
\
HCinitialisation(point_courant \
,LIZ4(NomFonctionCourant QD@@__ _____matrice1_RR,composante_R \
,NomFonctionCourant QD@@__ _____matrice1_RI,composante_I \
,NomFonctionCourant QD@@__ _____matrice1_RJ,NomFonctionCourant QD@@__ _____composante_J \
,NomFonctionCourant QD@@__ _____matrice1_RK,NomFonctionCourant QD@@__ _____composante_K \
) \
,LIZ4(NomFonctionCourant QD@@__ _____matrice1_IR,composante_R \
,NomFonctionCourant QD@@__ _____matrice1_II,composante_I \
,NomFonctionCourant QD@@__ _____matrice1_IJ,NomFonctionCourant QD@@__ _____composante_J \
,NomFonctionCourant QD@@__ _____matrice1_IK,NomFonctionCourant QD@@__ _____composante_K \
) \
,LIZ4(NomFonctionCourant QD@@__ _____matrice1_JR,composante_R \
,NomFonctionCourant QD@@__ _____matrice1_JI,composante_I \
,NomFonctionCourant QD@@__ _____matrice1_JJ,NomFonctionCourant QD@@__ _____composante_J \
,NomFonctionCourant QD@@__ _____matrice1_JK,NomFonctionCourant QD@@__ _____composante_K \
) \
,LIZ4(NomFonctionCourant QD@@__ _____matrice1_KR,composante_R \
,NomFonctionCourant QD@@__ _____matrice1_KI,composante_I \
,NomFonctionCourant QD@@__ _____matrice1_KJ,NomFonctionCourant QD@@__ _____composante_J \
,NomFonctionCourant QD@@__ _____matrice1_KK,NomFonctionCourant QD@@__ _____composante_K \
) \
); \
/* Le "point_courant" est associe au point courant {X,Y} sur le maillage de l'image */ \
/* de facon que : */ \
/* */ \
/* point_courant = {X,Y,0,0} */ \
/* */ \
/* par defaut (voir la valeur des ponderations des 'LIN4(...)'). Les composantes */ \
/* {_____composante_J,_____composante_K} sont arbitraires et nulles par defaut... */ \
\
Test(condition) \
Bblock \
BLOC(transformation); \
/* Transformation du nombre hyper-complexe courant. */ \
\
EGAL(new_X \
,ADD2(MUL3(TRANSFORMATION_CONFORME_DANS_LES_PLANS_HYPER_____R_facteur_homothetie_X \
,facteur_multiplicatif \
,LIZ4(NomFonctionCourant QD@@__ _____matrice2_RR,HReelle(point_manoeuvre) \
,NomFonctionCourant QD@@__ _____matrice2_RI,HImaginaire(point_manoeuvre) \
,NomFonctionCourant QD@@__ _____matrice2_RJ,HJmaginaire(point_manoeuvre) \
,NomFonctionCourant QD@@__ _____matrice2_RK,HKmaginaire(point_manoeuvre) \
) \
) \
,R_translation__dX_____ \
) \
); \
EGAL(new_Y \
,ADD2(MUL3(TRANSFORMATION_CONFORME_DANS_LES_PLANS_HYPER_____R_facteur_homothetie_Y \
,facteur_multiplicatif \
,LIZ4(NomFonctionCourant QD@@__ _____matrice2_IR,HReelle(point_manoeuvre) \
,NomFonctionCourant QD@@__ _____matrice2_II,HImaginaire(point_manoeuvre) \
,NomFonctionCourant QD@@__ _____matrice2_IJ,HJmaginaire(point_manoeuvre) \
,NomFonctionCourant QD@@__ _____matrice2_IK,HKmaginaire(point_manoeuvre) \
) \
) \
,R_translation__dY_____ \
) \
); \
/* Calcul des coordonnees transformees dans le plan image en recuperant, par defaut (voir */ \
/* la valeur des ponderations des 'LIN4(...)'), les composantes {R,I} du quaternion */ \
/* 'point_manoeuvre'... */ \
\
BLOC(action_de_rangement); \
/* Et enfin, deplacement du point courant... */ \
Eblock \
ATes \
Bblock \
Eblock \
ETes \
Eblock \
end_image \
Eblock \
/* Definition de la transformation conforme en coordonnees d'ecran [Xmin,Xmax]x[Ymin,Ymax]. */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 ) : */
/* */
/*************************************************************************************************************************************/
#define Q_AU_CARRE_DANS_PLANS_HYPER_IMAGE_OU_HYPER_COMPLEXE \
Bblock \
TRANSFORMATION__Q_AU_CARRE(point_manoeuvre,point_courant); \
Eblock \
/* Definition generale de la transformation 'q' au carre dans les plans hyper-image ou */ \
/* hyper-complexe (introduite le 20070118102622). */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* D E F I N I 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] : */
/* */
/*************************************************************************************************************************************/
#define Q_AU_CARRE_DANS_LE_PLAN_HYPER_IMAGE(action_de_rangement) \
Bblock \
TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_IMAGE(BLOC(VIDE;) \
,TOUJOURS_VRAI \
,BLOC(Q_AU_CARRE_DANS_PLANS_HYPER_IMAGE_OU_HYPER_COMPLEXE;) \
,BLOC(action_de_rangement) \
,MUL2(facteur_multiplicatif,NEUT(facteur_correctif)) \
); \
Eblock \
/* Definition de la transformation conforme en coordonnees d'ecran [Xmin,Xmax]x[Ymin,Ymax]. */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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] : */
/* */
/*************************************************************************************************************************************/
BFonctionP
DEFV(Common,DEFV(Float,SINT(Iq_au_carre_dans_le_plan_hyper_image_____matrice1_RR,FU)));
DEFV(Common,DEFV(Float,SINT(Iq_au_carre_dans_le_plan_hyper_image_____matrice1_RI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_au_carre_dans_le_plan_hyper_image_____matrice1_RJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_au_carre_dans_le_plan_hyper_image_____matrice1_RK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_au_carre_dans_le_plan_hyper_image_____matrice1_IR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_au_carre_dans_le_plan_hyper_image_____matrice1_II,FU)));
DEFV(Common,DEFV(Float,SINT(Iq_au_carre_dans_le_plan_hyper_image_____matrice1_IJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_au_carre_dans_le_plan_hyper_image_____matrice1_IK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_au_carre_dans_le_plan_hyper_image_____matrice1_JR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_au_carre_dans_le_plan_hyper_image_____matrice1_JI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_au_carre_dans_le_plan_hyper_image_____matrice1_JJ,FU)));
DEFV(Common,DEFV(Float,SINT(Iq_au_carre_dans_le_plan_hyper_image_____matrice1_JK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_au_carre_dans_le_plan_hyper_image_____matrice1_KR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_au_carre_dans_le_plan_hyper_image_____matrice1_KI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_au_carre_dans_le_plan_hyper_image_____matrice1_KJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_au_carre_dans_le_plan_hyper_image_____matrice1_KK,FU)));
DEFV(Common,DEFV(Float,SINT(Iq_au_carre_dans_le_plan_hyper_image_____matrice2_RR,FU)));
DEFV(Common,DEFV(Float,SINT(Iq_au_carre_dans_le_plan_hyper_image_____matrice2_RI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_au_carre_dans_le_plan_hyper_image_____matrice2_RJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_au_carre_dans_le_plan_hyper_image_____matrice2_RK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_au_carre_dans_le_plan_hyper_image_____matrice2_IR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_au_carre_dans_le_plan_hyper_image_____matrice2_II,FU)));
DEFV(Common,DEFV(Float,SINT(Iq_au_carre_dans_le_plan_hyper_image_____matrice2_IJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_au_carre_dans_le_plan_hyper_image_____matrice2_IK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_au_carre_dans_le_plan_hyper_image_____composante_J,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_au_carre_dans_le_plan_hyper_image_____composante_K,FZERO)));
DEFV(Common,DEFV(FonctionP,POINTERp(Iq_au_carre_dans_le_plan_hyper_image(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
)
)
)
)
DEFV(Argument,DEFV(image,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K' (une valeur de l'ordre de 0.01 donne de bons resultats). */
DEFV(Argument,DEFV(image,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
Q_AU_CARRE_DANS_LE_PLAN_HYPER_IMAGE(BLOC(store_point_load_point(imageA
,new_X
,new_Y
,imageR
,X
,Y
);
)
);
RETI(imageR);
Eblock
EFonctionP
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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] : */
/* */
/*************************************************************************************************************************************/
BFonctionF
DEFV(Common,DEFV(Float,SINT(IFq_au_carre_dans_le_plan_hyper_image_____matrice1_RR,FU)));
DEFV(Common,DEFV(Float,SINT(IFq_au_carre_dans_le_plan_hyper_image_____matrice1_RI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_au_carre_dans_le_plan_hyper_image_____matrice1_RJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_au_carre_dans_le_plan_hyper_image_____matrice1_RK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_au_carre_dans_le_plan_hyper_image_____matrice1_IR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_au_carre_dans_le_plan_hyper_image_____matrice1_II,FU)));
DEFV(Common,DEFV(Float,SINT(IFq_au_carre_dans_le_plan_hyper_image_____matrice1_IJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_au_carre_dans_le_plan_hyper_image_____matrice1_IK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_au_carre_dans_le_plan_hyper_image_____matrice1_JR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_au_carre_dans_le_plan_hyper_image_____matrice1_JI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_au_carre_dans_le_plan_hyper_image_____matrice1_JJ,FU)));
DEFV(Common,DEFV(Float,SINT(IFq_au_carre_dans_le_plan_hyper_image_____matrice1_JK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_au_carre_dans_le_plan_hyper_image_____matrice1_KR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_au_carre_dans_le_plan_hyper_image_____matrice1_KI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_au_carre_dans_le_plan_hyper_image_____matrice1_KJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_au_carre_dans_le_plan_hyper_image_____matrice1_KK,FU)));
DEFV(Common,DEFV(Float,SINT(IFq_au_carre_dans_le_plan_hyper_image_____matrice2_RR,FU)));
DEFV(Common,DEFV(Float,SINT(IFq_au_carre_dans_le_plan_hyper_image_____matrice2_RI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_au_carre_dans_le_plan_hyper_image_____matrice2_RJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_au_carre_dans_le_plan_hyper_image_____matrice2_RK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_au_carre_dans_le_plan_hyper_image_____matrice2_IR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_au_carre_dans_le_plan_hyper_image_____matrice2_II,FU)));
DEFV(Common,DEFV(Float,SINT(IFq_au_carre_dans_le_plan_hyper_image_____matrice2_IJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_au_carre_dans_le_plan_hyper_image_____matrice2_IK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_au_carre_dans_le_plan_hyper_image_____composante_J,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_au_carre_dans_le_plan_hyper_image_____composante_K,FZERO)));
DEFV(Common,DEFV(FonctionF,POINTERF(IFq_au_carre_dans_le_plan_hyper_image(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
)
)
)
)
/* Fonction introduite le 20041225171429. */
DEFV(Argument,DEFV(imageF,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K' (une valeur de l'ordre de 0.01 donne de bons resultats). */
DEFV(Argument,DEFV(imageF,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
Q_AU_CARRE_DANS_LE_PLAN_HYPER_IMAGE(BLOC(storeF_point_loadF_point(imageA
,new_X
,new_Y
,imageR
,X
,Y
);
)
);
RETIF(imageR);
Eblock
EFonctionF
#undef Q_AU_CARRE_DANS_LE_PLAN_HYPER_IMAGE
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* D E F I N I 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 U P L A N H Y P E R - C O M P L E X E [0,1] x [0,1] x [0,1] x [0,1] : */
/* */
/*************************************************************************************************************************************/
#define Q_AU_CARRE_DANS_LE_PLAN_HYPER_COMPLEXE(action_de_rangement) \
Bblock \
TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_COMPLEXE(BLOC(VIDE;) \
,TOUJOURS_VRAI \
,BLOC(Q_AU_CARRE_DANS_PLANS_HYPER_IMAGE_OU_HYPER_COMPLEXE;) \
,BLOC(action_de_rangement) \
); \
Eblock \
/* Definition de la transformation conforme en coordonnees d'ecran [Xmin,Xmax]x[Ymin,Ymax]. */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 U P L A N H Y P E R - C O M P L E X E [0,1] x [0,1] x [0,1] x [0,1] : */
/* */
/*************************************************************************************************************************************/
BFonctionP
DEFV(Common,DEFV(Float,SINT(Iq_au_carre_dans_le_plan_hyper_complexe_____matrice1_RR,FU)));
DEFV(Common,DEFV(Float,SINT(Iq_au_carre_dans_le_plan_hyper_complexe_____matrice1_RI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_au_carre_dans_le_plan_hyper_complexe_____matrice1_RJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_au_carre_dans_le_plan_hyper_complexe_____matrice1_RK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_au_carre_dans_le_plan_hyper_complexe_____matrice1_IR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_au_carre_dans_le_plan_hyper_complexe_____matrice1_II,FU)));
DEFV(Common,DEFV(Float,SINT(Iq_au_carre_dans_le_plan_hyper_complexe_____matrice1_IJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_au_carre_dans_le_plan_hyper_complexe_____matrice1_IK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_au_carre_dans_le_plan_hyper_complexe_____matrice1_JR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_au_carre_dans_le_plan_hyper_complexe_____matrice1_JI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_au_carre_dans_le_plan_hyper_complexe_____matrice1_JJ,FU)));
DEFV(Common,DEFV(Float,SINT(Iq_au_carre_dans_le_plan_hyper_complexe_____matrice1_JK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_au_carre_dans_le_plan_hyper_complexe_____matrice1_KR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_au_carre_dans_le_plan_hyper_complexe_____matrice1_KI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_au_carre_dans_le_plan_hyper_complexe_____matrice1_KJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_au_carre_dans_le_plan_hyper_complexe_____matrice1_KK,FU)));
DEFV(Common,DEFV(Float,SINT(Iq_au_carre_dans_le_plan_hyper_complexe_____matrice2_RR,FU)));
DEFV(Common,DEFV(Float,SINT(Iq_au_carre_dans_le_plan_hyper_complexe_____matrice2_RI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_au_carre_dans_le_plan_hyper_complexe_____matrice2_RJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_au_carre_dans_le_plan_hyper_complexe_____matrice2_RK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_au_carre_dans_le_plan_hyper_complexe_____matrice2_IR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_au_carre_dans_le_plan_hyper_complexe_____matrice2_II,FU)));
DEFV(Common,DEFV(Float,SINT(Iq_au_carre_dans_le_plan_hyper_complexe_____matrice2_IJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_au_carre_dans_le_plan_hyper_complexe_____matrice2_IK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_au_carre_dans_le_plan_hyper_complexe_____composante_J,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_au_carre_dans_le_plan_hyper_complexe_____composante_K,FZERO)));
DEFV(Common,DEFV(FonctionP,POINTERp(Iq_au_carre_dans_le_plan_hyper_complexe(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
)
)
)
)
DEFV(Argument,DEFV(image,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K' (une valeur de l'ordre de 5.0 donne de bons resultats) ; voir */
/* a ce propos les commentaires de 'v $xci/z_carre.01$K'... */
DEFV(Argument,DEFV(image,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
Q_AU_CARRE_DANS_LE_PLAN_HYPER_COMPLEXE(BLOC(store_point_load_point(imageA
,fV_cDENORMALISE_OX(new_X)
,fV_cDENORMALISE_OY(new_Y)
,imageR
,X
,Y
);
)
);
RETI(imageR);
Eblock
EFonctionP
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 U P L A N H Y P E R - C O M P L E X E [0,1] x [0,1] x [0,1] x [0,1] : */
/* */
/*************************************************************************************************************************************/
BFonctionF
DEFV(Common,DEFV(Float,SINT(IFq_au_carre_dans_le_plan_hyper_complexe_____matrice1_RR,FU)));
DEFV(Common,DEFV(Float,SINT(IFq_au_carre_dans_le_plan_hyper_complexe_____matrice1_RI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_au_carre_dans_le_plan_hyper_complexe_____matrice1_RJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_au_carre_dans_le_plan_hyper_complexe_____matrice1_RK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_au_carre_dans_le_plan_hyper_complexe_____matrice1_IR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_au_carre_dans_le_plan_hyper_complexe_____matrice1_II,FU)));
DEFV(Common,DEFV(Float,SINT(IFq_au_carre_dans_le_plan_hyper_complexe_____matrice1_IJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_au_carre_dans_le_plan_hyper_complexe_____matrice1_IK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_au_carre_dans_le_plan_hyper_complexe_____matrice1_JR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_au_carre_dans_le_plan_hyper_complexe_____matrice1_JI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_au_carre_dans_le_plan_hyper_complexe_____matrice1_JJ,FU)));
DEFV(Common,DEFV(Float,SINT(IFq_au_carre_dans_le_plan_hyper_complexe_____matrice1_JK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_au_carre_dans_le_plan_hyper_complexe_____matrice1_KR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_au_carre_dans_le_plan_hyper_complexe_____matrice1_KI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_au_carre_dans_le_plan_hyper_complexe_____matrice1_KJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_au_carre_dans_le_plan_hyper_complexe_____matrice1_KK,FU)));
DEFV(Common,DEFV(Float,SINT(IFq_au_carre_dans_le_plan_hyper_complexe_____matrice2_RR,FU)));
DEFV(Common,DEFV(Float,SINT(IFq_au_carre_dans_le_plan_hyper_complexe_____matrice2_RI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_au_carre_dans_le_plan_hyper_complexe_____matrice2_RJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_au_carre_dans_le_plan_hyper_complexe_____matrice2_RK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_au_carre_dans_le_plan_hyper_complexe_____matrice2_IR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_au_carre_dans_le_plan_hyper_complexe_____matrice2_II,FU)));
DEFV(Common,DEFV(Float,SINT(IFq_au_carre_dans_le_plan_hyper_complexe_____matrice2_IJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_au_carre_dans_le_plan_hyper_complexe_____matrice2_IK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_au_carre_dans_le_plan_hyper_complexe_____composante_J,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_au_carre_dans_le_plan_hyper_complexe_____composante_K,FZERO)));
DEFV(Common,DEFV(FonctionF,POINTERF(IFq_au_carre_dans_le_plan_hyper_complexe(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
)
)
)
)
/* Fonction introduite le 20041225171429. */
DEFV(Argument,DEFV(imageF,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K' (une valeur de l'ordre de 5.0 donne de bons resultats) ; voir */
/* a ce propos les commentaires de 'v $xci/z_carre.01$K'... */
DEFV(Argument,DEFV(imageF,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
Q_AU_CARRE_DANS_LE_PLAN_HYPER_COMPLEXE(BLOC(storeF_point_loadF_point(imageA
,fV_cDENORMALISE_OX(new_X)
,fV_cDENORMALISE_OY(new_Y)
,imageR
,X
,Y
);
)
);
RETIF(imageR);
Eblock
EFonctionF
#undef Q_AU_CARRE_DANS_LE_PLAN_HYPER_COMPLEXE
#undef Q_AU_CARRE_DANS_PLANS_HYPER_IMAGE_OU_HYPER_COMPLEXE
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 ) : */
/* */
/*************************************************************************************************************************************/
#define UN_SUR_Q_DANS_PLANS_HYPER_IMAGE_OU_HYPER_COMPLEXE \
Bblock \
TRANSFORMATION__UN_SUR_Q(point_manoeuvre,point_courant); \
Eblock \
/* Definition generale de la transformation un sur 'q' dans les plans hyper-image ou */ \
/* hyper-complexe (introduite le 20070118103318). */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* D E F I N I 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] : */
/* */
/*************************************************************************************************************************************/
#define UN_SUR_Q_DANS_LE_PLAN_HYPER_IMAGE(action_de_rangement) \
Bblock \
TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_IMAGE(BLOC(VIDE;) \
,IZNE(HCmodule2(point_courant)) \
,BLOC(UN_SUR_Q_DANS_PLANS_HYPER_IMAGE_OU_HYPER_COMPLEXE;) \
,BLOC(action_de_rangement) \
,DIVI(facteur_multiplicatif,EXP2(facteur_correctif)) \
); \
Eblock \
/* Definition de la transformation conforme en coordonnees d'ecran [Xmin,Xmax]x[Ymin,Ymax]. */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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] : */
/* */
/*************************************************************************************************************************************/
BFonctionP
DEFV(Common,DEFV(Float,SINT(Iun_sur_q_dans_le_plan_hyper_image_____matrice1_RR,FU)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_q_dans_le_plan_hyper_image_____matrice1_RI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_q_dans_le_plan_hyper_image_____matrice1_RJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_q_dans_le_plan_hyper_image_____matrice1_RK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_q_dans_le_plan_hyper_image_____matrice1_IR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_q_dans_le_plan_hyper_image_____matrice1_II,FU)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_q_dans_le_plan_hyper_image_____matrice1_IJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_q_dans_le_plan_hyper_image_____matrice1_IK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_q_dans_le_plan_hyper_image_____matrice1_JR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_q_dans_le_plan_hyper_image_____matrice1_JI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_q_dans_le_plan_hyper_image_____matrice1_JJ,FU)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_q_dans_le_plan_hyper_image_____matrice1_JK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_q_dans_le_plan_hyper_image_____matrice1_KR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_q_dans_le_plan_hyper_image_____matrice1_KI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_q_dans_le_plan_hyper_image_____matrice1_KJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_q_dans_le_plan_hyper_image_____matrice1_KK,FU)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_q_dans_le_plan_hyper_image_____matrice2_RR,FU)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_q_dans_le_plan_hyper_image_____matrice2_RI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_q_dans_le_plan_hyper_image_____matrice2_RJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_q_dans_le_plan_hyper_image_____matrice2_RK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_q_dans_le_plan_hyper_image_____matrice2_IR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_q_dans_le_plan_hyper_image_____matrice2_II,FU)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_q_dans_le_plan_hyper_image_____matrice2_IJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_q_dans_le_plan_hyper_image_____matrice2_IK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_q_dans_le_plan_hyper_image_____composante_J,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_q_dans_le_plan_hyper_image_____composante_K,FZERO)));
DEFV(Common,DEFV(FonctionP,POINTERp(Iun_sur_q_dans_le_plan_hyper_image(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
)
)
)
)
DEFV(Argument,DEFV(image,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K' (une valeur de l'ordre de 64000.0 donne de bons resultats). */
DEFV(Argument,DEFV(image,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
CALS(Inoir(imageR));
/* L'image Resultat est nettoye ici (contrairement a la transformation q**2), */
/* a cause du test de nullite du carre du module du nombre complexe courant ; */
/* dans ce cas aucun point n'est marque... */
UN_SUR_Q_DANS_LE_PLAN_HYPER_IMAGE(BLOC(store_point_load_point(imageA
,new_X
,new_Y
,imageR
,X
,Y
);
)
);
RETI(imageR);
Eblock
EFonctionP
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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] : */
/* */
/*************************************************************************************************************************************/
BFonctionF
DEFV(Common,DEFV(Float,SINT(IFun_sur_q_dans_le_plan_hyper_image_____matrice1_RR,FU)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_q_dans_le_plan_hyper_image_____matrice1_RI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_q_dans_le_plan_hyper_image_____matrice1_RJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_q_dans_le_plan_hyper_image_____matrice1_RK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_q_dans_le_plan_hyper_image_____matrice1_IR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_q_dans_le_plan_hyper_image_____matrice1_II,FU)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_q_dans_le_plan_hyper_image_____matrice1_IJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_q_dans_le_plan_hyper_image_____matrice1_IK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_q_dans_le_plan_hyper_image_____matrice1_JR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_q_dans_le_plan_hyper_image_____matrice1_JI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_q_dans_le_plan_hyper_image_____matrice1_JJ,FU)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_q_dans_le_plan_hyper_image_____matrice1_JK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_q_dans_le_plan_hyper_image_____matrice1_KR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_q_dans_le_plan_hyper_image_____matrice1_KI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_q_dans_le_plan_hyper_image_____matrice1_KJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_q_dans_le_plan_hyper_image_____matrice1_KK,FU)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_q_dans_le_plan_hyper_image_____matrice2_RR,FU)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_q_dans_le_plan_hyper_image_____matrice2_RI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_q_dans_le_plan_hyper_image_____matrice2_RJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_q_dans_le_plan_hyper_image_____matrice2_RK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_q_dans_le_plan_hyper_image_____matrice2_IR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_q_dans_le_plan_hyper_image_____matrice2_II,FU)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_q_dans_le_plan_hyper_image_____matrice2_IJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_q_dans_le_plan_hyper_image_____matrice2_IK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_q_dans_le_plan_hyper_image_____composante_J,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_q_dans_le_plan_hyper_image_____composante_K,FZERO)));
DEFV(Common,DEFV(FonctionF,POINTERF(IFun_sur_q_dans_le_plan_hyper_image(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
)
)
)
)
/* Fonction introduite le 20041225171429. */
DEFV(Argument,DEFV(imageF,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K' (une valeur de l'ordre de 64000.0 donne de bons resultats). */
DEFV(Argument,DEFV(imageF,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
CALS(IFinitialisation(imageR,FZERO));
/* L'image Resultat est nettoye ici (contrairement a la transformation q**2), */
/* a cause du test de nullite du carre du module du nombre complexe courant ; */
/* dans ce cas aucun point n'est marque... */
UN_SUR_Q_DANS_LE_PLAN_HYPER_IMAGE(BLOC(storeF_point_loadF_point(imageA
,new_X
,new_Y
,imageR
,X
,Y
);
)
);
RETIF(imageR);
Eblock
EFonctionF
#undef UN_SUR_Q_DANS_LE_PLAN_HYPER_IMAGE
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* D E F I N I 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 U P L A N H Y P E R - C O M P L E X E [0,1] x [0,1] x [0,1] x [0,1] : */
/* */
/*************************************************************************************************************************************/
#define UN_SUR_Q_DANS_LE_PLAN_HYPER_COMPLEXE(action_de_rangement) \
Bblock \
TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_COMPLEXE(BLOC(VIDE;) \
,IZNE(HCmodule2(point_courant)) \
,BLOC(UN_SUR_Q_DANS_PLANS_HYPER_IMAGE_OU_HYPER_COMPLEXE;) \
,BLOC(action_de_rangement) \
); \
Eblock \
/* Definition de la transformation conforme en coordonnees d'ecran [Xmin,Xmax]x[Ymin,Ymax]. */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 U P L A N H Y P E R - C O M P L E X E [0,1] x [0,1] x [0,1] x [0,1] : */
/* */
/*************************************************************************************************************************************/
BFonctionP
DEFV(Common,DEFV(Float,SINT(Iun_sur_q_dans_le_plan_hyper_complexe_____matrice1_RR,FU)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_q_dans_le_plan_hyper_complexe_____matrice1_RI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_q_dans_le_plan_hyper_complexe_____matrice1_RJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_q_dans_le_plan_hyper_complexe_____matrice1_RK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_q_dans_le_plan_hyper_complexe_____matrice1_IR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_q_dans_le_plan_hyper_complexe_____matrice1_II,FU)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_q_dans_le_plan_hyper_complexe_____matrice1_IJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_q_dans_le_plan_hyper_complexe_____matrice1_IK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_q_dans_le_plan_hyper_complexe_____matrice1_JR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_q_dans_le_plan_hyper_complexe_____matrice1_JI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_q_dans_le_plan_hyper_complexe_____matrice1_JJ,FU)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_q_dans_le_plan_hyper_complexe_____matrice1_JK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_q_dans_le_plan_hyper_complexe_____matrice1_KR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_q_dans_le_plan_hyper_complexe_____matrice1_KI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_q_dans_le_plan_hyper_complexe_____matrice1_KJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_q_dans_le_plan_hyper_complexe_____matrice1_KK,FU)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_q_dans_le_plan_hyper_complexe_____matrice2_RR,FU)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_q_dans_le_plan_hyper_complexe_____matrice2_RI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_q_dans_le_plan_hyper_complexe_____matrice2_RJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_q_dans_le_plan_hyper_complexe_____matrice2_RK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_q_dans_le_plan_hyper_complexe_____matrice2_IR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_q_dans_le_plan_hyper_complexe_____matrice2_II,FU)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_q_dans_le_plan_hyper_complexe_____matrice2_IJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_q_dans_le_plan_hyper_complexe_____matrice2_IK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_q_dans_le_plan_hyper_complexe_____composante_J,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_q_dans_le_plan_hyper_complexe_____composante_K,FZERO)));
DEFV(Common,DEFV(FonctionP,POINTERp(Iun_sur_q_dans_le_plan_hyper_complexe(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
)
)
)
)
DEFV(Argument,DEFV(image,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K' (une valeur de l'ordre de 0.25 donne de bons resultats) ; voir */
/* a ce propos les commentaires de 'v $xci/un_sur_z.01$K'... */
DEFV(Argument,DEFV(image,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
CALS(Inoir(imageR));
/* L'image Resultat est nettoye ici (contrairement a la transformation q**2), */
/* a cause du test de nullite du carre du module du nombre complexe courant ; */
/* dans ce cas aucun point n'est marque... */
UN_SUR_Q_DANS_LE_PLAN_HYPER_COMPLEXE(BLOC(store_point_load_point(imageA
,fV_cDENORMALISE_OX(new_X)
,fV_cDENORMALISE_OY(new_Y)
,imageR
,X
,Y
);
)
);
RETI(imageR);
Eblock
EFonctionP
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 U P L A N H Y P E R - C O M P L E X E [0,1] x [0,1] x [0,1] x [0,1] : */
/* */
/*************************************************************************************************************************************/
BFonctionF
DEFV(Common,DEFV(Float,SINT(IFun_sur_q_dans_le_plan_hyper_complexe_____matrice1_RR,FU)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_q_dans_le_plan_hyper_complexe_____matrice1_RI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_q_dans_le_plan_hyper_complexe_____matrice1_RJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_q_dans_le_plan_hyper_complexe_____matrice1_RK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_q_dans_le_plan_hyper_complexe_____matrice1_IR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_q_dans_le_plan_hyper_complexe_____matrice1_II,FU)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_q_dans_le_plan_hyper_complexe_____matrice1_IJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_q_dans_le_plan_hyper_complexe_____matrice1_IK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_q_dans_le_plan_hyper_complexe_____matrice1_JR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_q_dans_le_plan_hyper_complexe_____matrice1_JI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_q_dans_le_plan_hyper_complexe_____matrice1_JJ,FU)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_q_dans_le_plan_hyper_complexe_____matrice1_JK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_q_dans_le_plan_hyper_complexe_____matrice1_KR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_q_dans_le_plan_hyper_complexe_____matrice1_KI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_q_dans_le_plan_hyper_complexe_____matrice1_KJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_q_dans_le_plan_hyper_complexe_____matrice1_KK,FU)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_q_dans_le_plan_hyper_complexe_____matrice2_RR,FU)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_q_dans_le_plan_hyper_complexe_____matrice2_RI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_q_dans_le_plan_hyper_complexe_____matrice2_RJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_q_dans_le_plan_hyper_complexe_____matrice2_RK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_q_dans_le_plan_hyper_complexe_____matrice2_IR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_q_dans_le_plan_hyper_complexe_____matrice2_II,FU)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_q_dans_le_plan_hyper_complexe_____matrice2_IJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_q_dans_le_plan_hyper_complexe_____matrice2_IK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_q_dans_le_plan_hyper_complexe_____composante_J,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_q_dans_le_plan_hyper_complexe_____composante_K,FZERO)));
DEFV(Common,DEFV(FonctionF,POINTERF(IFun_sur_q_dans_le_plan_hyper_complexe(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
)
)
)
)
/* Fonction introduite le 20041225171429. */
DEFV(Argument,DEFV(imageF,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K' (une valeur de l'ordre de 0.25 donne de bons resultats) ; voir */
/* a ce propos les commentaires de 'v $xci/un_sur_z.01$K'... */
DEFV(Argument,DEFV(imageF,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
CALS(IFinitialisation(imageR,FZERO));
/* L'image Resultat est nettoye ici (contrairement a la transformation q**2), */
/* a cause du test de nullite du carre du module du nombre complexe courant ; */
/* dans ce cas aucun point n'est marque... */
UN_SUR_Q_DANS_LE_PLAN_HYPER_COMPLEXE(BLOC(storeF_point_loadF_point(imageA
,fV_cDENORMALISE_OX(new_X)
,fV_cDENORMALISE_OY(new_Y)
,imageR
,X
,Y
);
)
);
RETIF(imageR);
Eblock
EFonctionF
#undef UN_SUR_Q_DANS_LE_PLAN_HYPER_COMPLEXE
#undef UN_SUR_Q_DANS_PLANS_HYPER_IMAGE_OU_HYPER_COMPLEXE
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 : */
/* */
/*************************************************************************************************************************************/
#define Q_HOMOGRAPHIQUE_DANS_PLANS_HYPER_IMAGE_OU_HYPER_COMPLEXE \
Bblock \
TRANSFORMATION__Q_HOMOGRAPHIQUE(point_manoeuvre,point_courant,nombre_A,nombre_B,nombre_C,nombre_D,INDIRECT); \
/* Calcul de : */ \
/* */ \
/* A.q + B */ \
/* --------- */ \
/* C.q + D */ \
/* */ \
Eblock \
/* Definition generale de la transformation homographique dans les plans hyper-image ou */ \
/* hyper-complexe (introduite le 20070118100909). */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* D E F I N I 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] : */
/* */
/*************************************************************************************************************************************/
#define Q_HOMOGRAPHIQUE_DANS_LE_PLAN_HYPER_IMAGE(action_de_rangement) \
Bblock \
TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_IMAGE(BLOC(DEFV(hyper_complexe,point_manoeuvre_A); \
DEFV(hyper_complexe,point_manoeuvre_B); \
DEFV(hyper_complexe,point_manoeuvre_C); \
DEFV(hyper_complexe,point_manoeuvre_D); \
/* Nombres complexes intermediaires... */ \
) \
,TOUJOURS_VRAI \
,BLOC(Q_HOMOGRAPHIQUE_DANS_PLANS_HYPER_IMAGE_OU_HYPER_COMPLEXE;) \
,BLOC(action_de_rangement) \
,NEUT(facteur_multiplicatif) \
); \
Eblock \
/* Definition de la transformation conforme en coordonnees d'ecran [Xmin,Xmax]x[Ymin,Ymax]. */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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] : */
/* */
/*************************************************************************************************************************************/
BFonctionP
DEFV(Common,DEFV(Float,SINT(Iq_homographique_dans_le_plan_hyper_image_____matrice1_RR,FU)));
DEFV(Common,DEFV(Float,SINT(Iq_homographique_dans_le_plan_hyper_image_____matrice1_RI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_homographique_dans_le_plan_hyper_image_____matrice1_RJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_homographique_dans_le_plan_hyper_image_____matrice1_RK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_homographique_dans_le_plan_hyper_image_____matrice1_IR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_homographique_dans_le_plan_hyper_image_____matrice1_II,FU)));
DEFV(Common,DEFV(Float,SINT(Iq_homographique_dans_le_plan_hyper_image_____matrice1_IJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_homographique_dans_le_plan_hyper_image_____matrice1_IK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_homographique_dans_le_plan_hyper_image_____matrice1_JR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_homographique_dans_le_plan_hyper_image_____matrice1_JI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_homographique_dans_le_plan_hyper_image_____matrice1_JJ,FU)));
DEFV(Common,DEFV(Float,SINT(Iq_homographique_dans_le_plan_hyper_image_____matrice1_JK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_homographique_dans_le_plan_hyper_image_____matrice1_KR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_homographique_dans_le_plan_hyper_image_____matrice1_KI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_homographique_dans_le_plan_hyper_image_____matrice1_KJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_homographique_dans_le_plan_hyper_image_____matrice1_KK,FU)));
DEFV(Common,DEFV(Float,SINT(Iq_homographique_dans_le_plan_hyper_image_____matrice2_RR,FU)));
DEFV(Common,DEFV(Float,SINT(Iq_homographique_dans_le_plan_hyper_image_____matrice2_RI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_homographique_dans_le_plan_hyper_image_____matrice2_RJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_homographique_dans_le_plan_hyper_image_____matrice2_RK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_homographique_dans_le_plan_hyper_image_____matrice2_IR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_homographique_dans_le_plan_hyper_image_____matrice2_II,FU)));
DEFV(Common,DEFV(Float,SINT(Iq_homographique_dans_le_plan_hyper_image_____matrice2_IJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_homographique_dans_le_plan_hyper_image_____matrice2_IK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_homographique_dans_le_plan_hyper_image_____composante_J,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_homographique_dans_le_plan_hyper_image_____composante_K,FZERO)));
DEFV(Common,DEFV(FonctionP,POINTERp(Iq_homographique_dans_le_plan_hyper_image(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
,ARGUMENT_POINTERs(nombre_A),ARGUMENT_POINTERs(nombre_B)
,ARGUMENT_POINTERs(nombre_C),ARGUMENT_POINTERs(nombre_D)
)
)
)
)
DEFV(Argument,DEFV(image,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K' (une valeur de l'ordre de 0.01 donne de bons resultats). */
DEFV(Argument,DEFV(image,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(hyper_complexe,POINTERs(nombre_A)));
DEFV(Argument,DEFV(hyper_complexe,POINTERs(nombre_B)));
DEFV(Argument,DEFV(hyper_complexe,POINTERs(nombre_C)));
DEFV(Argument,DEFV(hyper_complexe,POINTERs(nombre_D)));
/* Definition des quatre coefficients complexes de la transformation homographique : */
/* */
/* A.q + B */
/* --------- */
/* C.q + D */
/* */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
Q_HOMOGRAPHIQUE_DANS_LE_PLAN_HYPER_IMAGE(BLOC(store_point_load_point(imageA
,new_X
,new_Y
,imageR
,X
,Y
);
)
);
RETI(imageR);
Eblock
EFonctionP
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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] : */
/* */
/*************************************************************************************************************************************/
BFonctionF
DEFV(Common,DEFV(Float,SINT(IFq_homographique_dans_le_plan_hyper_image_____matrice1_RR,FU)));
DEFV(Common,DEFV(Float,SINT(IFq_homographique_dans_le_plan_hyper_image_____matrice1_RI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_homographique_dans_le_plan_hyper_image_____matrice1_RJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_homographique_dans_le_plan_hyper_image_____matrice1_RK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_homographique_dans_le_plan_hyper_image_____matrice1_IR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_homographique_dans_le_plan_hyper_image_____matrice1_II,FU)));
DEFV(Common,DEFV(Float,SINT(IFq_homographique_dans_le_plan_hyper_image_____matrice1_IJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_homographique_dans_le_plan_hyper_image_____matrice1_IK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_homographique_dans_le_plan_hyper_image_____matrice1_JR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_homographique_dans_le_plan_hyper_image_____matrice1_JI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_homographique_dans_le_plan_hyper_image_____matrice1_JJ,FU)));
DEFV(Common,DEFV(Float,SINT(IFq_homographique_dans_le_plan_hyper_image_____matrice1_JK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_homographique_dans_le_plan_hyper_image_____matrice1_KR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_homographique_dans_le_plan_hyper_image_____matrice1_KI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_homographique_dans_le_plan_hyper_image_____matrice1_KJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_homographique_dans_le_plan_hyper_image_____matrice1_KK,FU)));
DEFV(Common,DEFV(Float,SINT(IFq_homographique_dans_le_plan_hyper_image_____matrice2_RR,FU)));
DEFV(Common,DEFV(Float,SINT(IFq_homographique_dans_le_plan_hyper_image_____matrice2_RI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_homographique_dans_le_plan_hyper_image_____matrice2_RJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_homographique_dans_le_plan_hyper_image_____matrice2_RK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_homographique_dans_le_plan_hyper_image_____matrice2_IR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_homographique_dans_le_plan_hyper_image_____matrice2_II,FU)));
DEFV(Common,DEFV(Float,SINT(IFq_homographique_dans_le_plan_hyper_image_____matrice2_IJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_homographique_dans_le_plan_hyper_image_____matrice2_IK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_homographique_dans_le_plan_hyper_image_____composante_J,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_homographique_dans_le_plan_hyper_image_____composante_K,FZERO)));
DEFV(Common,DEFV(FonctionF,POINTERF(IFq_homographique_dans_le_plan_hyper_image(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
,ARGUMENT_POINTERs(nombre_A),ARGUMENT_POINTERs(nombre_B)
,ARGUMENT_POINTERs(nombre_C),ARGUMENT_POINTERs(nombre_D)
)
)
)
)
/* Fonction introduite le 20041228084443. */
DEFV(Argument,DEFV(imageF,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K' (une valeur de l'ordre de 0.01 donne de bons resultats). */
DEFV(Argument,DEFV(imageF,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(hyper_complexe,POINTERs(nombre_A)));
DEFV(Argument,DEFV(hyper_complexe,POINTERs(nombre_B)));
DEFV(Argument,DEFV(hyper_complexe,POINTERs(nombre_C)));
DEFV(Argument,DEFV(hyper_complexe,POINTERs(nombre_D)));
/* Definition des quatre coefficients complexes de la transformation homographique : */
/* */
/* A.q + B */
/* --------- */
/* C.q + D */
/* */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
Q_HOMOGRAPHIQUE_DANS_LE_PLAN_HYPER_IMAGE(BLOC(storeF_point_loadF_point(imageA
,new_X
,new_Y
,imageR
,X
,Y
);
)
);
RETIF(imageR);
Eblock
EFonctionF
#undef Q_HOMOGRAPHIQUE_DANS_LE_PLAN_HYPER_IMAGE
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* D E F I N I 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 U P L A N H Y P E R - C O M P L E X E [0,1] x [0,1] x [0,1] x [0,1] : */
/* */
/*************************************************************************************************************************************/
#define Q_HOMOGRAPHIQUE_DANS_LE_PLAN_HYPER_COMPLEXE(action_de_rangement) \
Bblock \
TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_COMPLEXE(BLOC(DEFV(hyper_complexe,point_manoeuvre_A); \
DEFV(hyper_complexe,point_manoeuvre_B); \
DEFV(hyper_complexe,point_manoeuvre_C); \
DEFV(hyper_complexe,point_manoeuvre_D); \
/* Nombres complexes intermediaires... */ \
) \
,TOUJOURS_VRAI \
,BLOC(Q_HOMOGRAPHIQUE_DANS_PLANS_HYPER_IMAGE_OU_HYPER_COMPLEXE;) \
,BLOC(action_de_rangement) \
); \
Eblock \
/* Definition de la transformation conforme en coordonnees d'ecran [Xmin,Xmax]x[Ymin,Ymax]. */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 U P L A N H Y P E R - C O M P L E X E [0,1] x [0,1] x [0,1] x [0,1] : */
/* */
/*************************************************************************************************************************************/
BFonctionP
DEFV(Common,DEFV(Float,SINT(Iq_homographique_dans_le_plan_hyper_complexe_____matrice1_RR,FU)));
DEFV(Common,DEFV(Float,SINT(Iq_homographique_dans_le_plan_hyper_complexe_____matrice1_RI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_homographique_dans_le_plan_hyper_complexe_____matrice1_RJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_homographique_dans_le_plan_hyper_complexe_____matrice1_RK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_homographique_dans_le_plan_hyper_complexe_____matrice1_IR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_homographique_dans_le_plan_hyper_complexe_____matrice1_II,FU)));
DEFV(Common,DEFV(Float,SINT(Iq_homographique_dans_le_plan_hyper_complexe_____matrice1_IJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_homographique_dans_le_plan_hyper_complexe_____matrice1_IK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_homographique_dans_le_plan_hyper_complexe_____matrice1_JR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_homographique_dans_le_plan_hyper_complexe_____matrice1_JI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_homographique_dans_le_plan_hyper_complexe_____matrice1_JJ,FU)));
DEFV(Common,DEFV(Float,SINT(Iq_homographique_dans_le_plan_hyper_complexe_____matrice1_JK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_homographique_dans_le_plan_hyper_complexe_____matrice1_KR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_homographique_dans_le_plan_hyper_complexe_____matrice1_KI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_homographique_dans_le_plan_hyper_complexe_____matrice1_KJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_homographique_dans_le_plan_hyper_complexe_____matrice1_KK,FU)));
DEFV(Common,DEFV(Float,SINT(Iq_homographique_dans_le_plan_hyper_complexe_____matrice2_RR,FU)));
DEFV(Common,DEFV(Float,SINT(Iq_homographique_dans_le_plan_hyper_complexe_____matrice2_RI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_homographique_dans_le_plan_hyper_complexe_____matrice2_RJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_homographique_dans_le_plan_hyper_complexe_____matrice2_RK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_homographique_dans_le_plan_hyper_complexe_____matrice2_IR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_homographique_dans_le_plan_hyper_complexe_____matrice2_II,FU)));
DEFV(Common,DEFV(Float,SINT(Iq_homographique_dans_le_plan_hyper_complexe_____matrice2_IJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_homographique_dans_le_plan_hyper_complexe_____matrice2_IK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_homographique_dans_le_plan_hyper_complexe_____composante_J,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_homographique_dans_le_plan_hyper_complexe_____composante_K,FZERO)));
DEFV(Common,DEFV(FonctionP,POINTERp(Iq_homographique_dans_le_plan_hyper_complexe(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
,ARGUMENT_POINTERs(nombre_A)
,ARGUMENT_POINTERs(nombre_B)
,ARGUMENT_POINTERs(nombre_C)
,ARGUMENT_POINTERs(nombre_D)
)
)
)
)
DEFV(Argument,DEFV(image,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K' (une valeur de l'ordre de 5.0 donne de bons resultats) ; voir */
/* a ce propos les commentaires de 'v $xci/z_homogra.01$K'... */
DEFV(Argument,DEFV(image,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(hyper_complexe,POINTERs(nombre_A)));
DEFV(Argument,DEFV(hyper_complexe,POINTERs(nombre_B)));
DEFV(Argument,DEFV(hyper_complexe,POINTERs(nombre_C)));
DEFV(Argument,DEFV(hyper_complexe,POINTERs(nombre_D)));
/* Definition des quatre coefficients complexes de la transformation homographique : */
/* */
/* A.q + B */
/* --------- */
/* C.q + D */
/* */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
Q_HOMOGRAPHIQUE_DANS_LE_PLAN_HYPER_COMPLEXE(BLOC(store_point_load_point(imageA
,fV_cDENORMALISE_OX(new_X)
,fV_cDENORMALISE_OY(new_Y)
,imageR
,X
,Y
);
)
);
RETI(imageR);
Eblock
EFonctionP
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 U P L A N H Y P E R - C O M P L E X E [0,1] x [0,1] x [0,1] x [0,1] : */
/* */
/*************************************************************************************************************************************/
BFonctionF
DEFV(Common,DEFV(Float,SINT(IFq_homographique_dans_le_plan_hyper_complexe_____matrice1_RR,FU)));
DEFV(Common,DEFV(Float,SINT(IFq_homographique_dans_le_plan_hyper_complexe_____matrice1_RI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_homographique_dans_le_plan_hyper_complexe_____matrice1_RJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_homographique_dans_le_plan_hyper_complexe_____matrice1_RK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_homographique_dans_le_plan_hyper_complexe_____matrice1_IR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_homographique_dans_le_plan_hyper_complexe_____matrice1_II,FU)));
DEFV(Common,DEFV(Float,SINT(IFq_homographique_dans_le_plan_hyper_complexe_____matrice1_IJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_homographique_dans_le_plan_hyper_complexe_____matrice1_IK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_homographique_dans_le_plan_hyper_complexe_____matrice1_JR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_homographique_dans_le_plan_hyper_complexe_____matrice1_JI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_homographique_dans_le_plan_hyper_complexe_____matrice1_JJ,FU)));
DEFV(Common,DEFV(Float,SINT(IFq_homographique_dans_le_plan_hyper_complexe_____matrice1_JK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_homographique_dans_le_plan_hyper_complexe_____matrice1_KR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_homographique_dans_le_plan_hyper_complexe_____matrice1_KI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_homographique_dans_le_plan_hyper_complexe_____matrice1_KJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_homographique_dans_le_plan_hyper_complexe_____matrice1_KK,FU)));
DEFV(Common,DEFV(Float,SINT(IFq_homographique_dans_le_plan_hyper_complexe_____matrice2_RR,FU)));
DEFV(Common,DEFV(Float,SINT(IFq_homographique_dans_le_plan_hyper_complexe_____matrice2_RI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_homographique_dans_le_plan_hyper_complexe_____matrice2_RJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_homographique_dans_le_plan_hyper_complexe_____matrice2_RK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_homographique_dans_le_plan_hyper_complexe_____matrice2_IR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_homographique_dans_le_plan_hyper_complexe_____matrice2_II,FU)));
DEFV(Common,DEFV(Float,SINT(IFq_homographique_dans_le_plan_hyper_complexe_____matrice2_IJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_homographique_dans_le_plan_hyper_complexe_____matrice2_IK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_homographique_dans_le_plan_hyper_complexe_____composante_J,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_homographique_dans_le_plan_hyper_complexe_____composante_K,FZERO)));
DEFV(Common,DEFV(FonctionF,POINTERF(IFq_homographique_dans_le_plan_hyper_complexe(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
,ARGUMENT_POINTERs(nombre_A)
,ARGUMENT_POINTERs(nombre_B)
,ARGUMENT_POINTERs(nombre_C)
,ARGUMENT_POINTERs(nombre_D)
)
)
)
)
/* Fonction introduite le 20041228084443. */
DEFV(Argument,DEFV(imageF,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K' (une valeur de l'ordre de 5.0 donne de bons resultats) ; voir */
/* a ce propos les commentaires de 'v $xci/z_homogra.01$K'... */
DEFV(Argument,DEFV(imageF,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(hyper_complexe,POINTERs(nombre_A)));
DEFV(Argument,DEFV(hyper_complexe,POINTERs(nombre_B)));
DEFV(Argument,DEFV(hyper_complexe,POINTERs(nombre_C)));
DEFV(Argument,DEFV(hyper_complexe,POINTERs(nombre_D)));
/* Definition des quatre coefficients complexes de la transformation homographique : */
/* */
/* A.q + B */
/* --------- */
/* C.q + D */
/* */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
Q_HOMOGRAPHIQUE_DANS_LE_PLAN_HYPER_COMPLEXE(BLOC(storeF_point_loadF_point(imageA
,fV_cDENORMALISE_OX(new_X)
,fV_cDENORMALISE_OY(new_Y)
,imageR
,X
,Y
);
)
);
RETIF(imageR);
Eblock
EFonctionF
#undef Q_HOMOGRAPHIQUE_DANS_LE_PLAN_HYPER_COMPLEXE
#undef Q_HOMOGRAPHIQUE_DANS_PLANS_HYPER_IMAGE_OU_HYPER_COMPLEXE
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 G E N E R A L I S E E : */
/* */
/*************************************************************************************************************************************/
#define Q_HYPERBOLIQUE_1_DANS_PLANS_HYPER_IMAGE_OU_HYPER_COMPLEXE \
Bblock \
DEFV(hyper_complexe_etendu,point_courant_etendu); \
DEFV(hyper_complexe_etendu,point_manoeuvre_etendu); \
\
HCextension_directe(point_courant_etendu,point_courant); \
\
EGAL(HCHS_Rho(point_manoeuvre_etendu) \
,FfABSO(LIN2(NomDeLaFonctionCourante QD@@__ _____ponderation_TAHX \
,TAHX(AXPB(NomDeLaFonctionCourante QD@@__ _____A_TAHX_du_module \
,HCHS_Rho(point_courant_etendu) \
,NomDeLaFonctionCourante QD@@__ _____B_TAHX_du_module \
) \
) \
,NomDeLaFonctionCourante QD@@__ _____ponderation_SINX \
,SINX(AXPB(NomDeLaFonctionCourante QD@@__ _____A_SINX_du_module \
,HCHS_Rho(point_courant_etendu) \
,NomDeLaFonctionCourante QD@@__ _____B_SINX_du_module \
) \
) \
,NomDeLaFonctionCourante QD@@__ _____translation_du_module \
) \
) \
); \
/* Par l'usage de 'TAHX(...)', le module de 'point_courant_etendu', quelle que soit sa */ \
/* valeur, est ramene dans [0,1['... */ \
/* */ \
/* Le 20111230170628 la fonction 'FfABSO(...)' fut introduite car, en effet, un module */ \
/* ne peut etre que positif ou nul... */ \
EGAL(HCHS_Theta(point_manoeuvre_etendu),NEUT(HCHS_Theta(point_courant_etendu))); \
EGAL(HCHS_Phi(point_manoeuvre_etendu),NEUT(HCHS_Phi(point_courant_etendu))); \
EGAL(HCHS_Alpha(point_manoeuvre_etendu),NEUT(HCHS_Alpha(point_courant_etendu))); \
\
HCextension_inverse(point_manoeuvre,point_manoeuvre_etendu); \
Eblock \
/* Definition generale de la transformation 'q' hyperbolique dans les plans image ou */ \
/* complexe (introduite le 20111229172827). */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* D E F I N I 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 G E N E R A L I S E 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] : */
/* */
/*************************************************************************************************************************************/
#define Q_HYPERBOLIQUE_1_DANS_LE_PLAN_HYPER_IMAGE(action_de_rangement) \
Bblock \
TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_IMAGE(BLOC(VIDE;) \
,TOUJOURS_VRAI \
,BLOC(Q_HYPERBOLIQUE_1_DANS_PLANS_HYPER_IMAGE_OU_HYPER_COMPLEXE;) \
,BLOC(action_de_rangement) \
,MUL2(facteur_multiplicatif,NEUT(facteur_correctif)) \
); \
Eblock \
/* Definition de la transformation en coordonnees d'ecran [Xmin,Xmax]x[Ymin,Ymax]. */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 G E N E R A L I S E 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] : */
/* */
/*************************************************************************************************************************************/
BFonctionP
DEFV(Common,DEFV(Float,SINT(Iq_hyperbolique_1_dans_le_plan_hyper_image_____matrice1_RR,FU)));
DEFV(Common,DEFV(Float,SINT(Iq_hyperbolique_1_dans_le_plan_hyper_image_____matrice1_RI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_hyperbolique_1_dans_le_plan_hyper_image_____matrice1_RJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_hyperbolique_1_dans_le_plan_hyper_image_____matrice1_RK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_hyperbolique_1_dans_le_plan_hyper_image_____matrice1_IR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_hyperbolique_1_dans_le_plan_hyper_image_____matrice1_II,FU)));
DEFV(Common,DEFV(Float,SINT(Iq_hyperbolique_1_dans_le_plan_hyper_image_____matrice1_IJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_hyperbolique_1_dans_le_plan_hyper_image_____matrice1_IK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_hyperbolique_1_dans_le_plan_hyper_image_____matrice1_JR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_hyperbolique_1_dans_le_plan_hyper_image_____matrice1_JI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_hyperbolique_1_dans_le_plan_hyper_image_____matrice1_JJ,FU)));
DEFV(Common,DEFV(Float,SINT(Iq_hyperbolique_1_dans_le_plan_hyper_image_____matrice1_JK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_hyperbolique_1_dans_le_plan_hyper_image_____matrice1_KR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_hyperbolique_1_dans_le_plan_hyper_image_____matrice1_KI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_hyperbolique_1_dans_le_plan_hyper_image_____matrice1_KJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_hyperbolique_1_dans_le_plan_hyper_image_____matrice1_KK,FU)));
DEFV(Common,DEFV(Float,SINT(Iq_hyperbolique_1_dans_le_plan_hyper_image_____matrice2_RR,FU)));
DEFV(Common,DEFV(Float,SINT(Iq_hyperbolique_1_dans_le_plan_hyper_image_____matrice2_RI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_hyperbolique_1_dans_le_plan_hyper_image_____matrice2_RJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_hyperbolique_1_dans_le_plan_hyper_image_____matrice2_RK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_hyperbolique_1_dans_le_plan_hyper_image_____matrice2_IR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_hyperbolique_1_dans_le_plan_hyper_image_____matrice2_II,FU)));
DEFV(Common,DEFV(Float,SINT(Iq_hyperbolique_1_dans_le_plan_hyper_image_____matrice2_IJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_hyperbolique_1_dans_le_plan_hyper_image_____matrice2_IK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_hyperbolique_1_dans_le_plan_hyper_image_____composante_J,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_hyperbolique_1_dans_le_plan_hyper_image_____composante_K,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_hyperbolique_1_dans_le_plan_hyper_image_____ponderation_TAHX,FU)));
DEFV(Common,DEFV(Float,SINT(Iq_hyperbolique_1_dans_le_plan_hyper_image_____A_TAHX_du_module,FU)));
DEFV(Common,DEFV(Float,SINT(Iq_hyperbolique_1_dans_le_plan_hyper_image_____B_TAHX_du_module,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_hyperbolique_1_dans_le_plan_hyper_image_____ponderation_SINX,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_hyperbolique_1_dans_le_plan_hyper_image_____A_SINX_du_module,FU)));
DEFV(Common,DEFV(Float,SINT(Iq_hyperbolique_1_dans_le_plan_hyper_image_____B_SINX_du_module,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_hyperbolique_1_dans_le_plan_hyper_image_____translation_du_module,FZERO)));
DEFV(Common,DEFV(FonctionP,POINTERp(Iq_hyperbolique_1_dans_le_plan_hyper_image(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
)
)
)
)
/* Fonction introduite le 20111229172827. */
DEFV(Argument,DEFV(image,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K' (une valeur de l'ordre de 0.01 donne de bons resultats). */
DEFV(Argument,DEFV(image,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
Q_HYPERBOLIQUE_1_DANS_LE_PLAN_HYPER_IMAGE(BLOC(store_point_load_point(imageA
,new_X
,new_Y
,imageR
,X
,Y
);
)
);
RETI(imageR);
Eblock
EFonctionP
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 G E N E R A L I S E 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] : */
/* */
/*************************************************************************************************************************************/
BFonctionF
DEFV(Common,DEFV(Float,SINT(IFq_hyperbolique_1_dans_le_plan_hyper_image_____matrice1_RR,FU)));
DEFV(Common,DEFV(Float,SINT(IFq_hyperbolique_1_dans_le_plan_hyper_image_____matrice1_RI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_hyperbolique_1_dans_le_plan_hyper_image_____matrice1_RJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_hyperbolique_1_dans_le_plan_hyper_image_____matrice1_RK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_hyperbolique_1_dans_le_plan_hyper_image_____matrice1_IR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_hyperbolique_1_dans_le_plan_hyper_image_____matrice1_II,FU)));
DEFV(Common,DEFV(Float,SINT(IFq_hyperbolique_1_dans_le_plan_hyper_image_____matrice1_IJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_hyperbolique_1_dans_le_plan_hyper_image_____matrice1_IK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_hyperbolique_1_dans_le_plan_hyper_image_____matrice1_JR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_hyperbolique_1_dans_le_plan_hyper_image_____matrice1_JI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_hyperbolique_1_dans_le_plan_hyper_image_____matrice1_JJ,FU)));
DEFV(Common,DEFV(Float,SINT(IFq_hyperbolique_1_dans_le_plan_hyper_image_____matrice1_JK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_hyperbolique_1_dans_le_plan_hyper_image_____matrice1_KR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_hyperbolique_1_dans_le_plan_hyper_image_____matrice1_KI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_hyperbolique_1_dans_le_plan_hyper_image_____matrice1_KJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_hyperbolique_1_dans_le_plan_hyper_image_____matrice1_KK,FU)));
DEFV(Common,DEFV(Float,SINT(IFq_hyperbolique_1_dans_le_plan_hyper_image_____matrice2_RR,FU)));
DEFV(Common,DEFV(Float,SINT(IFq_hyperbolique_1_dans_le_plan_hyper_image_____matrice2_RI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_hyperbolique_1_dans_le_plan_hyper_image_____matrice2_RJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_hyperbolique_1_dans_le_plan_hyper_image_____matrice2_RK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_hyperbolique_1_dans_le_plan_hyper_image_____matrice2_IR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_hyperbolique_1_dans_le_plan_hyper_image_____matrice2_II,FU)));
DEFV(Common,DEFV(Float,SINT(IFq_hyperbolique_1_dans_le_plan_hyper_image_____matrice2_IJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_hyperbolique_1_dans_le_plan_hyper_image_____matrice2_IK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_hyperbolique_1_dans_le_plan_hyper_image_____composante_J,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_hyperbolique_1_dans_le_plan_hyper_image_____composante_K,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_hyperbolique_1_dans_le_plan_hyper_image_____ponderation_TAHX,FU)));
DEFV(Common,DEFV(Float,SINT(IFq_hyperbolique_1_dans_le_plan_hyper_image_____A_TAHX_du_module,FU)));
DEFV(Common,DEFV(Float,SINT(IFq_hyperbolique_1_dans_le_plan_hyper_image_____B_TAHX_du_module,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_hyperbolique_1_dans_le_plan_hyper_image_____ponderation_SINX,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_hyperbolique_1_dans_le_plan_hyper_image_____A_SINX_du_module,FU)));
DEFV(Common,DEFV(Float,SINT(IFq_hyperbolique_1_dans_le_plan_hyper_image_____B_SINX_du_module,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_hyperbolique_1_dans_le_plan_hyper_image_____translation_du_module,FZERO)));
DEFV(Common,DEFV(FonctionF,POINTERF(IFq_hyperbolique_1_dans_le_plan_hyper_image(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
)
)
)
)
/* Fonction introduite le 20111229172827. */
DEFV(Argument,DEFV(imageF,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K' (une valeur de l'ordre de 0.01 donne de bons resultats). */
DEFV(Argument,DEFV(imageF,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
Q_HYPERBOLIQUE_1_DANS_LE_PLAN_HYPER_IMAGE(BLOC(storeF_point_loadF_point(imageA
,new_X
,new_Y
,imageR
,X
,Y
);
)
);
RETIF(imageR);
Eblock
EFonctionF
#undef Q_HYPERBOLIQUE_1_DANS_LE_PLAN_HYPER_IMAGE
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* D E F I N I 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 G E N E R A L I S E E */
/* E N C O O R D O N N E E S D U P L A N C O M P L E X E [0,1] x [0,1] : */
/* */
/*************************************************************************************************************************************/
#define Q_HYPERBOLIQUE_1_DANS_LE_PLAN_HYPER_COMPLEXE(action_de_rangement) \
Bblock \
TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_COMPLEXE \
(BLOC(VIDE;) \
,TOUJOURS_VRAI \
,BLOC(Q_HYPERBOLIQUE_1_DANS_PLANS_HYPER_IMAGE_OU_HYPER_COMPLEXE;) \
,BLOC(action_de_rangement) \
); \
Eblock \
/* Definition de la transformation en coordonnees d'ecran [Xmin,Xmax]x[Ymin,Ymax]. */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 G E N E R A L I S E E */
/* E N C O O R D O N N E E S D U P L A N C O M P L E X E [0,1] x [0,1] : */
/* */
/*************************************************************************************************************************************/
BFonctionP
DEFV(Common,DEFV(Float,SINT(Iq_hyperbolique_1_dans_le_plan_hyper_complexe_____matrice1_RR,FU)));
DEFV(Common,DEFV(Float,SINT(Iq_hyperbolique_1_dans_le_plan_hyper_complexe_____matrice1_RI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_hyperbolique_1_dans_le_plan_hyper_complexe_____matrice1_RJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_hyperbolique_1_dans_le_plan_hyper_complexe_____matrice1_RK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_hyperbolique_1_dans_le_plan_hyper_complexe_____matrice1_IR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_hyperbolique_1_dans_le_plan_hyper_complexe_____matrice1_II,FU)));
DEFV(Common,DEFV(Float,SINT(Iq_hyperbolique_1_dans_le_plan_hyper_complexe_____matrice1_IJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_hyperbolique_1_dans_le_plan_hyper_complexe_____matrice1_IK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_hyperbolique_1_dans_le_plan_hyper_complexe_____matrice1_JR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_hyperbolique_1_dans_le_plan_hyper_complexe_____matrice1_JI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_hyperbolique_1_dans_le_plan_hyper_complexe_____matrice1_JJ,FU)));
DEFV(Common,DEFV(Float,SINT(Iq_hyperbolique_1_dans_le_plan_hyper_complexe_____matrice1_JK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_hyperbolique_1_dans_le_plan_hyper_complexe_____matrice1_KR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_hyperbolique_1_dans_le_plan_hyper_complexe_____matrice1_KI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_hyperbolique_1_dans_le_plan_hyper_complexe_____matrice1_KJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_hyperbolique_1_dans_le_plan_hyper_complexe_____matrice1_KK,FU)));
DEFV(Common,DEFV(Float,SINT(Iq_hyperbolique_1_dans_le_plan_hyper_complexe_____matrice2_RR,FU)));
DEFV(Common,DEFV(Float,SINT(Iq_hyperbolique_1_dans_le_plan_hyper_complexe_____matrice2_RI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_hyperbolique_1_dans_le_plan_hyper_complexe_____matrice2_RJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_hyperbolique_1_dans_le_plan_hyper_complexe_____matrice2_RK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_hyperbolique_1_dans_le_plan_hyper_complexe_____matrice2_IR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_hyperbolique_1_dans_le_plan_hyper_complexe_____matrice2_II,FU)));
DEFV(Common,DEFV(Float,SINT(Iq_hyperbolique_1_dans_le_plan_hyper_complexe_____matrice2_IJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_hyperbolique_1_dans_le_plan_hyper_complexe_____matrice2_IK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_hyperbolique_1_dans_le_plan_hyper_complexe_____composante_J,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_hyperbolique_1_dans_le_plan_hyper_complexe_____composante_K,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_hyperbolique_1_dans_le_plan_hyper_complexe_____ponderation_TAHX,FU)));
DEFV(Common,DEFV(Float,SINT(Iq_hyperbolique_1_dans_le_plan_hyper_complexe_____A_TAHX_du_module,FU)));
DEFV(Common,DEFV(Float,SINT(Iq_hyperbolique_1_dans_le_plan_hyper_complexe_____B_TAHX_du_module,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_hyperbolique_1_dans_le_plan_hyper_complexe_____ponderation_SINX,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_hyperbolique_1_dans_le_plan_hyper_complexe_____A_SINX_du_module,FU)));
DEFV(Common,DEFV(Float,SINT(Iq_hyperbolique_1_dans_le_plan_hyper_complexe_____B_SINX_du_module,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iq_hyperbolique_1_dans_le_plan_hyper_complexe_____translation_du_module,FZERO)));
DEFV(Common,DEFV(FonctionP,POINTERp(Iq_hyperbolique_1_dans_le_plan_hyper_complexe(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
)
)
)
)
/* Fonction introduite le 20111229172827. */
DEFV(Argument,DEFV(image,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K'. */
DEFV(Argument,DEFV(image,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
Q_HYPERBOLIQUE_1_DANS_LE_PLAN_HYPER_COMPLEXE(BLOC(store_point_load_point(imageA
,fV_cDENORMALISE_OX(new_X)
,fV_cDENORMALISE_OY(new_Y)
,imageR
,X
,Y
);
)
);
RETI(imageR);
Eblock
EFonctionP
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 G E N E R A L I S E E */
/* E N C O O R D O N N E E S D U P L A N C O M P L E X E [0,1] x [0,1] : */
/* */
/*************************************************************************************************************************************/
BFonctionF
DEFV(Common,DEFV(Float,SINT(IFq_hyperbolique_1_dans_le_plan_hyper_complexe_____matrice1_RR,FU)));
DEFV(Common,DEFV(Float,SINT(IFq_hyperbolique_1_dans_le_plan_hyper_complexe_____matrice1_RI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_hyperbolique_1_dans_le_plan_hyper_complexe_____matrice1_RJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_hyperbolique_1_dans_le_plan_hyper_complexe_____matrice1_RK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_hyperbolique_1_dans_le_plan_hyper_complexe_____matrice1_IR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_hyperbolique_1_dans_le_plan_hyper_complexe_____matrice1_II,FU)));
DEFV(Common,DEFV(Float,SINT(IFq_hyperbolique_1_dans_le_plan_hyper_complexe_____matrice1_IJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_hyperbolique_1_dans_le_plan_hyper_complexe_____matrice1_IK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_hyperbolique_1_dans_le_plan_hyper_complexe_____matrice1_JR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_hyperbolique_1_dans_le_plan_hyper_complexe_____matrice1_JI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_hyperbolique_1_dans_le_plan_hyper_complexe_____matrice1_JJ,FU)));
DEFV(Common,DEFV(Float,SINT(IFq_hyperbolique_1_dans_le_plan_hyper_complexe_____matrice1_JK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_hyperbolique_1_dans_le_plan_hyper_complexe_____matrice1_KR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_hyperbolique_1_dans_le_plan_hyper_complexe_____matrice1_KI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_hyperbolique_1_dans_le_plan_hyper_complexe_____matrice1_KJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_hyperbolique_1_dans_le_plan_hyper_complexe_____matrice1_KK,FU)));
DEFV(Common,DEFV(Float,SINT(IFq_hyperbolique_1_dans_le_plan_hyper_complexe_____matrice2_RR,FU)));
DEFV(Common,DEFV(Float,SINT(IFq_hyperbolique_1_dans_le_plan_hyper_complexe_____matrice2_RI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_hyperbolique_1_dans_le_plan_hyper_complexe_____matrice2_RJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_hyperbolique_1_dans_le_plan_hyper_complexe_____matrice2_RK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_hyperbolique_1_dans_le_plan_hyper_complexe_____matrice2_IR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_hyperbolique_1_dans_le_plan_hyper_complexe_____matrice2_II,FU)));
DEFV(Common,DEFV(Float,SINT(IFq_hyperbolique_1_dans_le_plan_hyper_complexe_____matrice2_IJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_hyperbolique_1_dans_le_plan_hyper_complexe_____matrice2_IK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_hyperbolique_1_dans_le_plan_hyper_complexe_____composante_J,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_hyperbolique_1_dans_le_plan_hyper_complexe_____composante_K,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_hyperbolique_1_dans_le_plan_hyper_complexe_____ponderation_TAHX,FU)));
DEFV(Common,DEFV(Float,SINT(IFq_hyperbolique_1_dans_le_plan_hyper_complexe_____A_TAHX_du_module,FU)));
DEFV(Common,DEFV(Float,SINT(IFq_hyperbolique_1_dans_le_plan_hyper_complexe_____B_TAHX_du_module,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_hyperbolique_1_dans_le_plan_hyper_complexe_____ponderation_SINX,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_hyperbolique_1_dans_le_plan_hyper_complexe_____A_SINX_du_module,FU)));
DEFV(Common,DEFV(Float,SINT(IFq_hyperbolique_1_dans_le_plan_hyper_complexe_____B_SINX_du_module,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFq_hyperbolique_1_dans_le_plan_hyper_complexe_____translation_du_module,FZERO)));
DEFV(Common,DEFV(FonctionF,POINTERF(IFq_hyperbolique_1_dans_le_plan_hyper_complexe(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
)
)
)
)
/* Fonction introduite le 20111229172827. */
DEFV(Argument,DEFV(imageF,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K'. */
DEFV(Argument,DEFV(imageF,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
Q_HYPERBOLIQUE_1_DANS_LE_PLAN_HYPER_COMPLEXE(BLOC(storeF_point_loadF_point(imageA
,fV_cDENORMALISE_OX(new_X)
,fV_cDENORMALISE_OY(new_Y)
,imageR
,X
,Y
);
)
);
RETIF(imageR);
Eblock
EFonctionF
#undef Q_HYPERBOLIQUE_1_DANS_LE_PLAN_HYPER_COMPLEXE
#undef Q_HYPERBOLIQUE_1_DANS_PLANS_HYPER_IMAGE_OU_HYPER_COMPLEXE
#undef TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_COMPLEXE
#undef TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_IMAGE
#undef NomFonctionCourant
#undef A_translation__dX_____
#undef A_translation__dY_____
#undef R_translation__dX_____
#undef R_translation__dY_____
_______________________________________________________________________________________________________________________________________
_______________________________________________________________________________________________________________________________________
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* C O N T R O L E D E L ' A R I T H M E T I Q U E E T E N D U E */
/* L O R S D E C A L C U L S S U R L E S N O M B R E S H Y P E R - H Y P E R - C O M P L E X E S : */
/* */
/*************************************************************************************************************************************/
#ifdef FAIRE_EVENTUELLEMENT_DE_L_ARITHMETIQUE_ETENDUE_DANS_LES_NOMBRES_HYPER_HYPER_COMPLEXES
DEFV(Common,DEFV(Logical,_______VERSION__ximcf_conformes_____ARITHMETIQUE_ETENDUE_DANS_LES_NOMBRES_HYPER_HYPER_COMPLEXES));
#Aifdef FAIRE_EVENTUELLEMENT_DE_L_ARITHMETIQUE_ETENDUE_DANS_LES_NOMBRES_HYPER_HYPER_COMPLEXES
DEFV(Common,DEFV(Logical,_______VERSION__ximcf_conformes_____ARITHMETIQUE_DE_BASE_DANS_LES_NOMBRES_HYPER_HYPER_COMPLEXES));
#Eifdef FAIRE_EVENTUELLEMENT_DE_L_ARITHMETIQUE_ETENDUE_DANS_LES_NOMBRES_HYPER_HYPER_COMPLEXES
_______________________________________________________________________________________________________________________________________
_______________________________________________________________________________________________________________________________________
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* D E F I N I T I O N G E N E R A L E 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 S P L A N S H Y P E R - H Y P E R - I M A G E E T H Y P E R - H Y P E R - C O M P L E X E */
/* R E S P E C T I V E M E N T : */
/* */
/*************************************************************************************************************************************/
DEFV(Common,DEFV(Int,ZINT(TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_HYPER_IMAGE_____Xmin_reference,k___Xmin)));
DEFV(Common,DEFV(Int,ZINT(TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_HYPER_IMAGE_____Xmax_reference,k___Xmax)));
DEFV(Common,DEFV(Int,ZINT(TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_HYPER_IMAGE_____Ymin_reference,k___Ymin)));
DEFV(Common,DEFV(Int,ZINT(TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_HYPER_IMAGE_____Ymax_reference,k___Ymax)));
/* Definition d'un format d'image dit "reference" utilise pour calculer un facteur */
/* homothetique multiplicatif. */
/* */
/* ATTENTION : le format de reference est le format 'Std' et non pas le format 'Pal'... */
/* */
/* ATTENTION : je note le 20170322102617 l'existence de six nouvelles variables dans */
/* 'v $xiii/Images$STR _reference.k___'. Mais celles-ci ne peuvent remplacer les quatre */
/* qui sont definies ci-dessus et ce pour de possibles problemes de compatibilite (au cas */
/* ou, par exemple, les variables 'v $xiii/Images$STR _reference.k___' passaient du format */
/* 'Std' au format 'Pal'...). */
DEFV(Common,DEFV(Logical,ZINT(TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_HYPER_IMAGE_____facteur_multiplicatif_homothetique,FAUX)));
/* Afin de savoir s'il faut que les facteurs soient homothetiques... */
DEFV(Common,DEFV(Float,ZINT(TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_HYPER_COMPLEXE_____A_facteur_homothetie_X,FU)));
DEFV(Common,DEFV(Float,ZINT(TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_HYPER_COMPLEXE_____A_facteur_homothetie_Y,FU)));
/* Parametres destines a 'TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_HYPER_COMPLEXE(...)' */
/* permettant de faire une homothetie sur le domaine de calcul (via 'point_courant') et */
/* introduits le 20120527183514... */
DEFV(Common,DEFV(Float,ZINT(TRANSFORMATION_CONFORME_DANS_LES_PLANS_HYPER_HYPER_____R_facteur_homothetie_X,FU)));
DEFV(Common,DEFV(Float,ZINT(TRANSFORMATION_CONFORME_DANS_LES_PLANS_HYPER_HYPER_____R_facteur_homothetie_Y,FU)));
/* Parametres destines a faire une homothetie (via 'point_manoeuvre') introduits le */
/* 20120527184309... */
#define A_translation__dX_____ \
AXPB(TRANSFORMATION_CONFORME_DANS_LES_PLANS_HYPER_HYPER_____A_translation_AX \
,ASI1(A_translation,dx) \
,TRANSFORMATION_CONFORME_DANS_LES_PLANS_HYPER_HYPER_____A_translation_BX \
)
#define A_translation__dY_____ \
AXPB(TRANSFORMATION_CONFORME_DANS_LES_PLANS_HYPER_HYPER_____A_translation_AY \
,ASI1(A_translation,dy) \
,TRANSFORMATION_CONFORME_DANS_LES_PLANS_HYPER_HYPER_____A_translation_BY \
)
DEFV(Common,DEFV(Float,ZINT(TRANSFORMATION_CONFORME_DANS_LES_PLANS_HYPER_HYPER_____A_translation_AX,FU)));
DEFV(Common,DEFV(Float,ZINT(TRANSFORMATION_CONFORME_DANS_LES_PLANS_HYPER_HYPER_____A_translation_BX,FZERO)));
DEFV(Common,DEFV(Float,ZINT(TRANSFORMATION_CONFORME_DANS_LES_PLANS_HYPER_HYPER_____A_translation_AY,FU)));
DEFV(Common,DEFV(Float,ZINT(TRANSFORMATION_CONFORME_DANS_LES_PLANS_HYPER_HYPER_____A_translation_BY,FZERO)));
#define R_translation__dX_____ \
AXPB(TRANSFORMATION_CONFORME_DANS_LES_PLANS_HYPER_HYPER_____R_translation_AX \
,ASI1(R_translation,dx) \
,TRANSFORMATION_CONFORME_DANS_LES_PLANS_HYPER_HYPER_____R_translation_BX \
)
#define R_translation__dY_____ \
AXPB(TRANSFORMATION_CONFORME_DANS_LES_PLANS_HYPER_HYPER_____R_translation_AY \
,ASI1(R_translation,dy) \
,TRANSFORMATION_CONFORME_DANS_LES_PLANS_HYPER_HYPER_____R_translation_BY \
)
DEFV(Common,DEFV(Float,ZINT(TRANSFORMATION_CONFORME_DANS_LES_PLANS_HYPER_HYPER_____R_translation_AX,FU)));
DEFV(Common,DEFV(Float,ZINT(TRANSFORMATION_CONFORME_DANS_LES_PLANS_HYPER_HYPER_____R_translation_BX,FZERO)));
DEFV(Common,DEFV(Float,ZINT(TRANSFORMATION_CONFORME_DANS_LES_PLANS_HYPER_HYPER_____R_translation_AY,FU)));
DEFV(Common,DEFV(Float,ZINT(TRANSFORMATION_CONFORME_DANS_LES_PLANS_HYPER_HYPER_____R_translation_BY,FZERO)));
/* Definition des facteurs de corrections des translations 'A' et 'R' (ceci fut introduit */
/* le 20111228152543... */
#define TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_HYPER_IMAGE_____Xmin_ref \
TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_HYPER_IMAGE_____Xmin_reference
#define TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_HYPER_IMAGE_____Xmax_ref \
TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_HYPER_IMAGE_____Xmax_reference
#define TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_HYPER_IMAGE_____Ymin_ref \
TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_HYPER_IMAGE_____Ymin_reference
#define TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_HYPER_IMAGE_____Ymax_ref \
TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_HYPER_IMAGE_____Ymax_reference
/* Afin de raccourcir quelques lignes qui suivent... */
#define NomFonctionCourant \
NomDeLaFonctionCourante \
/* Afin de raccourcir les lignes 'LIN8(...)' suivantes... */
#define TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_HYPER_IMAGE(variables_specifiques,condition,transformation,action_rangement,fme) \
Bblock \
DEFV(Float,INIT(facteur_multiplicatif_effectif,facteur_multiplicatif)); \
/* Facteur multiplicatif effectif destine a rendre ce facteur */ \
/* "homothetique" ce qui permettra alors d'obtenir le meme resultat quel que soit la */ \
/* resolution de l'image (par exemple 'Puq' et 'Pqu'...). Ceci n'a evidemment de sens */ \
/* que pour 'TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_HYPER_IMAGE(...)' et n'en a pas pour */ \
/* 'TRANSFORMATION_CONFORME_DANS_LE_PLAN_COMPLEXE(...)' puisque les coordonnees {X,Y} */ \
/* sont alors normalisees dans [0,1], cette normalisation etant evidemment independante */ \
/* de resolution de l'image... */ \
\
Test(IL_FAUT(TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_HYPER_IMAGE_____facteur_multiplicatif_homothetique)) \
Bblock \
DEFV(Float,INIT(facteur_correctif \
,DIVI(RACX(FLOT(MUL2(DIMENSION \
(TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_HYPER_IMAGE_____Xmin_ref \
,TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_HYPER_IMAGE_____Xmax_ref \
) \
,DIMENSION \
(TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_HYPER_IMAGE_____Ymin_ref \
,TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_HYPER_IMAGE_____Ymax_ref \
) \
) \
) \
) \
,RACX(FLOT(dimXY)) \
) \
) \
); \
EGAL(facteur_multiplicatif_effectif,fme); \
/* Ainsi, le facteur mutiplicatif est rendu independant de la resolution de l'image par */ \
/* rapport a la resolution dite "reference"... */ \
Eblock \
ATes \
Bblock \
Eblock \
ETes \
\
begin_image \
Bblock \
DEFV(Float,INIT(composante_R,FLOT__UNDEF)); \
DEFV(Float,INIT(composante_I,FLOT__UNDEF)); \
/* Coordonnees translatees... */ \
DEFV(hyper_hyper_complexe,point_courant); \
/* Point hyper-hyper-complexe courant. */ \
DEFV(hyper_hyper_complexe,point_manoeuvre); \
/* Point hyper-hyper-complexe resultat de la transformation. */ \
BLOC(variables_specifiques); \
/* Variables specifiques eventuellement... */ \
\
EGAL(composante_R \
,ADD2(FLOT(X) \
,F__lDENORMALISE_OX(A_translation__dX_____) \
) \
); \
EGAL(composante_I \
,ADD2(FLOT(Y) \
,F__lDENORMALISE_OY(A_translation__dY_____) \
) \
); \
\
HHCinitialisation(point_courant \
,LIZ8(NomFonctionCourant QD@@__ _____matrice1_RR,composante_R \
,NomFonctionCourant QD@@__ _____matrice1_RI,composante_I \
,NomFonctionCourant QD@@__ _____matrice1_RJ,NomFonctionCourant QD@@__ _____composante_J \
,NomFonctionCourant QD@@__ _____matrice1_RK,NomFonctionCourant QD@@__ _____composante_K \
,NomFonctionCourant QD@@__ _____matrice1_RS,NomFonctionCourant QD@@__ _____composante_S \
,NomFonctionCourant QD@@__ _____matrice1_RT,NomFonctionCourant QD@@__ _____composante_T \
,NomFonctionCourant QD@@__ _____matrice1_RU,NomFonctionCourant QD@@__ _____composante_U \
,NomFonctionCourant QD@@__ _____matrice1_RV,NomFonctionCourant QD@@__ _____composante_V \
) \
,LIZ8(NomFonctionCourant QD@@__ _____matrice1_IR,composante_R \
,NomFonctionCourant QD@@__ _____matrice1_II,composante_I \
,NomFonctionCourant QD@@__ _____matrice1_IJ,NomFonctionCourant QD@@__ _____composante_J \
,NomFonctionCourant QD@@__ _____matrice1_IK,NomFonctionCourant QD@@__ _____composante_K \
,NomFonctionCourant QD@@__ _____matrice1_IS,NomFonctionCourant QD@@__ _____composante_S \
,NomFonctionCourant QD@@__ _____matrice1_IT,NomFonctionCourant QD@@__ _____composante_T \
,NomFonctionCourant QD@@__ _____matrice1_IU,NomFonctionCourant QD@@__ _____composante_U \
,NomFonctionCourant QD@@__ _____matrice1_IV,NomFonctionCourant QD@@__ _____composante_V \
) \
,LIZ8(NomFonctionCourant QD@@__ _____matrice1_JR,composante_R \
,NomFonctionCourant QD@@__ _____matrice1_JI,composante_I \
,NomFonctionCourant QD@@__ _____matrice1_JJ,NomFonctionCourant QD@@__ _____composante_J \
,NomFonctionCourant QD@@__ _____matrice1_JK,NomFonctionCourant QD@@__ _____composante_K \
,NomFonctionCourant QD@@__ _____matrice1_JS,NomFonctionCourant QD@@__ _____composante_S \
,NomFonctionCourant QD@@__ _____matrice1_JT,NomFonctionCourant QD@@__ _____composante_T \
,NomFonctionCourant QD@@__ _____matrice1_JU,NomFonctionCourant QD@@__ _____composante_U \
,NomFonctionCourant QD@@__ _____matrice1_JV,NomFonctionCourant QD@@__ _____composante_V \
) \
,LIZ8(NomFonctionCourant QD@@__ _____matrice1_KR,composante_R \
,NomFonctionCourant QD@@__ _____matrice1_KI,composante_I \
,NomFonctionCourant QD@@__ _____matrice1_KJ,NomFonctionCourant QD@@__ _____composante_J \
,NomFonctionCourant QD@@__ _____matrice1_KK,NomFonctionCourant QD@@__ _____composante_K \
,NomFonctionCourant QD@@__ _____matrice1_KS,NomFonctionCourant QD@@__ _____composante_S \
,NomFonctionCourant QD@@__ _____matrice1_KT,NomFonctionCourant QD@@__ _____composante_T \
,NomFonctionCourant QD@@__ _____matrice1_KU,NomFonctionCourant QD@@__ _____composante_U \
,NomFonctionCourant QD@@__ _____matrice1_KV,NomFonctionCourant QD@@__ _____composante_V \
) \
,LIZ8(NomFonctionCourant QD@@__ _____matrice1_SR,composante_R \
,NomFonctionCourant QD@@__ _____matrice1_SI,composante_I \
,NomFonctionCourant QD@@__ _____matrice1_SJ,NomFonctionCourant QD@@__ _____composante_J \
,NomFonctionCourant QD@@__ _____matrice1_SK,NomFonctionCourant QD@@__ _____composante_K \
,NomFonctionCourant QD@@__ _____matrice1_SS,NomFonctionCourant QD@@__ _____composante_S \
,NomFonctionCourant QD@@__ _____matrice1_ST,NomFonctionCourant QD@@__ _____composante_T \
,NomFonctionCourant QD@@__ _____matrice1_SU,NomFonctionCourant QD@@__ _____composante_U \
,NomFonctionCourant QD@@__ _____matrice1_SV,NomFonctionCourant QD@@__ _____composante_V \
) \
,LIZ8(NomFonctionCourant QD@@__ _____matrice1_TR,composante_R \
,NomFonctionCourant QD@@__ _____matrice1_TI,composante_I \
,NomFonctionCourant QD@@__ _____matrice1_TJ,NomFonctionCourant QD@@__ _____composante_J \
,NomFonctionCourant QD@@__ _____matrice1_TK,NomFonctionCourant QD@@__ _____composante_K \
,NomFonctionCourant QD@@__ _____matrice1_TS,NomFonctionCourant QD@@__ _____composante_S \
,NomFonctionCourant QD@@__ _____matrice1_TT,NomFonctionCourant QD@@__ _____composante_T \
,NomFonctionCourant QD@@__ _____matrice1_TU,NomFonctionCourant QD@@__ _____composante_U \
,NomFonctionCourant QD@@__ _____matrice1_TV,NomFonctionCourant QD@@__ _____composante_V \
) \
,LIZ8(NomFonctionCourant QD@@__ _____matrice1_UR,composante_R \
,NomFonctionCourant QD@@__ _____matrice1_UI,composante_I \
,NomFonctionCourant QD@@__ _____matrice1_UJ,NomFonctionCourant QD@@__ _____composante_J \
,NomFonctionCourant QD@@__ _____matrice1_UK,NomFonctionCourant QD@@__ _____composante_K \
,NomFonctionCourant QD@@__ _____matrice1_US,NomFonctionCourant QD@@__ _____composante_S \
,NomFonctionCourant QD@@__ _____matrice1_UT,NomFonctionCourant QD@@__ _____composante_T \
,NomFonctionCourant QD@@__ _____matrice1_UU,NomFonctionCourant QD@@__ _____composante_U \
,NomFonctionCourant QD@@__ _____matrice1_UV,NomFonctionCourant QD@@__ _____composante_V \
) \
,LIZ8(NomFonctionCourant QD@@__ _____matrice1_VR,composante_R \
,NomFonctionCourant QD@@__ _____matrice1_VI,composante_I \
,NomFonctionCourant QD@@__ _____matrice1_VJ,NomFonctionCourant QD@@__ _____composante_J \
,NomFonctionCourant QD@@__ _____matrice1_VK,NomFonctionCourant QD@@__ _____composante_K \
,NomFonctionCourant QD@@__ _____matrice1_VS,NomFonctionCourant QD@@__ _____composante_S \
,NomFonctionCourant QD@@__ _____matrice1_VT,NomFonctionCourant QD@@__ _____composante_T \
,NomFonctionCourant QD@@__ _____matrice1_VU,NomFonctionCourant QD@@__ _____composante_U \
,NomFonctionCourant QD@@__ _____matrice1_VV,NomFonctionCourant QD@@__ _____composante_V \
) \
); \
/* Le "point_courant" est associe au point courant {X,Y} sur le maillage de l'image */ \
/* de facon que : */ \
/* */ \
/* point_courant = {X,Y,0,0,0,0,0,0} */ \
/* */ \
/* par defaut (voir la valeur des ponderations des 'LIN8(...)'). Les composantes */ \
/* {composante_J,composante_K,composante_Scomposante_T,composante_U,composante_V} */ \
/* sont arbitraires et nulles par defaut... */ \
\
Test(condition) \
Bblock \
DEFV(Int,INIT(new_X,UNDEF)); \
/* Nouvelle coordonnee horizontale apres transformation, */ \
DEFV(Int,INIT(new_Y,UNDEF)); \
/* Nouvelle coordonnee verticale apres transformation, */ \
\
BLOC(transformation); \
/* Transformation du nombre hyper-hyper-complexe courant. */ \
\
EGAL(new_X \
,ADD2(VINTE(MUL3(TRANSFORMATION_CONFORME_DANS_LES_PLANS_HYPER_HYPER_____R_facteur_homothetie_X \
,facteur_multiplicatif_effectif \
,LIZ8(NomFonctionCourant QD@@__ _____matrice2_RR,HHReelle(point_manoeuvre) \
,NomFonctionCourant QD@@__ _____matrice2_RI,HHImaginaire(point_manoeuvre) \
,NomFonctionCourant QD@@__ _____matrice2_RJ,HHJmaginaire(point_manoeuvre) \
,NomFonctionCourant QD@@__ _____matrice2_RK,HHKmaginaire(point_manoeuvre) \
,NomFonctionCourant QD@@__ _____matrice2_RS,HHSmaginaire(point_manoeuvre) \
,NomFonctionCourant QD@@__ _____matrice2_RT,HHTmaginaire(point_manoeuvre) \
,NomFonctionCourant QD@@__ _____matrice2_RU,HHUmaginaire(point_manoeuvre) \
,NomFonctionCourant QD@@__ _____matrice2_RV,HHVmaginaire(point_manoeuvre) \
) \
) \
) \
,_lDENORMALISE_OX(R_translation__dX_____) \
) \
); \
EGAL(new_Y \
,ADD2(VINTE(MUL3(TRANSFORMATION_CONFORME_DANS_LES_PLANS_HYPER_HYPER_____R_facteur_homothetie_Y \
,facteur_multiplicatif_effectif \
,LIZ8(NomFonctionCourant QD@@__ _____matrice2_IR,HHReelle(point_manoeuvre) \
,NomFonctionCourant QD@@__ _____matrice2_II,HHImaginaire(point_manoeuvre) \
,NomFonctionCourant QD@@__ _____matrice2_IJ,HHJmaginaire(point_manoeuvre) \
,NomFonctionCourant QD@@__ _____matrice2_IK,HHKmaginaire(point_manoeuvre) \
,NomFonctionCourant QD@@__ _____matrice2_IS,HHSmaginaire(point_manoeuvre) \
,NomFonctionCourant QD@@__ _____matrice2_IT,HHTmaginaire(point_manoeuvre) \
,NomFonctionCourant QD@@__ _____matrice2_IU,HHUmaginaire(point_manoeuvre) \
,NomFonctionCourant QD@@__ _____matrice2_IV,HHVmaginaire(point_manoeuvre) \
) \
) \
) \
,_lDENORMALISE_OY(R_translation__dY_____) \
) \
); \
/* Calcul des coordonnees transformees dans le plan image en recuperant, par defaut (voir */ \
/* la valeur des ponderations des 'LIN8(...)'), les composantes {R,I,J,K,S,T,U,V} de */ \
/* l'octonion 'point_manoeuvre'... */ \
\
BLOC(action_rangement); \
/* Et enfin, deplacement du point courant... */ \
Eblock \
ATes \
Bblock \
Eblock \
ETes \
Eblock \
end_image \
Eblock \
/* Definition de la transformation conforme en coordonnees d'ecran [Xmin,Xmax]x[Ymin,Ymax]. */
#define TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_HYPER_COMPLEXE(variables_specifiques,condition,transformation,action_rangement) \
Bblock \
begin_image \
Bblock \
DEFV(Float,INIT(new_X,FLOT__UNDEF)); \
/* Nouvelle coordonnee horizontale apres transformation, */ \
DEFV(Float,INIT(new_Y,FLOT__UNDEF)); \
/* Nouvelle coordonnee verticale apres transformation, */ \
DEFV(Float,INIT(composante_R,FLOT__UNDEF)); \
DEFV(Float,INIT(composante_I,FLOT__UNDEF)); \
/* Coordonnees translatees... */ \
DEFV(hyper_hyper_complexe,point_courant); \
/* Point hyper-hyper-complexe courant. */ \
DEFV(hyper_hyper_complexe,point_manoeuvre); \
/* Point hyper-hyper-complexe resultat de la transformation. */ \
BLOC(variables_specifiques); \
/* Variables specifiques eventuellement... */ \
\
EGAL(composante_R \
,AXPB(TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_HYPER_COMPLEXE_____A_facteur_homothetie_X \
,SUPER_cNORMALISE_OX(X) \
,A_translation__dX_____ \
) \
); \
EGAL(composante_I \
,AXPB(TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_HYPER_COMPLEXE_____A_facteur_homothetie_Y \
,SUPER_cNORMALISE_OY(Y) \
,A_translation__dY_____ \
) \
); \
\
HHCinitialisation(point_courant \
,LIZ8(NomFonctionCourant QD@@__ _____matrice1_RR,composante_R \
,NomFonctionCourant QD@@__ _____matrice1_RI,composante_I \
,NomFonctionCourant QD@@__ _____matrice1_RJ,NomFonctionCourant QD@@__ _____composante_J \
,NomFonctionCourant QD@@__ _____matrice1_RK,NomFonctionCourant QD@@__ _____composante_K \
,NomFonctionCourant QD@@__ _____matrice1_RS,NomFonctionCourant QD@@__ _____composante_S \
,NomFonctionCourant QD@@__ _____matrice1_RT,NomFonctionCourant QD@@__ _____composante_T \
,NomFonctionCourant QD@@__ _____matrice1_RU,NomFonctionCourant QD@@__ _____composante_U \
,NomFonctionCourant QD@@__ _____matrice1_RV,NomFonctionCourant QD@@__ _____composante_V \
) \
,LIZ8(NomFonctionCourant QD@@__ _____matrice1_IR,composante_R \
,NomFonctionCourant QD@@__ _____matrice1_II,composante_I \
,NomFonctionCourant QD@@__ _____matrice1_IJ,NomFonctionCourant QD@@__ _____composante_J \
,NomFonctionCourant QD@@__ _____matrice1_IK,NomFonctionCourant QD@@__ _____composante_K \
,NomFonctionCourant QD@@__ _____matrice1_IS,NomFonctionCourant QD@@__ _____composante_S \
,NomFonctionCourant QD@@__ _____matrice1_IT,NomFonctionCourant QD@@__ _____composante_T \
,NomFonctionCourant QD@@__ _____matrice1_IU,NomFonctionCourant QD@@__ _____composante_U \
,NomFonctionCourant QD@@__ _____matrice1_IV,NomFonctionCourant QD@@__ _____composante_V \
) \
,LIZ8(NomFonctionCourant QD@@__ _____matrice1_JR,composante_R \
,NomFonctionCourant QD@@__ _____matrice1_JI,composante_I \
,NomFonctionCourant QD@@__ _____matrice1_JJ,NomFonctionCourant QD@@__ _____composante_J \
,NomFonctionCourant QD@@__ _____matrice1_JK,NomFonctionCourant QD@@__ _____composante_K \
,NomFonctionCourant QD@@__ _____matrice1_JS,NomFonctionCourant QD@@__ _____composante_S \
,NomFonctionCourant QD@@__ _____matrice1_JT,NomFonctionCourant QD@@__ _____composante_T \
,NomFonctionCourant QD@@__ _____matrice1_JU,NomFonctionCourant QD@@__ _____composante_U \
,NomFonctionCourant QD@@__ _____matrice1_JV,NomFonctionCourant QD@@__ _____composante_V \
) \
,LIZ8(NomFonctionCourant QD@@__ _____matrice1_KR,composante_R \
,NomFonctionCourant QD@@__ _____matrice1_KI,composante_I \
,NomFonctionCourant QD@@__ _____matrice1_KJ,NomFonctionCourant QD@@__ _____composante_J \
,NomFonctionCourant QD@@__ _____matrice1_KK,NomFonctionCourant QD@@__ _____composante_K \
,NomFonctionCourant QD@@__ _____matrice1_KS,NomFonctionCourant QD@@__ _____composante_S \
,NomFonctionCourant QD@@__ _____matrice1_KT,NomFonctionCourant QD@@__ _____composante_T \
,NomFonctionCourant QD@@__ _____matrice1_KU,NomFonctionCourant QD@@__ _____composante_U \
,NomFonctionCourant QD@@__ _____matrice1_KV,NomFonctionCourant QD@@__ _____composante_V \
) \
,LIZ8(NomFonctionCourant QD@@__ _____matrice1_SR,composante_R \
,NomFonctionCourant QD@@__ _____matrice1_SI,composante_I \
,NomFonctionCourant QD@@__ _____matrice1_SJ,NomFonctionCourant QD@@__ _____composante_J \
,NomFonctionCourant QD@@__ _____matrice1_SK,NomFonctionCourant QD@@__ _____composante_K \
,NomFonctionCourant QD@@__ _____matrice1_SS,NomFonctionCourant QD@@__ _____composante_S \
,NomFonctionCourant QD@@__ _____matrice1_ST,NomFonctionCourant QD@@__ _____composante_T \
,NomFonctionCourant QD@@__ _____matrice1_SU,NomFonctionCourant QD@@__ _____composante_U \
,NomFonctionCourant QD@@__ _____matrice1_SV,NomFonctionCourant QD@@__ _____composante_V \
) \
,LIZ8(NomFonctionCourant QD@@__ _____matrice1_TR,composante_R \
,NomFonctionCourant QD@@__ _____matrice1_TI,composante_I \
,NomFonctionCourant QD@@__ _____matrice1_TJ,NomFonctionCourant QD@@__ _____composante_J \
,NomFonctionCourant QD@@__ _____matrice1_TK,NomFonctionCourant QD@@__ _____composante_K \
,NomFonctionCourant QD@@__ _____matrice1_TS,NomFonctionCourant QD@@__ _____composante_S \
,NomFonctionCourant QD@@__ _____matrice1_TT,NomFonctionCourant QD@@__ _____composante_T \
,NomFonctionCourant QD@@__ _____matrice1_TU,NomFonctionCourant QD@@__ _____composante_U \
,NomFonctionCourant QD@@__ _____matrice1_TV,NomFonctionCourant QD@@__ _____composante_V \
) \
,LIZ8(NomFonctionCourant QD@@__ _____matrice1_UR,composante_R \
,NomFonctionCourant QD@@__ _____matrice1_UI,composante_I \
,NomFonctionCourant QD@@__ _____matrice1_UJ,NomFonctionCourant QD@@__ _____composante_J \
,NomFonctionCourant QD@@__ _____matrice1_UK,NomFonctionCourant QD@@__ _____composante_K \
,NomFonctionCourant QD@@__ _____matrice1_US,NomFonctionCourant QD@@__ _____composante_S \
,NomFonctionCourant QD@@__ _____matrice1_UT,NomFonctionCourant QD@@__ _____composante_T \
,NomFonctionCourant QD@@__ _____matrice1_UU,NomFonctionCourant QD@@__ _____composante_U \
,NomFonctionCourant QD@@__ _____matrice1_UV,NomFonctionCourant QD@@__ _____composante_V \
) \
,LIZ8(NomFonctionCourant QD@@__ _____matrice1_VR,composante_R \
,NomFonctionCourant QD@@__ _____matrice1_VI,composante_I \
,NomFonctionCourant QD@@__ _____matrice1_VJ,NomFonctionCourant QD@@__ _____composante_J \
,NomFonctionCourant QD@@__ _____matrice1_VK,NomFonctionCourant QD@@__ _____composante_K \
,NomFonctionCourant QD@@__ _____matrice1_VS,NomFonctionCourant QD@@__ _____composante_S \
,NomFonctionCourant QD@@__ _____matrice1_VT,NomFonctionCourant QD@@__ _____composante_T \
,NomFonctionCourant QD@@__ _____matrice1_VU,NomFonctionCourant QD@@__ _____composante_U \
,NomFonctionCourant QD@@__ _____matrice1_VV,NomFonctionCourant QD@@__ _____composante_V \
) \
); \
/* Le "point_courant" est associe au point courant {X,Y} sur le maillage de l'image */ \
/* de facon que : */ \
/* */ \
/* point_courant = {X,Y,0,0,0,0,0,0} */ \
/* */ \
/* par defaut (voir la valeur des ponderations des 'LIN4(...)'). Les composantes */ \
/* {composante_J,composante_K,composante_Scomposante_T,composante_U,composante_V} */ \
/* sont arbitraires et nulles par defaut... */ \
\
Test(condition) \
Bblock \
BLOC(transformation); \
/* Transformation du nombre hyper-hyper-complexe courant. */ \
\
EGAL(new_X \
,ADD2(MUL3(TRANSFORMATION_CONFORME_DANS_LES_PLANS_HYPER_HYPER_____R_facteur_homothetie_X \
,facteur_multiplicatif \
,LIZ8(NomFonctionCourant QD@@__ _____matrice2_RR,HHReelle(point_manoeuvre) \
,NomFonctionCourant QD@@__ _____matrice2_RI,HHImaginaire(point_manoeuvre) \
,NomFonctionCourant QD@@__ _____matrice2_RJ,HHJmaginaire(point_manoeuvre) \
,NomFonctionCourant QD@@__ _____matrice2_RK,HHKmaginaire(point_manoeuvre) \
,NomFonctionCourant QD@@__ _____matrice2_RS,HHSmaginaire(point_manoeuvre) \
,NomFonctionCourant QD@@__ _____matrice2_RT,HHTmaginaire(point_manoeuvre) \
,NomFonctionCourant QD@@__ _____matrice2_RU,HHUmaginaire(point_manoeuvre) \
,NomFonctionCourant QD@@__ _____matrice2_RV,HHVmaginaire(point_manoeuvre) \
) \
) \
,R_translation__dX_____ \
) \
); \
EGAL(new_Y \
,ADD2(MUL3(TRANSFORMATION_CONFORME_DANS_LES_PLANS_HYPER_HYPER_____R_facteur_homothetie_Y \
,facteur_multiplicatif \
,LIZ8(NomFonctionCourant QD@@__ _____matrice2_IR,HHReelle(point_manoeuvre) \
,NomFonctionCourant QD@@__ _____matrice2_II,HHImaginaire(point_manoeuvre) \
,NomFonctionCourant QD@@__ _____matrice2_IJ,HHJmaginaire(point_manoeuvre) \
,NomFonctionCourant QD@@__ _____matrice2_IK,HHKmaginaire(point_manoeuvre) \
,NomFonctionCourant QD@@__ _____matrice2_IS,HHSmaginaire(point_manoeuvre) \
,NomFonctionCourant QD@@__ _____matrice2_IT,HHTmaginaire(point_manoeuvre) \
,NomFonctionCourant QD@@__ _____matrice2_IU,HHUmaginaire(point_manoeuvre) \
,NomFonctionCourant QD@@__ _____matrice2_IV,HHVmaginaire(point_manoeuvre) \
) \
) \
,R_translation__dY_____ \
) \
); \
/* Calcul des coordonnees transformees dans le plan image en recuperant, par defaut (voir */ \
/* la valeur des ponderations des 'LIN8(...)'), les composantes {R,I,J,K,S,T,U,V} de */ \
/* l'octonion 'point_manoeuvre'... */ \
\
BLOC(action_rangement); \
/* Et enfin, deplacement du point courant... */ \
Eblock \
ATes \
Bblock \
Eblock \
ETes \
Eblock \
end_image \
Eblock \
/* Definition de la transformation conforme en coordonnees d'ecran [Xmin,Xmax]x[Ymin,Ymax]. */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 ) : */
/* */
/*************************************************************************************************************************************/
#define O_AU_CARRE_DANS_PLANS_HYPER_HYPER_IMAGE_OU_HYPER_HYPER_COMPLEXE \
Bblock \
TRANSFORMATION__O_AU_CARRE(point_manoeuvre,point_courant); \
Eblock \
/* Definition generale de la transformation 'o' au carre dans les plans hyper-image ou */ \
/* hyper-complexe. */
#define O_AU_CARRE_PLANS_HYPER_HYPER_IMAGE_COMPLEXE \
O_AU_CARRE_DANS_PLANS_HYPER_HYPER_IMAGE_OU_HYPER_HYPER_COMPLEXE \
/* Introduit le 20111017152554 afin de reduire la longueur de certaines lignes... */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* D E F I N I 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] : */
/* */
/*************************************************************************************************************************************/
#define O_AU_CARRE_DANS_LE_PLAN_HYPER_HYPER_IMAGE(action_rangement) \
Bblock \
TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_HYPER_IMAGE(BLOC(VIDE;) \
,TOUJOURS_VRAI \
,BLOC(O_AU_CARRE_PLANS_HYPER_HYPER_IMAGE_COMPLEXE;) \
,BLOC(action_rangement) \
,MUL2(facteur_multiplicatif,NEUT(facteur_correctif)) \
); \
Eblock \
/* Definition de la transformation conforme en coordonnees d'ecran [Xmin,Xmax]x[Ymin,Ymax]. */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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] : */
/* */
/*************************************************************************************************************************************/
BFonctionP
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_RR,FU)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_RI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_RJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_RK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_RS,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_RT,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_RU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_RV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_IR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_II,FU)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_IJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_IK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_IS,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_IT,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_IU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_IV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_JR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_JI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_JJ,FU)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_JK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_JS,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_JT,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_JU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_JV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_KR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_KI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_KJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_KK,FU)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_KS,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_KT,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_KU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_KV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_SR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_SI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_SJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_SK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_SS,FU)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_ST,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_SU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_SV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_TR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_TI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_TJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_TK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_TS,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_TT,FU)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_TU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_TV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_UR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_UI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_UJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_UK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_US,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_UT,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_UU,FU)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_UV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_VR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_VI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_VJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_VK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_VS,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_VT,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_VU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_VV,FU)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice2_RR,FU)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice2_RI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice2_RJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice2_RK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice2_RS,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice2_RT,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice2_RU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice2_RV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice2_IR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice2_II,FU)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice2_IJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice2_IK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice2_IS,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice2_IT,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice2_IU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____matrice2_IV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____composante_J,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____composante_K,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____composante_S,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____composante_T,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____composante_U,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_image_____composante_V,FZERO)));
DEFV(Common,DEFV(FonctionP,POINTERp(Io_au_carre_dans_le_plan_hyper_hyper_image(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
)
)
)
)
DEFV(Argument,DEFV(image,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K' (une valeur de l'ordre de 0.01 donne de bons resultats). */
DEFV(Argument,DEFV(image,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
O_AU_CARRE_DANS_LE_PLAN_HYPER_HYPER_IMAGE(BLOC(store_point_load_point(imageA
,new_X
,new_Y
,imageR
,X
,Y
);
)
);
RETI(imageR);
Eblock
EFonctionP
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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] : */
/* */
/*************************************************************************************************************************************/
BFonctionF
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_RR,FU)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_RI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_RJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_RK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_RS,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_RT,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_RU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_RV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_IR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_II,FU)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_IJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_IK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_IS,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_IT,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_IU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_IV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_JR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_JI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_JJ,FU)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_JK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_JS,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_JT,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_JU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_JV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_KR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_KI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_KJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_KK,FU)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_KS,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_KT,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_KU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_KV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_SR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_SI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_SJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_SK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_SS,FU)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_ST,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_SU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_SV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_TR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_TI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_TJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_TK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_TS,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_TT,FU)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_TU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_TV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_UR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_UI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_UJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_UK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_US,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_UT,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_UU,FU)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_UV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_VR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_VI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_VJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_VK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_VS,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_VT,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_VU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice1_VV,FU)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice2_RR,FU)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice2_RI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice2_RJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice2_RK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice2_RS,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice2_RT,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice2_RU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice2_RV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice2_IR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice2_II,FU)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice2_IJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice2_IK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice2_IS,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice2_IT,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice2_IU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____matrice2_IV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____composante_J,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____composante_K,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____composante_S,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____composante_T,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____composante_U,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_image_____composante_V,FZERO)));
DEFV(Common,DEFV(FonctionF,POINTERF(IFo_au_carre_dans_le_plan_hyper_hyper_image(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
)
)
)
)
/* Fonction introduite le 20111017144351. */
DEFV(Argument,DEFV(imageF,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K' (une valeur de l'ordre de 0.01 donne de bons resultats). */
DEFV(Argument,DEFV(imageF,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
O_AU_CARRE_DANS_LE_PLAN_HYPER_HYPER_IMAGE(BLOC(storeF_point_loadF_point(imageA
,new_X
,new_Y
,imageR
,X
,Y
);
)
);
RETIF(imageR);
Eblock
EFonctionF
#undef O_AU_CARRE_DANS_LE_PLAN_HYPER_HYPER_IMAGE
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* D E F I N I 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 U P L A N H Y P E R - H Y P E R - C O M P L E X E */
/* [0,1] x [0,1] x [0,1] x [0,1] x [0,1] x [0,1] x [0,1] x [0,1] : */
/* */
/*************************************************************************************************************************************/
#define O_AU_CARRE_DANS_LE_PLAN_HYPER_HYPER_COMPLEXE(action_rangement) \
Bblock \
TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_HYPER_COMPLEXE(BLOC(VIDE;) \
,TOUJOURS_VRAI \
,BLOC(O_AU_CARRE_PLANS_HYPER_HYPER_IMAGE_COMPLEXE;) \
,BLOC(action_rangement) \
); \
Eblock \
/* Definition de la transformation conforme en coordonnees d'ecran [Xmin,Xmax]x[Ymin,Ymax]. */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 U P L A N H Y P E R - H Y P E R - C O M P L E X E */
/* [0,1] x [0,1] x [0,1] x [0,1] x [0,1] x [0,1] x [0,1] x [0,1] : */
/* */
/*************************************************************************************************************************************/
BFonctionP
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_RR,FU)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_RI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_RJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_RK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_RS,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_RT,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_RU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_RV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_IR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_II,FU)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_IJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_IK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_IS,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_IT,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_IU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_IV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_JR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_JI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_JJ,FU)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_JK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_JS,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_JT,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_JU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_JV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_KR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_KI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_KJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_KK,FU)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_KS,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_KT,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_KU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_KV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_SR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_SI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_SJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_SK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_SS,FU)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_ST,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_SU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_SV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_TR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_TI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_TJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_TK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_TS,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_TT,FU)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_TU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_TV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_UR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_UI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_UJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_UK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_US,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_UT,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_UU,FU)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_UV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_VR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_VI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_VJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_VK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_VS,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_VT,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_VU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_VV,FU)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice2_RR,FU)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice2_RI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice2_RJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice2_RK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice2_RS,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice2_RT,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice2_RU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice2_RV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice2_IR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice2_II,FU)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice2_IJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice2_IK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice2_IS,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice2_IT,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice2_IU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice2_IV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____composante_J,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____composante_K,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____composante_S,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____composante_T,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____composante_U,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_au_carre_dans_le_plan_hyper_hyper_complexe_____composante_V,FZERO)));
DEFV(Common,DEFV(FonctionP,POINTERp(Io_au_carre_dans_le_plan_hyper_hyper_complexe(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
)
)
)
)
/* Fonction introduite le 20111017144351. */
DEFV(Argument,DEFV(image,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K' (une valeur de l'ordre de 5.0 donne de bons resultats) ; voir */
/* a ce propos les commentaires de 'v $xci/z_carre.01$K'... */
DEFV(Argument,DEFV(image,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
O_AU_CARRE_DANS_LE_PLAN_HYPER_HYPER_COMPLEXE(BLOC(store_point_load_point(imageA
,fV_cDENORMALISE_OX(new_X)
,fV_cDENORMALISE_OY(new_Y)
,imageR
,X
,Y
);
)
);
RETI(imageR);
Eblock
EFonctionP
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 U P L A N H Y P E R - H Y P E R - C O M P L E X E */
/* [0,1] x [0,1] x [0,1] x [0,1] x [0,1] x [0,1] x [0,1] x [0,1] : */
/* */
/*************************************************************************************************************************************/
BFonctionF
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_RR,FU)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_RI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_RJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_RK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_RS,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_RT,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_RU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_RV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_IR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_II,FU)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_IJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_IK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_IS,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_IT,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_IU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_IV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_JR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_JI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_JJ,FU)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_JK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_JS,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_JT,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_JU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_JV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_KR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_KI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_KJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_KK,FU)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_KS,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_KT,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_KU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_KV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_SR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_SI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_SJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_SK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_SS,FU)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_ST,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_SU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_SV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_TR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_TI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_TJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_TK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_TS,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_TT,FU)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_TU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_TV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_UR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_UI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_UJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_UK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_US,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_UT,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_UU,FU)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_UV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_VR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_VI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_VJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_VK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_VS,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_VT,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_VU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice1_VV,FU)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice2_RR,FU)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice2_RI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice2_RJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice2_RK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice2_RS,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice2_RT,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice2_RU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice2_RV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice2_IR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice2_II,FU)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice2_IJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice2_IK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice2_IS,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice2_IT,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice2_IU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____matrice2_IV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____composante_J,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____composante_K,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____composante_S,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____composante_T,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____composante_U,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_au_carre_dans_le_plan_hyper_hyper_complexe_____composante_V,FZERO)));
DEFV(Common,DEFV(FonctionF,POINTERF(IFo_au_carre_dans_le_plan_hyper_hyper_complexe(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
)
)
)
)
/* Fonction introduite le 20111017144351. */
DEFV(Argument,DEFV(imageF,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K' (une valeur de l'ordre de 5.0 donne de bons resultats) ; voir */
/* a ce propos les commentaires de 'v $xci/z_carre.01$K'... */
DEFV(Argument,DEFV(imageF,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
O_AU_CARRE_DANS_LE_PLAN_HYPER_HYPER_COMPLEXE(BLOC(storeF_point_loadF_point(imageA
,fV_cDENORMALISE_OX(new_X)
,fV_cDENORMALISE_OY(new_Y)
,imageR
,X
,Y
);
)
);
RETIF(imageR);
Eblock
EFonctionF
#undef O_AU_CARRE_DANS_LE_PLAN_HYPER_HYPER_COMPLEXE
#undef O_AU_CARRE_PLANS_HYPER_HYPER_IMAGE_COMPLEXE
#undef O_AU_CARRE_DANS_PLANS_HYPER_HYPER_IMAGE_OU_HYPER_HYPER_COMPLEXE
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 ) : */
/* */
/*************************************************************************************************************************************/
#define UN_SUR_O_DANS_PLANS_HYPER_HYPER_IMAGE_OU_HYPER_HYPER_COMPLEXE \
Bblock \
TRANSFORMATION__UN_SUR_O(point_manoeuvre,point_courant); \
Eblock \
/* Definition generale de la transformation un sur 'o' dans les plans hyper-image ou */ \
/* hyper-complexe. */
#define UN_SUR_O_PLANS_HYPER_HYPER_IMAGE_COMPLEXE \
UN_SUR_O_DANS_PLANS_HYPER_HYPER_IMAGE_OU_HYPER_HYPER_COMPLEXE \
/* Introduit le 20111017152554 afin de reduire la longueur de certaines lignes... */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* D E F I N I 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] : */
/* */
/*************************************************************************************************************************************/
#define UN_SUR_O_DANS_LE_PLAN_HYPER_HYPER_IMAGE(action_rangement) \
Bblock \
TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_HYPER_IMAGE(BLOC(VIDE;) \
,IZNE(HHCmodule2(point_courant)) \
,BLOC(UN_SUR_O_PLANS_HYPER_HYPER_IMAGE_COMPLEXE;) \
,BLOC(action_rangement) \
,DIVI(facteur_multiplicatif,EXP2(facteur_correctif)) \
); \
Eblock \
/* Definition de la transformation conforme en coordonnees d'ecran [Xmin,Xmax]x[Ymin,Ymax]. */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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] : */
/* */
/*************************************************************************************************************************************/
BFonctionP
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_RR,FU)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_RI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_RJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_RK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_RS,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_RT,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_RU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_RV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_IR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_II,FU)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_IJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_IK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_IS,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_IT,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_IU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_IV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_JR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_JI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_JJ,FU)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_JK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_JS,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_JT,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_JU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_JV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_KR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_KI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_KJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_KK,FU)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_KS,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_KT,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_KU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_KV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_SR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_SI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_SJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_SK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_SS,FU)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_ST,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_SU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_SV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_TR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_TI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_TJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_TK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_TS,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_TT,FU)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_TU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_TV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_UR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_UI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_UJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_UK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_US,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_UT,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_UU,FU)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_UV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_VR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_VI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_VJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_VK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_VS,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_VT,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_VU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_VV,FU)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice2_RR,FU)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice2_RI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice2_RJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice2_RK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice2_RS,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice2_RT,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice2_RU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice2_RV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice2_IR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice2_II,FU)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice2_IJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice2_IK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice2_IS,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice2_IT,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice2_IU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____matrice2_IV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____composante_J,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____composante_K,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____composante_S,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____composante_T,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____composante_U,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_image_____composante_V,FZERO)));
DEFV(Common,DEFV(FonctionP,POINTERp(Iun_sur_o_dans_le_plan_hyper_hyper_image(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
)
)
)
)
DEFV(Argument,DEFV(image,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K' (une valeur de l'ordre de 64000.0 donne de bons resultats). */
DEFV(Argument,DEFV(image,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
CALS(Inoir(imageR));
/* L'image Resultat est nettoye ici (contrairement a la transformation q**2), */
/* a cause du test de nullite du carre du module du nombre complexe courant ; */
/* dans ce cas aucun point n'est marque... */
UN_SUR_O_DANS_LE_PLAN_HYPER_HYPER_IMAGE(BLOC(store_point_load_point(imageA
,new_X
,new_Y
,imageR
,X
,Y
);
)
);
RETI(imageR);
Eblock
EFonctionP
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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] : */
/* */
/*************************************************************************************************************************************/
BFonctionF
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_RR,FU)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_RI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_RJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_RK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_RS,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_RT,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_RU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_RV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_IR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_II,FU)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_IJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_IK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_IS,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_IT,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_IU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_IV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_JR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_JI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_JJ,FU)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_JK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_JS,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_JT,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_JU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_JV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_KR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_KI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_KJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_KK,FU)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_KS,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_KT,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_KU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_KV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_SR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_SI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_SJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_SK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_SS,FU)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_ST,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_SU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_SV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_TR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_TI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_TJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_TK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_TS,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_TT,FU)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_TU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_TV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_UR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_UI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_UJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_UK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_US,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_UT,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_UU,FU)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_UV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_VR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_VI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_VJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_VK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_VS,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_VT,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_VU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice1_VV,FU)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice2_RR,FU)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice2_RI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice2_RJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice2_RK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice2_RS,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice2_RT,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice2_RU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice2_RV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice2_IR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice2_II,FU)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice2_IJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice2_IK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice2_IS,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice2_IT,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice2_IU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____matrice2_IV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____composante_J,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____composante_K,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____composante_S,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____composante_T,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____composante_U,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_image_____composante_V,FZERO)));
DEFV(Common,DEFV(FonctionF,POINTERF(IFun_sur_o_dans_le_plan_hyper_hyper_image(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
)
)
)
)
/* Fonction introduite le 20111017144351. */
DEFV(Argument,DEFV(imageF,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K' (une valeur de l'ordre de 64000.0 donne de bons resultats). */
DEFV(Argument,DEFV(imageF,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
CALS(IFinitialisation(imageR,FZERO));
/* L'image Resultat est nettoye ici (contrairement a la transformation q**2), */
/* a cause du test de nullite du carre du module du nombre complexe courant ; */
/* dans ce cas aucun point n'est marque... */
UN_SUR_O_DANS_LE_PLAN_HYPER_HYPER_IMAGE(BLOC(storeF_point_loadF_point(imageA
,new_X
,new_Y
,imageR
,X
,Y
);
)
);
RETIF(imageR);
Eblock
EFonctionF
#undef UN_SUR_O_DANS_LE_PLAN_HYPER_HYPER_IMAGE
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* D E F I N I 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 U P L A N H Y P E R - H Y P E R - C O M P L E X E */
/* [0,1] x [0,1] x [0,1] x [0,1] x [0,1] x [0,1] x [0,1] x [0,1] : */
/* */
/*************************************************************************************************************************************/
#define UN_SUR_O_DANS_LE_PLAN_HYPER_HYPER_COMPLEXE(action_rangement) \
Bblock \
TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_HYPER_COMPLEXE(BLOC(VIDE;) \
,IZNE(HHCmodule2(point_courant)) \
,BLOC(UN_SUR_O_PLANS_HYPER_HYPER_IMAGE_COMPLEXE;) \
,BLOC(action_rangement) \
); \
Eblock \
/* Definition de la transformation conforme en coordonnees d'ecran [Xmin,Xmax]x[Ymin,Ymax]. */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 U P L A N H Y P E R - H Y P E R - C O M P L E X E */
/* [0,1] x [0,1] x [0,1] x [0,1] x [0,1] x [0,1] x [0,1] x [0,1] : */
/* */
/*************************************************************************************************************************************/
BFonctionP
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_RR,FU)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_RI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_RJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_RK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_RS,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_RT,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_RU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_RV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_IR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_II,FU)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_IJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_IK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_IS,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_IT,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_IU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_IV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_JR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_JI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_JJ,FU)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_JK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_JS,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_JT,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_JU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_JV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_KR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_KI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_KJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_KK,FU)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_KS,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_KT,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_KU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_KV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_SR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_SI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_SJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_SK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_SS,FU)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_ST,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_SU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_SV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_TR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_TI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_TJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_TK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_TS,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_TT,FU)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_TU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_TV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_UR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_UI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_UJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_UK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_US,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_UT,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_UU,FU)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_UV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_VR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_VI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_VJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_VK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_VS,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_VT,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_VU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_VV,FU)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice2_RR,FU)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice2_RI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice2_RJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice2_RK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice2_RS,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice2_RT,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice2_RU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice2_RV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice2_IR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice2_II,FU)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice2_IJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice2_IK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice2_IS,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice2_IT,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice2_IU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice2_IV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____composante_J,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____composante_K,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____composante_S,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____composante_T,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____composante_U,FZERO)));
DEFV(Common,DEFV(Float,SINT(Iun_sur_o_dans_le_plan_hyper_hyper_complexe_____composante_V,FZERO)));
DEFV(Common,DEFV(FonctionP,POINTERp(Iun_sur_o_dans_le_plan_hyper_hyper_complexe(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
)
)
)
)
/* Fonction introduite le 20111017144351. */
DEFV(Argument,DEFV(image,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K' (une valeur de l'ordre de 0.25 donne de bons resultats) ; voir */
/* a ce propos les commentaires de 'v $xci/un_sur_z.01$K'... */
DEFV(Argument,DEFV(image,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
CALS(Inoir(imageR));
/* L'image Resultat est nettoye ici (contrairement a la transformation q**2), */
/* a cause du test de nullite du carre du module du nombre complexe courant ; */
/* dans ce cas aucun point n'est marque... */
UN_SUR_O_DANS_LE_PLAN_HYPER_HYPER_COMPLEXE(BLOC(store_point_load_point(imageA
,fV_cDENORMALISE_OX(new_X)
,fV_cDENORMALISE_OY(new_Y)
,imageR
,X
,Y
);
)
);
RETI(imageR);
Eblock
EFonctionP
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 U P L A N H Y P E R - H Y P E R - C O M P L E X E */
/* [0,1] x [0,1] x [0,1] x [0,1] x [0,1] x [0,1] x [0,1] x [0,1] : */
/* */
/*************************************************************************************************************************************/
BFonctionF
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_RR,FU)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_RI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_RJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_RK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_RS,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_RT,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_RU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_RV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_IR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_II,FU)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_IJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_IK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_IS,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_IT,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_IU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_IV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_JR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_JI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_JJ,FU)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_JK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_JS,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_JT,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_JU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_JV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_KR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_KI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_KJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_KK,FU)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_KS,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_KT,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_KU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_KV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_SR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_SI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_SJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_SK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_SS,FU)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_ST,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_SU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_SV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_TR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_TI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_TJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_TK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_TS,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_TT,FU)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_TU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_TV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_UR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_UI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_UJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_UK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_US,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_UT,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_UU,FU)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_UV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_VR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_VI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_VJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_VK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_VS,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_VT,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_VU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice1_VV,FU)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice2_RR,FU)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice2_RI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice2_RJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice2_RK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice2_RS,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice2_RT,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice2_RU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice2_RV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice2_IR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice2_II,FU)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice2_IJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice2_IK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice2_IS,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice2_IT,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice2_IU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____matrice2_IV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____composante_J,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____composante_K,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____composante_S,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____composante_T,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____composante_U,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFun_sur_o_dans_le_plan_hyper_hyper_complexe_____composante_V,FZERO)));
DEFV(Common,DEFV(FonctionF,POINTERF(IFun_sur_o_dans_le_plan_hyper_hyper_complexe(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
)
)
)
)
/* Fonction introduite le 20111017144351. */
DEFV(Argument,DEFV(imageF,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K' (une valeur de l'ordre de 0.25 donne de bons resultats) ; voir */
/* a ce propos les commentaires de 'v $xci/un_sur_z.01$K'... */
DEFV(Argument,DEFV(imageF,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
CALS(IFinitialisation(imageR,FZERO));
/* L'image Resultat est nettoye ici (contrairement a la transformation q**2), */
/* a cause du test de nullite du carre du module du nombre complexe courant ; */
/* dans ce cas aucun point n'est marque... */
UN_SUR_O_DANS_LE_PLAN_HYPER_HYPER_COMPLEXE(BLOC(storeF_point_loadF_point(imageA
,fV_cDENORMALISE_OX(new_X)
,fV_cDENORMALISE_OY(new_Y)
,imageR
,X
,Y
);
)
);
RETIF(imageR);
Eblock
EFonctionF
#undef UN_SUR_O_DANS_LE_PLAN_HYPER_HYPER_COMPLEXE
#undef UN_SUR_O_PLANS_HYPER_HYPER_IMAGE_COMPLEXE
#undef UN_SUR_O_DANS_PLANS_HYPER_HYPER_IMAGE_OU_HYPER_HYPER_COMPLEXE
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 : */
/* */
/*************************************************************************************************************************************/
#define O_HOMOGRAPHIQUE_DANS_PLANS_HYPER_HYPER_IMAGE_OU_HYPER_HYPER_COMPLEXE \
Bblock \
TRANSFORMATION__O_HOMOGRAPHIQUE(point_manoeuvre,point_courant,nombre_A,nombre_B,nombre_C,nombre_D,INDIRECT); \
/* Calcul de : */ \
/* */ \
/* A.o + B */ \
/* --------- */ \
/* C.o + D */ \
/* */ \
Eblock \
/* Definition generale de la transformation homographique dans les plans hyper-hyper-image */ \
/* ou hyper-hyper-complexe. */
#define O_HOMOGRAPHIQUE_PLANS_HYPER_HYPER_IMAGE_COMPLEXE \
O_HOMOGRAPHIQUE_DANS_PLANS_HYPER_HYPER_IMAGE_OU_HYPER_HYPER_COMPLEXE \
/* Introduit le 20111017152554 afin de reduire la longueur de certaines lignes... */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* D E F I N I 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] : */
/* */
/*************************************************************************************************************************************/
#define O_HOMOGRAPHIQUE_DANS_LE_PLAN_HYPER_HYPER_IMAGE(action_rangement) \
Bblock \
TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_HYPER_IMAGE(BLOC(DEFV(hyper_hyper_complexe,point_manoeuvre_A); \
DEFV(hyper_hyper_complexe,point_manoeuvre_B); \
DEFV(hyper_hyper_complexe,point_manoeuvre_C); \
DEFV(hyper_hyper_complexe,point_manoeuvre_D); \
/* Nombres complexes intermediaires... */ \
) \
,TOUJOURS_VRAI \
,BLOC(O_HOMOGRAPHIQUE_PLANS_HYPER_HYPER_IMAGE_COMPLEXE;) \
,BLOC(action_rangement) \
,NEUT(facteur_multiplicatif) \
); \
Eblock \
/* Definition de la transformation conforme en coordonnees d'ecran [Xmin,Xmax]x[Ymin,Ymax]. */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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] : */
/* */
/*************************************************************************************************************************************/
BFonctionP
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice1_RR,FU)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice1_RI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice1_RJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice1_RK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice1_RS,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice1_RT,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice1_RU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice1_RV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice1_IR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice1_II,FU)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice1_IJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice1_IK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice1_IS,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice1_IT,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice1_IU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice1_IV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice1_JR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice1_JI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice1_JJ,FU)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice1_JK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice1_JS,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice1_JT,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice1_JU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice1_JV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice1_KR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice1_KI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice1_KJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice1_KK,FU)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice1_KS,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice1_KT,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice1_KU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice1_KV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice1_SR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice1_SI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice1_SJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice1_SK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice1_SS,FU)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice1_ST,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice1_SU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice1_SV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice1_TR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice1_TI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice1_TJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice1_TK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice1_TS,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice1_TT,FU)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice1_TU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice1_TV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice1_UR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice1_UI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice1_UJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice1_UK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice1_US,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice1_UT,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice1_UU,FU)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice1_UV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice1_VR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice1_VI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice1_VJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice1_VK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice1_VS,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice1_VT,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice1_VU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice1_VV,FU)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice2_RR,FU)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice2_RI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice2_RJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice2_RK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice2_RS,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice2_RT,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice2_RU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice2_RV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice2_IR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice2_II,FU)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice2_IJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice2_IK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice2_IS,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice2_IT,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice2_IU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____matrice2_IV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____composante_J,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____composante_K,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____composante_S,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____composante_T,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____composante_U,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_image_____composante_V,FZERO)));
DEFV(Common,DEFV(FonctionP,POINTERp(Io_homographique_dans_le_plan_hyper_hyper_image(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
,ARGUMENT_POINTERs(nombre_A)
,ARGUMENT_POINTERs(nombre_B)
,ARGUMENT_POINTERs(nombre_C)
,ARGUMENT_POINTERs(nombre_D)
)
)
)
)
DEFV(Argument,DEFV(image,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K' (une valeur de l'ordre de 0.01 donne de bons resultats). */
DEFV(Argument,DEFV(image,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(hyper_hyper_complexe,POINTERs(nombre_A)));
DEFV(Argument,DEFV(hyper_hyper_complexe,POINTERs(nombre_B)));
DEFV(Argument,DEFV(hyper_hyper_complexe,POINTERs(nombre_C)));
DEFV(Argument,DEFV(hyper_hyper_complexe,POINTERs(nombre_D)));
/* Definition des quatre coefficients complexes de la transformation homographique : */
/* */
/* A.o + B */
/* --------- */
/* C.o + D */
/* */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
O_HOMOGRAPHIQUE_DANS_LE_PLAN_HYPER_HYPER_IMAGE(BLOC(store_point_load_point(imageA
,new_X
,new_Y
,imageR
,X
,Y
);
)
);
RETI(imageR);
Eblock
EFonctionP
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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] : */
/* */
/*************************************************************************************************************************************/
BFonctionF
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice1_RR,FU)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice1_RI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice1_RJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice1_RK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice1_RS,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice1_RT,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice1_RU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice1_RV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice1_IR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice1_II,FU)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice1_IJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice1_IK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice1_IS,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice1_IT,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice1_IU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice1_IV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice1_JR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice1_JI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice1_JJ,FU)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice1_JK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice1_JS,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice1_JT,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice1_JU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice1_JV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice1_KR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice1_KI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice1_KJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice1_KK,FU)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice1_KS,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice1_KT,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice1_KU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice1_KV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice1_SR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice1_SI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice1_SJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice1_SK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice1_SS,FU)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice1_ST,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice1_SU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice1_SV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice1_TR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice1_TI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice1_TJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice1_TK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice1_TS,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice1_TT,FU)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice1_TU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice1_TV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice1_UR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice1_UI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice1_UJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice1_UK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice1_US,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice1_UT,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice1_UU,FU)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice1_UV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice1_VR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice1_VI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice1_VJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice1_VK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice1_VS,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice1_VT,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice1_VU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice1_VV,FU)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice2_RR,FU)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice2_RI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice2_RJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice2_RK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice2_RS,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice2_RT,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice2_RU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice2_RV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice2_IR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice2_II,FU)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice2_IJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice2_IK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice2_IS,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice2_IT,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice2_IU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____matrice2_IV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____composante_J,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____composante_K,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____composante_S,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____composante_T,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____composante_U,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_image_____composante_V,FZERO)));
DEFV(Common,DEFV(FonctionF,POINTERF(IFo_homographique_dans_le_plan_hyper_hyper_image(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
,ARGUMENT_POINTERs(nombre_A)
,ARGUMENT_POINTERs(nombre_B)
,ARGUMENT_POINTERs(nombre_C)
,ARGUMENT_POINTERs(nombre_D)
)
)
)
)
/* Fonction introduite le 20111017144351. */
DEFV(Argument,DEFV(imageF,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K' (une valeur de l'ordre de 0.01 donne de bons resultats). */
DEFV(Argument,DEFV(imageF,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(hyper_hyper_complexe,POINTERs(nombre_A)));
DEFV(Argument,DEFV(hyper_hyper_complexe,POINTERs(nombre_B)));
DEFV(Argument,DEFV(hyper_hyper_complexe,POINTERs(nombre_C)));
DEFV(Argument,DEFV(hyper_hyper_complexe,POINTERs(nombre_D)));
/* Definition des quatre coefficients complexes de la transformation homographique : */
/* */
/* A.o + B */
/* --------- */
/* C.o + D */
/* */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
O_HOMOGRAPHIQUE_DANS_LE_PLAN_HYPER_HYPER_IMAGE(BLOC(storeF_point_loadF_point(imageA
,new_X
,new_Y
,imageR
,X
,Y
);
)
);
RETIF(imageR);
Eblock
EFonctionF
#undef O_HOMOGRAPHIQUE_DANS_LE_PLAN_HYPER_HYPER_IMAGE
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* D E F I N I 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 U P L A N H Y P E R - H Y P E R - C O M P L E X E */
/* [0,1] x [0,1] x [0,1] x [0,1] x [0,1] x [0,1] x [0,1] x [0,1] : */
/* */
/*************************************************************************************************************************************/
#define O_HOMOGRAPHIQUE_DANS_LE_PLAN_HYPER_HYPER_COMPLEXE(action_rangement) \
Bblock \
TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_HYPER_COMPLEXE(BLOC(DEFV(hyper_hyper_complexe,point_manoeuvre_A); \
DEFV(hyper_hyper_complexe,point_manoeuvre_B); \
DEFV(hyper_hyper_complexe,point_manoeuvre_C); \
DEFV(hyper_hyper_complexe,point_manoeuvre_D); \
/* Nombres complexes intermediaires... */ \
) \
,TOUJOURS_VRAI \
,BLOC(O_HOMOGRAPHIQUE_PLANS_HYPER_HYPER_IMAGE_COMPLEXE;) \
,BLOC(action_rangement) \
); \
Eblock \
/* Definition de la transformation conforme en coordonnees d'ecran [Xmin,Xmax]x[Ymin,Ymax]. */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 U P L A N H Y P E R - H Y P E R - C O M P L E X E */
/* [0,1] x [0,1] x [0,1] x [0,1] x [0,1] x [0,1] x [0,1] x [0,1] : */
/* */
/*************************************************************************************************************************************/
BFonctionP
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_RR,FU)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_RI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_RJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_RK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_RS,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_RT,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_RU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_RV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_IR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_II,FU)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_IJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_IK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_IS,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_IT,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_IU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_IV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_JR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_JI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_JJ,FU)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_JK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_JS,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_JT,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_JU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_JV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_KR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_KI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_KJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_KK,FU)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_KS,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_KT,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_KU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_KV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_SR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_SI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_SJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_SK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_SS,FU)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_ST,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_SU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_SV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_TR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_TI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_TJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_TK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_TS,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_TT,FU)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_TU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_TV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_UR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_UI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_UJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_UK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_US,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_UT,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_UU,FU)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_UV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_VR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_VI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_VJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_VK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_VS,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_VT,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_VU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_VV,FU)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice2_RR,FU)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice2_RI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice2_RJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice2_RK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice2_RS,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice2_RT,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice2_RU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice2_RV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice2_IR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice2_II,FU)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice2_IJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice2_IK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice2_IS,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice2_IT,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice2_IU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____matrice2_IV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____composante_J,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____composante_K,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____composante_S,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____composante_T,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____composante_U,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_homographique_dans_le_plan_hyper_hyper_complexe_____composante_V,FZERO)));
DEFV(Common,DEFV(FonctionP,POINTERp(Io_homographique_dans_le_plan_hyper_hyper_complexe(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
,ARGUMENT_POINTERs(nombre_A)
,ARGUMENT_POINTERs(nombre_B)
,ARGUMENT_POINTERs(nombre_C)
,ARGUMENT_POINTERs(nombre_D)
)
)
)
)
/* Fonction introduite le 20111017144351. */
DEFV(Argument,DEFV(image,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K' (une valeur de l'ordre de 5.0 donne de bons resultats) ; voir */
/* a ce propos les commentaires de 'v $xci/z_homogra.01$K'... */
DEFV(Argument,DEFV(image,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(hyper_hyper_complexe,POINTERs(nombre_A)));
DEFV(Argument,DEFV(hyper_hyper_complexe,POINTERs(nombre_B)));
DEFV(Argument,DEFV(hyper_hyper_complexe,POINTERs(nombre_C)));
DEFV(Argument,DEFV(hyper_hyper_complexe,POINTERs(nombre_D)));
/* Definition des quatre coefficients complexes de la transformation homographique : */
/* */
/* A.o + B */
/* --------- */
/* C.o + D */
/* */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
O_HOMOGRAPHIQUE_DANS_LE_PLAN_HYPER_HYPER_COMPLEXE(BLOC(store_point_load_point(imageA
,fV_cDENORMALISE_OX(new_X)
,fV_cDENORMALISE_OY(new_Y)
,imageR
,X
,Y
);
)
);
RETI(imageR);
Eblock
EFonctionP
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 U P L A N H Y P E R - H Y P E R - C O M P L E X E */
/* [0,1] x [0,1] x [0,1] x [0,1] x [0,1] x [0,1] x [0,1] x [0,1] : */
/* */
/*************************************************************************************************************************************/
BFonctionF
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_RR,FU)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_RI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_RJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_RK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_RS,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_RT,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_RU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_RV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_IR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_II,FU)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_IJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_IK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_IS,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_IT,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_IU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_IV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_JR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_JI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_JJ,FU)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_JK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_JS,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_JT,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_JU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_JV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_KR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_KI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_KJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_KK,FU)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_KS,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_KT,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_KU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_KV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_SR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_SI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_SJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_SK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_SS,FU)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_ST,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_SU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_SV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_TR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_TI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_TJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_TK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_TS,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_TT,FU)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_TU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_TV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_UR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_UI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_UJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_UK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_US,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_UT,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_UU,FU)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_UV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_VR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_VI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_VJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_VK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_VS,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_VT,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_VU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice1_VV,FU)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice2_RR,FU)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice2_RI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice2_RJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice2_RK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice2_RS,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice2_RT,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice2_RU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice2_RV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice2_IR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice2_II,FU)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice2_IJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice2_IK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice2_IS,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice2_IT,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice2_IU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____matrice2_IV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____composante_J,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____composante_K,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____composante_S,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____composante_T,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____composante_U,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_homographique_dans_le_plan_hyper_hyper_complexe_____composante_V,FZERO)));
DEFV(Common,DEFV(FonctionF,POINTERF(IFo_homographique_dans_le_plan_hyper_hyper_complexe(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
,ARGUMENT_POINTERs(nombre_A)
,ARGUMENT_POINTERs(nombre_B)
,ARGUMENT_POINTERs(nombre_C)
,ARGUMENT_POINTERs(nombre_D)
)
)
)
)
/* Fonction introduite le 20111017144351. */
DEFV(Argument,DEFV(imageF,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K' (une valeur de l'ordre de 5.0 donne de bons resultats) ; voir */
/* a ce propos les commentaires de 'v $xci/z_homogra.01$K'... */
DEFV(Argument,DEFV(imageF,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(hyper_hyper_complexe,POINTERs(nombre_A)));
DEFV(Argument,DEFV(hyper_hyper_complexe,POINTERs(nombre_B)));
DEFV(Argument,DEFV(hyper_hyper_complexe,POINTERs(nombre_C)));
DEFV(Argument,DEFV(hyper_hyper_complexe,POINTERs(nombre_D)));
/* Definition des quatre coefficients complexes de la transformation homographique : */
/* */
/* A.o + B */
/* --------- */
/* C.o + D */
/* */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
O_HOMOGRAPHIQUE_DANS_LE_PLAN_HYPER_HYPER_COMPLEXE(BLOC(storeF_point_loadF_point(imageA
,fV_cDENORMALISE_OX(new_X)
,fV_cDENORMALISE_OY(new_Y)
,imageR
,X
,Y
);
)
);
RETIF(imageR);
Eblock
EFonctionF
#undef O_HOMOGRAPHIQUE_DANS_LE_PLAN_HYPER_HYPER_COMPLEXE
#undef O_HOMOGRAPHIQUE_PLANS_HYPER_HYPER_IMAGE_COMPLEXE
#undef O_HOMOGRAPHIQUE_DANS_PLANS_HYPER_HYPER_IMAGE_OU_HYPER_HYPER_COMPLEXE
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 G E N E R A L I S E E : */
/* */
/*************************************************************************************************************************************/
#define O_HYPERBOLIQUE_1_DANS_PLANS_HYPER_HYPER_IMAGE_OU_HYPER_HYPER_COMPLEXE \
Bblock \
DEFV(hyper_hyper_complexe_etendu,point_courant_etendu); \
DEFV(hyper_hyper_complexe_etendu,point_manoeuvre_etendu); \
\
HHCextension_directe(point_courant_etendu,point_courant); \
\
EGAL(HHCHHS_Rho(point_manoeuvre_etendu) \
,FfABSO(LIN2(NomDeLaFonctionCourante QD@@__ _____ponderation_TAHX \
,TAHX(AXPB(NomDeLaFonctionCourante QD@@__ _____A_TAHX_du_module \
,HHCHHS_Rho(point_courant_etendu) \
,NomDeLaFonctionCourante QD@@__ _____B_TAHX_du_module \
) \
) \
,NomDeLaFonctionCourante QD@@__ _____ponderation_SINX \
,SINX(AXPB(NomDeLaFonctionCourante QD@@__ _____A_SINX_du_module \
,HHCHHS_Rho(point_courant_etendu) \
,NomDeLaFonctionCourante QD@@__ _____B_SINX_du_module \
) \
) \
,NomDeLaFonctionCourante QD@@__ _____translation_du_module \
) \
) \
); \
/* Par l'usage de 'TAHX(...)', le module de 'point_courant_etendu', quelle que soit sa */ \
/* valeur, est ramene dans [0,1['... */ \
/* */ \
/* Le 20111230170628 la fonction 'FfABSO(...)' fut introduite car, en effet, un module */ \
/* ne peut etre que positif ou nul... */ \
EGAL(HHCHHS_Angle1(point_manoeuvre_etendu),NEUT(HHCHHS_Angle1(point_courant_etendu))); \
EGAL(HHCHHS_Angle2(point_manoeuvre_etendu),NEUT(HHCHHS_Angle2(point_courant_etendu))); \
EGAL(HHCHHS_Angle3(point_manoeuvre_etendu),NEUT(HHCHHS_Angle3(point_courant_etendu))); \
EGAL(HHCHHS_Angle4(point_manoeuvre_etendu),NEUT(HHCHHS_Angle4(point_courant_etendu))); \
EGAL(HHCHHS_Angle5(point_manoeuvre_etendu),NEUT(HHCHHS_Angle5(point_courant_etendu))); \
EGAL(HHCHHS_Angle6(point_manoeuvre_etendu),NEUT(HHCHHS_Angle6(point_courant_etendu))); \
EGAL(HHCHHS_Angle7(point_manoeuvre_etendu),NEUT(HHCHHS_Angle7(point_courant_etendu))); \
\
HHCextension_inverse(point_manoeuvre,point_manoeuvre_etendu); \
Eblock \
/* Definition generale de la transformation 'o' hyperbolique dans les plans image ou */ \
/* complexe (introduite le 20111229172827). */
#define O_HYPERBOLIQUE_1_DANS_PLANS_HH_IMAGE_OU_HH_COMPLEXE \
Bblock \
O_HYPERBOLIQUE_1_DANS_PLANS_HYPER_HYPER_IMAGE_OU_HYPER_HYPER_COMPLEXE; \
Eblock \
/* Synonyme destine a raccourcir la longueur des lignes qui suivent... */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* D E F I N I 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 G E N E R A L I S E 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] : */
/* */
/*************************************************************************************************************************************/
#define O_HYPERBOLIQUE_1_DANS_LE_PLAN_HYPER_HYPER_IMAGE(action_de_rangement) \
Bblock \
TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_HYPER_IMAGE(BLOC(VIDE;) \
,TOUJOURS_VRAI \
,BLOC(O_HYPERBOLIQUE_1_DANS_PLANS_HH_IMAGE_OU_HH_COMPLEXE;) \
,BLOC(action_de_rangement) \
,MUL2(facteur_multiplicatif,NEUT(facteur_correctif)) \
); \
Eblock \
/* Definition de la transformation en coordonnees d'ecran [Xmin,Xmax]x[Ymin,Ymax]. */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 G E N E R A L I S E 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] : */
/* */
/*************************************************************************************************************************************/
BFonctionP
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_RR,FU)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_RI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_RJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_RK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_RS,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_RT,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_RU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_RV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_IR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_II,FU)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_IJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_IK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_IS,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_IT,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_IU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_IV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_JR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_JI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_JJ,FU)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_JK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_JS,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_JT,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_JU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_JV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_KR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_KI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_KJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_KK,FU)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_KS,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_KT,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_KU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_KV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_SR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_SI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_SJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_SK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_SS,FU)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_ST,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_SU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_SV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_TR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_TI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_TJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_TK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_TS,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_TT,FU)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_TU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_TV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_UR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_UI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_UJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_UK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_US,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_UT,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_UU,FU)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_UV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_VR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_VI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_VJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_VK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_VS,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_VT,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_VU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_VV,FU)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice2_RR,FU)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice2_RI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice2_RJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice2_RK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice2_RS,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice2_RT,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice2_RU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice2_RV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice2_IR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice2_II,FU)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice2_IJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice2_IK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice2_IS,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice2_IT,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice2_IU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice2_IV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____composante_J,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____composante_K,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____composante_S,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____composante_T,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____composante_U,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____composante_V,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____ponderation_TAHX,FU)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____A_TAHX_du_module,FU)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____B_TAHX_du_module,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____ponderation_SINX,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____A_SINX_du_module,FU)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____B_SINX_du_module,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image_____translation_du_module,FZERO)));
DEFV(Common,DEFV(FonctionP,POINTERp(Io_hyperbolique_1_dans_le_plan_hyper_hyper_image(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
)
)
)
)
/* Fonction introduite le 20111229172827. */
DEFV(Argument,DEFV(image,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K' (une valeur de l'ordre de 0.01 donne de bons resultats). */
DEFV(Argument,DEFV(image,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
O_HYPERBOLIQUE_1_DANS_LE_PLAN_HYPER_HYPER_IMAGE(BLOC(store_point_load_point(imageA
,new_X
,new_Y
,imageR
,X
,Y
);
)
);
RETI(imageR);
Eblock
EFonctionP
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 G E N E R A L I S E 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] : */
/* */
/*************************************************************************************************************************************/
BFonctionF
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_RR,FU)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_RI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_RJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_RK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_RS,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_RT,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_RU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_RV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_IR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_II,FU)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_IJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_IK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_IS,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_IT,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_IU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_IV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_JR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_JI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_JJ,FU)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_JK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_JS,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_JT,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_JU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_JV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_KR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_KI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_KJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_KK,FU)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_KS,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_KT,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_KU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_KV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_SR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_SI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_SJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_SK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_SS,FU)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_ST,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_SU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_SV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_TR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_TI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_TJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_TK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_TS,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_TT,FU)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_TU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_TV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_UR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_UI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_UJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_UK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_US,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_UT,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_UU,FU)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_UV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_VR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_VI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_VJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_VK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_VS,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_VT,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_VU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice1_VV,FU)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice2_RR,FU)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice2_RI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice2_RJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice2_RK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice2_RS,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice2_RT,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice2_RU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice2_RV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice2_IR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice2_II,FU)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice2_IJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice2_IK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice2_IS,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice2_IT,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice2_IU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____matrice2_IV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____composante_J,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____composante_K,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____composante_S,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____composante_T,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____composante_U,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____composante_V,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____ponderation_TAHX,FU)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____A_TAHX_du_module,FU)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____B_TAHX_du_module,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____ponderation_SINX,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____A_SINX_du_module,FU)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____B_SINX_du_module,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image_____translation_du_module,FZERO)));
DEFV(Common,DEFV(FonctionF,POINTERF(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_image(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
)
)
)
)
/* Fonction introduite le 20111229172827. */
DEFV(Argument,DEFV(imageF,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K' (une valeur de l'ordre de 0.01 donne de bons resultats). */
DEFV(Argument,DEFV(imageF,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
O_HYPERBOLIQUE_1_DANS_LE_PLAN_HYPER_HYPER_IMAGE(BLOC(storeF_point_loadF_point(imageA
,new_X
,new_Y
,imageR
,X
,Y
);
)
);
RETIF(imageR);
Eblock
EFonctionF
#undef O_HYPERBOLIQUE_1_DANS_LE_PLAN_HYPER_HYPER_IMAGE
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* D E F I N I 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 G E N E R A L I S E E */
/* E N C O O R D O N N E E S D U P L A N C O M P L E X E [0,1] x [0,1] : */
/* */
/*************************************************************************************************************************************/
#define O_HYPERBOLIQUE_1_DANS_LE_PLAN_HYPER_HYPER_COMPLEXE(action_de_rangement) \
Bblock \
TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_HYPER_COMPLEXE \
(BLOC(VIDE;) \
,TOUJOURS_VRAI \
,BLOC(O_HYPERBOLIQUE_1_DANS_PLANS_HH_IMAGE_OU_HH_COMPLEXE;) \
,BLOC(action_de_rangement) \
); \
Eblock \
/* Definition de la transformation en coordonnees d'ecran [Xmin,Xmax]x[Ymin,Ymax]. */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 G E N E R A L I S E E */
/* E N C O O R D O N N E E S D U P L A N C O M P L E X E [0,1] x [0,1] : */
/* */
/*************************************************************************************************************************************/
BFonctionP
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_RR,FU)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_RI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_RJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_RK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_RS,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_RT,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_RU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_RV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_IR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_II,FU)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_IJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_IK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_IS,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_IT,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_IU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_IV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_JR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_JI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_JJ,FU)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_JK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_JS,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_JT,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_JU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_JV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_KR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_KI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_KJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_KK,FU)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_KS,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_KT,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_KU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_KV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_SR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_SI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_SJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_SK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_SS,FU)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_ST,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_SU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_SV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_TR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_TI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_TJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_TK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_TS,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_TT,FU)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_TU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_TV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_UR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_UI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_UJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_UK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_US,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_UT,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_UU,FU)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_UV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_VR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_VI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_VJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_VK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_VS,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_VT,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_VU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_VV,FU)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice2_RR,FU)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice2_RI,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice2_RJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice2_RK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice2_RS,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice2_RT,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice2_RU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice2_RV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice2_IR,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice2_II,FU)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice2_IJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice2_IK,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice2_IS,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice2_IT,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice2_IU,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice2_IV,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____composante_J,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____composante_K,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____composante_S,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____composante_T,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____composante_U,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____composante_V,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____ponderation_TAHX,FU)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____A_TAHX_du_module,FU)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____B_TAHX_du_module,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____ponderation_SINX,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____A_SINX_du_module,FU)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____B_SINX_du_module,FZERO)));
DEFV(Common,DEFV(Float,SINT(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____translation_du_module,FZERO)));
DEFV(Common,DEFV(FonctionP,POINTERp(Io_hyperbolique_1_dans_le_plan_hyper_hyper_complexe(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
)
)
)
)
/* Fonction introduite le 20111229172827. */
DEFV(Argument,DEFV(image,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K'. */
DEFV(Argument,DEFV(image,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
O_HYPERBOLIQUE_1_DANS_LE_PLAN_HYPER_HYPER_COMPLEXE(BLOC(store_point_load_point(imageA
,fV_cDENORMALISE_OX(new_X)
,fV_cDENORMALISE_OY(new_Y)
,imageR
,X
,Y
);
)
);
RETI(imageR);
Eblock
EFonctionP
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* 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 G E N E R A L I S E E */
/* E N C O O R D O N N E E S D U P L A N C O M P L E X E [0,1] x [0,1] : */
/* */
/*************************************************************************************************************************************/
BFonctionF
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_RR,FU)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_RI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_RJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_RK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_RS,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_RT,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_RU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_RV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_IR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_II,FU)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_IJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_IK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_IS,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_IT,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_IU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_IV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_JR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_JI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_JJ,FU)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_JK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_JS,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_JT,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_JU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_JV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_KR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_KI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_KJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_KK,FU)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_KS,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_KT,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_KU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_KV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_SR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_SI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_SJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_SK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_SS,FU)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_ST,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_SU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_SV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_TR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_TI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_TJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_TK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_TS,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_TT,FU)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_TU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_TV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_UR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_UI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_UJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_UK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_US,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_UT,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_UU,FU)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_UV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_VR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_VI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_VJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_VK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_VS,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_VT,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_VU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice1_VV,FU)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice2_RR,FU)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice2_RI,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice2_RJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice2_RK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice2_RS,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice2_RT,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice2_RU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice2_RV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice2_IR,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice2_II,FU)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice2_IJ,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice2_IK,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice2_IS,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice2_IT,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice2_IU,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____matrice2_IV,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____composante_J,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____composante_K,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____composante_S,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____composante_T,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____composante_U,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____composante_V,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____ponderation_TAHX,FU)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____A_TAHX_du_module,FU)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____B_TAHX_du_module,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____ponderation_SINX,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____A_SINX_du_module,FU)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____B_SINX_du_module,FZERO)));
DEFV(Common,DEFV(Float,SINT(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe_____translation_du_module,FZERO)));
DEFV(Common,DEFV(FonctionF,POINTERF(IFo_hyperbolique_1_dans_le_plan_hyper_hyper_complexe(imageR,ARGUMENT_POINTERs(R_translation)
,facteur_multiplicatif
,imageA,ARGUMENT_POINTERs(A_translation)
)
)
)
)
/* Fonction introduite le 20111229172827. */
DEFV(Argument,DEFV(imageF,imageR));
/* Image resultat a generer. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(R_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de generation de 'imageR' ; on n'obliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
DEFV(Argument,DEFV(Float,facteur_multiplicatif));
/* Facteur multiplicatif 'K'. */
DEFV(Argument,DEFV(imageF,imageA));
/* Image argument. */
DEFV(Argument,DEFV(deltaF_2D,POINTERs(A_translation)));
/* Translation horizontale ('dx') et verticale ('dy') des coordonnees */
/* de l'image 'imageA' ; on n'oubliera pas que cette translation est */
/* exprimee dans des unites telles que l'unite vaut respectivement */
/* [Xmin,Xmax] et [Ymin,Ymax]. */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
O_HYPERBOLIQUE_1_DANS_LE_PLAN_HYPER_HYPER_COMPLEXE(BLOC(storeF_point_loadF_point(imageA
,fV_cDENORMALISE_OX(new_X)
,fV_cDENORMALISE_OY(new_Y)
,imageR
,X
,Y
);
)
);
RETIF(imageR);
Eblock
EFonctionF
#undef O_HYPERBOLIQUE_1_DANS_LE_PLAN_HYPER_HYPER_COMPLEXE
#undef O_HYPERBOLIQUE_1_DANS_PLANS_HH_IMAGE_OU_HH_COMPLEXE
#undef O_HYPERBOLIQUE_1_DANS_PLANS_HYPER_HYPER_IMAGE_OU_HYPER_HYPER_COMPLEXE
#undef TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_HYPER_COMPLEXE
#undef TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_HYPER_IMAGE
#undef NomFonctionCourant
#undef TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_HYPER_IMAGE_____Ymax_ref
#undef TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_HYPER_IMAGE_____Ymin_ref
#undef TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_HYPER_IMAGE_____Xmax_ref
#undef TRANSFORMATION_CONFORME_DANS_LE_PLAN_HYPER_HYPER_IMAGE_____Xmin_ref
#undef A_translation__dX_____
#undef A_translation__dY_____
#undef R_translation__dX_____
#undef R_translation__dY_____
#undef storeJ_point_loadJ_point
#undef storeF_point_loadF_point
#undef store_point_load_point
#undef COORDONNEES_EFFECTIVES_DE_store_load
_______________________________________________________________________________________________________________________________________
Copyright © Jean-François COLONNA, 2019-2024.
Copyright © CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / École polytechnique, Institut Polytechnique de Paris, 2019-2024.