class Point

Attributes

coordinates[R]

Public Class Methods

new(coordinates) click to toggle source
# File lib/point.rb, line 4
def initialize(coordinates)
  @coordinates = coordinates
end

Public Instance Methods

+(vector) click to toggle source
# File lib/point.rb, line 12
def +(vector)
  if vector.dimension != dimension
    raise Newtonian::DimensionError
  end

  Vector.new(coordinates.zip(vector.components).map {|(vi,wi)| vi+wi })
end
-(point) click to toggle source
# File lib/point.rb, line 20
def -(point)
  if point.dimension != dimension
    raise Newtonian::DimensionError
  end

  diffs = coordinates.zip(point.coordinates).map {|(ui,vi)| ui-vi }
  ::Vector.new(diffs)
end
dimension() click to toggle source
# File lib/point.rb, line 8
def dimension
  coordinates.length
end
distance(point) click to toggle source
# File lib/point.rb, line 29
def distance(point)
  if point.dimension != dimension
    raise Newtonian::DimensionError
  end

  (self - point).norm
end