## com.vividsolutions.jts.geom.util
Class AffineTransformationBuilder

    java.lang.Object
      com.vividsolutions.jts.geom.util.AffineTransformationBuilder

public class AffineTransformationBuilder
extends java.lang.Object

Builds an `AffineTransformation` defined by three control points and their images under the transformation.

A transformation is well-defined by a set of three control points as long as the points are not collinear (this includes the degenerate situation where two or more points are identical). If the control points are not well-defined, the system of equations defining the transformation matrix entries is not solvable, and no transformation can be determined. If the control point images are collinear or non-unique, a non-invertible transformations will be generated.

This technique of recovering a transformation from its effect on known points is used in the Bilinear Interpolated Triangulation algorithm for warping planar surfaces.

Author:
  Martin Davis

Constructor Summary
`AffineTransformationBuilder(Coordinate src0, Coordinate src1, Coordinate src2, Coordinate dest0, Coordinate dest1, Coordinate dest2)` Constructs a new builder for the transformation defined by the given set of control point mappings.

Method Summary
`AffineTransformation` `getTransformation()` Computes the `AffineTransformation` determined by the control point mappings, or `null` if the control points do not determine a unique transformation.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### AffineTransformationBuilder

    public AffineTransformationBuilder(Coordinate src0,
                                       Coordinate src1,
                                       Coordinate src2,
                                       Coordinate dest0,
                                       Coordinate dest1,
                                       Coordinate dest2)

  Constructs a new builder for the transformation defined by the given set of control point mappings.

Parameters:
  `src0` - a control point
  `src1` - a control point
  `src2` - a control point
  `dest0` - the image of control point 0 under the required transformation
  `dest1` - the image of control point 1 under the required transformation
  `dest2` - the image of control point 2 under the required transformation

Method Detail

### getTransformation

    public AffineTransformation getTransformation()

  Computes the `AffineTransformation` determined by the control point mappings, or `null` if the control points do not determine a unique transformation.

  Returns:
    an affine transformation