math.geom2d.line
Class Ray2D

Package class diagram package Ray2D
java.lang.Object
  extended by math.geom2d.curve.AbstractContinuousCurve2D
      extended by math.geom2d.curve.AbstractSmoothCurve2D
          extended by math.geom2d.line.AbstractLine2D
              extended by math.geom2d.line.Ray2D
All Implemented Interfaces:
Serializable, Cloneable, CirculinearContinuousCurve2D, CirculinearCurve2D, CirculinearElement2D, CirculinearShape2D, ContinuousCirculinearCurve2D, ContinuousCurve2D, Curve2D, SmoothCurve2D, ContinuousOrientedCurve2D, OrientedCurve2D, SmoothOrientedCurve2D, LinearShape2D, Shape2D

public class Ray2D
extends AbstractLine2D
implements Cloneable

Ray, or half-line, defined from an origin and a direction vector. It is composed of all points satisfying the parametric equation:

x(t) = x0+t*dx
y(t) = y0+t*dy

With t comprised between 0 and +INFINITY.

See Also:
Serialized Form

Field Summary
 
Fields inherited from class math.geom2d.line.AbstractLine2D
dx, dy, x0, y0
 
Fields inherited from interface math.geom2d.Shape2D
ACCURACY
 
Constructor Summary
Ray2D()
          Empty constructor for Ray2D.
Ray2D(double x, double y, double angle)
          Creates a new Ray2D, originating from point (x, y)<\code>, and going in the direction specified by angle<\code> (in radians).
Ray2D(double x1, double y1, double dx, double dy)
          Creates a new Ray2D, originating from point (x1,y1)<\code>, and going in the direction defined by vector (dx, dy)<\code>.
Ray2D(LinearShape2D line)
          Define a new Ray, with same characteristics as given object.
Ray2D(Point2D point, double angle)
          Creates a new Ray2D, originating from point point<\code>, and going in the direction specified by angle<\code> (in radians).
Ray2D(Point2D point, double dx, double dy)
          Creates a new Ray2D, originating from point point<\code>, and going in the direction defined by vector (dx,dy)<\code>.
Ray2D(Point2D point1, Point2D point2)
          Creates a new Ray2D, originating from point1<\code>, and going in the direction of point2<\code>.
Ray2D(Point2D point, Vector2D vector)
          Creates a new Ray2D, originating from point point<\code>, and going in the direction specified by vector<\code>.
 
Method Summary
 GeneralPath appendPath(GeneralPath path)
          Throws an infiniteShapeException
 Ray2D clone()
          Ensures public declaration of clone(), and ensures valid return type.
 boolean contains(double x, double y)
          Checks if the shape contains the planar point defined by (x,y).
static Ray2D create(Point2D origin, Point2D target)
          Static factory for creating a new ray, originating from origin<\code>, and going in the direction of target<\code>.
static Ray2D create(Point2D origin, Vector2D direction)
          Static factory for creating a new ray.
 boolean equals(Object obj)
           
 Box2D getBoundingBox()
          Returns the bounding box of the shape.
 Point2D getFirstPoint()
          Get the first point of the curve.
 GeneralPath getGeneralPath()
          Throws an infiniteShapeException
 Ray2D getParallel(double d)
          Creates a new curve, formed by the points with parameterization: p(t) = c(t) + d*n(t)/|n(t)|, with p(t) being a point of the original curve, n(t) the normal of the curve, and |n| being the norm of n.
In the case of a continuous curve formed by several smooth circulinear elements, the parallels of contiguous elements are joined by a circle arc.
 Point2D getPoint(double t)
          Gets the point from a parametric representation of the curve.
 InvertedRay2D getReverseCurve()
          Returns the curve with same trace on the plane with parametrization in reverse order.
 double getT0()
          Get value of parameter t for the first point of the curve.
 double getT1()
          Get value of parameter t for the last point of the curve.
 boolean isBounded()
          Always returns false, because a ray is not bounded.
 void setRay(double x0, double y0, double dx, double dy)
          Deprecated. lines will become immutable in a future release
 void setRay(Point2D p1, Point2D p2)
          Deprecated. lines will become immutable in a future release
 void setRay(Point2D point, Vector2D vect)
          Deprecated. lines will become immutable in a future release
 String toString()
           
 Ray2D transform(AffineTransform2D trans)
          Transforms the curve by an affine transform.
 
Methods inherited from class math.geom2d.line.AbstractLine2D
clip, contains, getBuffer, getCartesianEquation, getContinuousCurves, getCurvature, getDistance, getDistance, getHorizontalAngle, getIntersection, getIntersection, getIntersections, getLength, getLength, getOrigin, getParallel, getParametric, getPerpendicular, getPolarCoefficients, getPosition, getPosition, getPositionOnLine, getPositionOnLine, getProjectedPoint, getProjectedPoint, getSignedDistance, getSignedDistance, getSignedPolarCoefficients, getSmoothPieces, getSubCurve, getSupportingLine, getSymmetric, getSymmetric, getTangent, getVector, getWindingAngle, isClosed, isColinear, isColinear, isEmpty, isInside, isParallel, isParallel, project, supportContains, transform
 
Methods inherited from class math.geom2d.curve.AbstractSmoothCurve2D
getLeftTangent, getRightTangent, getSingularPoints, isSingular
 
Methods inherited from class math.geom2d.curve.AbstractContinuousCurve2D
draw, getAsAWTShape, getAsPolyline, getLastPoint, wrapCurve
 
Methods inherited from class java.lang.Object
finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface math.geom2d.curve.ContinuousCurve2D
getAsPolyline, getLeftTangent, getRightTangent
 
Methods inherited from interface math.geom2d.curve.Curve2D
draw, getAsAWTShape, getLastPoint, getSingularPoints, isSingular
 

Constructor Detail

Ray2D

public Ray2D()
Empty constructor for Ray2D. Default is ray starting at origin, and having a slope of 1*dx and 0*dy.


Ray2D

public Ray2D(Point2D point1,
             Point2D point2)
Creates a new Ray2D, originating from point1<\code>, and going in the direction of point2<\code>.


Ray2D

public Ray2D(double x1,
             double y1,
             double dx,
             double dy)
Creates a new Ray2D, originating from point (x1,y1)<\code>, and going in the direction defined by vector (dx, dy)<\code>.


Ray2D

public Ray2D(Point2D point,
             double dx,
             double dy)
Creates a new Ray2D, originating from point point<\code>, and going in the direction defined by vector (dx,dy)<\code>.


Ray2D

public Ray2D(Point2D point,
             Vector2D vector)
Creates a new Ray2D, originating from point point<\code>, and going in the direction specified by vector<\code>.


Ray2D

public Ray2D(Point2D point,
             double angle)
Creates a new Ray2D, originating from point point<\code>, and going in the direction specified by angle<\code> (in radians).


Ray2D

public Ray2D(double x,
             double y,
             double angle)
Creates a new Ray2D, originating from point (x, y)<\code>, and going in the direction specified by angle<\code> (in radians).


Ray2D

public Ray2D(LinearShape2D line)
Define a new Ray, with same characteristics as given object.

Method Detail

create

public static final Ray2D create(Point2D origin,
                                 Vector2D direction)
Static factory for creating a new ray.

Since:
0.8.1

create

public static final Ray2D create(Point2D origin,
                                 Point2D target)
Static factory for creating a new ray, originating from origin<\code>, and going in the direction of target<\code>.

Since:
0.8.1

setRay

@Deprecated
public void setRay(double x0,
                              double y0,
                              double dx,
                              double dy)
Deprecated. lines will become immutable in a future release


setRay

@Deprecated
public void setRay(Point2D p1,
                              Point2D p2)
Deprecated. lines will become immutable in a future release


setRay

@Deprecated
public void setRay(Point2D point,
                              Vector2D vect)
Deprecated. lines will become immutable in a future release


getParallel

public Ray2D getParallel(double d)
Description copied from interface: CirculinearCurve2D
Creates a new curve, formed by the points with parameterization: p(t) = c(t) + d*n(t)/|n(t)|, with p(t) being a point of the original curve, n(t) the normal of the curve, and |n| being the norm of n.
In the case of a continuous curve formed by several smooth circulinear elements, the parallels of contiguous elements are joined by a circle arc.

Specified by:
getParallel in interface CirculinearContinuousCurve2D
Specified by:
getParallel in interface CirculinearCurve2D
Specified by:
getParallel in interface CirculinearElement2D
Specified by:
getParallel in interface ContinuousCirculinearCurve2D
Parameters:
d - the distance between the original curve and he parallel curve.
Returns:
the parallel curve

appendPath

public GeneralPath appendPath(GeneralPath path)
Throws an infiniteShapeException

Specified by:
appendPath in interface ContinuousCurve2D
Parameters:
path - a path to modify
Returns:
the modified path

getGeneralPath

public GeneralPath getGeneralPath()
Throws an infiniteShapeException


getFirstPoint

public Point2D getFirstPoint()
Description copied from interface: Curve2D
Get the first point of the curve. It must returns the same result as getPoint(getT0()).

Specified by:
getFirstPoint in interface Curve2D
Overrides:
getFirstPoint in class AbstractContinuousCurve2D
Returns:
the first point of the curve

getPoint

public Point2D getPoint(double t)
Description copied from interface: Curve2D
Gets the point from a parametric representation of the curve. If the parameter lies outside the definition range, the parameter corresponding to the closest bound is used instead. This method can be used to draw an approximated outline of a curve, by selecting multiple values for t and drawing lines between them.

Specified by:
getPoint in interface Curve2D

getT0

public double getT0()
Description copied from interface: Curve2D
Get value of parameter t for the first point of the curve. It can be -Infinity, in this case the piece of curve is not bounded.

Specified by:
getT0 in interface Curve2D

getT1

public double getT1()
Description copied from interface: Curve2D
Get value of parameter t for the last point of the curve. It can be +Infinity, in this case the piece of curve is not bounded.

Specified by:
getT1 in interface Curve2D

getReverseCurve

public InvertedRay2D getReverseCurve()
Description copied from interface: Curve2D
Returns the curve with same trace on the plane with parametrization in reverse order.

Specified by:
getReverseCurve in interface CirculinearContinuousCurve2D
Specified by:
getReverseCurve in interface CirculinearCurve2D
Specified by:
getReverseCurve in interface CirculinearElement2D
Specified by:
getReverseCurve in interface ContinuousCirculinearCurve2D
Specified by:
getReverseCurve in interface ContinuousCurve2D
Specified by:
getReverseCurve in interface Curve2D
Specified by:
getReverseCurve in interface SmoothCurve2D
Specified by:
getReverseCurve in interface ContinuousOrientedCurve2D
Specified by:
getReverseCurve in interface OrientedCurve2D
Specified by:
getReverseCurve in interface SmoothOrientedCurve2D

isBounded

public boolean isBounded()
Always returns false, because a ray is not bounded.

Specified by:
isBounded in interface Shape2D

contains

public boolean contains(double x,
                        double y)
Description copied from interface: Shape2D
Checks if the shape contains the planar point defined by (x,y).

Specified by:
contains in interface Shape2D

getBoundingBox

public Box2D getBoundingBox()
Description copied from interface: Shape2D
Returns the bounding box of the shape.

Specified by:
getBoundingBox in interface Shape2D
Returns:
the bounding box of the shape.

transform

public Ray2D transform(AffineTransform2D trans)
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 LinearShape2D
Specified by:
transform in interface Shape2D
Specified by:
transform in class AbstractLine2D
Parameters:
trans - an affine transform
Returns:
the transformed shape

toString

public String toString()
Overrides:
toString in class Object

equals

public boolean equals(Object obj)
Overrides:
equals in class Object

clone

public Ray2D clone()
Description copied from class: AbstractLine2D
Ensures public declaration of clone(), and ensures valid return type.

Specified by:
clone in interface Curve2D
Specified by:
clone in class AbstractLine2D
Returns:
the cloned curve


Copyright © 2012 AMIS research group, Faculty of Mathematics and Physics, Charles University in Prague, Czech Republic. All Rights Reserved.