class GeometricVector

Public Class Methods

new_by_array(array) click to toggle source
# File lib/flash_math/modules/geometry/geometric_vector.rb, line 3
def self.new_by_array(array)
  self.new(array[0], array[1])
end

Public Instance Methods

*(scalar) click to toggle source
# File lib/flash_math/modules/geometry/geometric_vector.rb, line 19
def *(scalar)
  GeometricVector.new(x * scalar, y * scalar)
end
+(vector) click to toggle source
# File lib/flash_math/modules/geometry/geometric_vector.rb, line 11
def +(vector)
  GeometricVector.new(x + vector.x, y + vector.y)
end
-(vector) click to toggle source
# File lib/flash_math/modules/geometry/geometric_vector.rb, line 15
def -(vector)
  self + (-1) * vector
end
==(vector) click to toggle source
# File lib/flash_math/modules/geometry/geometric_vector.rb, line 7
def ==(vector)
  x === vector.x && y === vector.y
end
coerce(scalar) click to toggle source
# File lib/flash_math/modules/geometry/geometric_vector.rb, line 23
def coerce(scalar)
  if scalar.is_a?(Numeric)
    [self, scalar]
  else
    raise ArgumentError, "GeometricVector: cannot coerce #{scalar.inspect}"
  end
end
collinear_with?(vector) click to toggle source
# File lib/flash_math/modules/geometry/geometric_vector.rb, line 39
def collinear_with?(vector)
  cross_product(vector) === 0
end
cross_product(vector) click to toggle source
# File lib/flash_math/modules/geometry/geometric_vector.rb, line 31
def cross_product(vector)
  x * vector.y - y * vector.x
end
modulus() click to toggle source
# File lib/flash_math/modules/geometry/geometric_vector.rb, line 43
def modulus
  Math.hypot(x ,y)
end
scalar_product(vector) click to toggle source
# File lib/flash_math/modules/geometry/geometric_vector.rb, line 35
def scalar_product(vector)
  x * vector.x + y * vector.y
end