This is just a 2D transformation matrix (3x3). Specifying peculiar values will cause the shape to render completely outside its geometry - normally clients will constrain the values to get reasonable results. The transformation may be applied at various times as the geometry is processed, this affects the behavior of the perspective which results in the same way as the corresponding shadow perspective types.
msoxformAbsolute | Equivalent to msoshadowRich |
msoxformShape | Equivalent to msoshadowShape |
msoxformDrawing | Equivalent to msoshadowDrawing |
In the case of perspective the msoxformShape form is the default - the perspective will then scale proportionally with the overall shape scaling.
All parameters except the weight and offset elements are 16.16 fixed-point numbers. The offset is interpreted according to the perspective type, if the type is msoxformShape then the offset is assumed to be a 16.16 fixed point value, otherwise it is assumed to be an integral value (effectively a number of EMUs). The weight acts as an additional divisor for the perspectivePerspectiveX/Y elements - the values in the transformation matrix are obtained by dividing the property values by the weight, the default value of 256 gives a useful range of values for the msoxformShape case, for the other cases the weight should normally be around 1 to 256 times the size of the shape in the coordinate space.
Property | PID | Type | Default | Description |
perspectiveType | 576 | MSOXFORMTYPE | Shape | Where transform applies |
perspectiveOffsetX | 577 | LONG | 0 | The LONG values define a transformation matrix, effectively, each value is scaled by the perspectiveWeight parameter. |
perspectiveOffsetY | 578 | LONG | 0 | |
perspectiveScaleXToX | 579 | LONG | 1<<16 | |
perspectiveScaleYToX | 580 | LONG | 0 | |
perspectiveScaleXToY | 581 | LONG | 0 | |
perspectiveScaleYToY | 582 | LONG | 1<<16 | |
perspectivePerspectiveX | 583 | LONG | 0 | |
perspectivePerspectiveY | 584 | LONG | 0 | |
perspectiveWeight | 585 | LONG | 1<<8 | Scaling factor |
perspectiveOriginX | 586 | LONG | 1<<15 | |
perspectiveOriginY | 587 | LONG | 1<<15 | |
fPerspective | 639 | BOOL | FALSE | On/off |