Purpose: A utility class that can be used to perform operations on N-dimenionsal lines, triangles, and polygons.
About the System: This class will be used by a 2D renderer and a 3D renderer (and, perhaps, other classes).
Details
The barycentricCombination() Method:
/**
* Returns the point alpha q + (1-alpha)r
*
* @param q One point
* @param r The other points
* @param alpha The weight
*/
public static double[] barycentricCombination(double[] q, double[] r,
double alpha)
The boundingRectangle() Method:
/**
* Returns the bounding rectangle (i.e., the smallest rectangle
* that completely contains the given line, triangle, or polygon
*
* Note: This method should return an array of two points (i.e.,
* an array of arrays). The first point should contain the
* minimum x and y (i.e., the lower-left corner), and the second
* point should contain the maximum x and y (i.e., the
* upper-right corner).
*
* @param p The line, triangle, or polygon
* @return The bounding rectangle (as described above)
*/
public static double[][] boundingRectangle(double[]... p)
Note that this method uses a variable length parameter list. You
may, if you prefer, use double[][] p instead. The
advantage of the vaiable length paramter list is that the
method can be passed either a two-dimensional array or multiple
one dimensional arrays. For example, all of the following
would be valid:
double[][] p, rect;
double[] r, s, t;
// Initialization
rect = GeometryND.boundingRectangle(p);
rect = GeometryND.boundingRectangle(r, s);
rect = GeometryND.boundingRectangle(r, s, t);
Copyright 2007