diff options
Diffstat (limited to 'src/fractal.jl')
-rw-r--r-- | src/fractal.jl | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/src/fractal.jl b/src/fractal.jl index f2a9bec..1819df4 100644 --- a/src/fractal.jl +++ b/src/fractal.jl @@ -2,6 +2,7 @@ type Fractal{T <: FloatingPoint} z::Array{Complex{T}, 2} c::Array{Complex{T}, 2} step::Function + bb::Base.Graphics.BoundingBox function Fractal( imgsize::(Integer, Integer), @@ -12,20 +13,24 @@ type Fractal{T <: FloatingPoint} (size_x, size_y) = imgsize aspect_ratio = size_y / size_x if size_x < size_y - range_x = (bb.xmin, bb.xmax) - range_y = (bb.ymin, bb.ymin + (bb.ymax - bb.ymin) * aspect_ratio) + scaled_bb = Base.Graphics.BoundingBox( + bb.xmin, bb.xmax, + bb.ymin, bb.ymin + (bb.ymax - bb.ymin) * aspect_ratio + ) else - range_x = (bb.xmin, bb.xmin + (bb.xmax - bb.xmin) / aspect_ratio) - range_y = (bb.ymin, bb.ymax) + scaled_bb = Base.Graphics.BoundingBox( + bb.xmin, bb.xmin + (bb.xmax - bb.xmin) / aspect_ratio, + 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) + line_x = linspace(scaled_bb.xmin, scaled_bb.xmax, size_x) + line_y = linspace(scaled_bb.ymin, scaled_bb.ymax, size_y) plane = [ complex(x, y) for y=line_y, x=line_x ] c = make_c(plane) if !isa(c, Array) c = ones(plane) .* c end - new(plane, c, step) + new(plane, c, step, scaled_bb) end end |