|
|||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES | ||||||||
See:
Description
| Interface Summary | |
|---|---|
| XyArea<T extends XyArea> | An XyArea is a shape that surrounds an interior. |
| XyPath<T extends XyPath> | An XyPath is a shape with an ordered sequence of points or curves. |
| XyShape<T extends XyShape> | Generic supertype for all shapes in the (x, y) coordinate space. |
| XyTransform | Generic type for coordinate transformations in (x, y) space. |
| Class Summary | |
|---|---|
| AbstractXyTransform | Abstract implementation of XyTransform, takes care of array and list cases. |
| DynamicXyPointArray | A managed, dynamically allocated array of XyPoints. |
| XyAffineTransform | A vector matrix affine transform. |
| XyAngle | An angular magnitude. |
| XyArc | A partial circle in (x, y) space. |
| XyBounds | Rectangular bounds, expressed as minimum and maximum x and y. |
| XyCircle | A circle in (x, y) space. |
| XyClosestPointFinder | Data structure and algorithm to handle closest-point matching. |
| XyCogSchema | |
| XyConstants | Geometric constants and conversion factors. |
| XyCubicCurve | |
| XyDeflection | A deflection angle. |
| XyDirection | An angular direction. |
| XyEllipse | |
| XyGrid | A quantization grid or tiling in (x, y) space. |
| XyGridCell | |
| XyGridSystem | Similar to a XyGrid. |
| XyLine | A geometric, infinite line in (x, y) space. |
| XyLineSegment | A line segment in (x, y) space. |
| XyPoint | A 2-dimensional point in x, y space. |
| XyPointOnPolyline | Holder class for a point, segment, vertex #, and line. |
| XyPolar | A polar coordinate in (x, y) space. |
| XyPolygon | A generalized polygon defined as an ordered list of vertices. |
| XyPolyline | A generalized polyline consisting of at least two vertices and one line segment. |
| XyPolylineBuilder | Builder class for XyPolylines. |
| XyQuadraticCurve | A quadratic curve, defined as P(t) = B(2,0)*CP + B(2,1)*P1 + B(2,2)*P2 over the interval 0 <= t <= 1. |
| XyQuadrilateral | A four-sided and four-cornered figured. |
| XyRay | A ray in (x, y) space. |
| XyRectangle | A rectangular shape in (x, y) space. |
| XyRegularPolygon | A regular polygon has equal-length sides and equal-size angles. |
| XyRotation | A rotation, expressed as an angle left (clockwise) or right (counter-clockwise). |
| XyShapeList<T extends XyShape> | An ordered list of XyShapes. |
| XySize | A rectangular size in (x, y) space. |
| XyTriangle | A triangle in (x, y) space. |
| XyTurtle | A turtle-graphics geometry builder for (x, y) space. |
| XyVector | A mathematical vector in (x, y) space. |
Two-dimensional, cartesian/euclidean geometry structures and algorithms.
This package addresses good old fashioned geometry in (x, y) space, just like in high school.
All classes and interfaces in here should be "pure math" - independent of any sort of video system, mapping system, or other concepts. The coordinates themselves are stored as eight-byte double-precision floating-point numbers, which puts some restriction on available values but should be precise enough (and fast enough) for most uses.
That being said, these classes aren't so abstract as to be divorced from computing and application realities - for example, arcs and line segments are understood to have starting and ending points and a direction, and not just abstract constructions via a compass or ruler.
Angles are one of the most problematic parts of a geometry model. There are a number of units of measure, starting angles, and standard directions. We have divided the problem into:
XyAngle - angular magnitude and unit conversion
XyDirection - compass-type values, angular coordinates and
coordinate system conversion
XyRotation - angle in a specific rotational direction (clockwise/counterclockwise)
XyDeflection - anglular offset from an origin direction
Having separate angle and direction types also allows more semantic precision. For example, the angle of a line is an XyDirection, but the angle between two lines is just an XyAngle.
One of the design goals for this package is that code utilizing it should be intelligible,
and even somewhat pedantic, rather than terse. This is to emphasize correctness. Factory methods such
as XyAngle.forRadians(double) and
XyDirection.forBearing(XyAngle) make it more difficult to confound
units and directions.
Copyright 1997-2007 Partner Software, Inc.
|
|||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES | ||||||||