#include "stdio.h"
#include "stdlib.h"
#include "math.h"
#include <sys/types.h>
#include <time.h>
#include "/usr/users/pbourke/include/paulslib.h"
#include "/usr/users/pbourke/include/bitmaplib.h"

#define NX 2000
#define NY 2000
#define N 10000000
#define SCALE (NX * 1.1)

int main(int argc,char **argv)
{
	int i,m,n,ix,iy,a;
	double x=1,y=1,x1,y1;
	BITMAP *image,white={255,255,255},black={0,0,0};
	FILE *fptr;

	/* Create the image */
	image = CreateBitmap(NX,NY);
	EraseBitmap(image,NX,NY,white);
	srand(time(NULL));

	for (n=0;n<N;n++) {
		if ((n % (N/10)) == 0)
			fprintf(stderr,"%d\n",n);
		a = rand() % 3;
		if (a == 0) {
			x1 = sin(1 / (x+1)) / (x+1);
			y1 = y / (y+1);
		} else if (a == 1) {
			x1 = x / 2;
			y1 = y / 2;
		} else {
			x1 = x / (x+1);
			y1 = sin(1 / (y+1)) / (y+1);
		}
		x = x1;
		y = y1;
		if (n < 100)
			continue;
		ix = x * SCALE + 10;
		iy = y * SCALE + 10;
      DrawPixel(image,NX,NY,ix,iy,black);
	}

	/* Write the image to a tiff file */
	if ((fptr = fopen("roger15.tiff","w")) == NULL) {
		fprintf(stderr,"Unable to open image file\n");
		exit(0);
	}
	WriteBitmap(fptr,image,NX,NY,5);
	fclose(fptr);
	DestroyBitmap(image);
}

#include "/usr/users/pbourke/include/bitmaplib.c"
#include "/usr/users/pbourke/include/paulslib.c"

