Module: Sevgi::Function::Formula
- Included in:
- Sevgi::Function
- Defined in:
- lib/sevgi/geometry/internal/formula.rb
Instance Method Summary collapse
- #angler(dx, dy) ⇒ Object
- #angles(slope) ⇒ Object
-
#coangle(angle) ⇒ Object
Y ^ | slope (Y/X) | .
- #distance(p, q) ⇒ Object
- #dxa(d, angle) ⇒ Object
- #dxp(pa, pb) ⇒ Object
- #dya(d, angle) ⇒ Object
- #dyp(pa, pb) ⇒ Object
- #height(pa, pb) ⇒ Object
- #hypothenus(dx, dy) ⇒ Object
-
#intercept(point, angle, slope) ⇒ Object
point is pa or pb.
-
#noangle(angle) ⇒ Object
normal angle.
- #rx(r, angle) ⇒ Object
- #ry(r, angle) ⇒ Object
- #slopea(angle) ⇒ Object
- #sloper(dx, dy) ⇒ Object
- #width(pa, pb) ⇒ Object
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 |