Method: Quant::Mixins::Functions#angle
- Defined in:
- lib/quant/mixins/functions.rb
#angle(line1, line2) ⇒ Object
d = dx1*dx2 + dy1*dy2; // dot product of the 2 vectors l2 = (dx1*dx1+dy1*dy1)*(dx2*dx2+dy2*dy2) // product of the squared lengths
44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/quant/mixins/functions.rb', line 44 def angle(line1, line2) dx1 = line2[0][0] - line1[0][0] dy1 = line2[0][1] - line1[0][1] dx2 = line2[1][0] - line1[1][0] dy2 = line2[1][1] - line1[1][1] d = dx1 * dx2 + dy1 * dy2 l2 = ((dx1**2 + dy1**2) * (dx2**2 + dy2**2)) radians = d.to_f / Math.sqrt(l2) value = rad2deg Math.acos(radians) value.nan? ? 0.0 : value end |