/*************************************************************************************************************************************/
/* */
/* 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 E P O I N T S P S E U D O - A L E A T O I R E S D A N S U N C A D R E L I M I T E : */
/* */
/* */
/* Author of '$xrC/ObjetComplexe.J1$vv$c' : */
/* */
/* Jean-Francois Colonna (LACTAMME, 20130620140731). */
/* */
/*************************************************************************************************************************************/
#ifdef COMMENTS
# undef COMMENTS
#else
#endif
#define COMMENTS "Points pseudo-aleatoires type 'drand48(...)' dans un cadre limite (format octet) -noir ou blanc-"
#define DEFINE_01 "-DXCOTE=gDIVI(dimX,2) -DYCOTE=gDIVI(dimY,2)"
#define DEFINE_02 "-DXCOTE=gDIVI(dimX,3) -DYCOTE=gDIVI(dimY,3)"
#define DEFINE_03 "-DXCOTE=gDIVI(dimX,4) -DYCOTE=gDIVI(dimY,4)"
#define DEFINE_04 "-DXCOTE=gDIVI(dimX,5) -DYCOTE=gDIVI(dimY,5)"
#define DEFINE_05 "-DXCOTE=gDIVI(dimX,6) -DYCOTE=gDIVI(dimY,6)"
#define DEFINE_06 "-DXCOTE=gDIVI(dimX,7) -DYCOTE=gDIVI(dimY,7)"
#define DEFINE_07 "-DXCOTE=gDIVI(dimX,8) -DYCOTE=gDIVI(dimY,8)"
#define DEFINE_08 "-DXCOTE=gDIVI(dimX,9) -DYCOTE=gDIVI(dimY,9)"
#define DEFINE_09 "-DXCOTE=gDIVI(dimX,10) -DYCOTE=gDIVI(dimY,10)"
#define DEFINE_10 "-DXCOTE=gDIVI(dimX,11) -DYCOTE=gDIVI(dimY,11)"
#define DEFINE_11 "-DXCOTE=gDIVI(dimX,12) -DYCOTE=gDIVI(dimY,12)"
#define DEFINE_12 "-DXCOTE=gDIVI(dimX,13) -DYCOTE=gDIVI(dimY,13)"
#define DEFINE_13 "-DXCOTE=gDIVI(dimX,14) -DYCOTE=gDIVI(dimY,14)"
#define DEFINE_14 "-DXCOTE=gDIVI(dimX,15) -DYCOTE=gDIVI(dimY,15)"
#define DEFINE_15 "-DXCOTE=gDIVI(dimX,16) -DYCOTE=gDIVI(dimY,16)"
#define DEFINE_16 "-DXCOTE=gDIVI(dimX,17) -DYCOTE=gDIVI(dimY,17)"
/* Les seuils ont ete obtenus par (le 20130615083031) : */
/* */
/* $xci/valeurs_inte$X \ */
/* p=1 d=16 \ */
/* lineaire=VRAI \ */
/* vD=1 vA=2000 | \ */
/* $xrv/LOGX.01$X \ */
/* ne=0 \ */
/* fichier== | \ */
/* $xrv/normalise.01$X \ */
/* ne=0 \ */
/* fichier== \ */
/* origine=0.1 extremite=0.99 \ */
/* decimales=4 */
/* */
#include "images_1octet.01.vv.I"
#ifndef XCOTE
# define XCOTE \
gDIVI(dimX,4)
#else
#endif
#ifndef YCOTE
# define YCOTE \
gDIVI(dimY,4)
#else
#endif
#ifndef SEUIL
# define SEUIL \
(0.5)
#else
#endif
double seuil=SEUIL;
int Xcote=XCOTE;
int Ycote=YCOTE;
MAIN(
{
long int m=0x0000ffffffffffff;
long int a=0x5DEECE66D;
long int c=0xB;
long int Xi=1;
/* Les valeurs des parametres {m,a,c} sont ceux de la fonction 'drand48(...)'. */
for (y=Ymin ; y <= Ymax ; y=ADD2(y,1))
{
for (x=Xmin ; x <= Xmax ; x=ADD2(x,1))
{
if ( ((x >= SOUS(Xcentre,Xcote)) && (x <= ADD2(Xcentre,Xcote)))
&& ((y >= SOUS(Ycentre,Ycote)) && (y <= ADD2(Ycentre,Ycote)))
)
{
Xi = ETLO(ADD2(MUL2(a,Xi),c),m);
STORE_IMAGE_PLAN(x,y,COND(IFLT(DIVIf(((double)Xi),((double)m)),seuil),NOIR,BLANC));
}
else
{
STORE_IMAGE_PLAN(x,y,BLANC);
}
}
}
SORTIE_DU_FICHIER_IMAGE;
EDITER_LES_COMPTEURS_DES_FONCTIONS;
}
)