/*************************************************************************************************************************************/
/* */
/* I N I T I A L I S A T I O N D ' U N E I M A G E P A R */
/* U N C H A M P P O L Y N O M I A L E N ' X ' E T ' Y ' U N I V E R S E L ( B I D I M E N S I O N N E L ) : */
/* */
/* */
/* Author of '$xci/PolyCartesUniversel_2D$K' : */
/* */
/* Jean-Francois COLONNA (LACTAMME, 20210117110011). */
/* */
/*************************************************************************************************************************************/
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* I N T E R F A C E ' listG ' : */
/* */
/* */
/* :Debut_listG: */
/* :Fin_listG: */
/* */
/*************************************************************************************************************************************/
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* D I R E C T I V E S S P E C I F I Q U E S D E C O M P I L A T I O N : */
/* */
/*************************************************************************************************************************************/
#define GENERER_LES_GET_ARGUMENTS_DE_CONTROLE_DE_L_ARITHMETIQUE_ETENDUE_DES_NOMBRES_FLOTTANTS
/* Introduit le 20071224111821... */
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* F I C H I E R S D ' I N C L U D E S : */
/* */
/*************************************************************************************************************************************/
#include INCLUDES_BASE
#include image_image_IMAGESF_EXT
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* P A R A M E T R E S : */
/* */
/*************************************************************************************************************************************/
#include xci/genere_ch.01.I"
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* M A C R O S U T I L E S : */
/* */
/*************************************************************************************************************************************/
#define image_____X4_Y4 \
IFmageA1
#define image_____X3_Y4 \
IFmageA2
#define image_____X2_Y4 \
IFmageA3
#define image_____X1_Y4 \
IFmageA4
#define image_____X0_Y4 \
IFmageA5
#define image_____X4_Y3 \
IFmageA6
#define image_____X3_Y3 \
IFmageA7
#define image_____X2_Y3 \
IFmageA8
#define image_____X1_Y3 \
IFmageA9
#define image_____X0_Y3 \
IFmageAA
#define image_____X4_Y2 \
IFmageAB
#define image_____X3_Y2 \
IFmageAC
#define image_____X2_Y2 \
IFmageAD
#define image_____X1_Y2 \
IFmageAE
#define image_____X0_Y2 \
IFmageAF
#define image_____X4_Y1 \
IFmageAG
#define image_____X3_Y1 \
IFmageAH
#define image_____X2_Y1 \
IFmageAI
#define image_____X1_Y1 \
IFmageAJ
#define image_____X0_Y1 \
IFmageAK
#define image_____X4_Y0 \
IFmageAL
#define image_____X3_Y0 \
IFmageAM
#define image_____X2_Y0 \
IFmageAN
#define image_____X1_Y0 \
IFmageAO
#define image_____X0_Y0 \
IFmageAP
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* D E F I N I T I O N D Y N A M I Q U E D E S A R G U M E N T S I M P L I C I T E S */
/* D E L A F O N C T I O N ' Fpolynome_cartesienne_2D(...) ' : */
/* */
/*************************************************************************************************************************************/
BFonctionV
#define DEFINITION_D_UN_COEFFICIENT(coefficient,image) \
Bblock \
EGAL(coefficient,loadF_point(image,X,Y)); \
Eblock
DEFV(Common,DEFV(FonctionV,Idefinition_des_coefficients(X,Y)))
DEFV(Argument,DEFV(Int,X));
DEFV(Argument,DEFV(Int,Y));
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
/*..............................................................................................................................*/
DEFINITION_D_UN_COEFFICIENT(Fpolynome_cartesienne_2D_____Y_4__X_4,image_____X4_Y4);
DEFINITION_D_UN_COEFFICIENT(Fpolynome_cartesienne_2D_____Y_3__X_4,image_____X4_Y3);
DEFINITION_D_UN_COEFFICIENT(Fpolynome_cartesienne_2D_____Y_2__X_4,image_____X4_Y2);
DEFINITION_D_UN_COEFFICIENT(Fpolynome_cartesienne_2D_____Y_1__X_4,image_____X4_Y1);
DEFINITION_D_UN_COEFFICIENT(Fpolynome_cartesienne_2D_____Y_0__X_4,image_____X4_Y0);
DEFINITION_D_UN_COEFFICIENT(Fpolynome_cartesienne_2D_____Y_4__X_3,image_____X3_Y4);
DEFINITION_D_UN_COEFFICIENT(Fpolynome_cartesienne_2D_____Y_3__X_3,image_____X3_Y3);
DEFINITION_D_UN_COEFFICIENT(Fpolynome_cartesienne_2D_____Y_2__X_3,image_____X3_Y2);
DEFINITION_D_UN_COEFFICIENT(Fpolynome_cartesienne_2D_____Y_1__X_3,image_____X3_Y1);
DEFINITION_D_UN_COEFFICIENT(Fpolynome_cartesienne_2D_____Y_0__X_3,image_____X3_Y0);
DEFINITION_D_UN_COEFFICIENT(Fpolynome_cartesienne_2D_____Y_4__X_2,image_____X2_Y4);
DEFINITION_D_UN_COEFFICIENT(Fpolynome_cartesienne_2D_____Y_3__X_2,image_____X2_Y3);
DEFINITION_D_UN_COEFFICIENT(Fpolynome_cartesienne_2D_____Y_2__X_2,image_____X2_Y2);
DEFINITION_D_UN_COEFFICIENT(Fpolynome_cartesienne_2D_____Y_1__X_2,image_____X2_Y1);
DEFINITION_D_UN_COEFFICIENT(Fpolynome_cartesienne_2D_____Y_0__X_2,image_____X2_Y0);
DEFINITION_D_UN_COEFFICIENT(Fpolynome_cartesienne_2D_____Y_4__X_1,image_____X1_Y4);
DEFINITION_D_UN_COEFFICIENT(Fpolynome_cartesienne_2D_____Y_3__X_1,image_____X1_Y3);
DEFINITION_D_UN_COEFFICIENT(Fpolynome_cartesienne_2D_____Y_2__X_1,image_____X1_Y2);
DEFINITION_D_UN_COEFFICIENT(Fpolynome_cartesienne_2D_____Y_1__X_1,image_____X1_Y1);
DEFINITION_D_UN_COEFFICIENT(Fpolynome_cartesienne_2D_____Y_0__X_1,image_____X1_Y0);
DEFINITION_D_UN_COEFFICIENT(Fpolynome_cartesienne_2D_____Y_4__X_0,image_____X0_Y4);
DEFINITION_D_UN_COEFFICIENT(Fpolynome_cartesienne_2D_____Y_3__X_0,image_____X0_Y3);
DEFINITION_D_UN_COEFFICIENT(Fpolynome_cartesienne_2D_____Y_2__X_0,image_____X0_Y2);
DEFINITION_D_UN_COEFFICIENT(Fpolynome_cartesienne_2D_____Y_1__X_0,image_____X0_Y1);
DEFINITION_D_UN_COEFFICIENT(Fpolynome_cartesienne_2D_____Y_0__X_0,image_____X0_Y0);
RETU_VIDE
Eblock
EFonctionV
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* I N I T I A L I S A T I O N D ' U N E I M A G E P A R */
/* U N C H A M P P O L Y N O M I A L E N ' X ' E T ' Y ' U N I V E R S E L ( B I D I M E N S I O N N E L ) : */
/* */
/*************************************************************************************************************************************/
BCommande(nombre_d_arguments,arguments)
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
DEFV(CHAR,INIC(POINTERc(nom_imageR),NOM_PIPE));
DEFV(CHAR,INIC(POINTERc(nom_image_____X4_Y4),NOM_PIPE));
DEFV(CHAR,INIC(POINTERc(nom_image_____X3_Y4),NOM_PIPE));
DEFV(CHAR,INIC(POINTERc(nom_image_____X2_Y4),NOM_PIPE));
DEFV(CHAR,INIC(POINTERc(nom_image_____X1_Y4),NOM_PIPE));
DEFV(CHAR,INIC(POINTERc(nom_image_____X0_Y4),NOM_PIPE));
DEFV(CHAR,INIC(POINTERc(nom_image_____X4_Y3),NOM_PIPE));
DEFV(CHAR,INIC(POINTERc(nom_image_____X3_Y3),NOM_PIPE));
DEFV(CHAR,INIC(POINTERc(nom_image_____X2_Y3),NOM_PIPE));
DEFV(CHAR,INIC(POINTERc(nom_image_____X1_Y3),NOM_PIPE));
DEFV(CHAR,INIC(POINTERc(nom_image_____X0_Y3),NOM_PIPE));
DEFV(CHAR,INIC(POINTERc(nom_image_____X4_Y2),NOM_PIPE));
DEFV(CHAR,INIC(POINTERc(nom_image_____X3_Y2),NOM_PIPE));
DEFV(CHAR,INIC(POINTERc(nom_image_____X2_Y2),NOM_PIPE));
DEFV(CHAR,INIC(POINTERc(nom_image_____X1_Y2),NOM_PIPE));
DEFV(CHAR,INIC(POINTERc(nom_image_____X0_Y2),NOM_PIPE));
DEFV(CHAR,INIC(POINTERc(nom_image_____X4_Y1),NOM_PIPE));
DEFV(CHAR,INIC(POINTERc(nom_image_____X3_Y1),NOM_PIPE));
DEFV(CHAR,INIC(POINTERc(nom_image_____X2_Y1),NOM_PIPE));
DEFV(CHAR,INIC(POINTERc(nom_image_____X1_Y1),NOM_PIPE));
DEFV(CHAR,INIC(POINTERc(nom_image_____X0_Y1),NOM_PIPE));
DEFV(CHAR,INIC(POINTERc(nom_image_____X4_Y0),NOM_PIPE));
DEFV(CHAR,INIC(POINTERc(nom_image_____X3_Y0),NOM_PIPE));
DEFV(CHAR,INIC(POINTERc(nom_image_____X2_Y0),NOM_PIPE));
DEFV(CHAR,INIC(POINTERc(nom_image_____X1_Y0),NOM_PIPE));
DEFV(CHAR,INIC(POINTERc(nom_image_____X0_Y0),NOM_PIPE));
#include xci/genere_ch.02.I"
/*..............................................................................................................................*/
#include xci/genere_ch.03.I"
#include xci/genere_ch.11.I"
GET_ARGUMENTSi(nombre_d_arguments
,BLOC(GET_ARGUMENT_C("imageR=""R=",nom_imageR);
GET_ARGUMENT_L("standard=",les_images_sont_standards);
PROCESS_ARGUMENT_L("arithmetique_etendue_polynome_cartesienne=""ariepc=""ariec="
,Fpolynome_cartesienne_2D____`use_arithmetique_etendue_et_non_basique
,BLOC(VIDE;)
,BLOC(Bblock
EGAL(si_le_GooF_est_activable`use_arithmetique_etendue_et_non_basique
,Fpolynome_cartesienne_2D____`use_arithmetique_etendue_et_non_basique
);
Eblock
)
);
PROCESS_ARGUMENT_N("arithmetique_de_base_polynome_cartesienne=""aribpc=""aribc="
,Fpolynome_cartesienne_2D____`use_arithmetique_etendue_et_non_basique
,BLOC(VIDE;)
,BLOC(Bblock
EGAL(si_le_GooF_est_activable`use_arithmetique_etendue_et_non_basique
,NOTL(Fpolynome_cartesienne_2D____`use_arithmetique_etendue_et_non_basique)
);
Eblock
)
);
GET_ARGUMENT_C("X4_Y4=",nom_image_____X4_Y4);
GET_ARGUMENT_C("X3_Y4=",nom_image_____X3_Y4);
GET_ARGUMENT_C("X2_Y4=",nom_image_____X2_Y4);
GET_ARGUMENT_C("X1_Y4=",nom_image_____X1_Y4);
GET_ARGUMENT_C("X0_Y4=",nom_image_____X0_Y4);
GET_ARGUMENT_C("X4_Y3=",nom_image_____X4_Y3);
GET_ARGUMENT_C("X3_Y3=",nom_image_____X3_Y3);
GET_ARGUMENT_C("X2_Y3=",nom_image_____X2_Y3);
GET_ARGUMENT_C("X1_Y3=",nom_image_____X1_Y3);
GET_ARGUMENT_C("X0_Y3=",nom_image_____X0_Y3);
GET_ARGUMENT_C("X4_Y2=",nom_image_____X4_Y2);
GET_ARGUMENT_C("X3_Y2=",nom_image_____X3_Y2);
GET_ARGUMENT_C("X2_Y2=",nom_image_____X2_Y2);
GET_ARGUMENT_C("X1_Y2=",nom_image_____X1_Y2);
GET_ARGUMENT_C("X0_Y2=",nom_image_____X0_Y2);
GET_ARGUMENT_C("X4_Y1=",nom_image_____X4_Y1);
GET_ARGUMENT_C("X3_Y1=",nom_image_____X3_Y1);
GET_ARGUMENT_C("X2_Y1=",nom_image_____X2_Y1);
GET_ARGUMENT_C("X1_Y1=",nom_image_____X1_Y1);
GET_ARGUMENT_C("X0_Y1=",nom_image_____X0_Y1);
GET_ARGUMENT_C("X4_Y0=",nom_image_____X4_Y0);
GET_ARGUMENT_C("X3_Y0=",nom_image_____X3_Y0);
GET_ARGUMENT_C("X2_Y0=",nom_image_____X2_Y0);
GET_ARGUMENT_C("X1_Y0=",nom_image_____X1_Y0);
GET_ARGUMENT_C("X0_Y0=",nom_image_____X0_Y0);
/* On rappelle le 20080325133715 que tous les coefficients sont nuls par defaut, sauf les */
/* deux suivants : */
/* */
/* X1_Y0=1 */
/* X0_Y1=1 */
/* */
/* Le 20171128113319, voici quelques courbes classiques : */
/* */
/* -champ "cercle" : */
/* */
/* X2_Y0=+1 */
/* X0_Y2=+1 */
/* X1_Y0=0 */
/* X0_Y1=0 */
/* */
/* */
/* -champ "strophoide" d'axe de symetrie horizontal : */
/* */
/* X3_Y0=+1 */
/* X2_Y0=+1 */
/* X1_Y2=+1 */
/* X1_Y0=0 */
/* X0_Y2=-1 */
/* X0_Y1=0 */
/* */
/* */
/* -champ "strophoide" d'axe de symetrie vertical : */
/* */
/* X0_Y3=+1 */
/* X0_Y2=+1 */
/* X2_Y1=+1 */
/* X0_Y1=0 */
/* X2_Y0=-1 */
/* X1_Y0=0 */
/* */
/* */
/* -champ "lemniscate" de grand axe horizontal : */
/* */
/* X4_Y0=+1 */
/* X0_Y4=+1 */
/* X2_Y2=+2 */
/* X2_Y0=-2 */
/* X0_Y2=+2 */
/* X0_Y1=0 */
/* X1_Y0=0 */
/* */
/* */
/* -champ "lemniscate" de grand axe vertical : */
/* */
/* X4_Y0=+1 */
/* X0_Y4=+1 */
/* X2_Y2=+2 */
/* X2_Y0=+2 */
/* X0_Y2=-2 */
/* X0_Y1=0 */
/* X1_Y0=0 */
/* */
/* */
/* -champ "courbe elliptique" d'equation Y^2 - X^3 + X - 1 = 0 : */
/* */
/* Y2_X0=+1 */
/* Y1_X0=0 */
/* Y0_X3=-1 */
/* Y0_X2=0 */
/* Y0_X1=+1 */
/* Y0_X0=-1 */
/* */
PROCESS_ARGUMENTS_DE_PARAMETRAGE_2D_DE_____ACCES_A_UN_CHAMP_3D;
)
);
#include xci/genere_ch.04.I"
CHARGEMENT_D_UNE_IMAGE_FLOTTANTE_OU_INITIALISATION_EN_CAS_D_ABSENCE(image_____X4_Y4,nom_image_____X4_Y4,NOM_PIPE,FZERO);
CHARGEMENT_D_UNE_IMAGE_FLOTTANTE_OU_INITIALISATION_EN_CAS_D_ABSENCE(image_____X3_Y4,nom_image_____X3_Y4,NOM_PIPE,FZERO);
CHARGEMENT_D_UNE_IMAGE_FLOTTANTE_OU_INITIALISATION_EN_CAS_D_ABSENCE(image_____X2_Y4,nom_image_____X2_Y4,NOM_PIPE,FZERO);
CHARGEMENT_D_UNE_IMAGE_FLOTTANTE_OU_INITIALISATION_EN_CAS_D_ABSENCE(image_____X1_Y4,nom_image_____X1_Y4,NOM_PIPE,FZERO);
CHARGEMENT_D_UNE_IMAGE_FLOTTANTE_OU_INITIALISATION_EN_CAS_D_ABSENCE(image_____X0_Y4,nom_image_____X0_Y4,NOM_PIPE,FZERO);
CHARGEMENT_D_UNE_IMAGE_FLOTTANTE_OU_INITIALISATION_EN_CAS_D_ABSENCE(image_____X4_Y3,nom_image_____X4_Y3,NOM_PIPE,FZERO);
CHARGEMENT_D_UNE_IMAGE_FLOTTANTE_OU_INITIALISATION_EN_CAS_D_ABSENCE(image_____X3_Y3,nom_image_____X3_Y3,NOM_PIPE,FZERO);
CHARGEMENT_D_UNE_IMAGE_FLOTTANTE_OU_INITIALISATION_EN_CAS_D_ABSENCE(image_____X2_Y3,nom_image_____X2_Y3,NOM_PIPE,FZERO);
CHARGEMENT_D_UNE_IMAGE_FLOTTANTE_OU_INITIALISATION_EN_CAS_D_ABSENCE(image_____X1_Y3,nom_image_____X1_Y3,NOM_PIPE,FZERO);
CHARGEMENT_D_UNE_IMAGE_FLOTTANTE_OU_INITIALISATION_EN_CAS_D_ABSENCE(image_____X0_Y3,nom_image_____X0_Y3,NOM_PIPE,FZERO);
CHARGEMENT_D_UNE_IMAGE_FLOTTANTE_OU_INITIALISATION_EN_CAS_D_ABSENCE(image_____X4_Y2,nom_image_____X4_Y2,NOM_PIPE,FZERO);
CHARGEMENT_D_UNE_IMAGE_FLOTTANTE_OU_INITIALISATION_EN_CAS_D_ABSENCE(image_____X3_Y2,nom_image_____X3_Y2,NOM_PIPE,FZERO);
CHARGEMENT_D_UNE_IMAGE_FLOTTANTE_OU_INITIALISATION_EN_CAS_D_ABSENCE(image_____X2_Y2,nom_image_____X2_Y2,NOM_PIPE,FZERO);
CHARGEMENT_D_UNE_IMAGE_FLOTTANTE_OU_INITIALISATION_EN_CAS_D_ABSENCE(image_____X1_Y2,nom_image_____X1_Y2,NOM_PIPE,FZERO);
CHARGEMENT_D_UNE_IMAGE_FLOTTANTE_OU_INITIALISATION_EN_CAS_D_ABSENCE(image_____X0_Y2,nom_image_____X0_Y2,NOM_PIPE,FU);
CHARGEMENT_D_UNE_IMAGE_FLOTTANTE_OU_INITIALISATION_EN_CAS_D_ABSENCE(image_____X4_Y1,nom_image_____X4_Y1,NOM_PIPE,FZERO);
CHARGEMENT_D_UNE_IMAGE_FLOTTANTE_OU_INITIALISATION_EN_CAS_D_ABSENCE(image_____X3_Y1,nom_image_____X3_Y1,NOM_PIPE,FZERO);
CHARGEMENT_D_UNE_IMAGE_FLOTTANTE_OU_INITIALISATION_EN_CAS_D_ABSENCE(image_____X2_Y1,nom_image_____X2_Y1,NOM_PIPE,FZERO);
CHARGEMENT_D_UNE_IMAGE_FLOTTANTE_OU_INITIALISATION_EN_CAS_D_ABSENCE(image_____X1_Y1,nom_image_____X1_Y1,NOM_PIPE,FZERO);
CHARGEMENT_D_UNE_IMAGE_FLOTTANTE_OU_INITIALISATION_EN_CAS_D_ABSENCE(image_____X0_Y1,nom_image_____X0_Y1,NOM_PIPE,FZERO);
CHARGEMENT_D_UNE_IMAGE_FLOTTANTE_OU_INITIALISATION_EN_CAS_D_ABSENCE(image_____X4_Y0,nom_image_____X4_Y0,NOM_PIPE,FZERO);
CHARGEMENT_D_UNE_IMAGE_FLOTTANTE_OU_INITIALISATION_EN_CAS_D_ABSENCE(image_____X3_Y0,nom_image_____X3_Y0,NOM_PIPE,FZERO);
CHARGEMENT_D_UNE_IMAGE_FLOTTANTE_OU_INITIALISATION_EN_CAS_D_ABSENCE(image_____X2_Y0,nom_image_____X2_Y0,NOM_PIPE,FU);
CHARGEMENT_D_UNE_IMAGE_FLOTTANTE_OU_INITIALISATION_EN_CAS_D_ABSENCE(image_____X1_Y0,nom_image_____X1_Y0,NOM_PIPE,FZERO);
CHARGEMENT_D_UNE_IMAGE_FLOTTANTE_OU_INITIALISATION_EN_CAS_D_ABSENCE(image_____X0_Y0,nom_image_____X0_Y0,NOM_PIPE,FU);
/* Les valeurs par defaut correspondent au cercle : */
/* */
/* 2 2 */
/* X + Y = 1 */
/* */
EGAL(IFgenere_champ_____fonction_de_X_Y_a_executer_prealablement,aFONCTION(Idefinition_des_coefficients));
EGAL(IFgenere_champ_____il_y_a_une_fonction_de_X_Y_a_executer_prealablement,VRAI);
/* Activation de la fonction specifique en chaque point {X,Y}... */
GENERATION_DU_CHAMP_DEMANDE(Fpolynome_cartesienne_2D,nom_imageR,Zf_ARGUMENT_INUTILE,Tf_ARGUMENT_INUTILE,UPD_CHAMP_S);
RETU_Commande;
Eblock
ECommande