# 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()`