math.geom2d.conic
Class Parabola2D
- java.lang.Object
-
- math.geom2d.curve.AbstractContinuousCurve2D
-
- math.geom2d.curve.AbstractSmoothCurve2D
-
- math.geom2d.conic.Parabola2D
-
- All Implemented Interfaces:
- java.lang.Cloneable, Conic2D, ContinuousCurve2D, Curve2D, SmoothCurve2D, Boundary2D, ContinuousOrientedCurve2D, Contour2D, OrientedCurve2D, GeometricObject2D, Shape2D
public class Parabola2D extends AbstractSmoothCurve2D implements Contour2D, Conic2D, java.lang.Cloneable
A parabola, defined by its vertex, its orientation, and its pedal. Orientation is defined as the orientation of derivative at vertex point, with the second derivative pointing to the top.Following parametric representation is used:
x(t)=ty(t)=a*t^2This is a signed parameter (negative a makes the parabola point to opposite side).
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface math.geom2d.conic.Conic2D
Conic2D.Type
-
-
Constructor Summary
Constructors Constructor and Description Parabola2D()Empty constructor.Parabola2D(double xv, double yv, double a, double theta)Parabola2D(Point2D vertex, double a, double theta)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method and Description booleanalmostEquals(GeometricObject2D obj, double eps)Checks if the two objects are similar up to a given threshold value.java.awt.geom.GeneralPathappendPath(java.awt.geom.GeneralPath path)Throws an infiniteShapeExceptionBox2DboundingBox()Returns the bounding box of the shape.CurveSet2D<ParabolaArc2D>clip(Box2D box)Clip the parabola by a box.Parabola2Dclone()Deprecated.use copy constructor instead (0.11.2)double[]conicCoefficients()Returns the coefficient of the Cartesian representation of the conic.Conic2D.TypeconicType()booleancontains(double x, double y)Checks if the shape contains the planar point defined by (x,y).booleancontains(Point2D point)Checks if the shape contains the given point.java.util.Collection<? extends Parabola2D>continuousCurves()Returns the collection of continuous curves which constitute this curve.static Parabola2Dcreate(Point2D vertex, Point2D focus)Creates a parabola by supplying the vertex and the focus.doublecurvature(double t)Returns the curvature of the parabola at the given position.doubledistance(double x, double y)Returns 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.doubledistance(Point2D p)Returns 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.Domain2Ddomain()Returns the domain delimited by this boundary.doubleeccentricity()Return 1, by definition for a parabola.booleanequals(java.lang.Object obj)voidfill(java.awt.Graphics2D g2)Throws an infiniteShapeExceptiondoublegetAngle()Returns orientation angle of parabola.Point2DgetFocus()Returns the focus of the parabola.doublegetFocusDistance()doublegetParameter()doublegetT0()Deprecated.replaced by t0() (since 0.11.1).doublegetT1()Deprecated.replaced by t1() (since 0.11.1).Vector2DgetVector1()Returns the first direction vector of the parabolaVector2DgetVector2()Returns the second direction vector of the parabola.Point2DgetVertex()java.util.Collection<Point2D>intersections(LinearShape2D line)Returns the intersection points of the curve with the specified line.booleanisBounded()Always returns false, because a parabola is not bounded.booleanisClosed()Returns false, as a parabola is an open curve.booleanisDirect()Returns true if the parameter a is positive.booleanisEmpty()Returns false, as a parabola is never empty.booleanisInside(Point2D point)Returns true if the point is 'inside' the domain bounded by the curve.Point2Dpoint(double t)Returns the point located at the given position on the curve.doubleposition(Point2D point)Returns position of point on the parabola.doubleproject(Point2D point)Returns position of point on the parabola.Parabola2Dreverse()Returns the parabola with same vertex, direction vector in opposite direction and opposite parameterp.doublesignedDistance(double x, double y)The same as distanceSigned(Point2D), but by passing 2 double as arguments.doublesignedDistance(Point2D p)Returns the signed distance of the curve to the given point.ParabolaArc2DsubCurve(double t0, double t1)Returns a new ParabolaArc2D, or null if t1doublet0()Returns the parameter of the first point of the line, which is always Double.NEGATIVE_INFINITY.doublet1()Returns the parameter of the last point of the line, which is always Double.POSITIVE_INFINITY.Vector2Dtangent(double t)Returns the tangent of the curve at the given position.java.lang.StringtoString()Parabola2Dtransform(AffineTransform2D trans)Transforms the parabola by an affine transform.doublewindingAngle(Point2D point)Return the angle portion that the curve turn around the given point.-
Methods inherited from class math.geom2d.curve.AbstractSmoothCurve2D
isSingular, leftTangent, normal, rightTangent, singularPoints, smoothPieces, vertices
-
Methods inherited from class math.geom2d.curve.AbstractContinuousCurve2D
asAwtShape, asPolyline, draw, firstPoint, lastPoint
-
Methods inherited from class java.lang.Object
getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface math.geom2d.curve.ContinuousCurve2D
asPolyline, leftTangent, rightTangent, smoothPieces
-
Methods inherited from interface math.geom2d.curve.Curve2D
asAwtShape, draw, firstPoint, isSingular, lastPoint, singularPoints, vertices
-
-
-
-
Constructor Detail
-
Parabola2D
public Parabola2D()
Empty constructor.
-
Parabola2D
public Parabola2D(Point2D vertex, double a, double theta)
-
Parabola2D
public Parabola2D(double xv, double yv, double a, double theta)
-
-
Method Detail
-
create
public static final Parabola2D create(Point2D vertex, Point2D focus)
Creates a parabola by supplying the vertex and the focus.- Parameters:
vertex- the vertex point of the parabolafocus- the focal point of the parabola- Returns:
- the parabola with given vertex and focus
-
getFocus
public Point2D getFocus()
Returns the focus of the parabola.
-
getParameter
public double getParameter()
-
getFocusDistance
public double getFocusDistance()
-
getVertex
public Point2D getVertex()
-
getVector1
public Vector2D getVector1()
Returns the first direction vector of the parabola
-
getVector2
public Vector2D getVector2()
Returns the second direction vector of the parabola.
-
getAngle
public double getAngle()
Returns orientation angle of parabola. It is defined as the angle of the derivative at the vertex.
-
isDirect
public boolean isDirect()
Returns true if the parameter a is positive.
-
conicType
public Conic2D.Type conicType()
-
conicCoefficients
public double[] conicCoefficients()
Description copied from interface:Conic2DReturns the coefficient of the Cartesian representation of the conic. Cartesian equation has the form :a*x^2 + b*x*y + c*y^2 + d*x + e*y + f
The length of the array is then of size 6.
- Specified by:
conicCoefficientsin interfaceConic2D
-
eccentricity
public double eccentricity()
Return 1, by definition for a parabola.- Specified by:
eccentricityin interfaceConic2D
-
domain
public Domain2D domain()
Description copied from interface:Boundary2DReturns the domain delimited by this boundary.- Specified by:
domainin interfaceBoundary2D- Returns:
- the domain delimited by this boundary
-
windingAngle
public double windingAngle(Point2D point)
Description copied from interface:OrientedCurve2DReturn the angle portion that the curve turn around the given point. Result is a signed angle.- Specified by:
windingAnglein interfaceOrientedCurve2D- Parameters:
point- a point of the plane- Returns:
- a signed angle
-
signedDistance
public double signedDistance(Point2D p)
Description copied from interface:OrientedCurve2DReturns the signed distance of the curve to the given point. The distance is positive if the point lies outside the shape, and negative if the point lies inside the shape. In both cases, absolute value of distance is equals to the distance to the border of the shape.- Specified by:
signedDistancein interfaceOrientedCurve2D- Parameters:
p- a point of the plane- Returns:
- the signed distance to the curve
-
signedDistance
public double signedDistance(double x, double y)Description copied from interface:OrientedCurve2DThe same as distanceSigned(Point2D), but by passing 2 double as arguments.- Specified by:
signedDistancein interfaceOrientedCurve2D- Parameters:
x- x-coord of a pointy- y-coord of a point- Returns:
- the signed distance of the point (x,y) to the curve
-
isInside
public boolean isInside(Point2D point)
Description copied from interface:Boundary2DReturns true if the point is 'inside' the domain bounded by the curve.- Specified by:
isInsidein interfaceBoundary2D- Specified by:
isInsidein interfaceOrientedCurve2D- Parameters:
point- a point in the plane- Returns:
- true if the point is on the left side of the curve.
-
tangent
public Vector2D tangent(double t)
Description copied from interface:SmoothCurve2DReturns the tangent of the curve at the given position.- Specified by:
tangentin interfaceSmoothCurve2D- Parameters:
t- a position on the curve- Returns:
- the tangent vector computed for position t
- See Also:
SmoothCurve2D.normal(double)
-
curvature
public double curvature(double t)
Returns the curvature of the parabola at the given position.- Specified by:
curvaturein interfaceContinuousCurve2D- Parameters:
t- the position on the curve- Returns:
- the curvature of the curve for position t
-
continuousCurves
public java.util.Collection<? extends Parabola2D> continuousCurves()
Description copied from interface:Curve2DReturns the collection of continuous curves which constitute this curve.- Specified by:
continuousCurvesin interfaceCurve2D- Specified by:
continuousCurvesin interfaceBoundary2D- Overrides:
continuousCurvesin classAbstractContinuousCurve2D- Returns:
- a collection of continuous curves.
-
isClosed
public boolean isClosed()
Returns false, as a parabola is an open curve.- Specified by:
isClosedin interfaceContinuousCurve2D
-
t0
public double t0()
Returns the parameter of the first point of the line, which is always Double.NEGATIVE_INFINITY.
-
getT0
@Deprecated public double getT0()
Deprecated. replaced by t0() (since 0.11.1).
-
t1
public double t1()
Returns the parameter of the last point of the line, which is always Double.POSITIVE_INFINITY.
-
getT1
@Deprecated public double getT1()
Deprecated. replaced by t1() (since 0.11.1).
-
point
public Point2D point(double t)
Description copied from interface:Curve2DReturns the point located at the given position on the curve. If the parameter lies outside the definition range, the parameter corresponding to the closest bound is used instead. This method can be used to draw an approximated outline of a curve, by selecting multiple values for t and drawing lines between them.
-
position
public double position(Point2D point)
Returns position of point on the parabola. If point is not on the parabola returns the positions on its "vertical" projection (i.e. its projection parallel to the symetry axis of the parabola).- Specified by:
positionin interfaceCurve2D- Parameters:
point- a point belonging to the curve- Returns:
- the position of the point on the curve
- See Also:
Curve2D.point(double)
-
project
public double project(Point2D point)
Returns position of point on the parabola. If point is not on the parabola returns the positions on its "vertical" projection (i.e. its projection parallel to the symetry axis of the parabola).
-
intersections
public java.util.Collection<Point2D> intersections(LinearShape2D line)
Description copied from interface:Curve2DReturns the intersection points of the curve with the specified line. The length of the result array is the number of intersection points.- Specified by:
intersectionsin interfaceCurve2D
-
reverse
public Parabola2D reverse()
Returns the parabola with same vertex, direction vector in opposite direction and opposite parameterp.- Specified by:
reversein interfaceConic2D- Specified by:
reversein interfaceContinuousCurve2D- Specified by:
reversein interfaceCurve2D- Specified by:
reversein interfaceSmoothCurve2D- Specified by:
reversein interfaceBoundary2D- Specified by:
reversein interfaceContinuousOrientedCurve2D- Specified by:
reversein interfaceContour2D- Specified by:
reversein interfaceOrientedCurve2D
-
subCurve
public ParabolaArc2D subCurve(double t0, double t1)
Returns a new ParabolaArc2D, or null if t1- Specified by:
subCurvein interfaceContinuousCurve2D- Specified by:
subCurvein interfaceCurve2D- Specified by:
subCurvein interfaceSmoothCurve2D- Specified by:
subCurvein interfaceContinuousOrientedCurve2D- Parameters:
t0- position of the start of the sub-curvet1- position of the end of the sub-curve- Returns:
- the portion of original curve comprised between t0 and t1.
-
distance
public double distance(Point2D p)
Description copied from interface:Shape2DReturns 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.
-
distance
public double distance(double x, double y)Description copied from interface:Shape2DReturns 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.
-
appendPath
public java.awt.geom.GeneralPath appendPath(java.awt.geom.GeneralPath path)
Throws an infiniteShapeException- Specified by:
appendPathin interfaceContinuousCurve2D- Parameters:
path- a path to modify- Returns:
- the modified path
-
fill
public void fill(java.awt.Graphics2D g2)
Throws an infiniteShapeException- Specified by:
fillin interfaceBoundary2D- Parameters:
g2- the Graphics to fill on
-
isBounded
public boolean isBounded()
Always returns false, because a parabola is not bounded.
-
isEmpty
public boolean isEmpty()
Returns false, as a parabola is never empty.
-
clip
public CurveSet2D<ParabolaArc2D> clip(Box2D box)
Clip the parabola by a box. The result is an instance of CurveSet2D, which contains only instances of ParabolaArc2D. If the parabola is not clipped, the result is an instance of CurveSet2D which contains 0 curves. - Specified by:
clipin interfaceConic2D- Specified by:
clipin interfaceContinuousCurve2D- Specified by:
clipin interfaceCurve2D- Specified by:
clipin interfaceSmoothCurve2D- Specified by:
clipin interfaceContinuousOrientedCurve2D- Specified by:
clipin interfaceOrientedCurve2D- Specified by:
clipin interfaceShape2D- Parameters:
box- the clipping box- Returns:
- the clipped shape
-
boundingBox
public Box2D boundingBox()
Description copied from interface:Shape2DReturns the bounding box of the shape.- Specified by:
boundingBoxin interfaceShape2D- Returns:
- the bounding box of the shape.
-
transform
public Parabola2D transform(AffineTransform2D trans)
Transforms the parabola by an affine transform. The transformed parabola is direct if this parabola and the affine transform are both either direct or indirect.- Specified by:
transformin interfaceConic2D- Specified by:
transformin interfaceContinuousCurve2D- Specified by:
transformin interfaceCurve2D- Specified by:
transformin interfaceSmoothCurve2D- Specified by:
transformin interfaceBoundary2D- Specified by:
transformin interfaceContinuousOrientedCurve2D- Specified by:
transformin interfaceContour2D- Specified by:
transformin interfaceOrientedCurve2D- Specified by:
transformin interfaceShape2D- Parameters:
trans- an affine transform- Returns:
- the transformed shape
-
contains
public boolean contains(double x, double y)Description copied from interface:Shape2DChecks if the shape contains the planar point defined by (x,y).
-
contains
public boolean contains(Point2D point)
Description copied from interface:Shape2DChecks if the shape contains the given point.
-
almostEquals
public boolean almostEquals(GeometricObject2D obj, double eps)
Description copied from interface:GeometricObject2DChecks if the two objects are similar up to a given threshold value. This method can be used to compare the results of geometric computations, that introduce errors due to numerical computations.- Specified by:
almostEqualsin interfaceGeometricObject2D- Parameters:
obj- the object to compareeps- a threshold value, for example the minimal coordinate difference- Returns:
- true if both object have the same value up to the threshold
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
equals
public boolean equals(java.lang.Object obj)
- Overrides:
equalsin classjava.lang.Object
-
clone
@Deprecated public Parabola2D clone()
Deprecated. use copy constructor instead (0.11.2)- Specified by:
clonein interfaceCurve2D- Specified by:
clonein classAbstractSmoothCurve2D
-
-
DMelt 3.0 © DataMelt by jWork.ORG
You see the box below because you did not login.