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