robocode.util
Class Utils
Utility class that provide methods for normalizing angles.
- Mathew A. Nelson (original)
- Flemming N. Larsen (contributor)
NEAR_DELTA
public static final double NEAR_DELTA
getRandom
public static Random getRandom()
Returns random number generator. It might be configured for repeatable behavior by setting -DRANDOMSEED option.
isNear
public static boolean isNear(double value1,
double value2)
Tests if the two double
values are near to each other.
It is recommended to use this method instead of testing if the two
doubles are equal using an this expression: value1 == value2
.
The reason being, that this expression might never become
true
due to the precision of double values.
Whether or not the specified doubles are near to each other is defined by
the following expression:
(Math.abs(value1 - value2) < .00001)
value1
- the first double valuevalue2
- the second double value
true
if the two doubles are near to each other;
false
otherwise.
normalAbsoluteAngle
public static double normalAbsoluteAngle(double angle)
Normalizes an angle to an absolute angle.
The normalized angle will be in the range from 0 to 2*PI, where 2*PI
itself is not included.
angle
- the angle to normalize
- the normalized angle that will be in the range of [0,2*PI[
normalAbsoluteAngleDegrees
public static double normalAbsoluteAngleDegrees(double angle)
Normalizes an angle to an absolute angle.
The normalized angle will be in the range from 0 to 360, where 360
itself is not included.
angle
- the angle to normalize
- the normalized angle that will be in the range of [0,360[
normalNearAbsoluteAngle
public static double normalNearAbsoluteAngle(double angle)
Normalizes an angle to be near an absolute angle.
The normalized angle will be in the range from 0 to 2*PI, where 2*PI
itself is not included.
If the normalized angle is near to 0, PI/2, PI, 3*PI/2 or 2*PI, that
angle will be returned. The
isNear
method is used for defining when the angle is near one of angles listed
above.
angle
- the angle to normalize
- the normalized angle that will be in the range of [0,2*PI[
normalNearAbsoluteAngleDegrees
public static double normalNearAbsoluteAngleDegrees(double angle)
Normalizes an angle to be near an absolute angle.
The normalized angle will be in the range from 0 to 360, where 360
itself is not included.
If the normalized angle is near to 0, 90, 180, 270 or 360, that
angle will be returned. The
isNear
method is used for defining when the angle is near one of angles listed
above.
angle
- the angle to normalize
- the normalized angle that will be in the range of [0,360[
normalRelativeAngle
public static double normalRelativeAngle(double angle)
Normalizes an angle to a relative angle.
The normalized angle will be in the range from -PI to PI, where PI
itself is not included.
angle
- the angle to normalize
- the normalized angle that will be in the range of [-PI,PI[
normalRelativeAngleDegrees
public static double normalRelativeAngleDegrees(double angle)
Normalizes an angle to a relative angle.
The normalized angle will be in the range from -180 to 180, where 180
itself is not included.
angle
- the angle to normalize
- the normalized angle that will be in the range of [-180,180[