Class: Sevgi::Geometry::Interval

Inherits:
Object
  • Object
show all
Defined in:
lib/sevgi/geometry/sundries/ruler.rb

Overview

<———————————– d = n x u ———————————>

<————–h = d / 2 —————>

|———---------———+———|———---------———+———|

<--- u --->

Direct Known Subclasses

Ruler

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(e, n) ⇒ Interval



17
# File 'lib/sevgi/geometry/sundries/ruler.rb', line 17

def initialize(e, n) = (@u, @n = measure(e), n)

Instance Attribute Details

#nObject (readonly)

Returns the value of attribute n.



15
16
17
# File 'lib/sevgi/geometry/sundries/ruler.rb', line 15

def n
  @n
end

#uObject (readonly)

Returns the value of attribute u.



15
16
17
# File 'lib/sevgi/geometry/sundries/ruler.rb', line 15

def u
  @u
end

Class Method Details

.[](e, n) ⇒ Object



48
# File 'lib/sevgi/geometry/sundries/ruler.rb', line 48

def [](e, n) = new(e, n)

Instance Method Details

#[](i) ⇒ Object



19
# File 'lib/sevgi/geometry/sundries/ruler.rb', line 19

def [](i)            = ds[i]

#count(length) ⇒ Object



21
# File 'lib/sevgi/geometry/sundries/ruler.rb', line 21

def count(length)    = (d / length.to_f).to_i

#dObject Also known as: length



23
# File 'lib/sevgi/geometry/sundries/ruler.rb', line 23

def d                = @d  ||= n * u

#dsObject



25
# File 'lib/sevgi/geometry/sundries/ruler.rb', line 25

def ds               = @ds ||= Array.new(n + 1) { |i| i * u }

#hObject



27
# File 'lib/sevgi/geometry/sundries/ruler.rb', line 27

def h                = @h ||= d / 2.0

#hsObject



29
# File 'lib/sevgi/geometry/sundries/ruler.rb', line 29

def hs               = @hs ||= Array.new(n) { |i| u * (0.5 + i) }

#ndsObject



31
# File 'lib/sevgi/geometry/sundries/ruler.rb', line 31

def nds              = @nds ||= ds.size - 1

#nhsObject



33
# File 'lib/sevgi/geometry/sundries/ruler.rb', line 33

def nhs              = @nhs ||= hs.size - 1