/*************************************************************************************************************************************/
/* */
/* 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;
}
)