|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||

java.lang.Objectmath.geom2d.curve.AbstractContinuousCurve2D
math.geom2d.curve.AbstractSmoothCurve2D
math.geom2d.conic.Ellipse2D
public class Ellipse2D
An ellipse in the plane. It is defined by the center, the orientation angle, and the lengths of the two axis. No convention is taken about lengths of semiaxis : the second semi axis can be greater than the first one.
| Nested Class Summary |
|---|
| Nested classes/interfaces inherited from interface math.geom2d.conic.Conic2D |
|---|
Conic2D.Type |
| Field Summary | |
|---|---|
protected boolean |
direct
directed ellipse or not |
protected double |
r1
length of major semi-axis |
protected double |
r2
length of minor semi-axis |
protected double |
theta
orientation of major semi-axis |
protected double |
xc
coordinate of center. |
protected double |
yc
|
| Fields inherited from interface math.geom2d.Shape2D |
|---|
ACCURACY |
| Constructor Summary | |
|---|---|
Ellipse2D()
Empty constructor, define ellipse centered at origin with both major and minor semi-axis with length equal to 1. |
|
Ellipse2D(double xc,
double yc,
double l1,
double l2)
Define center by coordinate, plus major and minor semi axis |
|
Ellipse2D(double xc,
double yc,
double l1,
double l2,
double theta)
Define center by coordinate, major and minor semi axis lengths, and orientation angle. |
|
Ellipse2D(double xc,
double yc,
double l1,
double l2,
double theta,
boolean direct)
Define center by coordinate, major and minor semi axis lengths, orientation angle, and boolean flag for directed ellipse. |
|
Ellipse2D(Ellipse2D ellipse)
construct an ellipse from the java.awt.geom class for ellipse. |
|
Ellipse2D(Point2D center,
double l1,
double l2)
Main constructor: define center by a point plus major and minor semi axis |
|
Ellipse2D(Point2D center,
double l1,
double l2,
double theta)
Define center by point, major and minor semi axis lengths, and orientation angle. |
|
| Method Summary | |
|---|---|
GeneralPath |
appendPath(GeneralPath path)
Add the path of the ellipse to the given path. |
CurveSet2D<? extends SmoothOrientedCurve2D> |
clip(Box2D box)
Clip the ellipse by a box. |
Ellipse2D |
clone()
Overrides Object declaration to ensure Curve2D implementation are cloned as Curve2D. |
boolean |
contains(double x,
double y)
Return true if the point (x, y) lies on the ellipse, with precision given by Shape2D.ACCURACY. |
boolean |
contains(Point2D p)
Return true if the point p lies on the ellipse, with precision given by Shape2D.ACCURACY. |
static Ellipse2D |
create(Ellipse2D ellipse)
Constructs an ellipse from the java.awt.geom class for ellipse. |
static Ellipse2D |
create(Point2D center,
double l1,
double l2)
Main constructor: define center by a point plus major and minor semi axis |
static Ellipse2D |
create(Point2D center,
double l1,
double l2,
double theta)
Define center by point, major and minor semi axis lengths, and orientation angle. |
static Ellipse2D |
create(Point2D center,
double l1,
double l2,
double theta,
boolean direct)
Define center by point, major and minor semi axis lengths, orientation angle, and boolean flag for direct ellipse. |
static Ellipse2D |
create(Point2D focus1,
Point2D focus2,
double chord)
Create a new Ellipse by specifying the two focii, and the length of the chord. |
void |
draw(Graphics2D g2)
Draws the curve on the given Graphics2D object. |
boolean |
equals(Object obj)
|
void |
fill(Graphics2D g2)
|
double |
getAngle()
return the angle of the ellipse first axis with the Ox axis. |
Collection<? extends Ellipse2D> |
getBoundaryCurves()
Returns the different continuous curves composing the boundary |
Box2D |
getBoundingBox()
Return more precise bounds for the ellipse. |
Point2D |
getCenter()
Returns center of the ellipse. |
double[] |
getConicCoefficients()
Returns the conic coefficients of the ellipse. |
Conic2D.Type |
getConicType()
|
Collection<? extends Ellipse2D> |
getContinuousCurves()
Returns the collection of continuous curves which constitute this curve. |
double |
getCurvature(double t)
Returns the curvature of the ellipse. |
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. |
Domain2D |
getDomain()
Returns the domain delimited by this boundary. |
double |
getEccentricity()
Computes eccentricity of ellipse, depending on the lengths of the semi-axes. |
Point2D |
getFirstPoint()
Get the first point of the ellipse, which is the same as the last point. |
Point2D |
getFocus1()
Return the first focus. |
Point2D |
getFocus2()
Returns the second focus. |
GeneralPath |
getGeneralPath()
|
Collection<Point2D> |
getIntersections(LinearShape2D line)
Compute intersections of the ellipse with a straight object (line, line segment, ray...). |
Point2D |
getLastPoint()
Get the last point of the ellipse, which is the same as the first point. |
Ellipse2D |
getParallel(double d)
Return the parallel ellipse located at a distance d from this ellipse. |
Point2D |
getPoint(double t)
get the position of the curve from internal parametric representation, depending on the parameter t. |
double |
getPosition(Point2D point)
Get position of the point on the curve. |
Point2D |
getProjectedPoint(Point2D point)
|
Vector2D |
getProjectedVector(Point2D point,
double eMax)
Compute projection of a point onto an ellipse. |
Ellipse2D |
getReverseCurve()
Returns the ellipse with same center and same radius, but with the other orientation. |
double |
getRho(double angle)
Return the RHO parameter, in a polar representation of the ellipse, centered at the center of ellipse. |
double |
getSemiMajorAxisLength()
Returns the length of the major semi-axis of the ellipse. |
double |
getSemiMinorAxisLength()
Returns the length of the minor semi-axis of the ellipse. |
double |
getSignedDistance(double x,
double y)
The same as getSignedDistance(Point2D), but by passing 2 double as arguments. |
double |
getSignedDistance(Point2D point)
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. |
EllipseArc2D |
getSubCurve(double t0,
double t1)
return a new EllipseArc2D. |
double |
getT0()
Returns the parameter of the first point of the ellipse, set to 0. |
double |
getT1()
Returns the parameter of the last point of the ellipse, set to 2*PI. |
Vector2D |
getTangent(double t)
|
Vector2D |
getVector1()
|
Vector2D |
getVector2()
|
double |
getWindingAngle(Point2D point)
Return either 0, 2*PI or -2*PI, depending whether the point is located inside the interior of the ellipse or not. |
boolean |
isBounded()
Always returns true, because an ellipse is bounded. |
boolean |
isCircle()
|
boolean |
isClosed()
Returns true, as an ellipse is always closed. |
boolean |
isDirect()
return true if ellipse has a direct orientation. |
boolean |
isEmpty()
Returns true if the shape does not contain any point. |
boolean |
isInside(Point2D point)
Test whether the point is inside the ellipse. |
double |
project(Point2D point)
Computes the approximate projection position of the point on the ellipse. |
static Ellipse2D |
reduceCentered(double[] coefs)
Creates a new Ellipse by reducing the conic coefficients, assuming conic type is ellipse, and ellipse is centered. |
void |
setCenter(double x,
double y)
Deprecated. conics will become immutable in a future release |
void |
setCenter(Point2D center)
Deprecated. conics will become immutable in a future release |
void |
setEllipse(double xc,
double yc,
double r1,
double r2,
double theta)
Deprecated. conics will become immutable in a future release |
void |
setEllipse(double xc,
double yc,
double r1,
double r2,
double theta,
boolean direct)
Deprecated. conics will become immutable in a future release |
void |
setEllipse(Point2D center,
double r1,
double r2,
double theta)
Deprecated. conics will become immutable in a future release |
void |
setEllipse(Point2D center,
double r1,
double r2,
double theta,
boolean direct)
Deprecated. conics will become immutable in a future release |
String |
toString()
|
Ellipse2D |
transform(AffineTransform2D trans)
Transforms this ellipse by an affine transform. |
static Ellipse2D |
transformCentered(Ellipse2D ellipse,
AffineTransform2D trans)
Transform an ellipse, by supposing both the ellipse is centered and the transform has no translation part. |
| Methods inherited from class math.geom2d.curve.AbstractSmoothCurve2D |
|---|
getLeftTangent, getRightTangent, getSingularPoints, getSmoothPieces, isSingular |
| Methods inherited from class math.geom2d.curve.AbstractContinuousCurve2D |
|---|
getAsAWTShape, getAsPolyline, 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, getSmoothPieces |
| Methods inherited from interface math.geom2d.curve.Curve2D |
|---|
getAsAWTShape, getSingularPoints, isSingular |
| Field Detail |
|---|
protected double xc
protected double yc
protected double r1
protected double r2
protected double theta
protected boolean direct
| Constructor Detail |
|---|
public Ellipse2D()
public Ellipse2D(Point2D center,
double l1,
double l2)
public Ellipse2D(double xc,
double yc,
double l1,
double l2)
public Ellipse2D(Point2D center,
double l1,
double l2,
double theta)
public Ellipse2D(double xc,
double yc,
double l1,
double l2,
double theta)
public Ellipse2D(double xc,
double yc,
double l1,
double l2,
double theta,
boolean direct)
public Ellipse2D(Ellipse2D ellipse)
| Method Detail |
|---|
public static Ellipse2D create(Point2D focus1,
Point2D focus2,
double chord)
focus1 - the first focusfocus2 - the second focuschord - the sum of distances to focii
public static Ellipse2D create(Point2D center,
double l1,
double l2)
public static Ellipse2D create(Point2D center,
double l1,
double l2,
double theta)
public static Ellipse2D create(Point2D center,
double l1,
double l2,
double theta,
boolean direct)
public static Ellipse2D create(Ellipse2D ellipse)
public static final Ellipse2D reduceCentered(double[] coefs)
coefs - an array of double with at least 3 coefficients containing
coefficients for x^2, xy, and y^2 factors.
public static final Ellipse2D transformCentered(Ellipse2D ellipse,
AffineTransform2D trans)
ellipse - an ellipsetrans - an affine transform
@Deprecated
public void setEllipse(double xc,
double yc,
double r1,
double r2,
double theta)
@Deprecated
public void setEllipse(double xc,
double yc,
double r1,
double r2,
double theta,
boolean direct)
@Deprecated
public void setEllipse(Point2D center,
double r1,
double r2,
double theta)
@Deprecated
public void setEllipse(Point2D center,
double r1,
double r2,
double theta,
boolean direct)
@Deprecated public void setCenter(Point2D center)
@Deprecated
public void setCenter(double x,
double y)
public double getRho(double angle)
angle - : angle from horizontal
public Point2D getProjectedPoint(Point2D point)
public Vector2D getProjectedVector(Point2D point,
double eMax)
point to its
projection on the ellipse, with the direction parallel to the local
normal to the ellipse. The parameter rho of the
PolarVector2D is positive if point lies
Refs :
http://www.spaceroots.org/documents/distance/distance-to-ellipse.pdf,
http://www.spaceroots.org/downloads.html
- Parameters:
point - eMax -
- Returns:
- the projection vector
public Ellipse2D getParallel(double d)
public boolean isDirect()
public boolean isCircle()
public Conic2D.Type getConicType()
getConicType in interface Conic2Dpublic double[] getConicCoefficients()
getConicCoefficients in interface Conic2Dpublic double getSemiMajorAxisLength()
public double getSemiMinorAxisLength()
public double getEccentricity()
getEccentricity in interface Conic2Dpublic Point2D getCenter()
public Point2D getFocus1()
public Point2D getFocus2()
public Vector2D getVector1()
public Vector2D getVector2()
public double getAngle()
public Collection<? extends Ellipse2D> getBoundaryCurves()
Boundary2D
getBoundaryCurves in interface Boundary2Dpublic Domain2D getDomain()
Boundary2D
getDomain in interface Boundary2Dpublic void fill(Graphics2D g2)
fill in interface Boundary2Dpublic double getWindingAngle(Point2D point)
getWindingAngle in interface OrientedCurve2Dpoint - a point of the plane
public boolean isInside(Point2D point)
isInside in interface Boundary2DisInside in interface OrientedCurve2Dpoint - a point in the plane
public double getSignedDistance(Point2D point)
OrientedCurve2D
getSignedDistance in interface OrientedCurve2Dpoint - a point of the plane
public double getSignedDistance(double x,
double y)
OrientedCurve2D
getSignedDistance in interface OrientedCurve2Dx - x-coord of a pointy - y-coord of a point
public Vector2D getTangent(double t)
getTangent in interface SmoothCurve2Dpublic double getCurvature(double t)
getCurvature in interface SmoothCurve2Dpublic boolean isClosed()
isClosed in interface ContinuousCurve2Dpublic double getT0()
getT0 in interface Curve2Dpublic double getT1()
getT1 in interface Curve2Dpublic Point2D getPoint(double t)
getPoint in interface Curve2Dpublic Point2D getFirstPoint()
getFirstPoint in interface Curve2DgetFirstPoint in class AbstractContinuousCurve2Dpublic Point2D getLastPoint()
getLastPoint in interface Curve2DgetLastPoint in class AbstractContinuousCurve2Dpublic double getPosition(Point2D point)
Curve2D
getPosition in interface Curve2Dpoint - a point belonging to the curve
public double project(Point2D point)
project in interface Curve2Dpoint - a point to project
public Ellipse2D getReverseCurve()
getReverseCurve in interface Conic2DgetReverseCurve in interface ContinuousCurve2DgetReverseCurve in interface Curve2DgetReverseCurve in interface SmoothCurve2DgetReverseCurve in interface Boundary2DgetReverseCurve in interface ContinuousBoundary2DgetReverseCurve in interface ContinuousOrientedCurve2DgetReverseCurve in interface OrientedCurve2DgetReverseCurve in interface SmoothBoundary2DgetReverseCurve in interface SmoothOrientedCurve2Dpublic Collection<? extends Ellipse2D> getContinuousCurves()
Curve2D
getContinuousCurves in interface Curve2DgetContinuousCurves in class AbstractContinuousCurve2D
public 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-curve
public boolean isBounded()
isBounded in interface Shape2Dpublic boolean isEmpty()
Shape2D
isEmpty in interface Shape2Dpublic double getDistance(Point2D point)
Shape2D
getDistance in interface Shape2D
public double getDistance(double x,
double y)
Shape2D
getDistance in interface Shape2Dpublic CurveSet2D<? extends SmoothOrientedCurve2D> clip(Box2D box)
clip in interface Conic2Dclip in interface ContinuousCurve2Dclip in interface Curve2Dclip in interface SmoothCurve2Dclip in interface ContinuousOrientedCurve2Dclip in interface OrientedCurve2Dclip in interface SmoothOrientedCurve2Dclip in interface Shape2Dbox - the clipping box
public Box2D getBoundingBox()
getBoundingBox in interface Shape2Dpublic Collection<Point2D> getIntersections(LinearShape2D line)
Principle of the algorithm is to transform line and ellipse such that ellipse becomes a circle, then using the intersections computation from circle.
getIntersections in interface Curve2Dpublic Ellipse2D transform(AffineTransform2D trans)
transform in interface Conic2Dtransform in interface ContinuousCurve2Dtransform in interface Curve2Dtransform in interface SmoothCurve2Dtransform in interface Boundary2Dtransform in interface ContinuousBoundary2Dtransform in interface ContinuousOrientedCurve2Dtransform in interface OrientedCurve2Dtransform in interface SmoothBoundary2Dtransform in interface SmoothOrientedCurve2Dtransform in interface Shape2Dtrans - an affine transform
public boolean contains(Point2D p)
contains in interface Shape2D
public boolean contains(double x,
double y)
contains in interface Shape2Dpublic GeneralPath getGeneralPath()
public GeneralPath appendPath(GeneralPath path)
appendPath in interface ContinuousCurve2Dpath - the path to be completed
public void draw(Graphics2D g2)
Curve2D
draw in interface Curve2Ddraw in interface Shape2Ddraw in class AbstractContinuousCurve2Dg2 - the graphics to draw the curvepublic boolean equals(Object obj)
equals in class Objectpublic Ellipse2D clone()
Curve2D
clone in interface Curve2Dclone in class AbstractSmoothCurve2Dpublic String toString()
toString in class Object
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||