/*************************************************************************************************************************************/ /* */ /* G E N E R A T I O N D ' U N C H A M P C O M P L E T E M E N T A L E A T O I R E P A R P O S I T I O N S : */ /* */ /* */ /* Definition : */ /* */ /* Cette commande genere dans l'image */ /* nomme un champ completement aleatoire */ /* ("random") en ce qui concerne les positions */ /* des points. */ /* */ /* */ /* Author of '$xci/random.02$K' : */ /* */ /* Jean-Francois COLONNA (LACTAMME, 1988??????????). */ /* */ /*************************************************************************************************************************************/ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* 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 CONTROLE_DE_L_ADAPTATION_A_UNE_LOI_DE_DISTRIBUTION_QUELCONQUE__ARGUMENT_substitution__PAS_s /* Introduit le 20110403081518 a cause des arguments '"seuil=""s="' ci-apres... */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* F I C H I E R S D ' I N C L U D E S : */ /* */ /*************************************************************************************************************************************/ #include INCLUDES_BASE #include image_image_ALEATOIRES_1_EXT /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* P A R A M E T R E S : */ /* */ /*************************************************************************************************************************************/ #include xci/substitue.01.I" /* Introduit le 20110401191643... */ #define GRAINE \ DEUX \ /* Graine initiale. */ #define SEUIL_DE_GENERATION \ FDU \ /* Seuil implicite de generation des points. */ #define EDITER_LE_NOMBRE_DE_POINTS_MARQUES \ FAUX \ /* Doit-on editer ('VRAI') ou pas ('FAUX') le nombre de points marques ? Ceci fut introduit */ \ /* le 20240828092239... */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* M A C R O S U T I L E S : */ /* */ /*************************************************************************************************************************************/ #include xci/substitue.02.I" /* Introduit le 20110401191643... */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* G E N E R A T I O N D ' U N C H A M P C O M P L E T E M E N T A L E A T O I R E P A R P O S I T I O N S : */ /* */ /*************************************************************************************************************************************/ BCommande(nombre_d_arguments,arguments) /*-----------------------------------------------------------------------------------------------------------------------------------*/ Bblock DEFV(CHAR,INIC(POINTERc(nom_imageR),NOM_PIPE)); DEFV(Int,INIT(graine,GRAINE)); /* Graine du generateur aleatoire... */ DEFV(Float,INIT(seuil_de_generation,SEUIL_DE_GENERATION)); /* Seuil de generation implicite des points. */ DEFV(Logical,INIT(editer_le_nombre_de_points_marques,EDITER_LE_NOMBRE_DE_POINTS_MARQUES)); /* Doit-on editer ('VRAI') ou pas ('FAUX') le nombre de points marques ? Ceci fut introduit */ /* le 20240828092239... */ #include xci/substitue.03.I" /* Introduit le 20110401191643... */ /*..............................................................................................................................*/ GET_ARGUMENTSi(nombre_d_arguments ,BLOC(GET_ARGUMENT_C("imageR=""R=",nom_imageR); GET_ARGUMENT_I("methode=",gen_ft_____methode_standard); GET_ARGUMENT_I("graine=",graine); GET_ARGUMENT_L("affiner_rdn=",rdnIFnD_____affiner_la_generation); GET_ARGUMENT_L("iterer_rdn=",rdnIFnD_____iterer_la_generation); GET_ARGUMENT_P("niveau_du_fond=""fond=""noir=",Inoir_____NOIR); /* Parametres introduits le 20140807103858... */ GET_ARGUMENT_P("niveau_de_marquage=""niveau=""n=",Irandom_positions_____niveau_des_points_probables); /* Parametres introduits le 20140807101124... */ GET_ARGUMENT_F("PrdnI2D_NEUT=""NEUT=",rdnI2D_____ponderation_NEUT); GET_ARGUMENT_F("PrdnI2D_GAUS=""GAUS=",rdnI2D_____ponderation_GAUS); GET_ARGUMENT_F("PrdnI2D_GAUS_esperance=""GAUS_esperance=",rdnI2D_____ponderation_GAUS_esperance_); GET_ARGUMENT_F("PrdnI2D_GAUS_ecart_type=""GAUS_ecart_type=",rdnI2D_____ponderation_GAUS_ecart_type); /* Parametres introduits le 20110325114835... */ CONTROLE_DE_L_ADAPTATION_A_UNE_LOI_DE_DISTRIBUTION_QUELCONQUE; /* Introduit le 20110401181804 sous cette forme... */ GET_ARGUMENT_F("seuil=""s=",seuil_de_generation); GET_ARGUMENT_L("editer_nombre_points=""editer=",editer_le_nombre_de_points_marques); /* Introduit le 20240828092239... . */ GET_ARGUMENT_L("aleatoire=""a=",rdnI2D_____generer_une_valeur_aleatoire); GET_ARGUMENT_N("non_aleatoire=""na=",rdnI2D_____generer_une_valeur_aleatoire); GET_ARGUMENT_F("non_aleatoire_ponderation_X=""napx=",rdnI2D_____ponderation_X); GET_ARGUMENT_F("non_aleatoire_ponderation_Y=""napy=",rdnI2D_____ponderation_Y); GET_ARGUMENT_F("non_aleatoire_translation_XY=""natxy=",rdnI2D_____translation_XY); /* Parametres introduits le 20220116110459... */ GET_ARGUMENT_F("non_aleatoire_ponderation_de_NEUT=""napNEUT=" ,FfTransformUniverselle1_____ponderation_de_NEUT ); GET_ARGUMENT_F("non_aleatoire_ponderation_de_COSX=""napCOSX=" ,FfTransformUniverselle1_____ponderation_de_COSX ); GET_ARGUMENT_F("non_aleatoire_ponderation_de_SINX=""napSINX=" ,FfTransformUniverselle1_____ponderation_de_SINX ); GET_ARGUMENT_F("non_aleatoire_ponderation_de_TANX=""napTANX=" ,FfTransformUniverselle1_____ponderation_de_TANX ); GET_ARGUMENT_F("non_aleatoire_ponderation_de_ATAN=""napATAN=" ,FfTransformUniverselle1_____ponderation_de_ATAN ); GET_ARGUMENT_F("non_aleatoire_arg_x_ATAN=""naaxATAN=" ,FfTransformUniverselle1_____arg_x_ATAN ); GET_ARGUMENT_F("non_aleatoire_ponderation_de_COHX=""napCOHX=" ,FfTransformUniverselle1_____ponderation_de_COHX ); GET_ARGUMENT_F("non_aleatoire_ponderation_de_SIHX=""napSIHX=" ,FfTransformUniverselle1_____ponderation_de_SIHX ); GET_ARGUMENT_F("non_aleatoire_ponderation_de_TAHX=""napTAHX=" ,FfTransformUniverselle1_____ponderation_de_TAHX ); GET_ARGUMENT_F("non_aleatoire_ponderation_de_CSHX=""napCSHX=" ,FfTransformUniverselle1_____ponderation_de_CSHX ); GET_ARGUMENT_F("non_aleatoire_ponderation_de_SSHX=""napSSHX=" ,FfTransformUniverselle1_____ponderation_de_SSHX ); GET_ARGUMENT_F("non_aleatoire_ponderation_de_CTHX=""napCTHX=" ,FfTransformUniverselle1_____ponderation_de_CTHX ); GET_ARGUMENT_F("non_aleatoire_ponderation_de_ATAH=""napATAH=" ,FfTransformUniverselle1_____ponderation_de_ATAH ); GET_ARGUMENT_F("non_aleatoire_ponderation_de_SLOGX=""napSLOGX=" ,FfTransformUniverselle1_____ponderation_de_SLOGX ); GET_ARGUMENT_F("non_aleatoire_ponderation_de_EXPX=""napEXPX=" ,FfTransformUniverselle1_____ponderation_de_EXPX ); /* Parametres introduits le 20220116165818... */ ) ); #include xci/substitue.05.I" /* Introduit le 20110401191643... */ CALi(Inoir(ImageR)); /* Initialisation de l'image Resultat. */ CALS(Irandom_positions(ImageR,graine,seuil_de_generation)); Test(IL_FAUT(editer_le_nombre_de_points_marques)) /* Test introduit le 20240828092239... */ Bblock CAL3(Prme1("NombreDePoints=%d\n",Irandom_positions_____nombre_de_points_marques)); /* On notera le 20240828093325 que le nombre de points marques est une fonction lineaire */ /* du seuil de generation. Ainsi, par exemple, pour un seuil 4 fois plus petits, il y aura */ /* environ 4 fois moins de points... */ Eblock ATes Bblock Eblock ETes CALi(Iupdate_image(nom_imageR,ImageR)); RETU_Commande; Eblock ECommande