/*----------------------------------------------------------------------+ | | | gfxjuliax.c -- demonstrate fractal in gfx / quick and dirty | | | +----------------------------------------------------------------------*/ // Standard includes #include #include #include #include #include #include #include #include #include #define HEIGHT 120 #define WIDTH 160 #define SCALE 1.7 #define YSTEP 1 #define XSTEP 1 #define CX -0.8 #define CY 0.156 int julia(float x, float y) { float zz; float a; float b; float a2; float b2; float atemp; int i; a = x; b = y; i = 0; while (i < 63) { a2 = a * a; b2 = b * b; zz = a2 + b2; if(zz > 4) break; atemp = a2 - b2 + CX; b = 2.0 * a * b + CY; a = atemp; i++; } return i; } void drawPixel(int x, int y, int color) { screenMemory[y][x] = color; } void main(void) { int x, y, data; int col; float sx, sy; for(y = 0; y < HEIGHT; y = y + YSTEP ) { for(x = 0; x < WIDTH; x = x + XSTEP ) { sx = (SCALE * (WIDTH/2.0 - x) / (WIDTH/2.0))*(-1); sy = (SCALE * (HEIGHT/2.0 - y) / (HEIGHT/2.0))*(-0.75); data = julia(sx, sy); col = 63 - data; drawPixel(x,y,col); } } }