From d00042eb7ed42cafbf6cab3cf206213b3e8709cf Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Tue, 28 Oct 2014 00:22:25 -0400 Subject: make the viewport range variable --- src/fractal.jl | 10 ++++++---- src/renderer.jl | 8 ++++---- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/fractal.jl b/src/fractal.jl index 67c8205..1912d40 100644 --- a/src/fractal.jl +++ b/src/fractal.jl @@ -5,17 +5,19 @@ type Fractal{T <: FloatingPoint} function Fractal( imgsize::(Integer, Integer), + range::(T, T, T, T), make_c::Function, step::Function ) + (ul_x, ul_y, width, height) = range (size_x, size_y) = imgsize aspect_ratio = size_y / size_x if size_x < size_y - range_x = (-2.0, 2.0) - range_y = (-2.0 * aspect_ratio, 2.0 * aspect_ratio) + range_x = (ul_x, ul_x + width) + range_y = (ul_y, ul_y + height * aspect_ratio) else - range_x = (-2.0 / aspect_ratio, 2.0 / aspect_ratio) - range_y = (-2.0, 2.0) + range_x = (ul_x, ul_x + width / aspect_ratio) + range_y = (ul_y, ul_y + height) end line_x = linspace(range_x[1], range_x[2], size_x) line_y = linspace(range_y[1], range_y[2], size_y) diff --git a/src/renderer.jl b/src/renderer.jl index ef72b72..1842dbb 100644 --- a/src/renderer.jl +++ b/src/renderer.jl @@ -8,9 +8,9 @@ type FractalCanvas f::FractalExplorer.Fractal image::Array{HSV{Float64}, 2} - function FractalCanvas(c::Canvas, make_c::Function, step::Function) + function FractalCanvas(c::Canvas, range::(Float64, Float64, Float64, Float64), make_c::Function, step::Function) winsize = tuple(get_size(c)...) - f = FractalExplorer.Fractal{Float64}(winsize, make_c, step) + f = FractalExplorer.Fractal{Float64}(winsize, range, make_c, step) image = [ HSV(0, 0, 0) for y=1:winsize[2], x=1:winsize[1] ] fc = new(c, f, image) c.draw = function(x) @@ -39,8 +39,8 @@ end fractal(make_c, step) = fractal(createwindow(), make_c, step) fractal(fc::FractalCanvas, make_c, step) = fractal(fc.c, make_c, step) -function fractal(canvas::Canvas, make_c::Function, step::Function, should_wait=!isinteractive()) - fc = FractalCanvas(canvas, make_c, step) +function fractal(canvas::Canvas, make_c::Function, step::Function, should_wait=!isinteractive(), range=(-2.0, -2.0, 4.0, 4.0)) + fc = FractalCanvas(canvas, range, make_c, step) i = 0 while true -- cgit v1.2.3