Package org.djunits.quantity
Class Angle
- All Implemented Interfaces:
Serializable,Comparable<Angle>,Additive<Angle>,Scalable<Angle>,Value<Angle>
Angle is the measure of rotation between two intersecting lines, expressed in radians (rad) or degrees.
Copyright (c) 2025-2026 Delft University of Technology, Jaffalaan 5, 2628 BX Delft, the Netherlands. All rights reserved. See for project information https://djunits.org. The DJUNITS project is distributed under a three-clause BSD-style license.
- Author:
- Alexander Verbraeck
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classAngle.Unit encodes the units of angle (radians, degrees). -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final AngleConstant with value pi/2 radians.static final AngleConstant with value NaN.static final AngleConstant with value -MAX_VALUE.static final AngleConstant with value NEGATIVE_INFINITY.static final AngleConstant with value one radian.static final AngleConstant with value pi radians.static final AngleConstant with value MAX_VALUE.static final AngleConstant with value POSITIVE_INFINITY.static final AngleConstant with value tau radians.static final AngleConstant with value 2 pi radians.static final AngleConstant with value zero radians. -
Constructor Summary
ConstructorsConstructorDescriptionAngle(double valueInUnit, Angle.Unit unit) Instantiate a Angle quantity expressed in the given unit.Angle(double value, Angle.Unit displayUnit, boolean useSi) Instantiate a Angle quantity with an SI or base value and a display unit. -
Method Summary
Modifier and TypeMethodDescriptionAdd an (absolute) direction to this angle, and return a direction.Calculate the division of Angle and Angle, which results in a Dimensionless scalar.Calculate the division of Angle and AngularVelocity, which results in a Duration scalar.Calculate the division of Angle and Duration, which results in a AngularVelocity scalar.Retrieve the unit of this Value.instantiateSi(double siValue, UnitInterface<Angle> displayUnit) Instantiate a quantity with an SI or base value, and a display unit.Calculate the multiplication of Angle and Frequency, which results in a AngularVelocity scalar.static doublenormalize(double angle) Normalize an angle between 0 and 2 * PI.static AngleNormalize an angle between 0 and 2 * PI.static AngleReturns a Angle based on a value and the textual representation of the unit, which can be localized.static Angleof(double valueInUnit, Angle.Unit unit) Returns a Angle based on a value expressed in the unit.static AngleofSi(double si) Return a Angle instance based on an SI value.static AngleofSi(double siValue, Angle.Unit displayUnit) Instantiate a Angle quantity with an SI or base value and a display unit.static AngleReturns a Angle representation of a textual representation of a value with a unit.Methods inherited from class org.djunits.quantity.def.Quantity
abs, add, as, compareTo, divide, doubleValue, eq, eq0, equals, floatValue, format, format, format, ge, ge0, getInUnit, getInUnit, getName, gt, gt0, hashCode, instantiate, instantiateSi, interpolate, intValue, isRelative, le, le0, longValue, lt, lt0, max, mean, min, multiply, ne, ne0, negate, of, product, reciprocal, scaleBy, si, siUnit, subtract, sum, toString, valueOfMethods inherited from class java.lang.Number
byteValue, shortValueMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface org.djunits.value.Value
isAbsolute
-
Field Details
-
ZERO
Constant with value zero radians. -
PI
Constant with value pi radians. -
HALF_PI
Constant with value pi/2 radians. -
TWO_PI
Constant with value 2 pi radians. -
TAU
Constant with value tau radians. -
ONE
Constant with value one radian. -
NaN
Constant with value NaN. -
POSITIVE_INFINITY
Constant with value POSITIVE_INFINITY. -
NEGATIVE_INFINITY
Constant with value NEGATIVE_INFINITY. -
POS_MAXVALUE
Constant with value MAX_VALUE. -
NEG_MAXVALUE
Constant with value -MAX_VALUE.
-
-
Constructor Details
-
Angle
Instantiate a Angle quantity with an SI or base value and a display unit.- Parameters:
value- the quantity value expressed in the SI or base unitdisplayUnit- the display unit to useuseSi- use SI value when true, use value in unit when false
-
Angle
Instantiate a Angle quantity expressed in the given unit.- Parameters:
valueInUnit- the quantity value expressed in the given unitunit- the unit of the value, also acts as the display unit
-
-
Method Details
-
ofSi
Return a Angle instance based on an SI value.- Parameters:
si- the si value- Returns:
- the Angle instance based on an SI value
-
ofSi
Instantiate a Angle quantity with an SI or base value and a display unit.- Parameters:
siValue- the quantity value expressed in the SI or base unitdisplayUnit- the display unit to use- Returns:
- the Angle instance based on an SI value with the given display unit
-
instantiateSi
Description copied from class:QuantityInstantiate a quantity with an SI or base value, and a display unit.- Specified by:
instantiateSiin classQuantity<Angle>- Parameters:
siValue- the value expressed in the base (SI) unitdisplayUnit- the display unit to use for the quantity- Returns:
- a quantity with the given SI or base value, and the given display unit
-
valueOf
Returns a Angle representation of a textual representation of a value with a unit. The String representation that can be parsed is the double value in the unit, followed by a localized or English abbreviation of the unit. Spaces are allowed, but not required, between the value and the unit.- Parameters:
text- the textual representation to parse into a Angle- Returns:
- the Scalar representation of the value in its unit
- Throws:
IllegalArgumentException- when the text cannot be parsedNullPointerException- when the text argument is null
-
of
Returns a Angle based on a value expressed in the unit.- Parameters:
valueInUnit- the value, expressed in the given unitunit- the unit of the value, also acts as the display unit- Returns:
- ab Angle representation of the value in its unit
-
of
Returns a Angle based on a value and the textual representation of the unit, which can be localized.- Parameters:
valueInUnit- the value, expressed in the unit as given by unitStringunitString- the textual representation of the unit- Returns:
- the Scalar representation of the value in its unit
- Throws:
IllegalArgumentException- when the unit cannot be parsed or is incorrectNullPointerException- when the unitString argument is null
-
getDisplayUnit
Description copied from interface:ValueRetrieve the unit of this Value.- Specified by:
getDisplayUnitin interfaceValue<Angle>- Overrides:
getDisplayUnitin classQuantity<Angle>- Returns:
- the unit of this Value
-
add
Add an (absolute) direction to this angle, and return a direction. The unit of the return value will be the unit of this angle, and the reference of the return value will be the reference belonging to the given direction.R.add(A)= unit of R and reference value of A.- Parameters:
direction- the absolute direction to add- Returns:
- the absolute direction plus this angle
-
divide
Calculate the division of Angle and Angle, which results in a Dimensionless scalar.- Parameters:
v- scalar- Returns:
- scalar as a division of Angle and Angle
-
multiply
Calculate the multiplication of Angle and Frequency, which results in a AngularVelocity scalar.- Parameters:
v- scalar- Returns:
- scalar as a multiplication of Angle and Frequency
-
divide
Calculate the division of Angle and Duration, which results in a AngularVelocity scalar.- Parameters:
v- scalar- Returns:
- scalar as a division of Angle and Duration
-
divide
Calculate the division of Angle and AngularVelocity, which results in a Duration scalar.- Parameters:
v- scalar- Returns:
- scalar as a division of Angle and AngularVelocity
-
normalize
public static double normalize(double angle) Normalize an angle between 0 and 2 * PI.- Parameters:
angle- original angle.- Returns:
- angle between 0 and 2 * PI.
-
normalize
Normalize an angle between 0 and 2 * PI.- Parameters:
angle- original angle.- Returns:
- a new Angle object with angle between 0 and 2 * PI.
-