Table of Contents

Class AffineTransformationBuilder

Namespace
NetTopologySuite.Geometries.Utilities
Assembly
NetTopologySuite.dll

Builds an AffineTransformation defined by a set of control vectors.

public class AffineTransformationBuilder
Inheritance
AffineTransformationBuilder
Inherited Members

Remarks

A control vector consists of a source point and a destination point, which is the image of the source point under the desired transformation.

A transformation is well-defined by a set of three control vectors if and only if the source points are not collinear. (In particular, the degenerate situation where two or more source points are identical will not produce a well-defined transformation). A well-defined transformation exists and is unique. If the control vectors are not well-defined, the system of equations defining the transformation matrix entries is not solvable, and no transformation can be determined.

No such restriction applies to the destination points. However, if the destination points 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.

Constructors

AffineTransformationBuilder(Coordinate, Coordinate, Coordinate, Coordinate, Coordinate, Coordinate)

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

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

Parameters

src0 Coordinate

A control point

src1 Coordinate

A control point

src2 Coordinate

A control point

dest0 Coordinate

The image of src0 under the required transformation

dest1 Coordinate

The image of src1 under the required transformation

dest2 Coordinate

The image of src2 under the required transformation

Methods

GetTransformation()

Computes the AffineTransformation determined by the control point mappings, or null if the control vectors do not determine a well-defined transformation.

public AffineTransformation GetTransformation()

Returns

AffineTransformation

An affine transformation, or null if the control vectors do not determine a well-defined transformation.