class Silicium::Geometry::Rectangle

TODO: Add a description

Public Class Methods

new(p1, p2, p3, p4) click to toggle source
# File lib/geometry/figure.rb, line 38
def initialize(p1, p2, p3, p4)
  raise ArgumentError, 'This is not a rectangle.' unless valid?(p1, p2, p3, p4)

  @side1 = distance_point_to_point2d(p1, p2)
  @side2 = distance_point_to_point2d(p2, p3)
  @side3 = distance_point_to_point2d(p3, p4)
  @side4 = distance_point_to_point2d(p4, p1)
end

Public Instance Methods

area() click to toggle source
# File lib/geometry/figure.rb, line 57
def area
  @side1 * @side2
end
perimeter() click to toggle source
# File lib/geometry/figure.rb, line 53
def perimeter
  @side1 + @side2 + @side3 + @side4
end
valid?(p1, p2, p3, p4) click to toggle source

Checks if input points form rectangle

# File lib/geometry/figure.rb, line 49
def valid?(p1, p2, p3, p4)
  distance_point_to_point2d(p1, p3) == distance_point_to_point2d(p2, p4)
end