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) |
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 shape) |
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)
Pursuer moves at its max speed
|
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) |
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) |
static double |
normSquared(java.awt.geom.Point2D point) |
static java.awt.geom.Point2D |
orthogonal(java.awt.geom.Point2D point)
Returns a vector that is orthogonal to the given vector.
|
static java.awt.geom.Point2D |
scalarMultiply(double value,
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)
Returns the smallest positive value of the members of the given array,
where any number less than the tolerance is considered to be
non-positive.
|
static double |
smallestPositive(double[] data,
int num) |
static double |
smallestPositive(double[] data,
int num,
double tolerance)
Returns the smallest positive value of the first num members of the given
array, where any number less than the tolerance is considered to be
non-positive.
|
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)
Computes a unit vector in the direction of the argument.
|
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 - Point2Dpublic static java.awt.geom.Point2D add(java.awt.geom.Point2D[] points)
points - Given array of Point2Dspublic static double[] innerProduct(java.awt.geom.Point2D[] points,
java.awt.geom.Point2D by)
points - Given array of Point2Dsby - Given Point2D to compute inner product withpoints 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 value,
java.awt.geom.Point2D point)
value - Given scalar valuepoint - 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 - Point2Dsecond - 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 pointpublic static double normSq(java.awt.geom.Point2D point)
point - given pointpublic static double normSquared(java.awt.geom.Point2D point)
point - given pointpublic static java.awt.geom.Point2D[] findIntersection(java.awt.geom.Point2D start,
java.awt.geom.Point2D velocity,
java.awt.geom.Line2D line)
start - Given starting Point2Dvelocity - Given direction from the starting pointline - Given Line2D to find intersection ofpublic 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)
p1 - first Point2Dp2 - second Point2Dpublic static java.awt.geom.Point2D getCenter(java.awt.geom.RectangularShape shape)
shape - given rectanglepublic static java.awt.geom.Point2D[] findIntersection(java.awt.geom.Point2D start,
java.awt.geom.Point2D velocity,
java.awt.geom.QuadCurve2D curve)
start - Starting locationvelocity - velocity vectorcurve - Given QuadCurve2D to find intersections ofpublic static java.awt.geom.Point2D[] findIntersection(java.awt.geom.Point2D start,
java.awt.geom.Point2D velocity,
java.awt.Shape shape)
start - Starting locationvelocity - velocityshape - Given shapepublic 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)
start - Starting pointvelocity - Given velocityshape - Give shapetrans - Given AffineTrsansformpublic static java.util.Set<java.awt.geom.Point2D> eliminateDuplicates(java.util.List<java.awt.geom.Point2D> intersections,
double tolerance)
intersections - Given List of Point2Ds with possible duplicatestolerance - Given tolerance - Point2Ds within this distance are
considered identicalpublic static java.awt.geom.Point2D[] findIntersection(java.awt.geom.Point2D start,
java.awt.geom.Point2D velocity,
java.awt.geom.Ellipse2D ellipse)
start - Starting locationvelocity - Given velocityellipse - Given Ellipse2Dpublic static java.awt.geom.Point2D[] findIntersection(java.awt.geom.Point2D start,
java.awt.geom.Point2D velocity,
java.awt.geom.CubicCurve2D curve)
start - Given starting point ofvelocity - Given velocity vectorcurve - Given CubicCurve2Dpublic static java.awt.geom.Point2D getPoint(java.awt.geom.QuadCurve2D curve,
double lambda)
curve - Given QuadCurve2Dlambda - Given factorpublic 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 num)
data - Given array of doublesnum - Given number of values to considerpublic static double smallestPositive(double[] data,
int num,
double tolerance)
data - Given datanum - Given number of data points to consider (must be <
data.length)tolerance - Given tolerancepublic static double smallestPositive(double[] data,
double tolerance)
data - Given arraytolerance - Given tolerancepublic static double smallestPositive(double[] data)
data - given arraypublic static int getMaxIndex(double[] data)
data - given arraypublic static java.awt.geom.Point2D[] getCoefficients(java.awt.geom.Line2D line)
line - Given Line2dpublic static java.awt.geom.Point2D[] getCoefficients(java.awt.geom.QuadCurve2D quadCurve)
quadCurve - Given QuadCurve2Dpublic static java.awt.geom.Point2D[] getCoefficients(java.awt.geom.CubicCurve2D cubicCurve)
cubicCurve - Given CubicCurve2Dpublic static java.awt.geom.Point2D scaleTo(java.awt.geom.Point2D point,
double scale)
point - Given Point2Dscale - Given scale - if negative, reverses direction of Pointpublic static java.awt.geom.Point2D getIntercept(java.awt.geom.Point2D startingLocation,
double speed,
java.awt.geom.Point2D targetLocation,
java.awt.geom.Point2D targetVelocity)
startingLocation - Starting location of pursuerspeed - Given speed of pursuertargetLocation - target locationtargetVelocity - target velocitypublic static java.awt.geom.Point2D getIntercept(Mover pursuer, double speed, Mover target)
pursuer - Given pursuerspeed - Given speed of pursuertarget - Given targetpublic static java.awt.geom.Point2D getIntercept(Mover pursuer, Mover target)
pursuer - Given pursuertarget - Given targetpublic static java.awt.geom.Point2D getInterceptVelocity(Mover pursuer, double speed, Mover target)
pursuer - Given pursuerspeed - Given speed of pursuertarget - Given targetpublic static java.awt.geom.Point2D getInterceptVelocity(java.awt.geom.Point2D startingLocation,
double speed,
java.awt.geom.Point2D targetLocation,
java.awt.geom.Point2D targetVelocity)
startingLocation - Pursuer starting locationspeed - Pursuer speedtargetLocation - Target starting locationtargetVelocity - Target velocitypublic static java.awt.geom.Point2D getInterceptVelocity(Mover pursuer, Mover target)
pursuer - Given Mover in pursuittarget - Given Mover targetpublic static java.awt.geom.Point2D getIntercept(Mover pursuer, double speed, double range, Mover target)
pursuer - Given Mover in pursuitspeed - Given speed for the pursuer in pursuitrange - When pursuer is within this range, pausetarget - 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)