Class Angle

All Implemented Interfaces:
Serializable, Comparable<Angle>, Additive<Angle>, Scalable<Angle>, Value<Angle.Unit,Angle>

public class Angle extends Quantity<Angle,Angle.Unit>
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:
  • Field Details

    • ZERO

      public static final Angle ZERO
      Constant with value zero radians.
    • PI

      public static final Angle PI
      Constant with value pi radians.
    • HALF_PI

      public static final Angle HALF_PI
      Constant with value pi/2 radians.
    • TWO_PI

      public static final Angle TWO_PI
      Constant with value 2 pi radians.
    • TAU

      public static final Angle TAU
      Constant with value tau radians.
    • ONE

      public static final Angle ONE
      Constant with value one radian.
    • NaN

      public static final Angle NaN
      Constant with value NaN.
    • POSITIVE_INFINITY

      public static final Angle POSITIVE_INFINITY
      Constant with value POSITIVE_INFINITY.
    • NEGATIVE_INFINITY

      public static final Angle NEGATIVE_INFINITY
      Constant with value NEGATIVE_INFINITY.
    • POS_MAXVALUE

      public static final Angle POS_MAXVALUE
      Constant with value MAX_VALUE.
    • NEG_MAXVALUE

      public static final Angle NEG_MAXVALUE
      Constant with value -MAX_VALUE.
  • Constructor Details

    • Angle

      public Angle(double value, Angle.Unit unit)
      Instantiate a Angle quantity with a unit.
      Parameters:
      value - the value, expressed in the unit
      unit - the unit in which the value is expressed
    • Angle

      public Angle(double value, String abbreviation)
      Instantiate a Angle quantity with a unit, expressed as a String.
      Parameters:
      value - the value, expressed in the unit
      abbreviation - the String abbreviation of the unit in which the value is expressed
    • Angle

      public Angle(Angle value)
      Construct Angle quantity.
      Parameters:
      value - Scalar from which to construct this instance
  • Method Details

    • ofSi

      public static Angle ofSi(double si)
      Return a Angle instance based on an SI value.
      Parameters:
      si - the si value
      Returns:
      the Angle instance based on an SI value
    • instantiate

      public Angle instantiate(double si)
      Description copied from class: Quantity
      Instantiate a quantity with an SI or base value.
      Specified by:
      instantiate in class Quantity<Angle,Angle.Unit>
      Parameters:
      si - the value expressed in the base (SI) unit
      Returns:
      a quantity with the given SI-value and base (SI) unit
    • siUnit

      public SIUnit siUnit()
      Description copied from class: Quantity
      Return the SI unit of this quantity.
      Overrides:
      siUnit in class Quantity<Angle,Angle.Unit>
      Returns:
      the SI unit of this quantity
    • valueOf

      public static Angle valueOf(String text)
      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 parsed
      NullPointerException - when the text argument is null
    • of

      public static Angle of(double value, String unitString)
      Returns a Angle based on a value and the textual representation of the unit, which can be localized.
      Parameters:
      value - the value to use
      unitString - 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 incorrect
      NullPointerException - when the unitString argument is null
    • add

      public final Direction add(Direction direction)
      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

      public final Dimensionless divide(Angle v)
      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

      public final AngularVelocity multiply(Frequency v)
      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

      public final AngularVelocity divide(Duration v)
      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

      public final Duration divide(AngularVelocity v)
      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

      public static Angle normalize(Angle angle)
      Normalize an angle between 0 and 2 * PI.
      Parameters:
      angle - original angle.
      Returns:
      a new Angle object with angle between 0 and 2 * PI.