Class: Sevgi::Geometry::Tri

Inherits:
Object
  • Object
show all
Defined in:
lib/sevgi/geometry/elements/tri.rb

Class Method Summary collapse

Class Method Details

.[](segment_a, segment_b, position: Origin) ⇒ Object



6
7
8
9
10
11
12
13
14
15
# File 'lib/sevgi/geometry/elements/tri.rb', line 6

def self.[](segment_a, segment_b, position: Origin)
  a, b = Tuples[Segment, segment_a, segment_b]

  length = ::Math.sqrt((a.length ** 2) + (b.length ** 2) - (2 * a.length * b.length * F.cos(b.sup - a.angle)))
  angle = b.sup + F.asin(a.length * F.sin(b.sup - a.angle) / length)

  c = Segment[length, angle]

  new_by_segments(a, b, c, position:)
end