public class Julia extends Fractal { double core_RE; double core_IM; public Julia() { super(); core_RE = 0.353; core_IM = 0.288; } public void setCore(double re, double im) { core_RE = re; core_IM = im; } public void render() { loadPixels(); // iterations int n = 0; for (int y = 0; y < height; y++) { double c_IM = max_IM - y * step_IM; for (int x = 0; x < width; x++) { double c_RE = min_RE + x * step_RE; double z_RE = c_RE; double z_IM = c_IM; boolean isInside = true; for (n = 0; n < maxIterations; n++) { double z_RE2 = z_RE * z_RE; double z_IM2 = z_IM * z_IM; if (z_RE2 + z_IM2 > 4) { isInside = false; break; } z_IM = 2 * z_RE * z_IM + core_IM; z_RE = z_RE2 - z_IM2 + core_RE; } if (isInside) { pixels[x + y * width] = inColor.getColor(); } else { int mi = maxIterations / 2; ColorRGB c; if (n < mi) { c = outColor.blendColor(outColor, midColor, 0, mi - 1, n); } else { c = midColor.blendColor(midColor, edgeColor, mi, maxIterations, n); } pixels[x + y * width] = c.getColor(); } } } updatePixels(); } }