/*************************************************************************************************************************************/ /* */ /* E T U D E D E L A C O M P L E X I T E S T R U C T U R E L L E */ /* D ' U N E N S E M B L E D E J U L I A : */ /* */ /* */ /* Author of '$xrC/ObjetComplexe.V____1$vv$c' : */ /* */ /* Jean-Francois Colonna (LACTAMME, 20130802210359). */ /* */ /*************************************************************************************************************************************/ #ifdef COMMENTS # undef COMMENTS #else #endif #define COMMENTS "Ensemble de Julia (format octet) -fausses couleurs-" #include "images_1octet.01.vv.I" #include "complexes.01.vv.I" #define DEFINE_01 "-DITERATIONS=2" #define DEFINE_02 "-DITERATIONS=3" #define DEFINE_03 "-DITERATIONS=4" #define DEFINE_04 "-DITERATIONS=5" #define DEFINE_05 "-DITERATIONS=6" #define DEFINE_06 "-DITERATIONS=7" #define DEFINE_07 "-DITERATIONS=8" #define DEFINE_08 "-DITERATIONS=9" #define DEFINE_09 "-DITERATIONS=10" #define DEFINE_10 "-DITERATIONS=11" #define DEFINE_11 "-DITERATIONS=12" #define DEFINE_12 "-DITERATIONS=13" #define DEFINE_13 "-DITERATIONS=14" #define DEFINE_14 "-DITERATIONS=15" #define DEFINE_15 "-DITERATIONS=16" #define DEFINE_16 "-DITERATIONS=17" #ifndef ITERATIONS # define ITERATIONS \ (16) #else #endif int iterations=ITERATIONS; #ifndef SEUIL # define SEUIL \ (4.0) #else #endif double seuil=SEUIL; /* Introduit le 20130803135950... */ #define XA \ (0) #define YA \ (1) double xA=XA; double yA=YA; #define XG \ (-1.50) #define XD \ (+1.50) /* Extremites Gauche et Droite sur l'axe des 'X'. */ #define YB \ (-1.50) #define YH \ (+1.50) /* Extremites Bas et Haut sur l'axe des 'Y'. */ MAIN( { complexe A; complexe C; complexe Zn; complexe z1; Cinit(A,xA,yA); for (y=Ymin ; y <= Ymax ; y=ADD2(y,1)) { for (x=Xmin ; x <= Xmax ; x=ADD2(x,1)) { int index=1; int iterer=VRAI; /* Variables d'iterations... */ Cinit(Zn ,ADD2f(MUL2f(DIVIf((double)x,(double)dimX),SOUSf(XD,XG)),XG) ,ADD2f(MUL2f(DIVIf((double)y,(double)dimY),SOUSf(YH,YB)),YB) ); /* Initialisation de la suite Zn. */ while (iterer == VRAI) { Cproduit(z1,Zn,Zn); Csomme(Zn,z1,A); Cdeborde(Zn); /* Iteration de la suite Zn. */ if ((index >= iterations) || (Cmodule2(Zn) > seuil)) { STORE_IMAGE_PLAN(x,y,DIVI(MUL2(index,COULEURS),iterations)); iterer=FAUX; } else { index=ADD2(index,1); } } } } SORTIE_DU_FICHIER_IMAGE; EDITER_LES_COMPTEURS_DES_FONCTIONS; } )