public class EllipseArc2D extends AbstractSmoothCurve2D implements SmoothOrientedCurve2D, Cloneable
| Modifier and Type | Field and Description |
|---|---|
protected double |
angleExtent
The signed angle extent, in radians between -2PI and +2PI.
|
protected Ellipse2D |
ellipse
The supporting ellipse
|
protected double |
startAngle
The starting position on ellipse, in radians between 0 and +2PI
|
| Constructor and Description |
|---|
EllipseArc2D()
Construct a default Ellipse arc, centered on (0,0), with radii equal to 1
and 1, orientation equal to 0, start angle equal to 0, and angle extent
equal to PI/2.
|
EllipseArc2D(double xc,
double yc,
double a,
double b,
double theta,
double start,
double extent)
Specify parameters of supporting ellipse, start angle, and angle extent.
|
EllipseArc2D(double xc,
double yc,
double a,
double b,
double theta,
double start,
double end,
boolean direct)
Specify parameters of supporting ellipse, bounding angles and flag for
direct ellipse.
|
EllipseArc2D(Ellipse2D ell,
double start,
double extent)
Specify supporting ellipse, start angle and angle extent.
|
EllipseArc2D(Ellipse2D ell,
double start,
double end,
boolean direct)
Specify supporting ellipse, start angle and end angle, and a flag
indicating whether the arc is directed or not.
|
| Modifier and Type | Method and Description |
|---|---|
GeneralPath |
appendPath(GeneralPath path)
Append the path of the curve to the given path.
|
CurveSet2D<? extends EllipseArc2D> |
clip(Box2D box)
Clip the ellipse arc by a box.
|
EllipseArc2D |
clone()
Overrides Object declaration to ensure Curve2D implementation are
cloned as Curve2D.
|
boolean |
contains(double x,
double y)
Checks if the shape contains the planar point defined by (x,y).
|
boolean |
contains(Point2D point)
Checks if the shape contains the given point.
|
boolean |
containsAngle(double angle) |
static EllipseArc2D |
create(Ellipse2D ell,
double start,
double extent)
Specify supporting ellipse, start angle and end angle, and a flag
indicating whether the arc is directed or not.
|
static EllipseArc2D |
create(Ellipse2D ell,
double start,
double end,
boolean direct)
Specify supporting ellipse, start angle and end angle, and a flag
indicating whether the arc is directed or not.
|
void |
draw(Graphics2D g2)
Draws the curve on the given Graphics2D object.
|
boolean |
equals(Object obj) |
double |
getAngle(double position)
Returns the angle associated with the given position
|
double |
getAngleExtent() |
Box2D |
getBoundingBox()
Returns the bounding box of the shape.
|
Collection<? extends EllipseArc2D> |
getContinuousCurves()
Returns the collection of continuous curves which constitute this curve.
|
double |
getCurvature(double t)
returns the curvature of the ellipse arc.
|
double |
getDistance(double x,
double y)
get the distance of the shape to the given point, specified by x and y,
or the distance of point to the frontier of the shape in the case of a
plain (i.e.
|
double |
getDistance(Point2D point)
get the distance of the shape to the given point, or the distance of
point to the frontier of the shape in the case of a plain shape.
|
GeneralPath |
getGeneralPath() |
Collection<Point2D> |
getIntersections(LinearShape2D line)
Returns the intersection points of the curve with the specified line.
|
Point2D |
getPoint(double t)
Gets the point from a parametric representation of the curve.
|
double |
getPosition(Point2D point)
Get position of the point on the curve.
|
EllipseArc2D |
getReverseCurve()
Returns the ellipse arc which refers to the reversed parent ellipse, with
same start angle, and with opposite angle extent.
|
double |
getSignedDistance(double x,
double y)
The same as getSignedDistance(Point2D), but by passing 2 double as
arguments.
|
double |
getSignedDistance(Point2D p)
Get the signed distance of the curve to the given point: this distance is
positive if the point lies outside the shape, and is negative if the
point lies inside the shape.
|
double |
getStartAngle() |
EllipseArc2D |
getSubCurve(double t0,
double t1)
Returns a new EllipseArc2D.
|
Ellipse2D |
getSupportingEllipse() |
double |
getT0()
Always returns 0
|
double |
getT1()
Always returns the absolute value of the angle extent
|
Vector2D |
getTangent(double t) |
double |
getWindingAngle(Point2D point)
Return the angle portion that the curve turn around the given point.
|
boolean |
isBounded()
Always return true: an ellipse arc is bounded by definition
|
boolean |
isClosed()
Returns false, as an ellipse arc is never closed.
|
boolean |
isDirect()
Returns true if the ellipse arc is direct, i.e.
|
boolean |
isEmpty()
Returns true if the shape does not contain any point.
|
boolean |
isInside(Point2D p)
Returns true if the point is 'inside' the domain bounded by the curve.
|
double |
project(Point2D point)
Returns the position of the closest orthogonal projection of the point on
the curve, or of the closest singular point.
|
String |
toString() |
EllipseArc2D |
transform(AffineTransform2D trans)
Transforms the curve by an affine transform.
|
getLeftTangent, getRightTangent, getSingularPoints, getSmoothPieces, isSingulargetAsAWTShape, getAsPolyline, getFirstPoint, getLastPoint, wrapCurvefinalize, getClass, hashCode, notify, notifyAll, wait, wait, waitgetAsPolyline, getLeftTangent, getRightTangent, getSmoothPiecesgetAsAWTShape, getFirstPoint, getLastPoint, getSingularPoints, isSingularprotected Ellipse2D ellipse
protected double startAngle
protected double angleExtent
public EllipseArc2D()
public EllipseArc2D(Ellipse2D ell, double start, double extent)
ell - the supporting ellipsestart - the starting angle (angle between 0 and 2*PI)extent - the angle extent (signed angle)public EllipseArc2D(Ellipse2D ell, double start, double end, boolean direct)
ell - the supporting ellipsestart - the starting angleend - the ending angledirect - flag indicating if the arc is directpublic EllipseArc2D(double xc,
double yc,
double a,
double b,
double theta,
double start,
double extent)
public EllipseArc2D(double xc,
double yc,
double a,
double b,
double theta,
double start,
double end,
boolean direct)
public static EllipseArc2D create(Ellipse2D ell, double start, double extent)
ell - the supporting ellipsestart - the starting angleend - the ending angledirect - flag indicating if the arc is directpublic static EllipseArc2D create(Ellipse2D ell, double start, double end, boolean direct)
ell - the supporting ellipsestart - the starting angleend - the ending angledirect - flag indicating if the arc is directpublic Ellipse2D getSupportingEllipse()
public double getStartAngle()
public double getAngleExtent()
public boolean isDirect()
public boolean containsAngle(double angle)
public double getAngle(double position)
public double getWindingAngle(Point2D point)
OrientedCurve2DgetWindingAngle in interface OrientedCurve2Dpoint - a point of the planepublic boolean isInside(Point2D p)
OrientedCurve2DisInside in interface OrientedCurve2Dp - a point in the planepublic double getSignedDistance(Point2D p)
OrientedCurve2DgetSignedDistance in interface OrientedCurve2Dp - a point of the planepublic double getSignedDistance(double x,
double y)
OrientedCurve2DgetSignedDistance in interface OrientedCurve2Dx - x-coord of a pointy - y-coord of a pointpublic Vector2D getTangent(double t)
getTangent in interface SmoothCurve2Dpublic double getCurvature(double t)
getCurvature in interface SmoothCurve2Dpublic boolean isClosed()
isClosed in interface ContinuousCurve2Dpublic double getT1()
public Point2D getPoint(double t)
Curve2Dpublic double getPosition(Point2D point)
Curve2DgetPosition in interface Curve2Dpoint - a point belonging to the curvepublic double project(Point2D point)
Curve2Dpublic Collection<Point2D> getIntersections(LinearShape2D line)
Curve2DgetIntersections in interface Curve2Dpublic EllipseArc2D getReverseCurve()
getReverseCurve in interface ContinuousCurve2DgetReverseCurve in interface Curve2DgetReverseCurve in interface SmoothCurve2DgetReverseCurve in interface ContinuousOrientedCurve2DgetReverseCurve in interface OrientedCurve2DgetReverseCurve in interface SmoothOrientedCurve2Dpublic Collection<? extends EllipseArc2D> getContinuousCurves()
Curve2DgetContinuousCurves in interface Curve2DgetContinuousCurves in class AbstractContinuousCurve2Dpublic EllipseArc2D getSubCurve(double t0, double t1)
getSubCurve in interface ContinuousCurve2DgetSubCurve in interface Curve2DgetSubCurve in interface SmoothCurve2DgetSubCurve in interface ContinuousOrientedCurve2DgetSubCurve in interface SmoothOrientedCurve2Dt0 - position of the start of the sub-curvet1 - position of the end of the sub-curvepublic double getDistance(Point2D point)
Shape2DgetDistance in interface Shape2Dpublic double getDistance(double x,
double y)
Shape2DgetDistance in interface Shape2Dpublic boolean isBounded()
public boolean isEmpty()
Shape2Dpublic CurveSet2D<? extends EllipseArc2D> clip(Box2D box)
clip in interface ContinuousCurve2Dclip in interface Curve2Dclip in interface SmoothCurve2Dclip in interface ContinuousOrientedCurve2Dclip in interface OrientedCurve2Dclip in interface SmoothOrientedCurve2Dclip in interface Shape2Dbox - the clipping boxpublic Box2D getBoundingBox()
Shape2DgetBoundingBox in interface Shape2Dpublic EllipseArc2D transform(AffineTransform2D trans)
Curve2Dtransform in interface ContinuousCurve2Dtransform in interface Curve2Dtransform in interface SmoothCurve2Dtransform in interface ContinuousOrientedCurve2Dtransform in interface OrientedCurve2Dtransform in interface SmoothOrientedCurve2Dtransform in interface Shape2Dtrans - an affine transformpublic boolean contains(double x,
double y)
Shape2Dpublic boolean contains(Point2D point)
Shape2Dpublic GeneralPath appendPath(GeneralPath path)
ContinuousCurve2DappendPath in interface ContinuousCurve2Dpath - a path to modifypublic GeneralPath getGeneralPath()
public void draw(Graphics2D g2)
Curve2Dpublic EllipseArc2D clone()
Curve2Dclone in interface Curve2Dclone in class AbstractSmoothCurve2DCopyright © 2012 AMIS research group, Faculty of Mathematics and Physics, Charles University in Prague, Czech Republic. All Rights Reserved.