Advertisement
Janne252

Untitled

Oct 24th, 2016
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.     Math.rotateTowards = function(source, target, step)
  2.     {      
  3.        var diff = Math.abs(source - target);
  4.  
  5.        var result = source;
  6.  
  7.        if(diff < Math.PI && target > source)
  8.        {
  9.            result = source + step;
  10.        }
  11.        else if(diff < Math.PI && target < source)
  12.        {
  13.            result = source - step;
  14.        }    
  15.        else if(diff > Math.PI && target > source)
  16.        {
  17.            result = source - step;
  18.        }
  19.        else if(diff > Math.PI && target < source)
  20.        {
  21.            result = source + step;
  22.        }
  23.        else if(diff == Math.PI)
  24.        {
  25.            result = source + step;
  26.        }
  27.  
  28.        //Normalize angle
  29.        result = Math.atan2(Math.sin(result), Math.cos(result));
  30.  
  31.        if ((result > target && result - step < target))
  32.        {
  33.            result = target;
  34.        }
  35.        
  36.        return result;
  37.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement