/*************************************************************************************************************************************/ /* */ /* 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