normalizePositive static method

double normalizePositive(
  1. double angle
)

Computes the normalized positive value of an angle, which is the equivalent angle in the range [ 0, 2*Pi ). E.g.:

  • normalizePositive(0.0) = 0.0
  • normalizePositive(-PI) = PI
  • normalizePositive(-2PI) = 0.0
  • normalizePositive(-3PI) = PI
  • normalizePositive(-4PI) = 0
  • normalizePositive(PI) = PI
  • normalizePositive(2PI) = 0.0
  • normalizePositive(3PI) = PI
  • normalizePositive(4PI) = 0.0

@param angle the angle to normalize, in radians @return an equivalent positive angle

Implementation

static double normalizePositive(double angle) {
  if (angle < 0.0) {
    while (angle < 0.0) angle += PI_TIMES_2;
    // in case round-off error bumps the value over
    if (angle >= PI_TIMES_2) angle = 0.0;
  } else {
    while (angle >= PI_TIMES_2) angle -= PI_TIMES_2;
    // in case round-off error bumps the value under
    if (angle < 0.0) angle = 0.0;
  }
  return angle;
}