Sha256: c74726aa576a603da96e7de147478a5581a3cb77427c426b1427122bf663b8a8

Contents?: true

Size: 558 Bytes

Versions: 22

Compression:

Stored size: 558 Bytes

Contents

#!/usr/bin/env ruby
require("gsl")
require("nimage")

def mandel(w, h)
  zoom = 3.5
  z = (GSL::Matrix::Complex[w, 1].indgen!/w - 0.65)*zoom + (GSL::Matrix::Complex[1, h].indgen!/h - 0.5)*zoom*GSL::Complex[0, 1]
  c = z.clone
  a = GSL::Vector::Int[w, h]
  idx = GSL::Vector::Int[h, w].indgen!

  for i in 1..30
    z = z*z + c
    idx_t,idx_f = (z.abs>2).where2
    a[idx[idx_t]] = i
    break if idx_f.size==0
    idx = idx[idx_f]
    z = z[idx_f]
    c = c[idx_f]
  end
  a
end

NImage.show mandel(400,400).to_na_ref

print "Hit return key..."
STDIN.getc

Version data entries

22 entries across 22 versions & 4 rubygems

Version Path
gsl-2.1.0.3 examples/narray/mandel.rb
gsl-2.1.0.2 examples/narray/mandel.rb
gsl-2.1.0.1 examples/narray/mandel.rb
gsl-2.1.0 examples/narray/mandel.rb
gsl-1.16.0.6 examples/narray/mandel.rb
rb-gsl-1.16.0.5 examples/narray/mandel.rb
rb-gsl-1.16.0.4 examples/narray/mandel.rb
rb-gsl-1.16.0.3 examples/narray/mandel.rb
rb-gsl-1.16.0.3.rc1 examples/narray/mandel.rb
gsl-nmatrix-1.15.3.2 examples/narray/mandel.rb
gsl-nmatrix-1.15.3.1 examples/narray/mandel.rb
rb-gsl-1.16.0.2 examples/narray/mandel.rb
rb-gsl-1.16.0.1 examples/narray/mandel.rb
rb-gsl-1.16.0 examples/narray/mandel.rb
rb-gsl-1.15.3.2 examples/narray/mandel.rb
rb-gsl-1.15.3.1 examples/narray/mandel.rb
blackwinter-gsl-1.15.3.2 examples/narray/mandel.rb
gsl-nmatrix-1.15.3.0 examples/narray/mandel.rb
gsl-1.15.3 examples/narray/mandel.rb
gsl-1.14.7 examples/narray/mandel.rb