IAffineTransformation2D2 Interface

Provides access to members that define and manipulate affine transformations.

Members

Name Description
Method DefineFromControlPoints Defines the best affine transformation between two sets of points. Can be used to register paper maps on a digitizer.
Method DefineFromControlPointsEx Defines the best affine transformation between two sets of points. Can be used to register paper maps on a digitizer.
Method DefineFromEnvelopes Defines a transformation that maps a point relative to one envelope to a similar position relative to another envelope.
Method DefineFromEnvelopesEx Defines a transformation that maps a point relative to one envelope to a similar position relative to another envelope.
Method DefineReflection Defines a transformation that can perform a reflection about the line l.
Method GetControlPointError Returns the errors involved in moving control point i from the 'from' to 'to' system. These error terms are valid after using DefineFromControlPoints/Ex to define the transformation.
Method GetRMSError RMS (Root Mean Square) error expressed relative to the 'from' and 'to' points defining the transformation. These error terms are valid after using DefineFromControlPoints/Ex to define the transformation.
Read-only property IsReflective Indicates if the transformation contains a reflection (determinant is negative).
Method Move Incorporates a translation factor into the transformation.
Read-only property MoveOrigin The origin of accumulated transformations used when projecting an affine transformation to a different spatial reference system.
Write-only property MoveOrigin The origin of accumulated transformations used when projecting an affine transformation to a different spatial reference system.
Method MoveVector Performs an X and Y translation defined by a 2D vector.
Method PostMultiply Post-multiplies the transformation by another transformation.
Method PreMultiply Pre-multiplies the transformation by another transformation.
Method Project Moves this transformation into another spatial reference. If the transformations contains only translations, then use the MoveOrigin property to define an equivalent translation in the new spatial reference.
Method Reset Resets the tranformation.
Method Rotate Incorporates a rotation (in radians) into the transformation.
Read-only property Rotation The rotation angle. Will not be able if different x/y scale factors have been incorporated into the transformation.
Method Scale Incorporates scale factors into the transformation.
Read/write property SpatialReference The spatial reference in which this transformation is meaningful.
Method TransformMeasuresFF Transforms floating point measures to floating point measures (or do the inverse).
Method TransformMeasuresFI Transforms floating point measures to integer measures (or do the inverse).
Method TransformMeasuresIF Transforms integer measures to floating point measures (or do the inverse).
Method TransformMeasuresII Transforms integer measures to integer measures (or do the inverse).
Method TransformPointsFF Transforms floating point points to floating point points (or do the inverse).
Method TransformPointsFI Transforms floating point points to integer points (or do the inverse).
Method TransformPointsIF Transforms integer points to floating point points (or do the inverse).
Method TransformPointsII Transforms integer points to integer points (or do the inverse).
Read-only property XScale The scale along the X axis.
Read-only property XTranslation The translation along the X axis.
Read-only property YScale The scale along the Y axis.
Read-only property YTranslation The translation along the Y axis.

IAffineTransformation2D2.MoveOrigin Property

The origin of accumulated transformations used when projecting an affine transformation to a different spatial reference system.

Public ReadOnly Property MoveOrigin_2 As IPoint
public IPoint MoveOrigin_2 {get;}

Remarks

Projecting a distance from one spatial reference to another is meaningless without specifying where the distance is measured. A line that is one unit in length in one spatial reference can map to a varying number of units on another spatial reference depending upon the location of the end points. For this reason, when your AffineTransformation2D has a translation (i.e., a Move), it is important to specify a point as the Origin for this move. This is done using the MoveOrigin property.

When the AffineTransformation2D you are projecting has a rotation, specifying a MoveOrigin is not necessary as the origin (or center) of the rotation is considered to be the origin of any translations as well.

Using a MoveOrigin that is closest to the geometry that you are projecting results in a more accurate transformation. In the following illustration, a point P1 is transformed by an AffineTransformation2D to the point P2. Both P1 and the Affine Transformation have the same spatial reference. P2 when projected to another spatial reference results in PP2.

If you project P1 and the Affine Transformation into PP2's spatial reference, and transform the projected point PP1 using the projected transformation, you will get the point PP2 provided you set the MoveOrigin of the AffineTransformation to P1 before projecting it. The results of this transformation will be more accurate when the MoveOrigin is closer to P1.

For the code illustrating this, see the example for this topic.

AffineTransformation2D Example

For an AffineTransformation2D to be projected, its MoveOrigin should be set so that it is within the horizons of the new projection.

IAffineTransformation2D2.MoveOrigin Property

The origin of accumulated transformations used when projecting an affine transformation to a different spatial reference system.

Public ReadOnly Property MoveOrigin_2 As IPoint
public IPoint MoveOrigin_2 {get;}

Remarks

Projecting a distance from one spatial reference to another is meaningless without specifying where the distance is measured. A line that is one unit in length in one spatial reference can map to a varying number of units on another spatial reference depending upon the location of the end points. For this reason, when your AffineTransformation2D has a translation (i.e., a Move), it is important to specify a point as the Origin for this move. This is done using the MoveOrigin property.

When the AffineTransformation2D you are projecting has a rotation, specifying a MoveOrigin is not necessary as the origin (or center) of the rotation is considered to be the origin of any translations as well.

Using a MoveOrigin that is closest to the geometry that you are projecting results in a more accurate transformation. In the following illustration, a point P1 is transformed by an AffineTransformation2D to the point P2. Both P1 and the Affine Transformation have the same spatial reference. P2 when projected to another spatial reference results in PP2.

If you project P1 and the Affine Transformation into PP2's spatial reference, and transform the projected point PP1 using the projected transformation, you will get the point PP2 provided you set the MoveOrigin of the AffineTransformation to P1 before projecting it. The results of this transformation will be more accurate when the MoveOrigin is closer to P1.

For the code illustrating this, see the example for this topic.

AffineTransformation2D Example

For an AffineTransformation2D to be projected, its MoveOrigin should be set so that it is within the horizons of the new projection.

Inherited Interfaces

Interfaces Description
IAffineTransformation2D Provides access to members that define and manipulate affine transformations.
ITransformation Provides access to members that apply a function (or its inverse) to a set of points or measures. The suffix of each method indicates the type of parameters operated on.

Classes that implement IAffineTransformation2D2

Classes Description
AffineTransformation2D A two dimensional affine transformation.

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.