public class Parabola2D extends AbstractSmoothCurve2D implements ContinuousBoundary2D, Conic2D, Cloneable
Following parametric representation is used:
x(t)=t
y(t)=a*t^2
This is a signed parameter (negative a makes the parabola point to opposite side).
Conic2D.Type| Modifier and Type | Field and Description |
|---|---|
protected double |
a
The parameter of the parabola.
|
protected double |
theta
orientation of the parabola
|
protected double |
xv
Coordinate of the vertex
|
protected double |
yv
Coordinate of the vertex
|
| Constructor and Description |
|---|
Parabola2D() |
Parabola2D(double xv,
double yv,
double a,
double theta) |
Parabola2D(Point2D vertex,
double a,
double theta) |
| Modifier and Type | Method and Description |
|---|---|
GeneralPath |
appendPath(GeneralPath path)
Throws an infiniteShapeException
|
CurveSet2D<ParabolaArc2D> |
clip(Box2D box)
Clip the parabola by a box.
|
Parabola2D |
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.
|
static Parabola2D |
create(Point2D vertex,
Point2D focus)
Creates a parabola by supplying the vertex and the focus.
|
boolean |
equals(Object obj) |
void |
fill(Graphics2D g2)
Throws an infiniteShapeException
|
double |
getAngle()
Returns orientation angle of parabola.
|
Collection<ContinuousBoundary2D> |
getBoundaryCurves()
Returns the different continuous curves composing the boundary
|
Box2D |
getBoundingBox()
Returns the bounding box of the shape.
|
double[] |
getConicCoefficients()
Returns the coefficient of the Cartesian representation of the conic.
|
Conic2D.Type |
getConicType() |
double |
getCurvature(double t)
Returns the curvature of the parabola at the given position.
|
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.
|
Domain2D |
getDomain()
Returns the domain delimited by this boundary.
|
double |
getEccentricity()
Return 1, by definition for a parabola.
|
Point2D |
getFocus()
Returns the focus of the parabola.
|
double |
getFocusDistance() |
Collection<Point2D> |
getIntersections(LinearShape2D line)
Returns the intersection points of the curve with the specified line.
|
double |
getParameter() |
Point2D |
getPoint(double t)
Gets the point from a parametric representation of the curve.
|
double |
getPosition(Point2D point)
Returns position of point on the parabola.
|
Parabola2D |
getReverseCurve()
Returns the parabola with same vertex, direction vector in opposite
direction and opposite parameter
p. |
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.
|
ParabolaArc2D |
getSubCurve(double t0,
double t1)
Returns a new ParabolaArc2D, or null if t1 |
double |
getT0()
Returns the parameter of the first point of the line, which is always
Double.NEGATIVE_INFINITY.
|
double |
getT1()
Returns the parameter of the last point of the line, which is always
Double.POSITIVE_INFINITY.
|
Vector2D |
getTangent(double t) |
Vector2D |
getVector1()
Returns the first direction vector of the parabola
|
Vector2D |
getVector2()
Returns the second direction vector of the parabola.
|
Point2D |
getVertex() |
double |
getWindingAngle(Point2D point)
Return the angle portion that the curve turn around the given point.
|
boolean |
isBounded()
Always returns false, because a parabola is not bounded.
|
boolean |
isClosed()
Returns false, as a parabola is an open curve.
|
boolean |
isDirect()
Returns true if the parameter a is positive.
|
boolean |
isEmpty()
Returns false, as a parabola is never empty.
|
boolean |
isInside(Point2D point)
Returns true if the point is 'inside' the domain bounded by the curve.
|
double |
project(Point2D point)
Returns position of point on the parabola.
|
String |
toString() |
Parabola2D |
transform(AffineTransform2D trans)
Transforms the parabola by an affine transform.
|
getLeftTangent, getRightTangent, getSingularPoints, getSmoothPieces, isSingulardraw, getAsAWTShape, getAsPolyline, getContinuousCurves, getFirstPoint, getLastPoint, wrapCurvefinalize, getClass, hashCode, notify, notifyAll, wait, wait, waitgetAsPolyline, getLeftTangent, getRightTangent, getSmoothPiecesdraw, getAsAWTShape, getContinuousCurves, getFirstPoint, getLastPoint, getSingularPoints, isSingularprotected double xv
protected double yv
protected double theta
protected double a
public Parabola2D()
public Parabola2D(Point2D vertex, double a, double theta)
public Parabola2D(double xv,
double yv,
double a,
double theta)
public static final Parabola2D create(Point2D vertex, Point2D focus)
vertex - the vertex point of the parabolafocus - the focal point of the parabolapublic Point2D getFocus()
public double getParameter()
public double getFocusDistance()
public Point2D getVertex()
public Vector2D getVector1()
public Vector2D getVector2()
public double getAngle()
public boolean isDirect()
public Conic2D.Type getConicType()
getConicType in interface Conic2Dpublic double[] getConicCoefficients()
Conic2Da*x^2 + b*x*y + c*y^2 + d*x + e*y + f
The length of the array is then of size 6.
getConicCoefficients in interface Conic2Dpublic double getEccentricity()
getEccentricity in interface Conic2Dpublic Collection<ContinuousBoundary2D> getBoundaryCurves()
Boundary2DgetBoundaryCurves in interface Boundary2Dpublic Domain2D getDomain()
Boundary2DgetDomain in interface Boundary2Dpublic double getWindingAngle(Point2D point)
OrientedCurve2DgetWindingAngle in interface OrientedCurve2Dpoint - a point of 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 boolean isInside(Point2D point)
Boundary2DisInside in interface Boundary2DisInside in interface OrientedCurve2Dpoint - a point in the planepublic Vector2D getTangent(double t)
getTangent in interface SmoothCurve2Dpublic double getCurvature(double t)
getCurvature in interface SmoothCurve2Dpublic boolean isClosed()
isClosed in interface ContinuousCurve2Dpublic double getT0()
public double getT1()
public Point2D getPoint(double t)
Curve2Dpublic double getPosition(Point2D point)
getPosition in interface Curve2Dpoint - a point belonging to the curvepublic double project(Point2D point)
public Collection<Point2D> getIntersections(LinearShape2D line)
Curve2DgetIntersections in interface Curve2Dpublic Parabola2D getReverseCurve()
p.getReverseCurve in interface Conic2DgetReverseCurve in interface ContinuousCurve2DgetReverseCurve in interface Curve2DgetReverseCurve in interface SmoothCurve2DgetReverseCurve in interface Boundary2DgetReverseCurve in interface ContinuousBoundary2DgetReverseCurve in interface ContinuousOrientedCurve2DgetReverseCurve in interface OrientedCurve2Dpublic ParabolaArc2D getSubCurve(double t0, double t1)
getSubCurve in interface ContinuousCurve2DgetSubCurve in interface Curve2DgetSubCurve in interface SmoothCurve2DgetSubCurve in interface ContinuousOrientedCurve2Dt0 - position of the start of the sub-curvet1 - position of the end of the sub-curvepublic double getDistance(Point2D p)
Shape2DgetDistance in interface Shape2Dpublic double getDistance(double x,
double y)
Shape2DgetDistance in interface Shape2Dpublic GeneralPath appendPath(GeneralPath path)
appendPath in interface ContinuousCurve2Dpath - a path to modifypublic void fill(Graphics2D g2)
fill in interface Boundary2Dpublic boolean isBounded()
public boolean isEmpty()
public CurveSet2D<ParabolaArc2D> clip(Box2D box)
clip in interface Conic2Dclip in interface ContinuousCurve2Dclip in interface Curve2Dclip in interface SmoothCurve2Dclip in interface ContinuousOrientedCurve2Dclip in interface OrientedCurve2Dclip in interface Shape2Dbox - the clipping boxpublic Box2D getBoundingBox()
Shape2DgetBoundingBox in interface Shape2Dpublic Parabola2D 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 Shape2Dtrans - an affine transformpublic boolean contains(double x,
double y)
Shape2Dpublic boolean contains(Point2D point)
Shape2Dpublic Parabola2D 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.