/*************************************************************************************************************************************/ /* */ /* T E S T D E L A G E N E R A T I O N D U C H A M P T R E F L E : */ /* */ /* */ /* Author of '$xrq/trefle.80$K' : */ /* */ /* Jean-Francois COLONNA (LACTAMME, 1989??????????). */ /* */ /*************************************************************************************************************************************/ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* 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 PRAGMA_CPP_____MODULE_NON_DERIVABLE /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* 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 : */ /* */ /*************************************************************************************************************************************/ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* C H A M P " T R E F L E " D E L O C A L I S A T I O N D E L A M E R D E Q U A R K S : */ /* */ /* */ /* ......................::::::::------++++++++++++++--------:::::: */ /* ....................::::::::-----+++++++++++++++++++-------::::: */ /* .................:::::::::----+++++ooooooooooooo++++++------:::: */ /* ............::::::::::::----++++oooooo******oooooo+++++-----:::: */ /* ...:::::::::::::::::::-----+++ooo**************ooooo++++-----::: */ /* ::::::::::::::::::-------+++ooo****##########****oooo+++-----::: */ /* ::::::::::------------++++ooo***###############***ooo++++----::: */ /* ::::------------++++++++ooo***##################***ooo+++----::: */ /* ---------+++++++++ooooooo***####################***ooo+++---:::: */ /* -----++++++ooooooo*******#########*****##########**oo+++----:::: */ /* --++++++ooooo*****#############**oooooo**########**oo+++---::::: */ /* -+++++oooo****###############**o+----++oo*######**ooo++----::::: */ /* ++++oooo****############****oo+-:::::--+o*######**oo+++---:::::: */ /* +++oooo***##########***o+++---:.. ..:-+o*#####**oo+++---::::::. */ /* ++oooo***##########**o++-::... .:-o*######**oo++----::::::. */ /* ++oooo***##########*oo+--:.. .:-+o*######**oo++----::::::. */ /* ++oooo***##########**o++-::... .:-o*######**oo++----::::::. */ /* +++oooo***##########***o+++---:.. ..:-+o*#####**oo+++---::::::. */ /* ++++oooo****############****oo+-:::::--+o*######**oo+++---:::::: */ /* -+++++oooo****###############**o+----++oo*######**ooo++----::::: */ /* --++++++ooooo*****#############**oooooo**########**oo+++---::::: */ /* -----++++++ooooooo*******#########*****##########**oo+++----:::: */ /* ---------+++++++++ooooooo***####################***ooo+++---:::: */ /* ::::------------++++++++ooo***##################***ooo+++----::: */ /* ::::::::::------------++++ooo***###############***ooo++++----::: */ /* ::::::::::::::::::-------+++ooo****##########****oooo+++-----::: */ /* ...:::::::::::::::::::-----+++ooo**************ooooo++++-----::: */ /* ............::::::::::::----++++oooooo******oooooo+++++-----:::: */ /* .................:::::::::----+++++ooooooooooooo++++++------:::: */ /* ....................::::::::-----+++++++++++++++++++-------::::: */ /* ......................::::::::------++++++++++++++--------:::::: */ /* ........................::::::::-------------------------::::::: */ /* */ /*************************************************************************************************************************************/ #define X_TRANSLATION_DU_TREFLE \ FDU #define X_ECHELLE_DU_TREFLE \ FU /* Translation et echelle horizontale du champ, */ #define Y_TRANSLATION_DU_TREFLE \ FDU #define Y_ECHELLE_DU_TREFLE \ FU /* Translation et echelle verticale du champ. */ #ifdef FACON_DE_CALCULER_LE_CHAMP_TREFLE_VERSION_01 # define COEFFICIENT \ FDU \ /* Coefficient de ponderation 'Cs' de la fonction 'sinus'. */ # define COEFFICIENT_LINEAIRE \ COMP(COEFFICIENT) \ /* Coefficient lineaire 'Ts' de l'expression en 'sinus(rho)' ; le 'COMP()' est la afin */ \ /* de garantir que la fonction 'F(X,Y)' est dans [0,1]... */ #Aifdef FACON_DE_CALCULER_LE_CHAMP_TREFLE_VERSION_01 #Eifdef FACON_DE_CALCULER_LE_CHAMP_TREFLE_VERSION_01 #ifdef FACON_DE_CALCULER_LE_CHAMP_TREFLE_VERSION_02 # define COEFFICIENT \ FU \ /* Coefficient de ponderation 'Cs' de la fonction "polynomiale". */ # define COEFFICIENT_LINEAIRE \ EXP2(MOIT(COEFFICIENT)) \ /* Coefficient lineaire 'Ts' de la fonction "polynomiale" ; le 'EXP2(MOIT())' est la afin */ \ /* de garantir que la fonction 'F(X,Y)' est dans [0,1]... */ # define COEFFICIENT_CONTINU \ FZERO \ /* Composante continue 'Co' de la fonction "polynomiale" ; elle permet de mettre en place */ \ /* une mer de quarks plus ou moins dense, suivant sa valeur... */ #Aifdef FACON_DE_CALCULER_LE_CHAMP_TREFLE_VERSION_02 #Eifdef FACON_DE_CALCULER_LE_CHAMP_TREFLE_VERSION_02 #ifdef FACON_DE_CALCULER_LE_CHAMP_TREFLE_VERSION_01 # define COEFFICIENT_RHO \ GRO8(PI) \ /* Coefficient de ponderation 'Cr' du module 'rho'. */ # define COEFFICIENT_PHASE_RHO \ NEGA(PI_SUR_2) \ /* Coefficient de phase 'Pr' du module 'rho' (desole pour l'abus de langage, mais 'rho' */ /* est utilise comme un angle...). */ #Aifdef FACON_DE_CALCULER_LE_CHAMP_TREFLE_VERSION_01 #Eifdef FACON_DE_CALCULER_LE_CHAMP_TREFLE_VERSION_01 #ifdef FACON_DE_CALCULER_LE_CHAMP_TREFLE_VERSION_02 # define MOITIE_DE_L_EXPOSANT \ QUATRE \ /* Moitie 'r' de l'exposant de 'R(X,Y)' ; plus cette valeur est elevee, plus les cotes */ \ /* du triangle sont etroits. */ # define COEFFICIENT_RHO \ CERCLE_TRIGONOMETRIQUE \ /* Coefficient de ponderation 'Cr' du module 'rho'. */ # define COEFFICIENT_PHASE_RHO \ FZERO \ /* Coefficient de phase 'Pr' du module 'rho' (desole pour l'abus de langage, mais 'rho' */ /* est utilise comme un angle...). */ #Aifdef FACON_DE_CALCULER_LE_CHAMP_TREFLE_VERSION_02 #Eifdef FACON_DE_CALCULER_LE_CHAMP_TREFLE_VERSION_02 #define COEFFICIENT_COSINUS \ FRA4(FU) \ /* Coefficient de ponderation 'Cc' de la fonction 'cosinus'. */ #define COEFFICIENT_LINEAIRE_COSINUS \ FDEUX \ /* Coefficient lineaire 'Tc' de l'expression en 'cosinus(theta)'. */ #define COEFFICIENT_THETA \ GRO3(FU) \ /* Coefficient de ponderation 'Ct' de l'angle 'theta'. */ #define COEFFICIENT_PHASE_THETA \ FZERO \ /* Coefficient de phase 'Pt' de l'angle 'theta'. */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* C H A M P " T R O I S - G A U S S I E N " D E C H O I X D E S C O U L E U R S : */ /* */ /* ....::::----------::::.... */ /* ...:::---++++++++++---:::... */ /* ...:::--++oooooooooo++--:::... */ /* ...:::--+ooo********ooo+--:::... */ /* ...::--++o** #**o++--::... */ /* ...::--+oo** ROUGE #**oo+--::... */ /* ...::--++o** #**o++--::... */ /* ...:::--+oo****##****oo++-:::... */ /* ....... ...:::--++oooo**oooo++--:::... */ /* ................. ...:::---++++++++++---:::... */ /* .....:::::::::...... ....::::----------::::.... */ /* ..:::::-----:::::..... .....::::::::::::..... */ /* :::------------::::.... ................ */ /* ::---+++++++++---:::.... ...... */ /* :---++ ++---::.... */ /* :--+++ VERTE ++---:::... */ /* :---++ ++---::.... */ /* ::---+++++++++---:::... */ /* :::------------::::.... */ /* ..:::::-----:::::..... */ /* .....:::::::::...... .......... */ /* ................. ................ */ /* ....... .................. */ /* ......::::::::...... */ /* .....:: :::..... */ /* .....:: BLEUE :::..... */ /* .....:: :::..... */ /* ......::::::::...... */ /* .................. */ /* ................ */ /* .......... */ /* */ /* */ /* */ /*************************************************************************************************************************************/ #define DEPHASAGE_DU_QUARK_ROUGE \ FZERO \ /* Dephasage du premier quark (le 'ROUGE'). */ #define VOISINAGE_DU_QUARK_ROUGE \ DIVI(PI,CENT) \ /* Afin de faire des recherches dans la direction du quark 'ROUGE'. */ #define TIERS_DE_CERCLE \ FRA3(CERCLE_TRIGONOMETRIQUE) \ /* Un tiers du cercle trigonometrique. */ %define X_TRANSLATION_r \ ADD2(X_TRANSLATION_DU_TREFLE \ ,MUL2(echelle_de_translation \ ,COSX(ADD2(DEPHASAGE_DU_QUARK_ROUGE \ ,GRO0(TIERS_DE_CERCLE) \ ) \ ) \ ) \ ) /* Translation horizontale du champ 'ROUGE' ('POSITIONNEMENT_D_UN_QUARK_DU_PROTON' ==> "="), */ %define Y_TRANSLATION_r \ ADD2(Y_TRANSLATION_DU_TREFLE \ ,MUL2(echelle_de_translation \ ,SINX(ADD2(DEPHASAGE_DU_QUARK_ROUGE \ ,GRO0(TIERS_DE_CERCLE) \ ) \ ) \ ) \ ) /* Translation verticale du champ 'ROUGE' ('POSITIONNEMENT_D_UN_QUARK_DU_PROTON' ==> "="), */ %define X_TRANSLATION_v \ ADD2(X_TRANSLATION_DU_TREFLE \ ,MUL2(echelle_de_translation \ ,COSX(ADD2(DEPHASAGE_DU_QUARK_ROUGE \ ,GRO1(TIERS_DE_CERCLE) \ ) \ ) \ ) \ ) /* Translation horizontale du champ 'VERTE' ('POSITIONNEMENT_D_UN_QUARK_DU_PROTON' ==> "="), */ %define Y_TRANSLATION_v \ ADD2(Y_TRANSLATION_DU_TREFLE \ ,MUL2(echelle_de_translation \ ,SINX(ADD2(DEPHASAGE_DU_QUARK_ROUGE \ ,GRO1(TIERS_DE_CERCLE) \ ) \ ) \ ) \ ) /* Translation verticale du champ 'VERTE' ('POSITIONNEMENT_D_UN_QUARK_DU_PROTON' ==> "="), */ %define X_TRANSLATION_b \ ADD2(X_TRANSLATION_DU_TREFLE \ ,MUL2(echelle_de_translation \ ,COSX(ADD2(DEPHASAGE_DU_QUARK_ROUGE \ ,GRO2(TIERS_DE_CERCLE) \ ) \ ) \ ) \ ) /* Translation horizontale du champ 'BLEUE' ('POSITIONNEMENT_D_UN_QUARK_DU_PROTON' ==> "="), */ %define Y_TRANSLATION_b \ ADD2(Y_TRANSLATION_DU_TREFLE \ ,MUL2(echelle_de_translation \ ,SINX(ADD2(DEPHASAGE_DU_QUARK_ROUGE \ ,GRO2(TIERS_DE_CERCLE) \ ) \ ) \ ) \ ) /* Translation verticale du champ 'BLEUE ('POSITIONNEMENT_D_UN_QUARK_DU_PROTON' ==> "="), */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* D E F I N I T I O N D E S D I S Q U E S ( C O U L E U R S E T P O S I T I O N S ) : */ /* */ /*************************************************************************************************************************************/ #define RAYON_DES_DISQUES \ HUIT \ /* Rayon des disques representatifs des points. */ #define NIVEAU_DES_COULEURS \ BLANC \ /* Niveau de marquage maximum des disques flous 'COULEUR', */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* M A C R O S U T I L E S : */ /* */ /*************************************************************************************************************************************/ #define POSITIONNEMENT_D_UN_QUARK_DU_PROTON(contexte,COULEUR) \ /* Positionnement de l'un des trois quarks COULEUR=(R,V,B) du proton. */ \ Bblock \ SET_CURSOR(X_TRANSLATION`COULEUR \ ,Y_TRANSLATION`COULEUR \ ,_____cNORMALISE_OZ(Zmax) \ ); \ /* Mise en place du curseur graphique sur le quark courant 'COULEUR'. */ \ WCG(contexte); \ /* Et sauvegarde du contexte graphique... */ \ Eblock #include xrq/trefle.80.I" /* Introduit le 20061212110040 pour eviter le message : */ /* */ /* TRACE_D_UN_POINT_D_UN_DOUBLET: unterminated macro call */ /* */ /*===================================================================================================================================*/ /*************************************************************************************************************************************/ /* */ /* T E S T D E L A G E N E R A T I O N D U C H A M P T R E F L E : */ /* */ /*************************************************************************************************************************************/ BCommande(nombre_d_arguments,arguments) /*-----------------------------------------------------------------------------------------------------------------------------------*/ Bblock DEFV(CHAR,INIC(POINTERc(nom_imageR),NOM_PIPE)); DEFV(deltaF_2D,translation_du_proton); DEFV(coeffF_2D,echelle_du_proton); /* Translation et echelle du champ a utiliser pour contraindre la generation aleatoire. */ DEFV(Int,INIT(X_du_maximum_du_champ_trefle,UNDEF)); DEFV(Int,INIT(Y_du_maximum_du_champ_trefle,UNDEF)); /* Coordonnee {X,Y} du maximum du champ. */ DEFV(Float,INIT(maximum_du_champ_trefle,F_MOINS_L_INFINI)); /* Maximum du champ "trefle" rencontre dans la direction du premier quark. */ DEFV(Float,INIT(echelle_de_translation,FLOT__UNDEF)); /* Echelle de translation destinee a faire coincider les champs "trefle" et */ /* "trois-gaussiens" ; pou ce faire, on recherche dans la direction du premier */ /* quark (le 'ROUGE') le maximum du champ "trefle"... */ DEFV(deltaF_2D,translation_r); DEFV(deltaF_2D,translation_v); DEFV(deltaF_2D,translation_b); /* Position des trois quarks. */ DEFV(Int,INIT(rayon_des_disques,RAYON_DES_DISQUES)); /* Rayon des disques flous (attention : ne peut etre un 'Positive' a cause des expressions */ /* arithmetiques qui l'utilisent...). */ /*..............................................................................................................................*/ EGAL(Ftrefle_____coefficient,COEFFICIENT); #ifdef FACON_DE_CALCULER_LE_CHAMP_TREFLE_VERSION_02 EGAL(Ftrefle_____moitie_de_l_exposant_de_rho_module,MOITIE_DE_L_EXPOSANT); #Aifdef FACON_DE_CALCULER_LE_CHAMP_TREFLE_VERSION_02 #Eifdef FACON_DE_CALCULER_LE_CHAMP_TREFLE_VERSION_02 EGAL(Ftrefle_____coefficient_rho,COEFFICIENT_RHO); EGAL(Ftrefle_____coefficient_phase_rho,COEFFICIENT_PHASE_RHO); EGAL(Ftrefle_____coefficient_lineaire,COEFFICIENT_LINEAIRE); #ifdef FACON_DE_CALCULER_LE_CHAMP_TREFLE_VERSION_02 EGAL(Ftrefle_____coefficient_continu,COEFFICIENT_CONTINU); #Aifdef FACON_DE_CALCULER_LE_CHAMP_TREFLE_VERSION_02 #Eifdef FACON_DE_CALCULER_LE_CHAMP_TREFLE_VERSION_02 EGAL(Ftrefle_____coefficient_cosinus,COEFFICIENT_COSINUS); EGAL(Ftrefle_____coefficient_theta,COEFFICIENT_THETA); EGAL(Ftrefle_____coefficient_phase_theta,COEFFICIENT_PHASE_THETA); EGAL(Ftrefle_____coefficient_lineaire_cosinus,COEFFICIENT_LINEAIRE_COSINUS); INITIALISATION_ACCROISSEMENT_2D(translation_du_proton,X_TRANSLATION_DU_TREFLE,Y_TRANSLATION_DU_TREFLE); INITIALISATION_COEFFICIENT_2D(echelle_du_proton,X_ECHELLE_DU_TREFLE,Y_ECHELLE_DU_TREFLE); /* Definition du champ "trefle"... */ INITIALISATION_ACCROISSEMENT_2D(translation_r,X_TRANSLATION_r,Y_TRANSLATION_r); /* Initialisation de la translation du champ 'ROUGE' gaussien. */ INITIALISATION_ACCROISSEMENT_2D(translation_v,X_TRANSLATION_v,Y_TRANSLATION_v); /* Initialisation de la translation du champ 'VERTE' gaussien. */ INITIALISATION_ACCROISSEMENT_2D(translation_b,X_TRANSLATION_b,Y_TRANSLATION_b); /* Initialisation de la translation du champ 'BLEUE' gaussien. */ #ifdef FACON_DE_CALCULER_LE_CHAMP_TREFLE_VERSION_01 GET_ARGUMENTSv(nombre_d_arguments ,BLOC(GET_ARGUMENT_C("imageR=""R=",nom_imageR); GET_ARGUMENT_F("Tx=",ASD1(translation_du_proton,dx)); GET_ARGUMENT_F("Ty=",ASD1(translation_du_proton,dy)); GET_ARGUMENT_F("cs=""Cs=",Ftrefle_____coefficient); GET_ARGUMENT_F("cr=""Cr=",Ftrefle_____coefficient_rho); GET_ARGUMENT_F("pr=""Pr=",Ftrefle_____coefficient_phase_rho); GET_ARGUMENT_F("ts=""Ts=",Ftrefle_____coefficient_lineaire); GET_ARGUMENT_F("cc=""Cc=",Ftrefle_____coefficient_cosinus); GET_ARGUMENT_F("ct=""Ct=",Ftrefle_____coefficient_theta); GET_ARGUMENT_F("pt=""Pt=",Ftrefle_____coefficient_phase_theta); GET_ARGUMENT_F("tc=""Tc=",Ftrefle_____coefficient_lineaire_cosinus); GET_ARGUMENT_I("rayon=",rayon_des_disques); ) ); #Aifdef FACON_DE_CALCULER_LE_CHAMP_TREFLE_VERSION_01 #Eifdef FACON_DE_CALCULER_LE_CHAMP_TREFLE_VERSION_01 #ifdef FACON_DE_CALCULER_LE_CHAMP_TREFLE_VERSION_02 GET_ARGUMENTSv(nombre_d_arguments ,BLOC(GET_ARGUMENT_C("imageR=""R=",nom_imageR); GET_ARGUMENT_F("Tx=",ASD1(translation_du_proton,dx)); GET_ARGUMENT_F("Ty=",ASD1(translation_du_proton,dy)); GET_ARGUMENT_F("cs=""Cs=",Ftrefle_____coefficient); GET_ARGUMENT_I("r=",Ftrefle_____moitie_de_l_exposant_de_rho_module); GET_ARGUMENT_F("cr=""Cr=",Ftrefle_____coefficient_rho); GET_ARGUMENT_F("pr=""Pr=",Ftrefle_____coefficient_phase_rho); GET_ARGUMENT_F("ts=""Ts=",Ftrefle_____coefficient_lineaire); GET_ARGUMENT_F("co=""Co=",Ftrefle_____coefficient_continu); GET_ARGUMENT_F("cc=""Cc=",Ftrefle_____coefficient_cosinus); GET_ARGUMENT_F("ct=""Ct=",Ftrefle_____coefficient_theta); GET_ARGUMENT_F("pt=""Pt=",Ftrefle_____coefficient_phase_theta); GET_ARGUMENT_F("tc=""Tc=",Ftrefle_____coefficient_lineaire_cosinus); GET_ARGUMENT_I("rayon=",rayon_des_disques); ) ); #Aifdef FACON_DE_CALCULER_LE_CHAMP_TREFLE_VERSION_02 #Eifdef FACON_DE_CALCULER_LE_CHAMP_TREFLE_VERSION_02 #ifdef PROJECTION_3D_2D_VERSION_02 SET_FACTEUR_D_ELOIGNEMENT_EN_Z_DE_L_OBSERVATEUR(FACTEUR_D_ELOIGNEMENT_EN_Z_POUR_UNE_PROJECTION_PARALLELE); /* Facteur d'eloignement en 'Z' de l'observateur destine a simuler la projection parallele, */ /* c'est-a-dire celle qui provoque : {X,Y,Z} --> {X,Y}. */ #Aifdef PROJECTION_3D_2D_VERSION_02 #Eifdef PROJECTION_3D_2D_VERSION_02 begin_image Bblock Test(IFLE(SOUA(ACCES_A_UN_CHAMP(FU ,RIEN,Fargument ,FZERO ,X,Y ,ASD1,translation_du_proton,echelle_du_proton ) ,DEPHASAGE_DU_QUARK_ROUGE ) ,VOISINAGE_DU_QUARK_ROUGE ) ) Bblock DEFV(Float,INIT(champ_courant,ACCES_A_UN_CHAMP(FU ,RIEN,Ftrefle ,FZERO ,X,Y ,ASD1,translation_du_proton,echelle_du_proton ) ) ); /* Lorsque l'on se trouve dans la direction du premier quark, on regarde l'intensite du */ /* champ "trefle". */ Test(IFGT(champ_courant,maximum_du_champ_trefle)) Bblock EGAL(X_du_maximum_du_champ_trefle,X); EGAL(Y_du_maximum_du_champ_trefle,Y); EGAL(maximum_du_champ_trefle,champ_courant); /* Lorsqu'on est en presence d'un maximum local, on le memorise, ainsi que le 'rho' */ /* correspondant et les coordonnees {X,Y} : */ EGAL(echelle_de_translation ,ACCES_A_UN_CHAMP(FU ,RIEN,Fmodule ,FZERO ,X,Y ,ASD1,translation_du_proton,echelle_du_proton ) ); /* Recherche du module 'rho' du point du champ "trefle" qui soit dans la direction */ /* du quark 'ROUGE' est qui corresponde a un maximum du champ "trefle". */ Eblock ATes Bblock Eblock ETes Eblock ATes Bblock Eblock ETes Eblock end_image CAL2(Prin4("maximum du champ=%g au point (%d,%d) avec rho=%g\n" ,maximum_du_champ_trefle ,X_du_maximum_du_champ_trefle,Y_du_maximum_du_champ_trefle ,echelle_de_translation ) ); CALS(Iinit_Z_Buffer()); /* Initialisation du 'Z-Buffer'... */ CALi(IFinitialisation(IFmage_PR,FZERO)); /* Initialisation de l'image dans laquelle on va generer le champ "trefle". */ begin_image Bblock storeF_point(ACCES_A_UN_CHAMP(FU ,RIEN,Ftrefle ,FZERO ,X,Y ,ASD1,translation_du_proton,echelle_du_proton ) ,IFmage_PR ,X,Y ); Test(IFET(IFEQ(X,X_du_maximum_du_champ_trefle),IFEQ(Y,Y_du_maximum_du_champ_trefle))) Bblock CAL2(Prin3("champ(%d,%d)=%g\n" ,X_du_maximum_du_champ_trefle,Y_du_maximum_du_champ_trefle ,loadF_point(IFmage_PR,X,Y) ) ); Eblock ATes Bblock Eblock ETes Eblock end_image CAL2(Prin1("minimum=%g\n",IFnivo_minimum(IFmage_PR))); CAL2(Prin1("maximum=%g\n",IFnivo_maximum(IFmage_PR))); CALS(Ifloat_std_avec_renormalisation(ImageR,IFmage_PR)); /* Generation de l'image du champ "trefle". */ POSITIONNEMENT_D_UN_QUARK_DU_PROTON(vecteurs_____Gcon_11,r); TRACE_D_UN_POINT_D_UN_DOUBLET(vecteurs_____Gcon_11,NIVEAU_DES_COULEURS,GRO2); /* Trace du quark 'ROUGE' du proton, */ POSITIONNEMENT_D_UN_QUARK_DU_PROTON(vecteurs_____Gcon_12,v); TRACE_D_UN_POINT_D_UN_DOUBLET(vecteurs_____Gcon_12,NIVEAU_DES_COULEURS,GRO2); /* Trace du quark 'VERTE' du proton, */ POSITIONNEMENT_D_UN_QUARK_DU_PROTON(vecteurs_____Gcon_13,b); TRACE_D_UN_POINT_D_UN_DOUBLET(vecteurs_____Gcon_13,NIVEAU_DES_COULEURS,GRO2); /* Trace du quark 'BLEUE' du proton, */ CALi(Iupdate_image(nom_imageR,ImageR)); RETU_Commande; Eblock ECommande