|
|
Rysowanie paprotki
int n,c; double x,y,r,w,x1,y1; x = 1 / sqrt(2.0); y = x; for(n = 0; n < 256000; n++) { c = 2 * (n % 2) - 1; r = sqrt(x*x + y*y); w = atan2(y,x); x = r * cos(w - c * M_PI / 12.0); y = r * sin(w - c * M_PI / 12.0); int tmp = rand() % 100; if(tmp<77) { x1 = 0.85 * x + 0.04 * y; y1 = -0.04 * x + 0.85 * y + 1.6; } else if(tmp<88) { x1 = 0.2 * x - 0.26 * y; y1 = 0.23 * x + 0.22 * y + 1.6; } else if(tmp<99) { x1 = -0.15 * x + 0.28 * y; y1 = 0.26 * x + 0.24 * y + 0.44; } else { x1 = 0; y1 = 0.16 * y; } x = x1; y = y1; SetPixel(hdc,(int)(x * cx/8.0 + cx/2),(int)(y * cy/10.0),RGB(0,200,0)); }na podstawie http://astronomy.swin.edu.au/~pbourke/fractals/ifs_fern_a/roger11.c