Class: Sevgi::Geometry::Line

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/sevgi/geometry/equation.rb,
lib/sevgi/geometry/elements/line.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.[](length, angle, position: Origin) ⇒ Object



8
# File 'lib/sevgi/geometry/elements/line.rb', line 8

def self.[](length, angle, position: Origin) = new_by_segments(Segment[length, angle], position:)

Instance Method Details

#draw!(node) ⇒ Object



22
# File 'lib/sevgi/geometry/elements/line.rb', line 22

def draw!(node, **) = node.Cline(x1: position.x, y1: position.y, x2: ending.x, y2: ending.y, **)

#equationObject



67
# File 'lib/sevgi/geometry/equation.rb', line 67

def equation = position.equation(angle)

#over?(point) ⇒ Boolean

TODO: xxx

Returns:

  • (Boolean)


25
# File 'lib/sevgi/geometry/elements/line.rb', line 25

def over?(point) = within_range?(point) && equation.on?(point)

#shift(distance) ⇒ Object



27
# File 'lib/sevgi/geometry/elements/line.rb', line 27

def shift(distance) = translate(distance * F.sin(angle), distance * F.cos(angle))