public static PositionF MoveTowards(PositionF current, PositionF target, float maxDistanceDelta) { PositionF positionF = target - current; float magnitude = positionF.Magnitude; if ((double)magnitude <= maxDistanceDelta || magnitude == 0.0) { return(target); } return(current + positionF / magnitude * maxDistanceDelta); }
public static float SqrMagnitude(PositionF a) { return(a.X * a.X + a.Y * a.Y); }