math.lua 769 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. function math.calcRotateAngle(angle1, angle2)
  2. local d = (angle2 - angle1) % 360
  3. if d > 180 then
  4. d = d - 360
  5. end
  6. return angle1 + d
  7. end
  8. function math.floatEquals(a, b)
  9. return math.abs(a - b) < Mathf.Epsilon
  10. end
  11. function math.sign(a)
  12. if a > 0 then
  13. return 1
  14. elseif a < 0 then
  15. return -1
  16. end
  17. return 0
  18. end
  19. function math.round(a)
  20. return math.floor(a + 0.5)
  21. end
  22. function math.randomFloat(min, max, multiple)
  23. if min > max then
  24. min, max = max, min
  25. end
  26. if multiple == nil then
  27. multiple = 10000
  28. end
  29. local int_min = math.floor(min * multiple)
  30. local int_max = math.ceil(max * multiple)
  31. local random_int = math.random(int_min, int_max)
  32. return random_int / multiple
  33. end