math.geom2d.conic
Class HyperbolaBranch2D

Package class diagram package HyperbolaBranch2D
java.lang.Object
  extended by math.geom2d.curve.AbstractContinuousCurve2D
      extended by math.geom2d.curve.AbstractSmoothCurve2D
          extended by math.geom2d.conic.HyperbolaBranch2D
All Implemented Interfaces:
Serializable, Cloneable, ContinuousCurve2D, Curve2D, SmoothCurve2D, Boundary2D, ContinuousBoundary2D, ContinuousOrientedCurve2D, OrientedCurve2D, SmoothBoundary2D, SmoothOrientedCurve2D, Shape2D

public class HyperbolaBranch2D
extends AbstractSmoothCurve2D
implements SmoothBoundary2D, Cloneable

Branch of an Hyperbola2D.

See Also:
Serialized Form

Field Summary
 
Fields inherited from interface math.geom2d.Shape2D
ACCURACY
 
Constructor Summary
HyperbolaBranch2D(Hyperbola2D hyperbola, boolean b)
          Generic constructor, using a parent Hyperbola, and a boolean to specifies if the branch is the right one (crossing the Ox axis on positive side, b true), or the left one (crossing the Oy axis on the negative side, b false).
 
Method Summary
 GeneralPath appendPath(GeneralPath path)
          Append the path of the curve to the given path.
 CurveSet2D<? extends HyperbolaBranchArc2D> clip(Box2D box)
          Clips the curve with a box.
 HyperbolaBranch2D 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.
 boolean equals(Object obj)
           
 void fill(Graphics2D g2)
          Throws an UnboundedShapeException
 Collection<ContinuousBoundary2D> getBoundaryCurves()
          Returns an instance of ArrayList containing only this.
 Box2D getBoundingBox()
          Returns a bounding box with infinite bounds in every direction
 double getCurvature(double t)
          Use formula given in http://mathworld.wolfram.com/Hyperbola.html
 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.
 Hyperbola2D getHyperbola()
          Returns the supporting hyperbola of this branch.
 Collection<Point2D> getIntersections(LinearShape2D line)
          Returns the intersection points of the curve with the specified line.
 Point2D getPoint(double t)
          Gets the point from a parametric representation of the curve.
 double getPosition(Point2D point)
          Get position of the point on the curve.
 HyperbolaBranch2D getReverseCurve()
          Returns the curve with same trace on the plane with parametrization in reverse order.
 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.
 HyperbolaBranchArc2D getSubCurve(double t0, double t1)
          Returns an instance of HyprbolaBranchArc2D initialized with this.
 double getT0()
          Returns Double.NEGATIVE_INFINITY.
 double getT1()
          Returns Double.POSITIVE_INFINITY.
 Vector2D getTangent(double t)
           
 double getWindingAngle(Point2D point)
          Return the angle portion that the curve turn around the given point.
 boolean isBounded()
          Returns false, as an hyperbola branch is never bounded.
 boolean isClosed()
          Return false, by definition of Hyperbola branch
 boolean isEmpty()
          Returns false, as an hyperbola branch is never empty.
 boolean isInside(Point2D point)
          Returns true if the point is 'inside' the domain bounded by the curve.
 boolean isPositiveBranch()
          Returns true if this branch is the positive one, i.e.
 double project(Point2D point)
          Returns the position of the closest orthogonal projection of the point on the curve, or of the closest singular point.
 HyperbolaBranch2D transform(AffineTransform2D trans)
          Transforms the curve by an affine transform.
 
Methods inherited from class math.geom2d.curve.AbstractSmoothCurve2D
getLeftTangent, getRightTangent, getSingularPoints, getSmoothPieces, isSingular
 
Methods inherited from class math.geom2d.curve.AbstractContinuousCurve2D
draw, getAsAWTShape, getAsPolyline, getContinuousCurves, getFirstPoint, getLastPoint, wrapCurve
 
Methods inherited from class java.lang.Object
finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface math.geom2d.curve.ContinuousCurve2D
getAsPolyline, getLeftTangent, getRightTangent, getSmoothPieces
 
Methods inherited from interface math.geom2d.curve.Curve2D
draw, getAsAWTShape, getContinuousCurves, getFirstPoint, getLastPoint, getSingularPoints, isSingular
 

Constructor Detail

HyperbolaBranch2D

public HyperbolaBranch2D(Hyperbola2D hyperbola,
                         boolean b)
Generic constructor, using a parent Hyperbola, and a boolean to specifies if the branch is the right one (crossing the Ox axis on positive side, b true), or the left one (crossing the Oy axis on the negative side, b false).

Method Detail

getHyperbola

public Hyperbola2D getHyperbola()
Returns the supporting hyperbola of this branch.


isPositiveBranch

public boolean isPositiveBranch()
Returns true if this branch is the positive one, i.e. it contains the positive axis in the basis of the supporting hyperbola.

Returns:
true if this branch contains the positive axis.

getCurvature

public double getCurvature(double t)
Use formula given in http://mathworld.wolfram.com/Hyperbola.html

Specified by:
getCurvature in interface SmoothCurve2D

getTangent

public Vector2D getTangent(double t)
Specified by:
getTangent in interface SmoothCurve2D

getBoundaryCurves

public Collection<ContinuousBoundary2D> getBoundaryCurves()
Returns an instance of ArrayList containing only this.

Specified by:
getBoundaryCurves in interface Boundary2D

getDomain

public Domain2D getDomain()
Description copied from interface: Boundary2D
Returns the domain delimited by this boundary.

Specified by:
getDomain in interface Boundary2D
Returns:
the domain delimited by this boundary

fill

public void fill(Graphics2D g2)
Throws an UnboundedShapeException

Specified by:
fill in interface Boundary2D

getSignedDistance

public double getSignedDistance(Point2D point)
Description copied from interface: OrientedCurve2D
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. In this case, absolute value of distance is equals to the distance to the border of the shape.

Specified by:
getSignedDistance in interface OrientedCurve2D
Parameters:
point - a point of the plane
Returns:
the signed distance to the curve

getSignedDistance

public double getSignedDistance(double x,
                                double y)
Description copied from interface: OrientedCurve2D
The same as getSignedDistance(Point2D), but by passing 2 double as arguments.

Specified by:
getSignedDistance in interface OrientedCurve2D
Parameters:
x - x-coord of a point
y - y-coord of a point
Returns:
the signed distance of the point (x,y) to the curve

getWindingAngle

public double getWindingAngle(Point2D point)
Description copied from interface: OrientedCurve2D
Return the angle portion that the curve turn around the given point. Result is a signed angle.

Specified by:
getWindingAngle in interface OrientedCurve2D
Parameters:
point - a point of the plane
Returns:
a signed angle

isInside

public boolean isInside(Point2D point)
Description copied from interface: OrientedCurve2D
Returns true if the point is 'inside' the domain bounded by the curve.

Specified by:
isInside in interface Boundary2D
Specified by:
isInside in interface OrientedCurve2D
Parameters:
point - a point in the plane
Returns:
true if the point is on the left side of the curve.

isClosed

public boolean isClosed()
Return false, by definition of Hyperbola branch

Specified by:
isClosed in interface ContinuousCurve2D

appendPath

public GeneralPath appendPath(GeneralPath path)
Description copied from interface: ContinuousCurve2D
Append the path of the curve to the given path.

Specified by:
appendPath in interface ContinuousCurve2D
Parameters:
path - a path to modify
Returns:
the modified path

getPoint

public Point2D getPoint(double t)
Description copied from interface: Curve2D
Gets the point from a parametric representation of 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.

Specified by:
getPoint in interface Curve2D

getPosition

public double getPosition(Point2D point)
Description copied from interface: Curve2D
Get position of the point on the curve. If the point does not belong to the curve, return Double.NaN.

Specified by:
getPosition in interface Curve2D
Parameters:
point - a point belonging to the curve
Returns:
the position of the point on the curve

project

public double project(Point2D point)
Description copied from interface: Curve2D
Returns the position of the closest orthogonal projection of the point on the curve, or of the closest singular point. This function should always returns a valid value.

Specified by:
project in interface Curve2D
Parameters:
point - a point to project
Returns:
the position of the closest orthogonal projection

getReverseCurve

public HyperbolaBranch2D getReverseCurve()
Description copied from interface: Curve2D
Returns the curve with same trace on the plane with parametrization in reverse order.

Specified by:
getReverseCurve in interface ContinuousCurve2D
Specified by:
getReverseCurve in interface Curve2D
Specified by:
getReverseCurve in interface SmoothCurve2D
Specified by:
getReverseCurve in interface Boundary2D
Specified by:
getReverseCurve in interface ContinuousBoundary2D
Specified by:
getReverseCurve in interface ContinuousOrientedCurve2D
Specified by:
getReverseCurve in interface OrientedCurve2D
Specified by:
getReverseCurve in interface SmoothBoundary2D
Specified by:
getReverseCurve in interface SmoothOrientedCurve2D

getSubCurve

public HyperbolaBranchArc2D getSubCurve(double t0,
                                        double t1)
Returns an instance of HyprbolaBranchArc2D initialized with this.

Specified by:
getSubCurve in interface ContinuousCurve2D
Specified by:
getSubCurve in interface Curve2D
Specified by:
getSubCurve in interface SmoothCurve2D
Specified by:
getSubCurve in interface ContinuousOrientedCurve2D
Specified by:
getSubCurve in interface SmoothOrientedCurve2D
Parameters:
t0 - position of the start of the sub-curve
t1 - position of the end of the sub-curve
Returns:
the portion of original curve comprised between t0 and t1.

getT0

public double getT0()
Returns Double.NEGATIVE_INFINITY.

Specified by:
getT0 in interface Curve2D

getT1

public double getT1()
Returns Double.POSITIVE_INFINITY.

Specified by:
getT1 in interface Curve2D

getIntersections

public Collection<Point2D> getIntersections(LinearShape2D line)
Description copied from interface: Curve2D
Returns the intersection points of the curve with the specified line. The length of the result array is the number of intersection points.

Specified by:
getIntersections in interface Curve2D

getBoundingBox

public Box2D getBoundingBox()
Returns a bounding box with infinite bounds in every direction

Specified by:
getBoundingBox in interface Shape2D
Returns:
the bounding box of the shape.

clip

public CurveSet2D<? extends HyperbolaBranchArc2D> clip(Box2D box)
Clips the curve with a box. The result is an instance of CurveSet2D, which contains only instances of HyperbolaBranchArc2D. If the curve does not intersect the boundary of the box, the result is an instance of CurveSet2D which contains 0 curves.

Specified by:
clip in interface ContinuousCurve2D
Specified by:
clip in interface Curve2D
Specified by:
clip in interface SmoothCurve2D
Specified by:
clip in interface ContinuousOrientedCurve2D
Specified by:
clip in interface OrientedCurve2D
Specified by:
clip in interface SmoothOrientedCurve2D
Specified by:
clip in interface Shape2D
Parameters:
box - the clipping box
Returns:
the clipped shape

getDistance

public double getDistance(Point2D point)
Description copied from interface: Shape2D
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.

Specified by:
getDistance in interface Shape2D

getDistance

public double getDistance(double x,
                          double y)
Description copied from interface: Shape2D
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.

Specified by:
getDistance in interface Shape2D

isBounded

public boolean isBounded()
Returns false, as an hyperbola branch is never bounded.

Specified by:
isBounded in interface Shape2D

isEmpty

public boolean isEmpty()
Returns false, as an hyperbola branch is never empty.

Specified by:
isEmpty in interface Shape2D
Returns:
true if the shape does not contain any point.

transform

public HyperbolaBranch2D transform(AffineTransform2D trans)
Description copied from interface: Curve2D
Transforms the curve by an affine transform. The result is an instance of Curve2D.

Specified by:
transform in interface ContinuousCurve2D
Specified by:
transform in interface Curve2D
Specified by:
transform in interface SmoothCurve2D
Specified by:
transform in interface Boundary2D
Specified by:
transform in interface ContinuousBoundary2D
Specified by:
transform in interface ContinuousOrientedCurve2D
Specified by:
transform in interface OrientedCurve2D
Specified by:
transform in interface SmoothBoundary2D
Specified by:
transform in interface SmoothOrientedCurve2D
Specified by:
transform in interface Shape2D
Parameters:
trans - an affine transform
Returns:
the transformed shape

contains

public boolean contains(Point2D point)
Description copied from interface: Shape2D
Checks if the shape contains the given point.

Specified by:
contains in interface Shape2D

contains

public boolean contains(double x,
                        double y)
Description copied from interface: Shape2D
Checks if the shape contains the planar point defined by (x,y).

Specified by:
contains in interface Shape2D

equals

public boolean equals(Object obj)
Overrides:
equals in class Object

clone

public HyperbolaBranch2D clone()
Description copied from interface: Curve2D
Overrides Object declaration to ensure Curve2D implementation are cloned as Curve2D.

Specified by:
clone in interface Curve2D
Specified by:
clone in class AbstractSmoothCurve2D
Returns:
the cloned curve


Copyright © 2012 AMIS research group, Faculty of Mathematics and Physics, Charles University in Prague, Czech Republic. All Rights Reserved.