/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        G E N E R A T I O N   D ' U N   O B J E T   R E C U R S I F                                                                */
/*        D E   T Y P E   " Y O U R T E "   B I D I M E N S I O N N E L L E  :                                                       */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Author of '$xrf/recursif.21$K' :                                                                                           */
/*                                                                                                                                   */
/*                    Jean-Francois COLONNA (LACTAMME, 20050425135851).                                                              */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

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

@define   PRAGMA_CL_____MODULE_NON_OPTIMISABLE

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        F I C H I E R S   D ' I N C L U D E S  :                                                                                   */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  INCLUDES_BASE

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N S   D E   B A S E   E T   U N I V E R S E L L E S  :                                                   */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  xrk/attractor.11.I"

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*                                                                                    3                                              */
/*        D E F I N I T I O N   D E   L ' E S P A C E   P H Y S I Q U E   D A N S   R     ( D E B U T )  :                           */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Nota :                                                                                                                     */
/*                                                                                                                                   */
/*                    Les extrema des coordonnees {x,y,z}                                                                            */
/*                  sont fixees un peu arbitrairement et sans                                                                        */
/*                  parametrees.                                                                                                     */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   hXmin_ESPACE                                                                                                                  \
                    PARE(-2.00)
#define   hYmin_ESPACE                                                                                                                  \
                    PARE(-2.00)
#define   hZmin_ESPACE                                                                                                                  \
                    PARE(-3.00)
                                        /* Definition du "coin" inferieur-gauche-arriere de l'espace physique.                       */

#define   hXmax_ESPACE                                                                                                                  \
                    PARE(2.00)
#define   hYmax_ESPACE                                                                                                                  \
                    PARE(2.00)
#define   hZmax_ESPACE                                                                                                                  \
                    PARE(3.00)
                                        /* Definition du "coin" superieur-droite-avant de l'espace physique. La valeur particuliere  */
                                        /* de 'hZmax_ESPACE' est mise en place pour translater la source lumineuse d'eclairage de    */
                                        /* la scene via 'Z_DE_LA_SOURCE_LUMINEUSE'...                                                */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*                                                                                    3                                              */
/*        D E F I N I T I O N   D E   L ' E S P A C E   P H Y S I Q U E   D A N S   R     ( D E B U T )  :                           */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  xrk/attractor.12.I"

#define   dXmin_ESPACE                                                                                                                  \
                    PARE(-1.0)
#define   dYmin_ESPACE                                                                                                                  \
                    PARE(-1.0)
#define   dZmin_ESPACE                                                                                                                  \
                    PARE(-1.0)
                                        /* Definition des minima des differentielles {dx,dy,dz}.                                     */
#define   dXmax_ESPACE                                                                                                                  \
                    PARE(1.0)
#define   dYmax_ESPACE                                                                                                                  \
                    PARE(1.0)
#define   dZmax_ESPACE                                                                                                                  \
                    PARE(1.0)
                                        /* Definition des maxima des differentielles {dx,dy,dz}.                                     */

#include  xrk/attractor.1D.I"
                                        /* Formules de renormalisation des differentielles dans [0,1] ; elles sont utilisees lorsque */
                                        /* la production d'images en couleurs est demandee (voir 'visualiser_en_RVB').               */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N   D E S   D I F F E R E N T S   E S P A C E S   E T   D E   L ' E F F E T   D E   B R U M E  :         */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  xrk/attractor.13.I"

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        G E N E R A T I O N   D E S   I M A G E S  :                                                                               */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   RENORMALISER_LES_NIVEAUX                                                                                                      \
                    FAUX
DEFV(Local,DEFV(Logical,INIT(renormaliser_les_niveaux,RENORMALISER_LES_NIVEAUX)));
                                        /* Indique si l'on doit renormaliser les niveaux des trois couleurs au moment de la          */
                                        /* generation de l'image ('VRAI') ou pas ('FAUX'). On notera que cette renormalisation       */
                                        /* est fonction non pas uniquement de l'image courante, mais en fait aussi de toutes celles  */
                                        /* qui ont deja ete generees (voir comment sont calcules les extrema des derivees...).       */

#include  xrv/champs_5.14.I"

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N S   G E N E R A L E S   R E L A T I V E S   A   L A   V I S U A L I S A T I O N  :                     */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  xrv/particule.41.I"

#include  xrk/attractor.14.I"

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        G E N E R A T I O N   D ' U N   O B J E T   R E C U R S I F                                                                */
/*        D E   T Y P E   " Y O U R T E "   B I D I M E N S I O N N E L L E  :                                                       */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

#include  xrk/attractor.17.I"

DEFV(Local,DEFV(Float,INIT(cx,FLOT__UNDEF)));
DEFV(Local,DEFV(Float,INIT(dcx,FLOT__UNDEF)));
                                        /* Definition de 'x' et de sa derivee,                                                       */
DEFV(Local,DEFV(Float,INIT(cy,FLOT__UNDEF)));
DEFV(Local,DEFV(Float,INIT(dcy,FLOT__UNDEF)));
                                        /* Definition de 'y' et de sa derivee,                                                       */
DEFV(Local,DEFV(Float,INIT(cz,FLOT__UNDEF)));
DEFV(Local,DEFV(Float,INIT(dcz,FLOT__UNDEF)));
                                        /* Definition de 'z' et de sa derivee.                                                       */

#define   RECURSIVITE_MAXIMALE                                                                                                          \
                    TROIS
DEFV(Local,DEFV(Int,INIT(recursivite_maximale,RECURSIVITE_MAXIMALE)));
                                        /* Definition de la recursivite maximale.                                                    */
DEFV(Local,DEFV(Int,INIT(recursivite_courante,ZERO)));
                                        /* Definition de la recursivite courante. Cette valeur est incrementee d'une unite a chaque  */
                                        /* entree dans la fonction 'definition_recursive(...)' et decrementee d'une unite a la       */
                                        /* sortie...                                                                                 */

#define   RAYON_DE_VISUALISATION                                                                                                        \
                    GRO5(FRA10(FU))                                                                                                     \
                                        /* Introduit le 20060311094427 a cause de 'v $xrv/champs_5.1A$I PROKESS_ARGUMENT_F' qui      */ \
                                        /* en a besoin depuis le 20060224121036...                                                   */

#define   FACTEUR_D_HOMOTHETIE_DU_RAYON                                                                                                 \
                    GRO8(FRA16(FU))
#define   RAYON_INITIAL                                                                                                                 \
                    RAYON_DE_VISUALISATION
DEFV(Local,DEFV(Float,INIT(rayon_initial,RAYON_INITIAL)));
DEFV(Local,DEFV(Float,INIT(facteur_d_homothetie_du_rayon,FACTEUR_D_HOMOTHETIE_DU_RAYON)));
                                        /* Gestion du rayon...                                                                       */

#define   THETA_INITIAL                                                                                                                 \
                    PI_SUR_2
#define   INCREMENT_DE_THETA                                                                                                            \
                    DIVI(CERCLE_TRIGONOMETRIQUE,QUATRE)
#define   NOMBRE_DE_ROTATIONS                                                                                                           \
                    TROIS
DEFV(Local,DEFV(Float,INIT(theta_initial,THETA_INITIAL)));
DEFV(Local,DEFV(Float,INIT(increment_de_theta,INCREMENT_DE_THETA)));
DEFV(Local,DEFV(Int,INIT(nombre_de_rotations,NOMBRE_DE_ROTATIONS)));
                                        /* Gestion de l'angle...                                                                     */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        A I D E   A U   C A D R A G E   D E S   I M A G E S  :                                                                     */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  xrk/attractor.1C.I"

DONNEES_DE_RECHERCHE_DES_EXTREMA_DES_COORDONNEES_ET_DES_DERIVEES
                                        /* Definition des extrema des coordonnees et des derivees. On notera bien l'absence de       */
                                        /* point-virgule apres 'DONNEES_DE_RECHERCHE_DES_EXTREMA_DES_COORDONNEES_ET_DES_DERIVEES'.   */

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        F O N C T I O N   D E   M E M O R I S A T I O N   D U   P O I N T   C O U R A N T  :                                       */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  xrk/attractor.16.I"

DEFV(Local,DEFV(Float,INIT(rayon_de_visualisation,FLOT__UNDEF)));
                                        /* Rayon du disque materialisant une iteration.                                              */

BFonctionI

DEFV(Local,DEFV(FonctionI,memorisation_1_point_07(AXf,AYf,AZf,AdXf,AdYf,AdZf,numero_de_l_iteration_courante)))
                                        /* La fonction 'memorisation_1_point_07(...)' a ete introduite le 20051126092334 pour        */
                                        /* 'v $xrv/particule.31$I memorisation_1_point_07', c'est-a-dire un peu tardivement et       */
                                        /* je ne comprends pas pourquoi cela ne s'etait pas vu plus tot...                           */
DEFV(Argument,DEFV(Float,AXf));
DEFV(Argument,DEFV(Float,AYf));
DEFV(Argument,DEFV(Float,AZf));
                                        /* Definition de la position {x,y,z} de l'iteration courante.                                */
DEFV(Argument,DEFV(Float,AdXf));
DEFV(Argument,DEFV(Float,AdYf));
DEFV(Argument,DEFV(Float,AdZf));
                                        /* Definition des differentielles {dx,dy,dz} de la position de l'iteration courante.         */
DEFV(Argument,DEFV(Int,numero_de_l_iteration_courante));
                                        /* Numero de l'iteration courante afin d'attenuer eventuellement la luminance des points     */
                                        /* materialisant chaque iteration en fonction de leur numero (les premieres iterations etant */
                                        /* plus sombres, et les dernieres etant plus lumineuses).                                    */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
     Bblock
#include  xrk/attractor.15.I"

     INIT_ERROR;
     /*..............................................................................................................................*/
     MEMORISATION_DU_POINT_COURANT(X_DERIVEE_DANS_01(AdXf)
                                  ,Y_DERIVEE_DANS_01(AdYf)
                                  ,Z_DERIVEE_DANS_01(AdZf)
                                   );
                                        /* Memorisation du point courant en Noir et Blanc ou en Couleurs, mais uniquement s'il est   */
                                        /* visible en fonction des conditions de visualisation...                                    */
     RETU_ERROR;
     Eblock

EFonctionI

BFonctionI

DEFV(Local,DEFV(FonctionI,memorisation_1_point_08(AXf,AYf,AZf,AdXf,AdYf,AdZf,numero_de_l_iteration_courante,rayon)))
                                        /* Le nom 'memorisation_1_point_07(...)' a ete change en 'memorisation_1_point_08(...)'      */
                                        /* le 20051126092334, c'est-a-dire un peu tardivement. En fait, il apparait que les deux     */
                                        /* fonctions 'memorisation_1_point_07(...)' et 'memorisation_1_point_08(...)' sont toutes    */
                                        /* deux necessaires, la premiere pour 'v $xrv/particule.31$I memorisation_1_point_07' et     */
                                        /* la seconde en local ci-apres dans 'v $xrf/recursif.21$K definition_recursive'...          */
DEFV(Argument,DEFV(Float,AXf));
DEFV(Argument,DEFV(Float,AYf));
DEFV(Argument,DEFV(Float,AZf));
                                        /* Definition de la position {x,y,z} de l'iteration courante.                                */
DEFV(Argument,DEFV(Float,AdXf));
DEFV(Argument,DEFV(Float,AdYf));
DEFV(Argument,DEFV(Float,AdZf));
                                        /* Definition des differentielles {dx,dy,dz} de la position de l'iteration courante.         */
DEFV(Argument,DEFV(Int,numero_de_l_iteration_courante));
                                        /* Numero de l'iteration courante afin d'attenuer eventuellement la luminance des points     */
                                        /* materialisant chaque iteration en fonction de leur numero (les premieres iterations etant */
                                        /* plus sombres, et les dernieres etant plus lumineuses).                                    */
DEFV(Argument,DEFV(Float,rayon));
                                        /* Rayon courant...                                                                          */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
     Bblock
#include  xrk/attractor.15.I"

     INIT_ERROR;
     /*..............................................................................................................................*/
     EGAL(rayon_de_visualisation,rayon);

     MEMORISATION_DU_POINT_COURANT(X_DERIVEE_DANS_01(AdXf)
                                  ,Y_DERIVEE_DANS_01(AdYf)
                                  ,Z_DERIVEE_DANS_01(AdZf)
                                   );
                                        /* Memorisation du point courant en Noir et Blanc ou en Couleurs, mais uniquement s'il est   */
                                        /* visible en fonction des conditions de visualisation...                                    */
     RETU_ERROR;
     Eblock

EFonctionI

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        F O N C T I O N S   D E   V I S U A L I S A T I O N   E T   D ' I N T E R P O L A T I O N  :                               */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   __VERSION__PERMETTRE_L_UTILISATION_D_UN_FOND                                                                                  \
                                        /* Afin de permettre la mise en place d'un fond pour chaque image generee (definition        */ \
                                        /* introduite ici le 20050427131137).                                                        */

#include  xrv/particule.31.I"

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N   D E   L A   C O N S T R U C T I O N   R E C U R S I V E  :                                           */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#define   FACTEUR_ROUGE                                                                                                                 \
                    FU
#define   FACTEUR_VERTE                                                                                                                 \
                    FU
#define   FACTEUR_BLEUE                                                                                                                 \
                    FU
DEFV(Local,DEFV(Float,INIT(facteur_ROUGE,FACTEUR_ROUGE)));
DEFV(Local,DEFV(Float,INIT(facteur_VERTE,FACTEUR_VERTE)));
DEFV(Local,DEFV(Float,INIT(facteur_BLEUE,FACTEUR_BLEUE)));
                                        /* Facteurs introduits le 20050427124513...                                                  */

#define   FACTEUR_DU_RAYON_DE_VISUALISATION                                                                                             \
                    FU
DEFV(Local,DEFV(Float,INIT(facteur_du_rayon_de_visualisation,FACTEUR_DU_RAYON_DE_VISUALISATION)));
                                        /* Facteur introduit le 20050427132313...                                                    */

BFonctionI

DEFV(Local,DEFV(FonctionI,definition_recursive(cx,cy,cz,rayon,theta)))
DEFV(Argument,DEFV(Float,cx));
DEFV(Argument,DEFV(Float,cy));
DEFV(Argument,DEFV(Float,cz));
                                        /* Definition des coordonnees du centre courant...                                           */
DEFV(Argument,DEFV(Float,rayon));
                                        /* Rayon courant...                                                                          */
DEFV(Argument,DEFV(Float,theta));
                                        /* Definition de l'angle 'theta' de depart courant...                                        */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
     Bblock
     INIT_ERROR;
     /*..............................................................................................................................*/
     INCR(recursivite_courante,I);
                                        /* Gestion de la profondeur de la recursivite...                                             */

     EGAL(dcx,COSX(MUL2(facteur_ROUGE,NEUT(rayon))));
     EGAL(dcy,COSX(MUL2(facteur_VERTE,NEUT(theta))));
     EGAL(dcz,COSX(MUL2(facteur_BLEUE,PRED(recursivite_courante))));
                                        /* Definition du coloriage (tres arbitraire...). On notera malgre tout que d'une part        */
                                        /* la fonction 'COSX(...)' maintient les valeurs dans [-1,+1] (ce qui se retrouve dans la    */
                                        /* definition de {d?min_ESPACE,d?max_ESPACE}) et d'autre part, annuler deux des trois        */
                                        /* facteurs bloque a +1 les deux 'dc?' correspondants et permet donc de visualiser le        */
                                        /* troisieme seul...                                                                         */

     RECHERCHE_DES_EXTREMA_DES_COORDONNEES_ET_DES_DERIVEES;

     CALS(memorisation_1_point_08(SOUS(cx,Xcentre_ESPACE)
                                 ,SOUS(cy,Ycentre_ESPACE)
                                 ,SOUS(cz,Zcentre_ESPACE)
                                 ,dcx
                                 ,dcy
                                 ,dcz
                                 ,UNDEF
                                 ,MUL2(facteur_du_rayon_de_visualisation,rayon)
                                  )
          );
                                        /* Memorisation de l'iteration courante...                                                   */

     Test(IFGT(recursivite_courante,recursivite_maximale))
          Bblock
                                        /* Cas ou l'on a atteint la profondeur maximale de la recursivite...                         */
          Eblock
     ATes
          Bblock
                                        /* Cas ou l'on n'a pas encore atteint la profondeur maximale de la recursivite :             */
          Repe(nombre_de_rotations)
               Bblock
               DEFV(Float,INIT(theta_recursif
                              ,SOUS(ADD2(theta
                                        ,MUL2(SOUS(compteur_des_repetitions_du_Repe,PREMIERE_ITERATION_D_UN_Repe),increment_de_theta)
                                         )
                                   ,MOIT(MUL2(TRMU(nombre_de_rotations),increment_de_theta))
                                    )
                               )
                    );
               DEFV(Float,INIT(rayon_recursif,MUL2(facteur_d_homothetie_du_rayon,rayon)));

               CALS(definition_recursive(ADD2(cx,MUL2(ADD2(rayon,rayon_recursif),COSX(theta_recursif)))
                                        ,ADD2(cy,MUL2(ADD2(rayon,rayon_recursif),SINX(theta_recursif)))
                                        ,cz
                                        ,rayon_recursif
                                        ,theta_recursif
                                         )
                    );
                                        /* Generation recursive de l'objet...                                                        */
               Eblock
          ERep
          Eblock
     ETes

     DECR(recursivite_courante,I);
                                        /* Gestion de la profondeur de la recursivite...                                             */
     RETU_ERROR;
     Eblock

EFonctionI

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        D E F I N I T I O N   D E S   I N I T I A L I S A T I O N S  :                                                             */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
#include  xrk/attractor.18.I"

/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        G E N E R A T I O N   D ' U N   O B J E T   R E C U R S I F                                                                */
/*        D E   T Y P E   " Y O U R T E "   B I D I M E N S I O N N E L L E  :                                                       */
/*                                                                                                                                   */
/*************************************************************************************************************************************/
BCommande(nombre_d_arguments,arguments)
/*-----------------------------------------------------------------------------------------------------------------------------------*/
     Bblock
     DONNEES_NECESSAIRES_A_L_UTILISATION_D_UN_FOND;
                                        /* Introduit le 20050427131522...                                                            */
     /*..............................................................................................................................*/
     INITIALISATIONS_GENERALES;
                                        /* Initialisations generales faites au tout debut...                                         */

#include  xrv/champs_5.1A.I"

     GET_ARGUMENTSv(nombre_d_arguments
                   ,BLOC(PROCESS_ARGUMENTS_GEOMETRIQUES;

                         PROCESS_ARGUMENTS_DE_VISUALISATION;

                         PROCESS_ARGUMENTS_DE_VISUALISATION_DES_AXES_DE_COORDONNEES;

                         GET_ARGUMENT_L("renormaliser=",renormaliser_les_niveaux);

                         GET_ARGUMENT_F("fhr=""fh=",facteur_d_homothetie_du_rayon);
                         GET_ARGUMENT_F("rayon=""r0=",rayon_initial);
                         GET_ARGUMENT_F("theta=""t0=",theta_initial);
                         GET_ARGUMENT_F("dtheta=""dt=",increment_de_theta);
                         GET_ARGUMENT_I("ntheta=""nt=",nombre_de_rotations);

                         GET_ARGUMENT_F("fROUGE=""fR=",facteur_ROUGE);
                         GET_ARGUMENT_F("fVERTE=""fV=",facteur_VERTE);
                         GET_ARGUMENT_F("fBLEUE=""fB=",facteur_BLEUE);

                         GET_ARGUMENT_F("fr=",facteur_du_rayon_de_visualisation);

                         GET_ARGUMENT_I("recursivite=",recursivite_maximale);
                         )
                    );

#include  xrv/champs_5.19.I"
                                        /* Pour eviter le message :                                                                  */
                                        /*                                                                                           */
                                        /*                  Static function is not referenced.                                       */
                                        /*                                                                                           */
                                        /* sur 'SYSTEME_ES9000_AIX_CC'...                                                            */

#include  xrk/attractor.19.I"
                                        /* Validations et definition de l'espace physique.                                           */

     Komp(numero_de_la_periode_courante_de_la_simulation,nombre_de_periodes_de_la_simulation)
          Bblock
          INITIALISATIONS_RELATIVES_A_CHAQUE_NOUVELLE_IMAGE(numero_de_la_periode_courante);
                                        /* Initialisations necessaires avant le calcul et la generation de chaque nouvelle image.    */

          EGAL(cx,Xcentre_ESPACE);
          EGAL(cy,Ycentre_ESPACE);
          EGAL(cz,Zcentre_ESPACE);

          CALS(definition_recursive(cx
                                   ,cy
                                   ,cz
                                   ,rayon_initial
                                   ,theta_initial
                                    )
               );
                                        /* Generation recursive de l'objet...                                                        */

#include  xrk/attractor.1A.I"

          VISUALISATION_DES_AXES_DE_COORDONNEES;
                                        /* Visualisation si necessaire des trois axes de coordonnees.                                */

          Test(IFET(IL_FAUT(visualiser_en_RVB),IL_FAUT(renormaliser_les_niveaux)))
               Bblock
               GENERATION_D_UNE_IMAGE_ET_PASSAGE_A_LA_SUIVANTE_AVEC_RENORMALISATION(BLOC(VIDE;)
                                                                                   ,SOUS(dXmax_ESPACE,dXmin_ESPACE)
                                                                                   ,SOUS(maximum_de_dcx,minimum_de_dcx)
                                                                                   ,SOUS(dYmax_ESPACE,dYmin_ESPACE)
                                                                                   ,SOUS(maximum_de_dcy,minimum_de_dcy)
                                                                                   ,SOUS(dZmax_ESPACE,dZmin_ESPACE)
                                                                                   ,SOUS(maximum_de_dcz,minimum_de_dcz)
                                                                                    );
                                        /* Generation de l'image courante avec renormalisation des niveaux. On notera que la regle   */
                                        /* de trois faite ci-dessus a l'aide 'SCAL(...)' n'est possible que parce que les derivees   */
                                        /* ont ete ramenees dans [0,1[ grace aux fonctions '?_DERIVEE_DANS_01(...)'...               */
               Eblock
          ATes
               Bblock
               GENERATION_D_UNE_IMAGE_ET_PASSAGE_A_LA_SUIVANTE(BLOC(VIDE;));
                                        /* Generation de l'image courante sans renormalisation des niveaux.                          */
               Eblock
          ETes
          Eblock
     EKom

     EDITION_DES_EXTREMA_DES_COORDONNEES_ET_DES_DERIVEES;
                                        /* Edition facultative des extrema des coordonnees.                                          */

     RETU_Commande;
     Eblock
ECommande



Copyright © Jean-François COLONNA, 2019-2024.
Copyright © CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / École polytechnique, Institut Polytechnique de Paris, 2019-2024.