Module: Sevgi::Function::Formula

Included in:
Sevgi::Function
Defined in:
lib/sevgi/geometry/internal/formula.rb

Instance Method Summary collapse

Instance Method Details

#angler(dx, dy) ⇒ Object



36
# File 'lib/sevgi/geometry/internal/formula.rb', line 36

def angler(dx, dy)                 = atan(dy / dx)

#angles(slope) ⇒ Object



38
# File 'lib/sevgi/geometry/internal/formula.rb', line 38

def angles(slope)                  = atan(slope)

#coangle(angle) ⇒ Object

Y

^
|                                     slope (Y/X)
|                                   .
|                                 .
|                             pb +
|                              . . coangle


34
# File 'lib/sevgi/geometry/internal/formula.rb', line 34

def coangle(angle)                 = 90.0 - angle # complementary angle

#distance(p, q) ⇒ Object



40
# File 'lib/sevgi/geometry/internal/formula.rb', line 40

def distance(p, q)                 = ::Math.sqrt(dxp(p, q)**2 + dyp(p, q)**2)

#dxa(d, angle) ⇒ Object



64
# File 'lib/sevgi/geometry/internal/formula.rb', line 64

def dxa(d, angle)                  = d * cos(angle)

#dxp(pa, pb) ⇒ Object



60
# File 'lib/sevgi/geometry/internal/formula.rb', line 60

def dxp(pa, pb)                    = pb.x - pa.x

#dya(d, angle) ⇒ Object



66
# File 'lib/sevgi/geometry/internal/formula.rb', line 66

def dya(d, angle)                  = d * sin(angle)

#dyp(pa, pb) ⇒ Object



62
# File 'lib/sevgi/geometry/internal/formula.rb', line 62

def dyp(pa, pb)                    = pb.y - pa.y

#height(pa, pb) ⇒ Object



42
# File 'lib/sevgi/geometry/internal/formula.rb', line 42

def height(pa, pb)                 = dyp(pa, pb).abs

#hypothenus(dx, dy) ⇒ Object



44
# File 'lib/sevgi/geometry/internal/formula.rb', line 44

def hypothenus(dx, dy)             = ::Math.sqrt(dx**2 + dy**2)

#intercept(point, angle, slope) ⇒ Object

point is pa or pb



46
# File 'lib/sevgi/geometry/internal/formula.rb', line 46

def intercept(point, angle, slope) = point.y - (slope * point.x) # point is pa or pb

#noangle(angle) ⇒ Object

normal angle



48
# File 'lib/sevgi/geometry/internal/formula.rb', line 48

def noangle(angle)                 = 90.0 + angle # normal angle

#rx(r, angle) ⇒ Object



50
# File 'lib/sevgi/geometry/internal/formula.rb', line 50

def rx(r, angle)                   = r * sin(angle)

#ry(r, angle) ⇒ Object



52
# File 'lib/sevgi/geometry/internal/formula.rb', line 52

def ry(r, angle)                   = r * cos(angle)

#slopea(angle) ⇒ Object



54
# File 'lib/sevgi/geometry/internal/formula.rb', line 54

def slopea(angle)                  = tan(angle)

#sloper(dx, dy) ⇒ Object



56
# File 'lib/sevgi/geometry/internal/formula.rb', line 56

def sloper(dx, dy)                 = dy / dx

#width(pa, pb) ⇒ Object



58
# File 'lib/sevgi/geometry/internal/formula.rb', line 58

def width(pa, pb)                  = dxp(pa, pb).abs