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.
54 |
# File 'lib/shapedoc.rb', line 54 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.
53 54 55 |
# File 'lib/shapedoc.rb', line 53 def base @base end |
#height ⇒ Object (readonly)
Returns the value of attribute height.
53 54 55 |
# File 'lib/shapedoc.rb', line 53 def height @height end |
Instance Method Details
#_sides ⇒ Object
52 |
# File 'lib/shapedoc.rb', line 52 def _sides; 3; end |
#area ⇒ Object
55 |
# File 'lib/shapedoc.rb', line 55 def area; (@base*@height)/2; end |
#diagram ⇒ Object
56 57 58 59 |
# File 'lib/shapedoc.rb', line 56 def diagram if self.equilateral?; "\u25b3" else; "\u22bf"; end end |
#equilateral? ⇒ Boolean
60 61 62 63 64 65 66 67 |
# File 'lib/shapedoc.rb', line 60 def equilateral? s, eq = @sides[1], true for side in @sides eq = false unless side == s s = side end return eq end |
#isosceles? ⇒ Boolean
68 69 70 71 72 73 74 75 |
# File 'lib/shapedoc.rb', line 68 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
76 77 78 |
# File 'lib/shapedoc.rb', line 76 def scalene? true unless self.equilateral? || self.isosceles? end |