public class CircleArc2D extends EllipseArc2D implements Cloneable, CircularShape2D, CirculinearElement2D
A circle arc is directed: if angle extent is positive, the arc is counter clockwise. Otherwise, it is clockwise.
A circle arc is parameterized using angle from center. The arc contains all points with a parametric equation of t, for each t between 0 and the angle extent.
| Modifier and Type | Field and Description |
|---|---|
protected Circle2D |
circle |
angleExtent, ellipse, startAngle| Constructor and Description |
|---|
CircleArc2D()
Create a circle arc whose support circle is centered on (0,0) and has a
radius equal to 1.
|
CircleArc2D(Circle2D circle,
double startAngle,
double angleExtent)
create a new circle arc based on an already existing circle.
|
CircleArc2D(Circle2D circle,
double startAngle,
double endAngle,
boolean direct)
create a new circle arc based on an already existing circle, specifying
if arc is direct or not.
|
CircleArc2D(double xc,
double yc,
double r,
double start,
double extent)
Base constructor with all parameters specified
|
CircleArc2D(double xc,
double yc,
double r,
double start,
double end,
boolean direct)
Base constructor, for constructiong arc from circle parameters, start and
end angles, and by specifying whether arc is direct or not.
|
CircleArc2D(Point2D center,
double radius,
double startAngle,
double angleExtent)
Create a new circle arc with specified point center and radius
|
CircleArc2D(Point2D center,
double radius,
double start,
double end,
boolean direct)
Create a new circle arc with specified point center and radius, start and
end angles, and by specifying whether arc is direct or not.
|
| Modifier and Type | Method and Description |
|---|---|
CurveSet2D<CircleArc2D> |
clip(Box2D box)
Clip the circle arc by a box.
|
CircleArc2D |
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 p)
Checks if the shape contains the given point.
|
static CircleArc2D |
create(Circle2D support,
double startAngle,
double angleExtent) |
static CircleArc2D |
create(Circle2D support,
double startAngle,
double endAngle,
boolean direct) |
static CircleArc2D |
create(Point2D center,
double radius,
double startAngle,
double angleExtent) |
static CircleArc2D |
create(Point2D center,
double radius,
double startAngle,
double endAngle,
boolean direct) |
boolean |
equals(Object obj)
Two circle arc are equal if the have same center, same radius, same
starting and ending angles, and same orientation.
|
CirculinearDomain2D |
getBuffer(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.
|
Collection<? extends CircleArc2D> |
getContinuousCurves()
Returns the collection of continuous curves which constitute this curve.
|
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 p)
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.
|
Collection<Point2D> |
getIntersections(LinearShape2D line)
Compute intersections of the circle arc with a line.
|
double |
getLength() |
double |
getLength(double pos) |
CircleArc2D |
getParallel(double dist)
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)
Returns the position of a point form the curvilinear position.
|
double |
getPosition(double length) |
double |
getPosition(Point2D point)
return relative position between 0 and the angle extent.
|
CircleArc2D |
getReverseCurve()
Returns the circle arc which refers to the same parent circle, 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.
|
Collection<? extends CircleArc2D> |
getSmoothPieces()
Returns a set of smooth curves.
|
CircleArc2D |
getSubCurve(double t0,
double t1)
return a new CircleArc2D.
|
Circle2D |
getSupportCircle()
Deprecated.
use getSupportingCircle instead
|
Circle2D |
getSupportingCircle()
Returns the circle which contains the circle arc.
|
double |
getT0()
Always return 0
|
double |
getT1()
return the last position of the circle are, which is given by the angle
extent of the arc.
|
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
|
boolean |
isClosed()
a circle arc is never closed by definition.
|
boolean |
isInside(Point2D point)
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.
|
void |
setArc(Point2D center,
double radius,
double start,
double extent)
Deprecated.
conics will become imutable in a future release
|
void |
setCenter(Point2D point)
Deprecated.
conics will become imutable in a future release
|
void |
setRadius(double r)
Deprecated.
conics will become imutable in a future release
|
String |
toString() |
EllipseArc2D |
transform(AffineTransform2D trans)
Returns an instance of EllipseArc2D, or CircleArc2D if transform is a
similarity.
|
CirculinearElement2D |
transform(CircleInversion2D inv)
Transforms the shape by a circle inversion.
|
appendPath, containsAngle, create, create, draw, getAngle, getAngleExtent, getBoundingBox, getCurvature, getGeneralPath, getStartAngle, getSupportingEllipse, isDirect, isEmptygetLeftTangent, getRightTangent, getSingularPoints, isSingulargetAsAWTShape, getAsPolyline, getFirstPoint, getLastPoint, wrapCurvefinalize, getClass, hashCode, notify, notifyAll, wait, wait, waitappendPath, getAsPolyline, getLeftTangent, getRightTangentdraw, getAsAWTShape, getFirstPoint, getLastPoint, getSingularPoints, isSingulargetBoundingBox, isEmptygetCurvatureprotected Circle2D circle
public CircleArc2D()
public CircleArc2D(Circle2D circle, double startAngle, double angleExtent)
public CircleArc2D(Circle2D circle, double startAngle, double endAngle, boolean direct)
public CircleArc2D(Point2D center, double radius, double startAngle, double angleExtent)
public CircleArc2D(Point2D center, double radius, double start, double end, boolean direct)
public CircleArc2D(double xc,
double yc,
double r,
double start,
double end,
boolean direct)
public CircleArc2D(double xc,
double yc,
double r,
double start,
double extent)
public static CircleArc2D create(Circle2D support, double startAngle, double angleExtent)
public static CircleArc2D create(Circle2D support, double startAngle, double endAngle, boolean direct)
public static CircleArc2D create(Point2D center, double radius, double startAngle, double angleExtent)
public static CircleArc2D create(Point2D center, double radius, double startAngle, double endAngle, boolean direct)
@Deprecated public Circle2D getSupportCircle()
@Deprecated public void setCenter(Point2D point)
point - the new center of the arc.@Deprecated public void setRadius(double r)
r - the new radius@Deprecated public void setArc(Point2D center, double radius, double start, double extent)
public Circle2D getSupportingCircle()
getSupportingCircle in interface CircularShape2Dpublic CirculinearDomain2D getBuffer(double dist)
CirculinearShape2DgetBuffer in interface CirculinearShape2Ddist - the maximal distance between a point of the buffer and the
shapepublic CircleArc2D getParallel(double dist)
CirculinearCurve2D 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.getParallel in interface CirculinearContinuousCurve2DgetParallel in interface CirculinearCurve2DgetParallel in interface CirculinearElement2DgetParallel in interface ContinuousCirculinearCurve2Ddist - the distance between the original curve and he parallel curve.public double getLength()
getLength in interface CirculinearCurve2Dpublic double getLength(double pos)
getLength in interface CirculinearCurve2Dpublic double getPosition(double length)
getPosition in interface CirculinearCurve2Dpublic CirculinearElement2D transform(CircleInversion2D inv)
CirculinearShape2Dtransform in interface CirculinearContinuousCurve2Dtransform in interface CirculinearCurve2Dtransform in interface CirculinearElement2Dtransform in interface CirculinearShape2Dtransform in interface ContinuousCirculinearCurve2Dinv - the circle inversionpublic double getWindingAngle(Point2D point)
OrientedCurve2DgetWindingAngle in interface OrientedCurve2DgetWindingAngle in class EllipseArc2Dpoint - a point of the planepublic boolean isInside(Point2D point)
OrientedCurve2DisInside in interface OrientedCurve2DisInside in class EllipseArc2Dpoint - a point in the planepublic double getSignedDistance(Point2D p)
OrientedCurve2DgetSignedDistance in interface OrientedCurve2DgetSignedDistance in class EllipseArc2Dp - a point of the planepublic double getSignedDistance(double x,
double y)
OrientedCurve2DgetSignedDistance in interface OrientedCurve2DgetSignedDistance in class EllipseArc2Dx - x-coord of a pointy - y-coord of a pointpublic Vector2D getTangent(double t)
getTangent in interface SmoothCurve2DgetTangent in class EllipseArc2Dpublic Collection<? extends CircleArc2D> getSmoothPieces()
ContinuousCurve2DgetSmoothPieces in interface CirculinearContinuousCurve2DgetSmoothPieces in interface ContinuousCirculinearCurve2DgetSmoothPieces in interface ContinuousCurve2DgetSmoothPieces in class AbstractSmoothCurve2Dpublic boolean isClosed()
isClosed in interface ContinuousCurve2DisClosed in class EllipseArc2Dpublic double getT0()
getT0 in interface Curve2DgetT0 in class EllipseArc2Dpublic double getT1()
getT1 in interface Curve2DgetT1 in class EllipseArc2Dpublic Point2D getPoint(double t)
getPoint in interface Curve2DgetPoint in class EllipseArc2Dpublic double getPosition(Point2D point)
getPosition in interface Curve2DgetPosition in class EllipseArc2Dpoint - a point belonging to the curvepublic Collection<Point2D> getIntersections(LinearShape2D line)
getIntersections in interface Curve2DgetIntersections in class EllipseArc2Dpublic double project(Point2D point)
Curve2Dproject in interface Curve2Dproject in class EllipseArc2Dpoint - a point to projectpublic double getDistance(Point2D p)
Shape2DgetDistance in interface Shape2DgetDistance in class EllipseArc2Dpublic double getDistance(double x,
double y)
Shape2DgetDistance in interface Shape2DgetDistance in class EllipseArc2Dpublic boolean isBounded()
isBounded in interface Shape2DisBounded in class EllipseArc2Dpublic CircleArc2D getSubCurve(double t0, double t1)
getSubCurve in interface CirculinearContinuousCurve2DgetSubCurve in interface CirculinearCurve2DgetSubCurve in interface CirculinearElement2DgetSubCurve in interface ContinuousCirculinearCurve2DgetSubCurve in interface CircularShape2DgetSubCurve in interface ContinuousCurve2DgetSubCurve in interface Curve2DgetSubCurve in interface SmoothCurve2DgetSubCurve in interface ContinuousOrientedCurve2DgetSubCurve in interface SmoothOrientedCurve2DgetSubCurve in class EllipseArc2Dt0 - position of the start of the sub-curvet1 - position of the end of the sub-curvepublic CircleArc2D getReverseCurve()
getReverseCurve in interface CirculinearContinuousCurve2DgetReverseCurve in interface CirculinearCurve2DgetReverseCurve in interface CirculinearElement2DgetReverseCurve in interface ContinuousCirculinearCurve2DgetReverseCurve in interface CircularShape2DgetReverseCurve in interface ContinuousCurve2DgetReverseCurve in interface Curve2DgetReverseCurve in interface SmoothCurve2DgetReverseCurve in interface ContinuousOrientedCurve2DgetReverseCurve in interface OrientedCurve2DgetReverseCurve in interface SmoothOrientedCurve2DgetReverseCurve in class EllipseArc2Dpublic Collection<? extends CircleArc2D> getContinuousCurves()
Curve2DgetContinuousCurves in interface CirculinearCurve2DgetContinuousCurves in interface Curve2DgetContinuousCurves in class EllipseArc2Dpublic CurveSet2D<CircleArc2D> clip(Box2D box)
clip in interface CirculinearContinuousCurve2Dclip in interface CirculinearCurve2Dclip in interface CirculinearElement2Dclip in interface ContinuousCirculinearCurve2Dclip in interface CircularShape2Dclip in interface ContinuousCurve2Dclip in interface Curve2Dclip in interface SmoothCurve2Dclip in interface ContinuousOrientedCurve2Dclip in interface OrientedCurve2Dclip in interface SmoothOrientedCurve2Dclip in interface Shape2Dclip in class EllipseArc2Dbox - the clipping boxpublic EllipseArc2D transform(AffineTransform2D trans)
transform in interface ContinuousCurve2Dtransform in interface Curve2Dtransform in interface SmoothCurve2Dtransform in interface ContinuousOrientedCurve2Dtransform in interface OrientedCurve2Dtransform in interface SmoothOrientedCurve2Dtransform in interface Shape2Dtransform in class EllipseArc2Dtrans - an affine transformpublic boolean contains(Point2D p)
Shape2Dcontains in interface Shape2Dcontains in class EllipseArc2Dpublic boolean contains(double x,
double y)
Shape2Dcontains in interface Shape2Dcontains in class EllipseArc2Dpublic String toString()
toString in class EllipseArc2Dpublic boolean equals(Object obj)
equals in class EllipseArc2Dpublic CircleArc2D clone()
Curve2Dclone in interface Curve2Dclone in class EllipseArc2DCopyright © 2012 AMIS research group, Faculty of Mathematics and Physics, Charles University in Prague, Czech Republic. All Rights Reserved.