﻿ ANNXFORM | Annotation Data Types and Structures | Raster Imaging C API Help
In This Topic ▼

# ANNXFORM

## Summary

The ANNXFORM structure is used to store a matrix that represents a combination of translates, rotates, shears, and scales.

## Syntax

````typedef struct _ANNXFORM { `
`   L_DOUBLE r11; `
`   L_DOUBLE r12; `
`   L_DOUBLE r21; `
`   L_DOUBLE r22; `
`   L_DOUBLE tx; `
`   L_DOUBLE ty; `
`} ANNXFORM, *pANNXFORM; ````

## Members

See comments.

See comments.

See comments.

See comments.

### tx

Horizontal translation

### ty

Vertical translation

## Comments

The ANNXFORM structure is used to store an arbitrary combination of translations, rotations, scales, and shears.

It is used with the WM_LTANNEVENT message when wParam is LTANNEVENT_AUTOITEMCHANGING and the type of change is ANNTYPE_RESIZE_ROTATE. In this case, one of the fields of the ANNCHANGEPARAM structure is a pANNXORM, which indicates the changes that is about to take place, or already has taken place.

The fields tx and ty are used for horizontal and vertical translation. The fields tx, ty, r11, r12, r21, and r22 are used as follows:

Matrix:

````┌─         ─┐ `
`│ r11 r12 0 │ `
`│ r21 r22 0 │ `
`│ tx  ty  0 │ `
`└─         ─┘ ````

Translation:

````┌─       ─┐ `
`│ 1  0  0 │ `
`│ 0  1  0 │ `
`│ tx ty 1 │ `
`└─       ─┘ ````

Rotation: (‘a’ is angle of rotation)

````┌─                  ─┐ `
`│ cos(a)   sin(a)  0 │ `
`│ -sin(a)  cos(a)  0 │ `
`│ 0        0       1 │ `
`└─                  ─┘ ````

Scale: Sx is horizontal scaling, Sy is vertical scaling

````┌─       ─┐ `
`│ Sx 0  0 │ `
`│ 0  Sy 0 │ `
`│ 0  0  1 │ `
`└─       ─┘ ````

Operations are combined by multiplying the corresponding matrices.

For more information, see the documentation for the similar structure RGNXFORM, or the Microsoft MSDN documentation for the similar structure XFORM.

Help Version 22.0.2022.8.3
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2022 LEAD Technologies, Inc. All Rights Reserved.
﻿
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2022 LEAD Technologies, Inc. All Rights Reserved.