mandelbrot.jl 860 B

123456789101112131415161718192021222324252627282930
  1. function mandelbrotjl(pixels ::Matrix{Int64}, centerr ::Float64, centeri ::Float64)
  2. height,width = size(pixels)
  3. zoom = width * 0.25296875
  4. val_diverge = 2.0
  5. max_iterations = (width/2) * 0.049715909 * log10(zoom);
  6. for y = 1:height
  7. for x = 1:width
  8. cr = centerr + (x - (width / 2))/zoom
  9. zr = cr
  10. ci = centeri + (y - (height / 2))/zoom
  11. zi = ci
  12. n = 0
  13. while ((n < max_iterations) && (zr*zr + zi*zi < val_diverge*val_diverge))
  14. tmp = zr*zr - zi*zi + cr
  15. zi = 2*zr*zi + ci
  16. zr = tmp
  17. n = n+1
  18. end
  19. if (n < max_iterations)
  20. pixels[y,x] = round(255 * n / max_iterations)
  21. else
  22. pixels[y,x] = 0
  23. end
  24. end
  25. end
  26. end