Julia Escape Count calculation
In principle, Fred's Fractal Factory and Viewer can support many different kinds of fractal calculation.
In fact, they only support Mandelbrot Escape Time and Julia Escape Time calculations in the current release.
The Julia Escape Time calculation assigns a integer value labelled JuliaEscapeTime(x, y) to each point in the (x, y) plane, where x and y are real numbers.
Consider the sequence of complex values Z with sequence index n:
- Z(n+1) = Z(n)*Z(n) + C where Z(0) == (x, y) and C == a fixed point in Mandelbrot space.
The cartesian magnitude of Z(n) which we designate as |Z(n)| is calculated iteratively for values of n = 1, 2, 3, .. MaxIterations:
- If on the q'th iteration we find that |Z(q)| > Escape Radius, then we assign q to JuliaEscapeTime(x, y), which completes the calculation of JuliaEscapeTime(x, y) .
- If |Z(n)| <= Escape Radius for all n in the range 1..MaxIterations, then JuliaEscapeTime(x, y) is assigned MaxIterations .
Note that the vector (x, y) can be regarded as identical to the complex scalar (x + yi). This transformation is useful when calculating Z(n)*Z(n).
Z(0) == (x, y) varies from (Left X, Bottom Y) to (Left X +Fractal Range, Bottom Y + Fractal Range).
Each pixel in a calculated frame has an associated JuliaEscapeTime which = JuliaEscapeTime(x, y) where (x, y) is the location in Julia space corresponding to the pixel.
Note that the Julia Escape Time and the Mandelbrot Escape Time calculations use the same Z(n) equation.
However, the Mandelbrot calculations hold the Z(0) term constant at (0,0) and vary the C term over a range of (x, y) values.
In contrast, the Julia calculations hold the C term constant and vary the Z(0) term over a range of (x, y) values.
The lower left pixel in the zoom level 0 frame corresponds to (Left X, Bottom Y) in Julia space.
The zoom level 0 frame is 1000 pixels wide and high, and it corresponds to the full Fractal Range.
Adjacent pixels in the zoom level 0 frame correspond to locations in the (x, y) plane that differ by (Fractal Range)/1000 .
Adjacent pixels in the zoom level 1 frames correspond to points in the (x, y) plane that differ by (Fractal Range)/2000.
The canonical value that is usually used for Escape Radius is 2.0, but the Factory lets you set it to values ranging from 2.0 to 1000.0 .
The Factory allows you to set MaxIterations to values ranging from 1 to 65000.