Class: Sevgi::Geometry::Parm
- Inherits:
-
Object
- Object
- Sevgi::Geometry::Parm
- Defined in:
- lib/sevgi/geometry/elements/parm.rb
Class Method Summary collapse
- .[](horizontal, vertical, position: Origin) ⇒ Object
- .new_by_height(horizontal:, tallness:, position: Origin) ⇒ Object
- .new_by_width(vertical:, wideness:, position: Origin) ⇒ Object
Class Method Details
.[](horizontal, vertical, position: Origin) ⇒ Object
8 9 10 11 12 |
# File 'lib/sevgi/geometry/elements/parm.rb', line 8 def self.[](horizontal, vertical, position: Origin) horizontal, vertical = Tuples[Segment, horizontal, vertical] new_by_segments(horizontal, vertical.reverse, horizontal.reverse, vertical, position:) end |
.new_by_height(horizontal:, tallness:, position: Origin) ⇒ Object
14 15 16 17 18 19 20 21 22 23 |
# File 'lib/sevgi/geometry/elements/parm.rb', line 14 def self.new_by_height(horizontal:, tallness:, position: Origin) horizontal = Tuple[Segment, horizontal] tallness = Tuple[LengthAngle, tallness] height = tallness.length - horizontal.ly angle = tallness.angle length = height / F.sin(angle) self[horizontal, Segment[length, angle], position:] end |
.new_by_width(vertical:, wideness:, position: Origin) ⇒ Object
25 26 27 28 29 30 31 32 33 34 |
# File 'lib/sevgi/geometry/elements/parm.rb', line 25 def self.new_by_width(vertical:, wideness:, position: Origin) vertical = Tuple[Segment, vertical] wideness = Tuple[LengthAngle, wideness] width = wideness.length - vertical.lx angle = wideness.angle length = width / F.cos(angle) self[Segment[length, angle], vertical, position:] end |