ANNXFORM

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

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

Member

Description

r11

See comments.

r12

See comments.

r21

See comments.

r22

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  1

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.