﻿ ANNXFORM | Used Structures | Raster imaging C++ Class Library 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

tx

Horizontal translation

ty

Vertical translation

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.

Usage

Help Version 23.0.2024.2.29