|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object aim4.util.GeomMath
public final class GeomMath
Class of static utility methods for geometric computation.
Nested Class Summary | |
---|---|
static class |
GeomMath.IntersectionPoint
A class for storing the result of findLineLineIntersection. |
Field Summary | |
---|---|
static double |
HALF_PI
Math.PI / 2.0 |
static double |
ONE_AND_HALF_PI
Math.PI * 3.0 / 2.0 |
static double |
PI
Math.PI |
static double |
QUARTER_PI
Math.PI / 4.0 |
static double |
TWO_PI
Math.PI * 2.0 |
Method Summary | |
---|---|
static double |
angleDiff(double ang1,
double ang2)
Determine the angle between two angles. |
static double |
angleToPoint(Point2D p,
Point2D startPoint)
Find the angle of the heading to a point from a given starting point. |
static double |
canonicalAngle(double angle)
Get the "canonical" angle. |
static Point2D |
centroid(List<Point2D> points)
Find the centroid of a list of points. |
static double |
crossProduct(Point2D p1,
Point2D p2)
Compute the cross product of two 2D vectors. |
static double |
dotProduct(Point2D p1,
Point2D p2)
Compute the dot product of two 2D vectors. |
static Area |
filledArea(Shape s)
Find the Area corresponding to the provided Shape with all holes filled in. |
static Point2D |
findLineLineIntersection(double x1,
double y1,
double x2,
double y2,
double x3,
double y3,
double x4,
double y4)
Compute the intersection of two lines defined by two points each. |
static Point2D |
findLineLineIntersection(Line2D l1,
Line2D l2)
Compute the intersection of two lines. |
static GeomMath.IntersectionPoint |
findLineLineIntersection(Point2D p1,
double slope1,
Point2D p2,
double slope2)
Compute the intersection of two lines defined by two points each. |
static boolean |
intervalsOverlap(double t1start,
double t1end,
double t2start,
double t2end)
Determine whether two intervals overlap. |
static String |
ordinalize(int num)
Turn a cardinal number into an ordinal number. |
static Point2D |
polarAdd(Point2D p,
double r,
double theta)
Find a point displaced by the given distance in the given direction. |
static List<Double> |
polygonalShapeAreas(Shape s)
Given a polygonal, non-overlapping Shape, return the areas of the closed portions of the shape. |
static Point2D |
polygonalShapeCentroid(Shape s)
Given a polygonal Shape, return the centroid of the shape. |
static List<Line2D> |
polygonalShapePerimeterSegments(Shape s)
Given a polygonal Shape, return a list of segments describing its perimeter. |
static List<List<Point2D>> |
polygonalSubShapeVertices(Shape s)
Given a polygonal Shape, return a list of lists of points that are the vertices of the closed polygonal sub-shapes. |
static double |
quadraticFormula(double a,
double b,
double c)
Solve the quadratic formula ax2 + bx + c = 0 given coefficients a, b, and c, returning the minimum nonnegative root, or the largest root if both are negative. |
static List<Area> |
subareas(Shape s)
Find all the subareas of a Shape. |
static Point2D |
subtract(Point2D p1,
Point2D p2)
Subtract two 2D vectors. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final double QUARTER_PI
public static final double HALF_PI
public static final double PI
public static final double ONE_AND_HALF_PI
public static final double TWO_PI
Method Detail |
---|
public static String ordinalize(int num)
num
- the cardinal number
public static double canonicalAngle(double angle)
angle
- the angle
public static double angleToPoint(Point2D p, Point2D startPoint)
p
- the point to which to find the anglestartPoint
- the point from which to start
public static Point2D polarAdd(Point2D p, double r, double theta)
p
- the starting pointr
- the distance to move from the pointtheta
- the angle at which to move from the point
public static Point2D subtract(Point2D p1, Point2D p2)
p1
- the first vectorp2
- the second vector
public static double dotProduct(Point2D p1, Point2D p2)
p1
- the first vectorp2
- the second vector
public static double crossProduct(Point2D p1, Point2D p2)
p1
- the first vectorp2
- the second vector
public static Point2D findLineLineIntersection(Line2D l1, Line2D l2)
l1
- the first linel2
- the second line
public static Point2D findLineLineIntersection(double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4)
x1
- the x coordinate of the first point of the first liney1
- the y coordinate of the first point of the first linex2
- the x coordinate of the second point of the first liney2
- the y coordinate of the second point of the first linex3
- the x coordinate of the first point of the second liney3
- the y coordinate of the first point of the second linex4
- the x coordinate of the second point of the second liney4
- the y coordinate of the second point of the second line
public static GeomMath.IntersectionPoint findLineLineIntersection(Point2D p1, double slope1, Point2D p2, double slope2)
p1
- an intercepting point of the first lineslope1
- the slope of the first linep2
- an intercepting point of the second lineslope2
- the slope of the second line
public static List<List<Point2D>> polygonalSubShapeVertices(Shape s)
s
- the polygonal Shape
IllegalArgumentException
- if the Shape is not polygonalpublic static List<Line2D> polygonalShapePerimeterSegments(Shape s)
s
- the polygonal Shape
IllegalArgumentException
- if the Shape is not polygonalpublic static List<Double> polygonalShapeAreas(Shape s)
s
- the polygonal Shape
public static Point2D polygonalShapeCentroid(Shape s)
s
- the polygonal Shape
public static Point2D centroid(List<Point2D> points)
points
- the List of Points
public static Area filledArea(Shape s)
subareas(Shape s)
.
s
- the Shape to fill in
public static List<Area> subareas(Shape s)
s
- the Shape to deconstruct.
public static double quadraticFormula(double a, double b, double c)
a
- the coefficient of the x2 termb
- the coefficient of the x termc
- the constant term
public static boolean intervalsOverlap(double t1start, double t1end, double t2start, double t2end)
t1start
- the start of the first intervalt1end
- the end of the first intervalt2start
- the start of the second intervalt2end
- the end of the second interval
public static double angleDiff(double ang1, double ang2)
ang1
- the first angleang2
- the second angle
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |