public class Math2D
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
static java.awt.geom.AffineTransform |
IDENTITY_TRANSFORM
Holds an instance of an Identity AffineTransform.
|
static double |
TINY
A very small number, currently 1.0E-10.
|
static java.awt.geom.Point2D |
ZERO
The origin (0.0, 0.0).
|
Constructor and Description |
---|
Math2D() |
Modifier and Type | Method and Description |
---|---|
static java.awt.geom.Point2D |
add(java.awt.geom.Point2D[] points)
Computes the vector total of all of the points in the given array.
|
static java.awt.geom.Point2D |
add(java.awt.geom.Point2D first,
java.awt.geom.Point2D second)
Performs a vector addition of the two points.
|
static double |
bearingFrom(java.awt.geom.Point2D point,
java.awt.geom.Point2D toPoint)
Returns the angle in degrees to go from point to toPoint.
|
static java.util.Set<java.awt.geom.Point2D> |
eliminateDuplicates(java.util.List<java.awt.geom.Point2D> intersections,
double tolerance) |
static java.awt.geom.Point2D[] |
findIntersection(java.awt.geom.Point2D start,
java.awt.geom.Point2D velocity,
java.awt.geom.CubicCurve2D curve) |
static java.awt.geom.Point2D[] |
findIntersection(java.awt.geom.Point2D start,
java.awt.geom.Point2D velocity,
java.awt.geom.Ellipse2D ellipse) |
static java.awt.geom.Point2D[] |
findIntersection(java.awt.geom.Point2D start,
java.awt.geom.Point2D velocity,
java.awt.geom.Line2D line) |
static java.awt.geom.Point2D[] |
findIntersection(java.awt.geom.Point2D start,
java.awt.geom.Point2D velocity,
java.awt.geom.QuadCurve2D curve) |
static java.awt.geom.Point2D[] |
findIntersection(java.awt.geom.Point2D start,
java.awt.geom.Point2D velocity,
java.awt.Shape shape) |
static java.awt.geom.Point2D[] |
findIntersection(java.awt.geom.Point2D start,
java.awt.geom.Point2D velocity,
java.awt.Shape shape,
java.awt.geom.AffineTransform trans) |
static double[] |
findIntersectionTime(java.awt.geom.Point2D start,
java.awt.geom.Point2D velocity,
java.awt.Shape shape)
This is the main way that sensors determine when the next time a contact
will enter or exit the sensor's footprint.
|
static java.awt.geom.Point2D |
getCenter(java.awt.geom.RectangularShape rectangle) |
static java.awt.geom.Point2D[] |
getCoefficients(java.awt.geom.CubicCurve2D cubicCurve) |
static java.awt.geom.Point2D[] |
getCoefficients(java.awt.geom.Line2D line) |
static java.awt.geom.Point2D[] |
getCoefficients(java.awt.geom.QuadCurve2D quadCurve) |
static java.awt.geom.Point2D |
getIntercept(Mover pursuer,
double speed,
double range,
Mover target)
Computes the point at which the pursuer is within the given range of the
target.
|
static java.awt.geom.Point2D |
getIntercept(Mover pursuer,
double speed,
Mover target)
Computes the Point2D at which the pursuer will intersect the target when
the pursuer moves at the given speed.
|
static java.awt.geom.Point2D |
getIntercept(Mover pursuer,
Mover target)
Computes the intersection point when the pursuer goes at maximum speed.
|
static java.awt.geom.Point2D |
getIntercept(java.awt.geom.Point2D startingLocation,
double speed,
double range,
java.awt.geom.Point2D targetLocation,
java.awt.geom.Point2D targetVelocity) |
static java.awt.geom.Point2D |
getIntercept(java.awt.geom.Point2D startingLocation,
double speed,
java.awt.geom.Point2D targetLocation,
java.awt.geom.Point2D targetVelocity) |
static java.awt.geom.Point2D |
getInterceptVelocity(Mover pursuer,
double speed,
Mover target) |
static java.awt.geom.Point2D |
getInterceptVelocity(Mover pursuer,
Mover target) |
static java.awt.geom.Point2D |
getInterceptVelocity(java.awt.geom.Point2D startingLocation,
double speed,
java.awt.geom.Point2D targetLocation,
java.awt.geom.Point2D targetVelocity) |
static int |
getMaxIndex(double[] data)
Returns the index of the member of the given array with the largest
value.
|
static java.awt.geom.Point2D |
getPoint(java.awt.geom.CubicCurve2D curve,
double lambda) |
static java.awt.geom.Point2D |
getPoint(java.awt.geom.QuadCurve2D curve,
double lambda) |
static java.awt.Shape[] |
getSegments(java.awt.Shape shape,
java.awt.geom.AffineTransform transform)
Takes the given Shape and breaks it up into the individual segments that
make up the Shape.
|
static java.awt.geom.AffineTransform |
getTransform(java.awt.geom.Point2D p1,
java.awt.geom.Point2D p2) |
static java.awt.geom.Point2D |
getZero() |
static double[] |
innerProduct(java.awt.geom.Point2D[] points,
java.awt.geom.Point2D by)
Computes the inner product of each of the points in the array with the
given point.
|
static double |
innerProduct(java.awt.geom.Point2D first,
java.awt.geom.Point2D second) |
static double |
norm(java.awt.geom.Point2D point) |
static double |
normSq(java.awt.geom.Point2D point)
Computes the norm squared (the inner product of the point with itself) of
the given point.
|
static double |
normSquared(java.awt.geom.Point2D point) |
static java.awt.geom.Point2D |
orthogonal(java.awt.geom.Point2D point) |
static java.awt.geom.Point2D |
scalarMultiply(double scale,
java.awt.geom.Point2D point) |
static java.awt.geom.Point2D |
scaleTo(java.awt.geom.Point2D point,
double scale) |
static double |
smallestPositive(double[] data) |
static double |
smallestPositive(double[] data,
double tolerance) |
static double |
smallestPositive(double[] data,
int number) |
static double |
smallestPositive(double[] data,
int number,
double tolerance) |
static java.awt.geom.Point2D |
subtract(java.awt.geom.Point2D first,
java.awt.geom.Point2D second) |
static java.awt.geom.Point2D |
unitVector(java.awt.geom.Point2D vector) |
public static final java.awt.geom.Point2D ZERO
public static final double TINY
public static final java.awt.geom.AffineTransform IDENTITY_TRANSFORM
public static java.awt.geom.Point2D getZero()
public static java.awt.geom.Point2D add(java.awt.geom.Point2D first, java.awt.geom.Point2D second)
first
- First Point2Dsecond
- Second Point2Dpublic static java.awt.geom.Point2D add(java.awt.geom.Point2D[] points)
points
- Given points to addpublic static double[] innerProduct(java.awt.geom.Point2D[] points, java.awt.geom.Point2D by)
points
- Given array of Point2Dby
- Given Point2D to compute inner product of each point in arraypoints
with
by
.public static java.awt.geom.Point2D subtract(java.awt.geom.Point2D first, java.awt.geom.Point2D second)
first
- Given first Point2Dsecond
- Given second Point2Dpublic static java.awt.geom.Point2D scalarMultiply(double scale, java.awt.geom.Point2D point)
scale
- Given scalepoint
- Given Point2Dpublic static java.awt.geom.Point2D unitVector(java.awt.geom.Point2D vector)
vector
- Given Point2Dpublic static double innerProduct(java.awt.geom.Point2D first, java.awt.geom.Point2D second)
first
- Given first Point2Dsecond
- Given second Point2Dpublic static java.awt.geom.Point2D orthogonal(java.awt.geom.Point2D point)
point
- Given Point2Dpublic static double norm(java.awt.geom.Point2D point)
point
- Given Point2Dpublic static double normSq(java.awt.geom.Point2D point)
point
- Given Point2Dpublic static double normSquared(java.awt.geom.Point2D point)
point
- Given Point2Dpublic static java.awt.geom.Point2D[] findIntersection(java.awt.geom.Point2D start, java.awt.geom.Point2D velocity, java.awt.geom.Line2D line)
public static double[] findIntersectionTime(java.awt.geom.Point2D start, java.awt.geom.Point2D velocity, java.awt.Shape shape)
start
- normally the targetLocationvelocity
- normally the relative velocity between the target and the
sensorshape
- the footprint of the sensorpublic static java.awt.geom.AffineTransform getTransform(java.awt.geom.Point2D p1, java.awt.geom.Point2D p2)
public static java.awt.geom.Point2D getCenter(java.awt.geom.RectangularShape rectangle)
rectangle
- Given rectanglepublic static java.awt.geom.Point2D[] findIntersection(java.awt.geom.Point2D start, java.awt.geom.Point2D velocity, java.awt.geom.QuadCurve2D curve)
public static java.awt.geom.Point2D[] findIntersection(java.awt.geom.Point2D start, java.awt.geom.Point2D velocity, java.awt.Shape shape)
public static java.awt.geom.Point2D[] findIntersection(java.awt.geom.Point2D start, java.awt.geom.Point2D velocity, java.awt.Shape shape, java.awt.geom.AffineTransform trans)
public static java.util.Set<java.awt.geom.Point2D> eliminateDuplicates(java.util.List<java.awt.geom.Point2D> intersections, double tolerance)
public static java.awt.geom.Point2D[] findIntersection(java.awt.geom.Point2D start, java.awt.geom.Point2D velocity, java.awt.geom.Ellipse2D ellipse)
public static java.awt.geom.Point2D[] findIntersection(java.awt.geom.Point2D start, java.awt.geom.Point2D velocity, java.awt.geom.CubicCurve2D curve)
public static java.awt.geom.Point2D getPoint(java.awt.geom.QuadCurve2D curve, double lambda)
public static java.awt.geom.Point2D getPoint(java.awt.geom.CubicCurve2D curve, double lambda)
public static java.awt.Shape[] getSegments(java.awt.Shape shape, java.awt.geom.AffineTransform transform)
shape
- The Shape to break up into segments.transform
- An optional AffineTransform to apply to the segments of
the Shape. If null
then no transform is applied.public static double smallestPositive(double[] data, int number)
data
- Given datanumber
- Given number of members to checkpublic static double smallestPositive(double[] data, int number, double tolerance)
data
- Given data arraynumber
- Given number of memberstolerance
- Given tolerancepublic static double smallestPositive(double[] data, double tolerance)
data
- Given datatolerance
- Given tolerancepublic static double smallestPositive(double[] data)
data
- given arraypublic static int getMaxIndex(double[] data)
data
- Given data arraypublic static java.awt.geom.Point2D[] getCoefficients(java.awt.geom.Line2D line)
public static java.awt.geom.Point2D[] getCoefficients(java.awt.geom.QuadCurve2D quadCurve)
public static java.awt.geom.Point2D[] getCoefficients(java.awt.geom.CubicCurve2D cubicCurve)
public static java.awt.geom.Point2D scaleTo(java.awt.geom.Point2D point, double scale)
point
- Given Point2Dscale
- given desired lengthpublic static java.awt.geom.Point2D getIntercept(java.awt.geom.Point2D startingLocation, double speed, java.awt.geom.Point2D targetLocation, java.awt.geom.Point2D targetVelocity)
public static java.awt.geom.Point2D getIntercept(Mover pursuer, double speed, Mover target)
pursuer
- Given Mover in pursuitspeed
- Given speed of pursuertarget
- Given Mover that is the targetpublic static java.awt.geom.Point2D getIntercept(Mover pursuer, Mover target)
pursuer
- Given Mover in pursuittarget
- Given Mover targetpublic static java.awt.geom.Point2D getInterceptVelocity(Mover pursuer, double speed, Mover target)
public static java.awt.geom.Point2D getInterceptVelocity(java.awt.geom.Point2D startingLocation, double speed, java.awt.geom.Point2D targetLocation, java.awt.geom.Point2D targetVelocity)
public static java.awt.geom.Point2D getInterceptVelocity(Mover pursuer, Mover target)
public static java.awt.geom.Point2D getIntercept(Mover pursuer, double speed, double range, Mover target)
pursuer
- Given Mover in pursuitspeed
- Given speed of pursuerrange
- Given desired range at which the pursuer has intercepted the targettarget
- Given Mover targetpublic static java.awt.geom.Point2D getIntercept(java.awt.geom.Point2D startingLocation, double speed, double range, java.awt.geom.Point2D targetLocation, java.awt.geom.Point2D targetVelocity)
public static double bearingFrom(java.awt.geom.Point2D point, java.awt.geom.Point2D toPoint)
point
- (from)toPoint
- (to)