Here is the heart of the Martin fractal code for those interested //------------------------------------------------------------------ // InitSaver() //------------------------------------------------------------------ void InitSaver(HWND hWnd) { a = double(random(100) - 50); b = double(random(100) - 50); c = double(random(100) - 50); s = (abs(a) + abs(b) + abs(c)) / 3.0; s = 6.0 - (abs(s/10.0)); ClearScreen(hWnd); tc = 0; xold = 0.0; yold = 0.0; }; //------------------------------------------------------------------ // Martin() //------------------------------------------------------------------ void Martin(HWND hWnd) { static int t = 0; static int clr = random(NumColor); double xnew, ynew ; if (t > tMax) { tc++; t = 0; clr = (clr+1) % NumColor; }; Plot(hWnd, xold*s, yold*s, clr); xnew = yold - Sign(xold)*sqrt(abs(b*xold-c)); ynew = a - xold; xold = xnew ; yold = ynew ; t++; } //------------------------------------------------------------------ // SaverStep() //------------------------------------------------------------------ void SaverStep(HWND hWnd) { if (tc > tcMax) InitSaver(hWnd); Martin(hWnd); };