Advertisement
Guest User

Untitled

a guest
Nov 21st, 2015
37
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.31 KB | None | 0 0
  1. ---------------------------------------------------------------------------------------------------
  2. -- this function rotates a given array of Points using an origin
  3. -- @param:
  4. --      zPoints: Points (array of ZonePoints)
  5. --      origin: Point
  6. --      alpha: float (degree: 0° - 359°)
  7. -- @return
  8. --      zPoints: Points (array of ZonePoints)
  9. function rotateZone(zPoints, origin, alpha)
  10.  
  11.     local index
  12.     local value
  13.     local newBearing = 0
  14.     local bearing
  15.     local distance
  16.  
  17.     alpha = math.fmod(math.floor(alpha), 360)
  18.  
  19.     if alpha == 0 then
  20.         return zPoints
  21.     end
  22.  
  23.     for index, value in pairs(zPoints) do
  24.         -- Calculate distance and bearing between origin and point of zone
  25.         distance, bearing = VectorToPointSafeToUseOniPhone(origin, zPoints[index])
  26.  
  27.         -- calculate new bearing
  28.         if bearing + alpha >= 360 then
  29.             newBearing = bearing + alpha - 360
  30.         elseif bearing + alpha < 0 then
  31.             newBearing = bearing + alpha + 360
  32.         else
  33.             newBearing = bearing + alpha
  34.         end
  35.  
  36.         --set new lat and long value
  37.         zPoints[index] = Wherigo.TranslatePoint(origin, distance, newBearing)
  38.     end
  39.  
  40.     return zPoints
  41. end
  42. ---------------------------------------------------------------------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement