Advertisement
C0BRA

Predictions?

Aug 6th, 2013
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.08 KB | None | 0 0
  1. #!/usr/bin/env lua
  2.  
  3. local g = 9.81 -- fixme
  4.  
  5. local function angle_to_impact(vel, dist, heightdiff)
  6.     local v2 = math.pow(vel, 2)
  7.     local v4 = math.pow(vel, 4)
  8.    
  9.     local sq = math.sqrt(math.abs(v4 - (g * (g*dist*dist + 2 * heightdiff * v2))))
  10.  
  11.     local top = 0
  12.     if v2 - sq < 0 then
  13.         top = v2 + sq
  14.     else
  15.         top = v2 - sq
  16.     end
  17.    
  18.     local bot = g * dist
  19.    
  20.     return math.atan(top / bot) / math.pi * 180
  21. end
  22.  
  23. local function time_to_impact(vel, dist)
  24.     local v2 = math.pow(vel, 2)
  25.     local v4 = math.pow(vel, 4)
  26.    
  27.     local minus = v2 - math.sqrt(vel - 4 * v4 * dist)
  28.     local plus = v2 + math.sqrt(vel - 4 * v4 * dist)
  29.  
  30.     local res
  31.    
  32.     if minus < 0 then
  33.         res = math.sqrt(plus / (2 * v2))
  34.     else
  35.         res = math.sqrt(minus/ (2 * v2))
  36.     end
  37.  
  38.     return res
  39. end
  40.  
  41.  
  42. print "distance = 100m"
  43. print("v0 = 25m/s, ", angle_to_impact(25, 100, 0))
  44. print("v0 = 50m/s, ", angle_to_impact(50, 100, 0))
  45. print("v0 = 75m/s, ", angle_to_impact(75, 100, 0))
  46.  
  47. --kobra@pc:~/Desktop$ ./projectiles.lua
  48. --distance = 100m
  49. --v0 = 25m,     54.614324981375
  50. --v0 = 50m,     11.551958535305
  51. --v0 = 75m,     5.0218718579104
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement