Class: Geometry::Annulus
- Inherits:
- 
      Object
      
        - Object
- Geometry::Annulus
 
- Defined in:
- lib/geometry/annulus.rb
Overview
Instance Attribute Summary collapse
- 
  
    
      #center  ⇒ Point 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    The center point of the Annulus. 
- 
  
    
      #diameter  ⇒ Number 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    The outer diameter. 
- #inner_diameter ⇒ Object
- #inner_radius ⇒ Object
- 
  
    
      #max  ⇒ Point 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    The upper right corner of the bounding Rectangle. 
- 
  
    
      #min  ⇒ Point 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    The lower left corner of the bounding Rectangle. 
- 
  
    
      #minmax  ⇒ Array<Point> 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    The lower left and upper right corners of the bounding Rectangle. 
- #outer_diameter ⇒ Object (also: #diameter)
- #outer_radius ⇒ Object (also: #radius)
- 
  
    
      #radius  ⇒ Number 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    The outer radius. 
Instance Method Summary collapse
- 
  
    
      #initialize(center = Point.zero, **options)  ⇒ Annulus 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    A new instance of Annulus. 
Constructor Details
#initialize(center, : inner_radius, : outer_radius) ⇒ Annulus #initialize(center, : inner_diameter, : outer_diameter) ⇒ Annulus
    Note:
    
  
The ‘center’ argument can also be passed as a named argument of the same name
Returns a new instance of Annulus.
| 58 59 60 61 62 63 64 65 66 67 68 | # File 'lib/geometry/annulus.rb', line 58 def initialize(center = Point.zero, **) @center = Point[.fetch(:center, center)] .delete :center raise ArgumentError, 'Annulus requires more than a center' if .empty? @inner_diameter = [:inner_diameter] @inner_radius = [:inner_radius] @outer_diameter = [:outer_diameter] || [:diameter] @outer_radius = [:outer_radius] || [:radius] end | 
Instance Attribute Details
#center ⇒ Point
Returns The center point of the Geometry::Annulus.
| 14 15 16 | # File 'lib/geometry/annulus.rb', line 14 def center @center end | 
#diameter=(value) ⇒ Number
Returns the outer diameter.
| 42 43 44 | # File 'lib/geometry/annulus.rb', line 42 def outer_diameter @outer_diameter || (@outer_radius && 2*@outer_radius) end | 
#inner_diameter ⇒ Object
| 18 19 20 | # File 'lib/geometry/annulus.rb', line 18 def inner_diameter @inner_diameter || (@inner_radius && 2*@inner_radius) end | 
#inner_radius ⇒ Object
| 24 25 26 | # File 'lib/geometry/annulus.rb', line 24 def inner_radius @inner_radius || (@inner_diameter && @inner_diameter/2) end | 
#max ⇒ Point
Returns The upper right corner of the bounding Rectangle.
| 72 73 74 | # File 'lib/geometry/annulus.rb', line 72 def max @center+radius end | 
#min ⇒ Point
Returns The lower left corner of the bounding Rectangle.
| 78 79 80 | # File 'lib/geometry/annulus.rb', line 78 def min @center-radius end | 
#minmax ⇒ Array<Point>
Returns The lower left and upper right corners of the bounding Rectangle.
| 84 85 86 | # File 'lib/geometry/annulus.rb', line 84 def minmax [self.min, self.max] end | 
#outer_diameter ⇒ Object Also known as: diameter
| 30 31 32 | # File 'lib/geometry/annulus.rb', line 30 def outer_diameter @outer_diameter || (@outer_radius && 2*@outer_radius) end | 
#outer_radius ⇒ Object Also known as: radius
| 36 37 38 | # File 'lib/geometry/annulus.rb', line 36 def outer_radius @outer_radius || (@outer_diameter && @outer_diameter/2) end | 
#radius=(value) ⇒ Number
Returns the outer radius.
| 46 47 48 | # File 'lib/geometry/annulus.rb', line 46 def outer_radius @outer_radius || (@outer_diameter && @outer_diameter/2) end |