All numerical computation takes place under some form of precision model. There are several possible types of precision models:
For a list of all members of this type, see PrecisionModel Members.
|Fixed||Coordinates are represended as points on a grid with uniform spacing. (This can be assumed to be the integer grid, with the use of appropriate scale and offset factors). Computed coordinates are rounded to this grid.|
|Floating||Coordinates are represented as floting-point numbers. Computed coordinates may have more digits of precision that the input values (up the maximum allowed by the finite floating-point representation.|
For the Fixed precision model, this class converts a coordinate to and from a "precise" coordinate; that is, one whose precision is known exactly. In other words, specifies the grid of allowable points for all Geometries.
Under the Fixed precision model, vertices are assumed to be precise in JTS. That is, the coordinates of vertices are assumed to be rounded to the defined precision model. Input routines will be responsible for rounding coordinates to the precision model before creating JTS structures. Non-constructive internal operations will assume that coordinates are rounded to the precision model.
JTS methods will not handle inputs with different precision models.
The Fixed Precision Model will be specified by a scale factor and an offset point. The scale factor specifies how many JTS units represent one world unit. World coordinates are mapped to JTS coordinates according to the following equations:
Under the Floating Precision Model, coordinates can have the full precision available with .NET double-precision floating point numbers. Input coordinates are not assumed to be rounded off, and internal operations which comput constructed points do not round off the coordinates. Note that this does not mean that constructed points are exact; they are still limited to the precision of double-precision numbers, and hence may still be only an approximation to the exact point.
For .NET Framework Class: The Double value type represents a double-precision 64-bit number with values ranging from negative 1.79769313486232e308 to positive 1.79769313486232e308, as well as positive or negative zero, PositiveInfinity, NegativeInfinity, and Not-a-Number (NaN). Double complies with the IEC 60559:1989 (IEEE 754) standard for binary floating-point arithmetic.
Namespace: Geotools.Geometries Namespace