summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2014-10-27 12:35:32 -0400
committerJesse Luehrs <doy@tozt.net>2014-10-27 12:35:32 -0400
commite4a1e61a88a89930971aa59928481e19d02176dc (patch)
treea47beb6ff5c515d031f2aac626672f79c7cfe377
parenta8486d63d6649a7bd9cfabedcf164afa3ccfedd6 (diff)
downloadjulia-fractals-e4a1e61a88a89930971aa59928481e19d02176dc.tar.gz
julia-fractals-e4a1e61a88a89930971aa59928481e19d02176dc.zip
automatically calculate the required number of iterations
-rw-r--r--examples/mandelbrot.jl3
-rw-r--r--src/renderer.jl19
2 files changed, 13 insertions, 9 deletions
diff --git a/examples/mandelbrot.jl b/examples/mandelbrot.jl
index 57637ef..1eb25b0 100644
--- a/examples/mandelbrot.jl
+++ b/examples/mandelbrot.jl
@@ -4,7 +4,6 @@ using Color
using FractalExplorer
-iterations = 45
imgsize = (640, 480)
win = Toplevel("FractalExplorer", imgsize[1], imgsize[2], false)
@@ -15,4 +14,4 @@ pack(canvas, expand=true, fill="both")
set_visible(win, true)
view(canvas, [ 0.0 for y=1:imgsize[2], x=1:imgsize[1] ], interactive=false)
-mandelbrot(canvas, iterations)
+mandelbrot(canvas)
diff --git a/src/renderer.jl b/src/renderer.jl
index 1eb04b2..45261e4 100644
--- a/src/renderer.jl
+++ b/src/renderer.jl
@@ -3,18 +3,23 @@ using Images
using ImageView
using Color
-function fractal(canvas, iterations, make_c, step)
+function fractal(canvas, make_c, step)
imgsize = get_size(canvas)
img = [ HSV(0, 0, 0) for y=1:imgsize[1], x=1:imgsize[2] ]
view(canvas, img, interactive=false)
f = FractalExplorer.Fractal{Float64}(imgsize, make_c, step)
- for i = 1:iterations
+ i = 0
+ while true
FractalExplorer.step(f)
new_pixels = (abs(f.z) .> 2) & (img .== HSV(0, 0, 0))
- img[new_pixels] = HSV(i * 360/iterations, 1, 1)
+ img[new_pixels] = HSV(i * 4, 1, 1)
+ i = i + 1
view(canvas, img, interactive=false)
+ if length(find(new_pixels)) <= 1
+ break
+ end
end
if (!isinteractive())
@@ -25,10 +30,10 @@ function fractal(canvas, iterations, make_c, step)
end
end
-function mandelbrot(canvas, iterations = 45)
- fractal(canvas, iterations, z -> z, (z, c) -> z.^2 + c)
+function mandelbrot(canvas)
+ fractal(canvas, z -> z, (z, c) -> z.^2 + c)
end
-function julia(canvas, iterations = 45, c = 0)
- fractal(canvas, iterations, z -> c, (z, c) -> z.^2 + c)
+function julia(canvas, c = 0)
+ fractal(canvas, z -> c, (z, c) -> z.^2 + c)
end