Class: Sevgi::Geometry::Tri
- Inherits:
-
Object
- Object
- Sevgi::Geometry::Tri
- 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 |