|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectmath.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.
| Field Summary | |
|---|---|
protected boolean |
direct
directed ellipse or not |
protected double |
r1
length of semi axis |
protected double |
r2
length of semi axis |
protected double |
theta
orientation of first semi major axis |
protected double |
xc
coordinate of center. |
protected double |
yc
|
| Fields inherited from interface math.geom2d.conic.Conic2D |
|---|
CIRCLE, ELLIPSE, HYPERBOLA, NOT_A_CONIC, PARABOLA, POINT, STRAIGHT_LINE, TWO_LINES |
| Fields inherited from interface math.geom2d.curve.ContinuousCurve2D |
|---|
CLOSED_EDGE, LOOP, OPEN_EDGE |
| Fields inherited from interface math.geom2d.Shape2D |
|---|
ACCURACY, defaultClipWindow, EMPTY_SET |
| 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(java.awt.geom.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 smei 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 | |
|---|---|
java.awt.geom.GeneralPath |
appendPath(java.awt.geom.GeneralPath path)
Add the path of the ellipse to the given path. |
CurveSet2D<? extends SmoothOrientedCurve2D> |
clip(Box2D box)
Clip the ellipse by a box. |
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(double x,
double y,
double w,
double h)
returns false, as an ellipse cannot contains a rectangle |
boolean |
contains(java.awt.geom.Point2D p)
Return true if the point p lies on the ellipse, with precision given by Shape2D.ACCURACY. |
boolean |
contains(java.awt.geom.Rectangle2D rect)
returns false, as an ellipse cannot contains a rectangle. |
boolean |
equals(java.lang.Object obj)
|
double |
getAngle()
return the angle of the ellipse first axis with the Ox axis. |
Polyline2D |
getAsPolyline(int n)
return as a closed polyline with n line segments. |
java.util.Collection<ContinuousBoundary2D> |
getBoundaryCurves()
Return the different continuous curves composing the boundary |
Box2D |
getBoundingBox()
Return more precise bounds for the ellipse. |
java.awt.Rectangle |
getBounds()
Return bounding box of the shape. |
java.awt.geom.Rectangle2D |
getBounds2D()
Return more precise bounds for the shape. |
double[] |
getCartesianEquation()
Return the coefficient of the cartesian representation of the conic. |
Point2D |
getCenter()
return center of ellipse. |
int |
getConicType()
|
java.util.Collection<ContinuousCurve2D> |
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. fillable) shape. |
double |
getDistance(java.awt.geom.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. |
double |
getEccentricity()
compute eccentricity of ellipse, depending on the lengths of the semi axis. |
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()
Return the second focus. |
protected java.awt.geom.GeneralPath |
getGeneralPath()
|
java.util.Collection<Point2D> |
getIntersections(StraightObject2D 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. |
double |
getLength1()
Returns the length of the first semi-axis of the ellipse. |
double |
getLength2()
Returns the length of the second semi-axis of the ellipse. |
java.awt.geom.PathIterator |
getPathIterator(java.awt.geom.AffineTransform trans)
Return pathiterator for this circle. |
java.awt.geom.PathIterator |
getPathIterator(java.awt.geom.AffineTransform trans,
double flatness)
Return pathiterator for this circle. |
Point2D |
getPoint(double t)
get the position of the curve from internal parametric representation, depending on the parameter t. |
Point2D |
getPoint(double t,
Point2D point)
Same as getPoint(t), but gives the point as a parameter. |
double |
getPosition(Point2D point)
Get position of the point on the curve. |
Point2D |
getProjectedPoint(java.awt.geom.Point2D point)
|
Vector2D |
getProjectedVector(java.awt.geom.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 |
getSignedDistance(double x,
double y)
The same as getSignedDistance(Point2D), but by passing 2 double as arguments. |
double |
getSignedDistance(java.awt.geom.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. |
java.util.Collection<? extends SmoothCurve2D> |
getSmoothPieces()
Returns a set of smooth curves, which contains only the ellipse. |
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(java.awt.geom.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 |
intersects(double x,
double y,
double w,
double h)
Tests if the Ellipse intersects the interior of a specified rectangular area. |
boolean |
intersects(java.awt.geom.Rectangle2D r)
Tests if the Ellipse intersects the interior of a specified rectangle2D. |
boolean |
isBounded()
Always returns true, because an ellipse is bounded. |
boolean |
isCircle()
|
boolean |
isClosed()
return true, as an ellipse is always closed. |
boolean |
isDegenerated()
|
boolean |
isDirect()
return true if ellipse has a direct orientation. |
boolean |
isEllipse()
|
boolean |
isHyperbola()
|
boolean |
isInside(java.awt.geom.Point2D point)
Test whether the point is inside the ellipse. |
boolean |
isParabola()
|
boolean |
isPoint()
|
boolean |
isStraightLine()
|
boolean |
isTwoLines()
|
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 |
setCenter(double x,
double y)
|
void |
setCenter(Point2D center)
|
void |
setEllipse(double xc,
double yc,
double r1,
double r2,
double theta)
|
void |
setEllipse(double xc,
double yc,
double r1,
double r2,
double theta,
boolean direct)
|
void |
setEllipse(Point2D center,
double r1,
double r2,
double theta)
|
void |
setEllipse(Point2D center,
double r1,
double r2,
double theta,
boolean direct)
|
java.lang.String |
toString()
|
Ellipse2D |
transform(AffineTransform2D trans)
Transforms this ellipse by an affine transform. |
| Methods inherited from class java.lang.Object |
|---|
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| 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(java.awt.geom.Ellipse2D ellipse)
| Method Detail |
|---|
public void setEllipse(double xc,
double yc,
double r1,
double r2,
double theta)
public void setEllipse(double xc,
double yc,
double r1,
double r2,
double theta,
boolean direct)
public void setEllipse(Point2D center,
double r1,
double r2,
double theta)
public void setEllipse(Point2D center,
double r1,
double r2,
double theta,
boolean direct)
public void setCenter(Point2D center)
public void setCenter(double x,
double y)
public Polyline2D getAsPolyline(int n)
n line segments.
getAsPolyline in interface ContinuousCurve2Dn - the number of line segments
n line segments.public double getRho(double angle)
angle - : angle from horizontal
public Point2D getProjectedPoint(java.awt.geom.Point2D point)
public Vector2D getProjectedVector(java.awt.geom.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 int getConicType()
getConicType in interface Conic2Dpublic boolean isEllipse()
public boolean isParabola()
public boolean isHyperbola()
public boolean isCircle()
public boolean isStraightLine()
public boolean isTwoLines()
public boolean isPoint()
public boolean isDegenerated()
public double[] getCartesianEquation()
Conic2Da*x^2 + b*x*y + c*y^2 + d*x + e*y + f
The length of the array is then of size 6.
getCartesianEquation in interface Conic2Dpublic double getLength1()
public double getLength2()
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 boolean isDirect()
public Vector2D getTangent(double t)
getTangent in interface SmoothCurve2Dpublic double getCurvature(double t)
getCurvature in interface SmoothCurve2Dpublic java.util.Collection<ContinuousBoundary2D> getBoundaryCurves()
Boundary2D
getBoundaryCurves in interface Boundary2Dpublic java.util.Collection<? extends SmoothCurve2D> getSmoothPieces()
getSmoothPieces in interface ContinuousCurve2Dpublic boolean isClosed()
isClosed in interface ContinuousCurve2Dpublic double getWindingAngle(java.awt.geom.Point2D point)
getWindingAngle in interface OrientedCurve2Dpoint - a point of the plane
public boolean isInside(java.awt.geom.Point2D point)
isInside in interface OrientedCurve2Dpoint - a point in the plane
public double getSignedDistance(java.awt.geom.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 double getT0()
getT0 in interface Curve2Dpublic double getT1()
getT1 in interface Curve2Dpublic Point2D getPoint(double t)
getPoint in interface Curve2D
public Point2D getPoint(double t,
Point2D point)
Curve2D
getPoint in interface Curve2Dpublic Point2D getFirstPoint()
getFirstPoint in interface Curve2Dpublic Point2D getLastPoint()
getLastPoint in interface Curve2Dpublic double getPosition(Point2D point)
Curve2D
getPosition in interface Curve2Dpoint - a point belonging to the curve
public double project(Point2D point)
Curve2D
project in interface Curve2Dpoint - a point to project
public Ellipse2D getReverseCurve()
getReverseCurve in interface Conic2DgetReverseCurve in interface Boundary2DgetReverseCurve in interface ContinuousBoundary2DgetReverseCurve in interface ContinuousCurve2DgetReverseCurve in interface ContinuousOrientedCurve2DgetReverseCurve in interface Curve2DgetReverseCurve in interface OrientedCurve2DgetReverseCurve in interface SmoothCurve2DgetReverseCurve in interface SmoothOrientedCurve2Dpublic java.util.Collection<ContinuousCurve2D> getContinuousCurves()
Curve2D
getContinuousCurves in interface Curve2D
public EllipseArc2D getSubCurve(double t0,
double t1)
getSubCurve in interface ContinuousCurve2DgetSubCurve in interface ContinuousOrientedCurve2DgetSubCurve in interface Curve2DgetSubCurve in interface SmoothCurve2DgetSubCurve 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 double getDistance(java.awt.geom.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 ContinuousOrientedCurve2Dclip in interface Curve2Dclip in interface OrientedCurve2Dclip in interface SmoothCurve2Dclip in interface SmoothOrientedCurve2Dclip in interface Shape2Dbox - the clipping box
public Box2D getBoundingBox()
getBoundingBox in interface Shape2Dpublic java.util.Collection<Point2D> getIntersections(StraightObject2D 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 Boundary2Dtransform in interface ContinuousBoundary2Dtransform in interface ContinuousCurve2Dtransform in interface ContinuousOrientedCurve2Dtransform in interface Curve2Dtransform in interface OrientedCurve2Dtransform in interface SmoothCurve2Dtransform in interface SmoothOrientedCurve2Dtransform in interface Shape2Dtrans - an affine transform
public boolean contains(java.awt.geom.Point2D p)
contains in interface java.awt.Shape
public boolean contains(double x,
double y)
contains in interface java.awt.Shape
public boolean contains(double x,
double y,
double w,
double h)
contains in interface java.awt.Shapepublic boolean contains(java.awt.geom.Rectangle2D rect)
contains in interface java.awt.Shapepublic java.awt.Rectangle getBounds()
getBounds in interface java.awt.Shapepublic java.awt.geom.Rectangle2D getBounds2D()
getBounds2D in interface java.awt.Shape
public boolean intersects(double x,
double y,
double w,
double h)
intersects in interface java.awt.Shapepublic boolean intersects(java.awt.geom.Rectangle2D r)
intersects in interface java.awt.Shapepublic java.awt.geom.GeneralPath appendPath(java.awt.geom.GeneralPath path)
appendPath in interface ContinuousCurve2Dpath - the path to be completed
protected java.awt.geom.GeneralPath getGeneralPath()
public java.awt.geom.PathIterator getPathIterator(java.awt.geom.AffineTransform trans)
getPathIterator in interface java.awt.Shape
public java.awt.geom.PathIterator getPathIterator(java.awt.geom.AffineTransform trans,
double flatness)
getPathIterator in interface java.awt.Shapepublic boolean equals(java.lang.Object obj)
equals in class java.lang.Objectpublic java.lang.String toString()
toString in class java.lang.Object
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||