/*----------------------------------------------------------------------+ | | | ascjulia.c -- demonstrate fractal in text / quick and dirty | | | +----------------------------------------------------------------------*/ // Standard includes #include #include #include #include #include #include #include #include #define HEIGHT 15 #define WIDTH 26 #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 = 48; while (i < 58) { 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 main(void) { int x, y, data; 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); console_state.cx = x; console_state.cy = y; console_state.fgbg = (((data-48)*6+1) & 0x3f) << 8; console_print((char*)&data, 1); } } }