From f5e418897ab4c1e755d84a8281681b702dec80f9 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Tue, 28 Oct 2014 02:08:19 -0400 Subject: there's already a type for this --- src/fractal.jl | 11 +++++------ src/renderer.jl | 8 ++++---- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/src/fractal.jl b/src/fractal.jl index 1912d40..f2a9bec 100644 --- a/src/fractal.jl +++ b/src/fractal.jl @@ -5,19 +5,18 @@ type Fractal{T <: FloatingPoint} function Fractal( imgsize::(Integer, Integer), - range::(T, T, T, T), + bb::Base.Graphics.BoundingBox, 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 = (ul_x, ul_x + width) - range_y = (ul_y, ul_y + height * aspect_ratio) + range_x = (bb.xmin, bb.xmax) + range_y = (bb.ymin, bb.ymin + (bb.ymax - bb.ymin) * aspect_ratio) else - range_x = (ul_x, ul_x + width / aspect_ratio) - range_y = (ul_y, ul_y + height) + range_x = (bb.xmin, bb.xmin + (bb.xmax - bb.xmin) / aspect_ratio) + range_y = (bb.ymin, bb.ymax) 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 66dc943..c9290fa 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, range::(Float64, Float64, Float64, Float64), make_c::Function, step::Function) + function FractalCanvas(c::Canvas, bb::Base.Graphics.BoundingBox, make_c::Function, step::Function) winsize = tuple(get_size(c)...) - f = FractalExplorer.Fractal{Float64}(winsize, range, make_c, step) + f = FractalExplorer.Fractal{Float64}(winsize, bb, 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(), range=(-2.0, -2.0, 4.0, 4.0)) - fc = FractalCanvas(canvas, range, make_c, step) +function fractal(canvas::Canvas, make_c::Function, step::Function, should_wait=!isinteractive(), bb=Base.Graphics.BoundingBox(-2.0, 2.0, -2.0, 2.0)) + fc = FractalCanvas(canvas, bb, make_c, step) saw_some_pixels = false for i in 1:1000 -- cgit v1.2.3