Line2D.Float (Java SE 26 & JDK 26)
Description: declaration: module: java.desktop, package: java.awt.geom, class: Line2D, class: Float
Keywords: java.awt.geom.Line2D.Float class

# Class Line2D.Float

java.lang.Object
java.awt.geom.Line2D
java.awt.geom.Line2D.Float

All Implemented Interfaces:
  `Shape, Serializable, Cloneable`

Enclosing class:
  `Line2D`

public static class Line2D.Float extends Line2D implements Serializable
A line segment specified with float coordinates.

Since:
  1.2
See Also:
  - Serialized Form

- ## Nested Class Summary

  ### Nested classes/interfaces declared in class Line2D

  `Line2D.Double, Line2D.Float`
  Modifier and Type
  Class
  Description
  `static class`
  `Line2D.Double`
  A line segment specified with double coordinates.
  `static class`
  `Line2D.Float`
  A line segment specified with float coordinates.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `float`
  `x1`
  The X coordinate of the start point of the line segment.
  `float`
  `x2`
  The X coordinate of the end point of the line segment.
  `float`
  `y1`
  The Y coordinate of the start point of the line segment.
  `float`
  `y2`
  The Y coordinate of the end point of the line segment.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Float()`
  Constructs and initializes a Line with coordinates (0, 0) → (0, 0).
  `Float(float x1, float y1, float x2, float y2)`
  Constructs and initializes a Line from the specified coordinates.
  `Float(Point2D p1, Point2D p2)`
  Constructs and initializes a `Line2D` from the specified `Point2D` objects.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Rectangle2D`
  `getBounds2D()`
  Returns a high precision and more accurate bounding box of the `Shape` than the `getBounds` method.
  `Point2D`
  `getP1()`
  Returns the start `Point2D` of this `Line2D`.
  `Point2D`
  `getP2()`
  Returns the end `Point2D` of this `Line2D`.
  `double`
  `getX1()`
  Returns the X coordinate of the start point in double precision.
  `double`
  `getX2()`
  Returns the X coordinate of the end point in double precision.
  `double`
  `getY1()`
  Returns the Y coordinate of the start point in double precision.
  `double`
  `getY2()`
  Returns the Y coordinate of the end point in double precision.
  `void`
  `setLine(double x1, double y1, double x2, double y2)`
  Sets the location of the end points of this `Line2D` to the specified double coordinates.
  `void`
  `setLine(float x1, float y1, float x2, float y2)`
  Sets the location of the end points of this `Line2D` to the specified float coordinates.

  ### Methods declared in class Line2D

  `clone, contains, contains, contains, contains, getBounds, getPathIterator, getPathIterator, intersects, intersects, intersectsLine, intersectsLine, linesIntersect, ptLineDist, ptLineDist, ptLineDist, ptLineDistSq, ptLineDistSq, ptLineDistSq, ptSegDist, ptSegDist, ptSegDist, ptSegDistSq, ptSegDistSq, ptSegDistSq, relativeCCW, relativeCCW, relativeCCW, setLine, setLine`
  Modifier and Type
  Method
  Description
  `Object`
  `clone()`
  Creates a new object of the same class as this object.
  `boolean`
  `contains(double x, double y)`
  Tests if a specified coordinate is inside the boundary of this `Line2D`.
  `boolean`
  `contains(double x, double y, double w, double h)`
  Tests if the interior of this `Line2D` entirely contains the specified set of rectangular coordinates.
  `boolean`
  `contains(Point2D p)`
  Tests if a given `Point2D` is inside the boundary of this `Line2D`.
  `boolean`
  `contains(Rectangle2D r)`
  Tests if the interior of this `Line2D` entirely contains the specified `Rectangle2D`.
  `Rectangle`
  `getBounds()`
  Returns an integer `Rectangle` that completely encloses the `Shape`.
  `PathIterator`
  `getPathIterator(AffineTransform at)`
  Returns an iteration object that defines the boundary of this `Line2D`.
  `PathIterator`
  `getPathIterator(AffineTransform at, double flatness)`
  Returns an iteration object that defines the boundary of this flattened `Line2D`.
  `boolean`
  `intersects(double x, double y, double w, double h)`
  Tests if the interior of the `Shape` intersects the interior of a specified rectangular area.
  `boolean`
  `intersects(Rectangle2D r)`
  Tests if the interior of the `Shape` intersects the interior of a specified `Rectangle2D`.
  `boolean`
  `intersectsLine(double x1, double y1, double x2, double y2)`
  Tests if the line segment from `(x1,y1)` to `(x2,y2)` intersects this line segment.
  `boolean`
  `intersectsLine(Line2D l)`
  Tests if the specified line segment intersects this line segment.
  `static boolean`
  `linesIntersect(double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4)`
  Tests if the line segment from `(x1,y1)` to `(x2,y2)` intersects the line segment from `(x3,y3)` to `(x4,y4)`.
  `double`
  `ptLineDist(double px, double py)`
  Returns the distance from a point to this line.
  `static double`
  `ptLineDist(double x1, double y1, double x2, double y2, double px, double py)`
  Returns the distance from a point to a line.
  `double`
  `ptLineDist(Point2D pt)`
  Returns the distance from a `Point2D` to this line.
  `double`
  `ptLineDistSq(double px, double py)`
  Returns the square of the distance from a point to this line.
  `static double`
  `ptLineDistSq(double x1, double y1, double x2, double y2, double px, double py)`
  Returns the square of the distance from a point to a line.
  `double`
  `ptLineDistSq(Point2D pt)`
  Returns the square of the distance from a specified `Point2D` to this line.
  `double`
  `ptSegDist(double px, double py)`
  Returns the distance from a point to this line segment.
  `static double`
  `ptSegDist(double x1, double y1, double x2, double y2, double px, double py)`
  Returns the distance from a point to a line segment.
  `double`
  `ptSegDist(Point2D pt)`
  Returns the distance from a `Point2D` to this line segment.
  `double`
  `ptSegDistSq(double px, double py)`
  Returns the square of the distance from a point to this line segment.
  `static double`
  `ptSegDistSq(double x1, double y1, double x2, double y2, double px, double py)`
  Returns the square of the distance from a point to a line segment.
  `double`
  `ptSegDistSq(Point2D pt)`
  Returns the square of the distance from a `Point2D` to this line segment.
  `int`
  `relativeCCW(double px, double py)`
  Returns an indicator of where the specified point `(px,py)` lies with respect to this line segment.
  `static int`
  `relativeCCW(double x1, double y1, double x2, double y2, double px, double py)`
  Returns an indicator of where the specified point `(px,py)` lies with respect to the line segment from `(x1,y1)` to `(x2,y2)`.
  `int`
  `relativeCCW(Point2D p)`
  Returns an indicator of where the specified `Point2D` lies with respect to this line segment.
  `void`
  `setLine(Line2D l)`
  Sets the location of the end points of this `Line2D` to the same as those end points of the specified `Line2D`.
  `void`
  `setLine(Point2D p1, Point2D p2)`
  Sets the location of the end points of this `Line2D` to the specified `Point2D` coordinates.

  ### Methods declared in class Object

  `equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
  Modifier and Type
  Method
  Description
  `boolean`
  `equals(Object obj)`
  Indicates whether some other object is "equal to" this one.
  `protected void`
  `finalize()`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Finalization is deprecated and subject to removal in a future release.
  `final Class<?>`
  `getClass()`
  Returns the runtime class of this `Object`.
  `int`
  `hashCode()`
  Returns a hash code value for this object.
  `final void`
  `notify()`
  Wakes up a single thread that is waiting on this object's monitor.
  `final void`
  `notifyAll()`
  Wakes up all threads that are waiting on this object's monitor.
  `String`
  `toString()`
  Returns a string representation of the object.
  `final void`
  `wait()`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
  `final void`
  `wait(long timeoutMillis)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
  `final void`
  `wait(long timeoutMillis, int nanos)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

- ## Field Details

  - ### x1

    public float x1
    The X coordinate of the start point of the line segment.
    Since:
      1.2

  - ### y1

    public float y1
    The Y coordinate of the start point of the line segment.
    Since:
      1.2

  - ### x2

    public float x2
    The X coordinate of the end point of the line segment.
    Since:
      1.2

  - ### y2

    public float y2
    The Y coordinate of the end point of the line segment.
    Since:
      1.2

- ## Constructor Details

  - ### Float

    public Float()
    Constructs and initializes a Line with coordinates (0, 0) → (0, 0).
    Since:
      1.2

  - ### Float

    public Float(float x1, float y1, float x2, float y2)
    Constructs and initializes a Line from the specified coordinates.
    Parameters:
      `x1` - the X coordinate of the start point
      `y1` - the Y coordinate of the start point
      `x2` - the X coordinate of the end point
      `y2` - the Y coordinate of the end point
    Since:
      1.2

  - ### Float

    public Float(Point2D p1, Point2D p2)
    Constructs and initializes a `Line2D` from the specified `Point2D` objects.
    Parameters:
      `p1` - the start `Point2D` of this line segment
      `p2` - the end `Point2D` of this line segment
    Since:
      1.2

- ## Method Details

  - ### getX1

    public double getX1()
    Returns the X coordinate of the start point in double precision.
    Specified by:
      `getX1` in class `Line2D`
    Returns:
      the X coordinate of the start point of this `Line2D` object.
    Since:
      1.2

  - ### getY1

    public double getY1()
    Returns the Y coordinate of the start point in double precision.
    Specified by:
      `getY1` in class `Line2D`
    Returns:
      the Y coordinate of the start point of this `Line2D` object.
    Since:
      1.2

  - ### getP1

    public Point2D getP1()
    Returns the start `Point2D` of this `Line2D`.
    Specified by:
      `getP1` in class `Line2D`
    Returns:
      the start `Point2D` of this `Line2D`.
    Since:
      1.2

  - ### getX2

    public double getX2()
    Returns the X coordinate of the end point in double precision.
    Specified by:
      `getX2` in class `Line2D`
    Returns:
      the X coordinate of the end point of this `Line2D` object.
    Since:
      1.2

  - ### getY2

    public double getY2()
    Returns the Y coordinate of the end point in double precision.
    Specified by:
      `getY2` in class `Line2D`
    Returns:
      the Y coordinate of the end point of this `Line2D` object.
    Since:
      1.2

  - ### getP2

    public Point2D getP2()
    Returns the end `Point2D` of this `Line2D`.
    Specified by:
      `getP2` in class `Line2D`
    Returns:
      the end `Point2D` of this `Line2D`.
    Since:
      1.2

  - ### setLine

    public void setLine(double x1, double y1, double x2, double y2)
    Sets the location of the end points of this `Line2D` to the specified double coordinates.
    Specified by:
      `setLine` in class `Line2D`
    Parameters:
      `x1` - the X coordinate of the start point
      `y1` - the Y coordinate of the start point
      `x2` - the X coordinate of the end point
      `y2` - the Y coordinate of the end point
    Since:
      1.2

  - ### setLine

    public void setLine(float x1, float y1, float x2, float y2)
    Sets the location of the end points of this `Line2D` to the specified float coordinates.
    Parameters:
      `x1` - the X coordinate of the start point
      `y1` - the Y coordinate of the start point
      `x2` - the X coordinate of the end point
      `y2` - the Y coordinate of the end point
    Since:
      1.2

  - ### getBounds2D

    public Rectangle2D getBounds2D()
    Returns a high precision and more accurate bounding box of the `Shape` than the `getBounds` method. Note that there is no guarantee that the returned `Rectangle2D` is the smallest bounding box that encloses the `Shape`, only that the `Shape` lies entirely within the indicated `Rectangle2D`. The bounding box returned by this method is usually tighter than that returned by the `getBounds` method and never fails due to overflow problems since the return value can be an instance of the `Rectangle2D` that uses double precision values to store the dimensions.

    Note that the definition of insideness can lead to situations where points on the defining outline of the `shape` may not be considered contained in the returned `bounds` object, but only in cases where those points are also not considered contained in the original `shape`.

    If a `point` is inside the `shape` according to the `contains(point)` method, then it must be inside the returned `Rectangle2D` bounds object according to the `contains(point)` method of the `bounds`. Specifically:

    `shape.contains(p)` requires `bounds.contains(p)`

    If a `point` is not inside the `shape`, then it might still be contained in the `bounds` object:

    `bounds.contains(p)` does not imply `shape.contains(p)`

    Specified by:
      `getBounds2D` in interface `Shape`
    Returns:
      an instance of `Rectangle2D` that is a high-precision bounding box of the `Shape`.
    Since:
      1.2
    See Also:
      - `Shape.getBounds()`