Sha256: 99630680cf3384e264631b15ab2207c97feb7d62d74816d354277a9d47c787d2

Contents?: true

Size: 641 Bytes

Versions: 1

Compression:

Stored size: 641 Bytes

Contents

require_relative "hypersphere.rb"

class Sphere < HyperSphere

  def initialize(radius = 1, center = [0,0,0], pct_error = 1)
    raise "Sphere must be in 3-dimensions" unless center.length == 3
    super(radius, center, pct_error)
  end

  def volume
    Math::PI * (@radius ** 3) * 4.0 / 3.0
  end

  def surface_area
    dim_check(3)
    4.0 * Math::PI * (@radius ** 2)
  end

  def inspect
    "Sphere: #{equation}"
  end

  private

  def close_enough(guess, exact)
    range = Array.new
    range[0] = exact *(100.0 - @pct_error)/100.0
    range[1] = exact * (100.0 + @pct_error)/100.0
    guess.between?(range[0], range[1])
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
zadt-1.1.7 lib/zadt/AbstractDataTypes/Geometrics/sphere.rb