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.