summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2014-10-28 00:22:25 -0400
committerJesse Luehrs <doy@tozt.net>2014-10-28 00:22:25 -0400
commitd00042eb7ed42cafbf6cab3cf206213b3e8709cf (patch)
treeffce3f69b10a185974930b7b807b4e44b3bbad45
parent3c21b956700416556a483d083048dfae4bc339d8 (diff)
downloadjulia-fractals-d00042eb7ed42cafbf6cab3cf206213b3e8709cf.tar.gz
julia-fractals-d00042eb7ed42cafbf6cab3cf206213b3e8709cf.zip
make the viewport range variable
-rw-r--r--src/fractal.jl10
-rw-r--r--src/renderer.jl8
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