This Line2D represents a line segment in (x,y)
coordinate space. This class, like all of the Java 2D API, uses a
default coordinate system called user space in which the y-axis
values increase downward and x-axis values increase to the right. For
more information on the user space coordinate system, see the
Coordinate Systems section of the Java 2D Programmer's Guide.

This class is only the abstract superclass for all objects that
store a 2D line segment.
The actual storage representation of the coordinates is left to
the subclass.

Constructor Detail

Line2D

protected Line2D()

This is an abstract class that cannot be instantiated directly.
Type-specific implementation subclasses are available for
instantiation and provide a number of formats for storing
the information necessary to satisfy the various accessory
methods below.

relativeCCW

Returns an indicator of where the specified point
(px,py) lies with respect to the line segment from
(x1,y1) to (x2,y2).
The return value can be either 1, -1, or 0 and indicates
in which direction the specified line must pivot around its
first end point, (x1,y1), in order to point at the
specified point (px,py).

A return value of 1 indicates that the line segment must
turn in the direction that takes the positive X axis towards
the negative Y axis. In the default coordinate system used by
Java 2D, this direction is counterclockwise.

A return value of -1 indicates that the line segment must
turn in the direction that takes the positive X axis towards
the positive Y axis. In the default coordinate system, this
direction is clockwise.

A return value of 0 indicates that the point lies
exactly on the line segment. Note that an indicator value
of 0 is rare and not useful for determining collinearity
because of floating point rounding issues.

If the point is colinear with the line segment, but
not between the end points, then the value will be -1 if the point
lies "beyond (x1,y1)" or 1 if the point lies
"beyond (x2,y2)".

Parameters:

x1 - the X coordinate of the start point of the
specified line segment

y1 - the Y coordinate of the start point of the
specified line segment

x2 - the X coordinate of the end point of the
specified line segment

y2 - the Y coordinate of the end point of the
specified line segment

px - the X coordinate of the specified point to be
compared with the specified line segment

py - the Y coordinate of the specified point to be
compared with the specified line segment

Returns:

an integer that indicates the position of the third specified
coordinates with respect to the line segment formed
by the first two specified coordinates.

ptSegDistSq

Returns the square of the distance from a point to a line segment.
The distance measured is the distance between the specified
point and the closest point between the specified end points.
If the specified point intersects the line segment in between the
end points, this method returns 0.0.

Parameters:

x1 - the X coordinate of the start point of the
specified line segment

y1 - the Y coordinate of the start point of the
specified line segment

x2 - the X coordinate of the end point of the
specified line segment

y2 - the Y coordinate of the end point of the
specified line segment

px - the X coordinate of the specified point being
measured against the specified line segment

py - the Y coordinate of the specified point being
measured against the specified line segment

Returns:

a double value that is the square of the distance from the
specified point to the specified line segment.

ptSegDist

Returns the distance from a point to a line segment.
The distance measured is the distance between the specified
point and the closest point between the specified end points.
If the specified point intersects the line segment in between the
end points, this method returns 0.0.

Parameters:

x1 - the X coordinate of the start point of the
specified line segment

y1 - the Y coordinate of the start point of the
specified line segment

x2 - the X coordinate of the end point of the
specified line segment

y2 - the Y coordinate of the end point of the
specified line segment

px - the X coordinate of the specified point being
measured against the specified line segment

py - the Y coordinate of the specified point being
measured against the specified line segment

Returns:

a double value that is the distance from the specified point
to the specified line segment.

ptSegDistSq

public double ptSegDistSq(double px,
double py)

Returns the square of the distance from a point to this line segment.
The distance measured is the distance between the specified
point and the closest point between the current line's end points.
If the specified point intersects the line segment in between the
end points, this method returns 0.0.

Parameters:

px - the X coordinate of the specified point being
measured against this line segment

py - the Y coordinate of the specified point being
measured against this line segment

Returns:

a double value that is the square of the distance from the
specified point to the current line segment.

ptSegDistSq

Returns the square of the distance from a Point2D to
this line segment.
The distance measured is the distance between the specified
point and the closest point between the current line's end points.
If the specified point intersects the line segment in between the
end points, this method returns 0.0.

Parameters:

pt - the specified Point2D being measured against
this line segment.

Returns:

a double value that is the square of the distance from the
specified Point2D to the current
line segment.

ptSegDist

public double ptSegDist(double px,
double py)

Returns the distance from a point to this line segment.
The distance measured is the distance between the specified
point and the closest point between the current line's end points.
If the specified point intersects the line segment in between the
end points, this method returns 0.0.

Parameters:

px - the X coordinate of the specified point being
measured against this line segment

py - the Y coordinate of the specified point being
measured against this line segment

Returns:

a double value that is the distance from the specified
point to the current line segment.

ptSegDist

Returns the distance from a Point2D to this line
segment.
The distance measured is the distance between the specified
point and the closest point between the current line's end points.
If the specified point intersects the line segment in between the
end points, this method returns 0.0.

Parameters:

pt - the specified Point2D being measured
against this line segment

Returns:

a double value that is the distance from the specified
Point2D to the current line
segment.

ptLineDistSq

Returns the square of the distance from a point to a line.
The distance measured is the distance between the specified
point and the closest point on the infinitely-extended line
defined by the specified coordinates. If the specified point
intersects the line, this method returns 0.0.

Parameters:

x1 - the X coordinate of the start point of the specified line

y1 - the Y coordinate of the start point of the specified line

x2 - the X coordinate of the end point of the specified line

y2 - the Y coordinate of the end point of the specified line

px - the X coordinate of the specified point being
measured against the specified line

py - the Y coordinate of the specified point being
measured against the specified line

Returns:

a double value that is the square of the distance from the
specified point to the specified line.

ptLineDist

Returns the distance from a point to a line.
The distance measured is the distance between the specified
point and the closest point on the infinitely-extended line
defined by the specified coordinates. If the specified point
intersects the line, this method returns 0.0.

Parameters:

x1 - the X coordinate of the start point of the specified line

y1 - the Y coordinate of the start point of the specified line

x2 - the X coordinate of the end point of the specified line

y2 - the Y coordinate of the end point of the specified line

px - the X coordinate of the specified point being
measured against the specified line

py - the Y coordinate of the specified point being
measured against the specified line

Returns:

a double value that is the distance from the specified
point to the specified line.

ptLineDistSq

public double ptLineDistSq(double px,
double py)

Returns the square of the distance from a point to this line.
The distance measured is the distance between the specified
point and the closest point on the infinitely-extended line
defined by this Line2D. If the specified point
intersects the line, this method returns 0.0.

Parameters:

px - the X coordinate of the specified point being
measured against this line

py - the Y coordinate of the specified point being
measured against this line

Returns:

a double value that is the square of the distance from a
specified point to the current line.

ptLineDistSq

Returns the square of the distance from a specified
Point2D to this line.
The distance measured is the distance between the specified
point and the closest point on the infinitely-extended line
defined by this Line2D. If the specified point
intersects the line, this method returns 0.0.

Parameters:

pt - the specified Point2D being measured
against this line

Returns:

a double value that is the square of the distance from a
specified Point2D to the current
line.

ptLineDist

public double ptLineDist(double px,
double py)

Returns the distance from a point to this line.
The distance measured is the distance between the specified
point and the closest point on the infinitely-extended line
defined by this Line2D. If the specified point
intersects the line, this method returns 0.0.

Parameters:

px - the X coordinate of the specified point being
measured against this line

py - the Y coordinate of the specified point being
measured against this line

Returns:

a double value that is the distance from a specified point
to the current line.

ptLineDist

Returns the distance from a Point2D to this line.
The distance measured is the distance between the specified
point and the closest point on the infinitely-extended line
defined by this Line2D. If the specified point
intersects the line, this method returns 0.0.

Parameters:

pt - the specified Point2D being measured

Returns:

a double value that is the distance from a specified
Point2D to the current line.

contains

public boolean contains(double x,
double y)

Tests if a specified coordinate is inside the boundary of this
Line2D. This method is required to implement the
Shape interface, but in the case of Line2D
objects it always returns false since a line contains
no area.

contains

Tests if a given Point2D is inside the boundary of
this Line2D.
This method is required to implement the Shape interface,
but in the case of Line2D objects it always returns
false since a line contains no area.

intersects

public 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.
The rectangular area is considered to intersect the Shape
if any point is contained in both the interior of the
Shape and the specified rectangular area.

there is a high probability that the rectangular area and the
Shape intersect, but

the calculations to accurately determine this intersection
are prohibitively expensive.

This means that for some Shapes this method might
return true even though the rectangular area does not
intersect the Shape.
The Area class performs
more accurate computations of geometric intersection than most
Shape objects and therefore can be used if a more precise
answer is required.

x - the X coordinate of the upper-left corner
of the specified rectangular area

y - the Y coordinate of the upper-left corner
of the specified rectangular area

w - the width of the specified rectangular area

h - the height of the specified rectangular area

Returns:

true if the interior of the Shape and
the interior of the rectangular area intersect, or are
both highly likely to intersect and intersection calculations
would be too expensive to perform; false otherwise.

intersects

Tests if the interior of the Shape intersects the
interior of a specified Rectangle2D.
The Shape.intersects() method allows a Shape
implementation to conservatively return true when:

there is a high probability that the Rectangle2D and the
Shape intersect, but

the calculations to accurately determine this intersection
are prohibitively expensive.

This means that for some Shapes this method might
return true even though the Rectangle2D does not
intersect the Shape.
The Area class performs
more accurate computations of geometric intersection than most
Shape objects and therefore can be used if a more precise
answer is required.

true if the interior of the Shape and
the interior of the specified Rectangle2D
intersect, or are both highly likely to intersect and intersection
calculations would be too expensive to perform; false
otherwise.

contains

public 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.
This method is required to implement the Shape interface,
but in the case of Line2D objects it always returns
false since a line contains no area.

contains

Tests if the interior of this Line2D entirely contains
the specified Rectangle2D.
This method is required to implement the Shape interface,
but in the case of Line2D objects it always returns
false since a line contains no area.

getBounds

Returns an integer Rectangle that completely encloses the
Shape. Note that there is no guarantee that the
returned Rectangle is the smallest bounding box that
encloses the Shape, only that the Shape
lies entirely within the indicated Rectangle. The
returned Rectangle might also fail to completely
enclose the Shape if the Shape overflows
the limited range of the integer data type. The
getBounds2D method generally returns a
tighter bounding box due to its greater flexibility in
representation.

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 Rectangle bounds object
according to the contains(point)
method of the bounds. Specifically:

shape.contains(x,y) requires bounds.contains(x,y)

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

getPathIterator

Returns an iteration object that defines the boundary of this
Line2D.
The iterator for this class is not multi-threaded safe,
which means that this Line2D class does not
guarantee that modifications to the geometry of this
Line2D object do not affect any iterations of that
geometry that are already in process.

getPathIterator

Returns an iteration object that defines the boundary of this
flattened Line2D.
The iterator for this class is not multi-threaded safe,
which means that this Line2D class does not
guarantee that modifications to the geometry of this
Line2D object do not affect any iterations of that
geometry that are already in process.

flatness - the maximum amount that the control points for a
given curve can vary from colinear before a subdivided
curve is replaced by a straight line connecting the
end points. Since a Line2D object is
always flat, this parameter is ignored.