normalizePositive static method
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;
}