Class: Triangle
Instance Attribute Summary collapse
-
#base ⇒ Object
readonly
Returns the value of attribute base.
-
#height ⇒ Object
readonly
Returns the value of attribute height.
Attributes inherited from Polygon
Instance Method Summary collapse
- #_sides ⇒ Object
- #area ⇒ Object
- #diagram ⇒ Object
- #equilateral? ⇒ Boolean
-
#initialize(s1, s2, s3, arg = Hash.new) ⇒ Triangle
constructor
A new instance of Triangle.
- #isosceles? ⇒ Boolean
- #scalene? ⇒ Boolean
Methods inherited from Polygon
Constructor Details
#initialize(s1, s2, s3, arg = Hash.new) ⇒ Triangle
Returns a new instance of Triangle.
53 |
# File 'lib/shapedoc.rb', line 53 def initialize(s1, s2, s3, arg = Hash.new); @base, @height, @sides = arg[:base], arg[:height], [s1, s2, s3]; end |
Instance Attribute Details
#base ⇒ Object (readonly)
Returns the value of attribute base.
52 53 54 |
# File 'lib/shapedoc.rb', line 52 def base @base end |
#height ⇒ Object (readonly)
Returns the value of attribute height.
52 53 54 |
# File 'lib/shapedoc.rb', line 52 def height @height end |
Instance Method Details
#_sides ⇒ Object
51 |
# File 'lib/shapedoc.rb', line 51 def _sides; 3; end |
#area ⇒ Object
54 |
# File 'lib/shapedoc.rb', line 54 def area; (@base*@height)/2; end |
#diagram ⇒ Object
55 56 57 58 |
# File 'lib/shapedoc.rb', line 55 def diagram if self.equilateral?; "\u25b3" else; "\u22bf"; end end |
#equilateral? ⇒ Boolean
59 60 61 62 63 64 65 66 |
# File 'lib/shapedoc.rb', line 59 def equilateral? s, eq = @sides[1], true for side in @sides eq = false unless side == s s = side end return eq end |
#isosceles? ⇒ Boolean
67 68 69 70 71 72 73 74 |
# File 'lib/shapedoc.rb', line 67 def isosceles? unless self.equilateral? if (@sides[0] == @sides[1] && @sides[0] != @sides[2]) || (@sides[0] != @sides[1] && @sides[0] == @sides[2]); return true else return false end else; return false end end |
#scalene? ⇒ Boolean
75 76 77 |
# File 'lib/shapedoc.rb', line 75 def scalene? true unless self.equilateral? || self.isosceles? end |