

PREV CLASS NEXT CLASS  FRAMES NO FRAMES  
SUMMARY: NESTED  FIELD  CONSTR  METHOD  DETAIL: FIELD  CONSTR  METHOD 
java.lang.Object math.geom2d.curve.AbstractContinuousCurve2D math.geom2d.curve.AbstractSmoothCurve2D math.geom2d.line.AbstractLine2D
public abstract class AbstractLine2D
Base class for straight curves, such as straight lines, rays, or edges.
Internal representation of straight objects is parametric: (x0, y0) is a point in the object, and (dx, dy) is a direction vector of the line.
If the line is defined by two point, we can set (x0,y0) to the first point, and (dx,dy) to the vector (p1, p2).
Then, coordinates for a point (x,y) such as x=x0+t*dx and y=y0+t=dy, t between 0 and 1 give a point inside p1 and p2, t<0 give a point 'before' p1, and t>1 give a point 'after' p2, so it is convenient to easily manage edges, rays and straight lines.
Field Summary 

Fields inherited from interface math.geom2d.Shape2D 

ACCURACY 
Method Summary  

CirculinearDomain2D 
buffer(double dist)
Computes the buffer of the shape, formed by the set of points located at a distance from the shape that is lower or equal to d. 
double[] 
cartesianEquation()
Returns the coefficient of the Cartesian representation of the line. 
CurveSet2D<? extends AbstractLine2D> 
clip(Box2D box)
When a curve is clipped, the result is a set of curves. 
abstract AbstractLine2D 
clone()
Ensures public declaration of clone(), and ensures valid return type. 
boolean 
contains(Point2D p)
Checks if the shape contains the given point. 
java.util.Collection<? extends AbstractLine2D> 
continuousCurves()
Returns a collection of lines containing only this line. 
double 
curvature(double t)
Returns 0 as for every straight object. 
Vector2D 
direction()
Returns the direction vector of this linear shape. 
double 
distance(double x,
double y)
Returns the distance of the StraightObject2d to the given point. 
double 
distance(Point2D p)
Returns the distance of the StraightObject2d to the given point. 
static Point2D 
getIntersection(AbstractLine2D line1,
AbstractLine2D line2)
Returns the unique intersection of two straight objects. 
Point2D 
getSymmetric(double x,
double y)
Return the symmetric of point with coordinate (x, y) relative to this straight line. 
Point2D 
getSymmetric(Point2D p)
Return the symmetric of point p relative to this straight line. 
double 
horizontalAngle()
Gets Angle with axis (O,i), counted counterclockwise. 
Point2D 
intersection(LinearShape2D line)
Returns the unique intersection with a linear shape. 
java.util.Collection<Point2D> 
intersections(LinearShape2D line)
Returns the intersection points of the curve with the specified line. 
boolean 
isClosed()
Always returns false, because we can not come back to starting point if we always go straight... 
static boolean 
isColinear(AbstractLine2D line1,
AbstractLine2D line2)
Tests if the two linear objects are located on the same straight line. 
boolean 
isColinear(LinearShape2D linear)
Tests if the given linear shape is parallel to this shape. 
boolean 
isEmpty()
Returns false, unless both dx and dy equal 0. 
boolean 
isInside(Point2D p)
Returns true if the given point lies to the left of the line when traveling along the line in the direction given by its direction vector. 
static boolean 
isParallel(AbstractLine2D line1,
AbstractLine2D line2)
Tests if the two linear objects are parallel. 
boolean 
isParallel(LinearShape2D line)
Tests if the this object is parallel to the given one. 
double 
length()

double 
length(double pos)

Point2D 
origin()
Returns the origin point of this linear shape. 
StraightLine2D 
parallel(Point2D point)
Creates a straight line parallel to this object, and going through the given point. 
double[][] 
parametric()
Returns the matrix of parametric representation of the line. 
StraightLine2D 
perpendicular(Point2D point)
Creates a straight line perpendicular to this object, and going through the given point. 
double[] 
polarCoefficients()
Returns polar coefficients of this linear shape. 
double[] 
polarCoefficientsSigned()
Returns the signed polar coefficients. 
double 
position(double distance)

double 
position(Point2D point)
Returns the position of the point on the line arc. 
double 
positionOnLine(double x,
double y)
Computes position on the line of the point given by (x,y). 
double 
positionOnLine(Point2D point)

double 
project(Point2D point)
Returns the position of the closest point on the line arc. 
Point2D 
projectedPoint(double x,
double y)
Returns the projection of point p on the line. 
Point2D 
projectedPoint(Point2D p)
Returns the projection of point p on the line. 
double 
signedDistance(double x,
double y)
Returns the signed distance of the StraightObject2d to the given point. 
double 
signedDistance(Point2D p)
Returns the signed distance of the StraightObject2d to the given point. 
java.util.Collection<? extends AbstractLine2D> 
smoothPieces()
Returns a collection of lines containing only this line. 
AbstractLine2D 
subCurve(double t0,
double t1)
Returns a new AbstractLine2D, which is the portion of this AbstractLine2D delimited by parameters t0 and t1. 
StraightLine2D 
supportingLine()
Returns the straight line that contains this linear shape. 
Vector2D 
tangent(double t)
Returns the tangent of the curve at the given position. 
abstract AbstractLine2D 
transform(AffineTransform2D transform)
Transforms the curve by an affine transform. 
CirculinearElement2D 
transform(CircleInversion2D inv)
Transforms the shape by a circle inversion. 
double 
windingAngle(Point2D point)
Return the angle portion that the curve turn around the given point. 
Methods inherited from class math.geom2d.curve.AbstractSmoothCurve2D 

isSingular, leftTangent, normal, rightTangent, singularPoints, vertices 
Methods inherited from class math.geom2d.curve.AbstractContinuousCurve2D 

asAwtShape, asPolyline, draw, firstPoint, lastPoint 
Methods inherited from class java.lang.Object 

equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait 
Methods inherited from interface math.geom2d.circulinear.CirculinearElement2D 

parallel 
Methods inherited from interface math.geom2d.curve.SmoothCurve2D 

normal 
Methods inherited from interface math.geom2d.curve.ContinuousCurve2D 

appendPath, asPolyline, leftTangent, rightTangent 
Methods inherited from interface math.geom2d.curve.Curve2D 

asAwtShape, draw, firstPoint, getT0, getT1, isSingular, lastPoint, point, singularPoints, t0, t1, vertices 
Methods inherited from interface math.geom2d.Shape2D 

boundingBox, contains, isBounded 
Methods inherited from interface math.geom2d.GeometricObject2D 

almostEquals 
Method Detail 

public static Point2D getIntersection(AbstractLine2D line1, AbstractLine2D line2)
public static boolean isColinear(AbstractLine2D line1, AbstractLine2D line2)
public static boolean isParallel(AbstractLine2D line1, AbstractLine2D line2)
public boolean isColinear(LinearShape2D linear)
public boolean isParallel(LinearShape2D line)
public double[][] parametric()
[ x0 dx ]
[ y0 dy ]
It can be easily extended to higher dimensions and/or higher polynomial forms.
public double[] cartesianEquation()
ax+by+c=0
public double[] polarCoefficients()
public double[] polarCoefficientsSigned()
public double positionOnLine(Point2D point)
public double positionOnLine(double x, double y)
If the point does not belong to the line, the method returns the position of its projection on the line.
public Point2D projectedPoint(Point2D p)
p
 a point outside the line (if point p lies on the line, it is
returned)
public Point2D projectedPoint(double x, double y)
x
 coordinate x of point to be projectedy
 coordinate y of point to be projected
public Point2D getSymmetric(Point2D p)
p
 a point outside the line (if point p lies on the line, it is
returned)
public Point2D getSymmetric(double x, double y)
x
 xcoordinate of point to be projectedy
 ycoordinate of point to be projected
public StraightLine2D parallel(Point2D point)
point
 the point to go through
public StraightLine2D perpendicular(Point2D point)
point
 the point to go through
public Point2D origin()
origin
in interface LinearShape2D
public Vector2D direction()
direction
in interface LinearShape2D
public double horizontalAngle()
horizontalAngle
in interface LinearShape2D
public Point2D intersection(LinearShape2D line)
intersection
in interface LinearShape2D
public StraightLine2D supportingLine()
LinearShape2D
supportingLine
in interface LinearShape2D
public double length()
length
in interface CirculinearCurve2D
public double length(double pos)
length
in interface CirculinearCurve2D
public double position(double distance)
position
in interface CirculinearCurve2D
public CirculinearElement2D transform(CircleInversion2D inv)
CirculinearShape2D
transform
in interface CirculinearContinuousCurve2D
transform
in interface CirculinearCurve2D
transform
in interface CirculinearElement2D
transform
in interface CirculinearShape2D
inv
 the circle inversion
public CirculinearDomain2D buffer(double dist)
CirculinearShape2D
buffer
in interface CirculinearShape2D
dist
 the maximal distance between a point of the buffer and the
shape
public double windingAngle(Point2D point)
OrientedCurve2D
windingAngle
in interface OrientedCurve2D
point
 a point of the plane
public double signedDistance(Point2D p)
signedDistance
in interface OrientedCurve2D
p
 a point of the plane
public double signedDistance(double x, double y)
signedDistance
in interface OrientedCurve2D
x
 xcoord of a pointy
 ycoord of a point
public boolean isInside(Point2D p)
isInside
in interface OrientedCurve2D
p
 the point to test
public Vector2D tangent(double t)
SmoothCurve2D
tangent
in interface SmoothCurve2D
t
 a position on the curve
SmoothCurve2D.normal(double)
public double curvature(double t)
curvature
in interface ContinuousCurve2D
t
 the position on the curve
public boolean isClosed()
isClosed
in interface ContinuousCurve2D
public java.util.Collection<? extends AbstractLine2D> smoothPieces()
smoothPieces
in interface CirculinearContinuousCurve2D
smoothPieces
in interface ContinuousCurve2D
smoothPieces
in class AbstractSmoothCurve2D
public java.util.Collection<Point2D> intersections(LinearShape2D line)
intersections
in interface Curve2D
public double position(Point2D point)
t = (xp  x0)/dx <\code>, or equivalently:
t = (yp  y0)/dy <\code>.
If point does not belong to line, returns Double.NaN.
 Specified by:
position
in interface Curve2D
 Parameters:
point
 a point belonging to the curve
 Returns:
 the position of the point on the curve
 See Also:
Curve2D.point(double)
project
public double project(Point2D point)
 Returns the position of the closest point on the line arc.
If the point belongs to the line, this position is defined by the ratio:
t = (xp  x0)/dx <\code>, or equivalently:
t = (yp  y0)/dy <\code>.
If point does not belong to line, returns t0, or t1, depending on which
one is the closest.
 Specified by:
project
in interface Curve2D
 Parameters:
point
 a point to project
 Returns:
 the position of the closest orthogonal projection
subCurve
public AbstractLine2D subCurve(double t0,
double t1)
 Returns a new AbstractLine2D, which is the portion of this AbstractLine2D
delimited by parameters t0 and t1. Casts the result to StraightLine2D,
Ray2D or LineSegment2D when appropriate.
 Specified by:
subCurve
in interface CirculinearContinuousCurve2D
 Specified by:
subCurve
in interface CirculinearCurve2D
 Specified by:
subCurve
in interface CirculinearElement2D
 Specified by:
subCurve
in interface ContinuousCurve2D
 Specified by:
subCurve
in interface Curve2D
 Specified by:
subCurve
in interface SmoothCurve2D
 Specified by:
subCurve
in interface ContinuousOrientedCurve2D
 Specified by:
subCurve
in interface SmoothOrientedCurve2D
 Specified by:
subCurve
in interface LinearElement2D
 Parameters:
t0
 position of the start of the subcurvet1
 position of the end of the subcurve
 Returns:
 the portion of original curve comprised between t0 and t1.
continuousCurves
public java.util.Collection<? extends AbstractLine2D> continuousCurves()
 Returns a collection of lines containing only this line.
 Specified by:
continuousCurves
in interface CirculinearCurve2D
 Specified by:
continuousCurves
in interface Curve2D
 Overrides:
continuousCurves
in class AbstractContinuousCurve2D
 Returns:
 a collection of continuous curves.
distance
public double distance(Point2D p)
 Returns the distance of the StraightObject2d to the given point.
This method is not designed to be used directly, because AbstractLine2D
is an abstract class, but it can be called by subclasses to help
computations.
 Specified by:
distance
in interface Shape2D
distance
public double distance(double x,
double y)
 Returns the distance of the StraightObject2d to the given point.
This method is not designed to be used directly, because AbstractLine2D
is an abstract class, but it can be called by subclasses to help
computations.
 Specified by:
distance
in interface Shape2D
 Parameters:
x
 the xcoordinate of the pointy
 the ycoordinate of the point
 Returns:
 distance between this object and the point (x,y)
contains
public boolean contains(Point2D p)
 Description copied from interface:
Shape2D
 Checks if the shape contains the given point.
 Specified by:
contains
in interface Shape2D
isEmpty
public boolean isEmpty()
 Returns false, unless both dx and dy equal 0.
 Specified by:
isEmpty
in interface Shape2D
 Returns:
 true if the shape does not contain any point.
transform
public abstract AbstractLine2D transform(AffineTransform2D transform)
 Description copied from interface:
Curve2D
 Transforms the curve by an affine transform. The result is an instance of
Curve2D.
 Specified by:
transform
in interface ContinuousCurve2D
 Specified by:
transform
in interface Curve2D
 Specified by:
transform
in interface SmoothCurve2D
 Specified by:
transform
in interface ContinuousOrientedCurve2D
 Specified by:
transform
in interface OrientedCurve2D
 Specified by:
transform
in interface SmoothOrientedCurve2D
 Specified by:
transform
in interface LinearElement2D
 Specified by:
transform
in interface LinearShape2D
 Specified by:
transform
in interface Shape2D
 Parameters:
transform
 an affine transform
 Returns:
 the transformed shape
clip
public CurveSet2D<? extends AbstractLine2D> clip(Box2D box)
 Description copied from interface:
Curve2D
 When a curve is clipped, the result is a set of curves.
 Specified by:
clip
in interface CirculinearContinuousCurve2D
 Specified by:
clip
in interface CirculinearCurve2D
 Specified by:
clip
in interface CirculinearElement2D
 Specified by:
clip
in interface ContinuousCurve2D
 Specified by:
clip
in interface Curve2D
 Specified by:
clip
in interface SmoothCurve2D
 Specified by:
clip
in interface ContinuousOrientedCurve2D
 Specified by:
clip
in interface OrientedCurve2D
 Specified by:
clip
in interface SmoothOrientedCurve2D
 Specified by:
clip
in interface LinearElement2D
 Specified by:
clip
in interface Shape2D
 Parameters:
box
 the clipping box
 Returns:
 the clipped shape
clone
public abstract AbstractLine2D clone()
 Ensures public declaration of clone(), and ensures valid return type.
 Specified by:
clone
in interface Curve2D
 Specified by:
clone
in class AbstractSmoothCurve2D
 Returns:
 the cloned curve
Overview
Package
Class
Use
Tree
Deprecated
Index
Help
PREV CLASS
NEXT CLASS
FRAMES
NO FRAMES
SUMMARY: NESTED  FIELD  CONSTR  METHOD
DETAIL: FIELD  CONSTR  METHOD