Class: Geometry::Triangle

Inherits:
Object
  • Object
show all
Defined in:
lib/gemometry.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(side1, side2, side3) ⇒ Triangle

Returns a new instance of Triangle.



5
6
7
8
9
# File 'lib/gemometry.rb', line 5

def initialize(side1, side2, side3)
  @sideA = side1.to_f
  @sideB = side2.to_f
  @sideC = side3.to_f
end

Instance Attribute Details

#sideAObject

Returns the value of attribute sideA.



3
4
5
# File 'lib/gemometry.rb', line 3

def sideA
  @sideA
end

#sideBObject

Returns the value of attribute sideB.



3
4
5
# File 'lib/gemometry.rb', line 3

def sideB
  @sideB
end

#sideCObject

Returns the value of attribute sideC.



3
4
5
# File 'lib/gemometry.rb', line 3

def sideC
  @sideC
end

Instance Method Details

#anglesObject



20
21
22
23
24
# File 'lib/gemometry.rb', line 20

def angles 
  [ law_of_cosines(sideA, sideB, sideC),
    law_of_cosines(sideC, sideA, sideB), 
    law_of_cosines(sideB, sideC, sideA) ]
end

#areaObject



15
16
17
18
# File 'lib/gemometry.rb', line 15

def area
  p = self.perimeter / 2
  Math.sqrt(p * (p - @sideA) * (p - @sideB) * (p - @sideC))
end

#perimeterObject



11
12
13
# File 'lib/gemometry.rb', line 11

def perimeter
  @sideA + @sideB + @sideC
end

#valid?Boolean

Returns:

  • (Boolean)


26
27
28
# File 'lib/gemometry.rb', line 26

def valid?
  (sideA < sideB + sideC) && (sideB < sideA + sideC) && (sideC < sideA + sideB)
end