SetWorldTransform
The SetWorldTransform
function sets a two-dimensional linear transformation between world space and
page space for the specified device context. This transformation can be used to
scale, rotate, shear, or translate graphics output.
BOOL SetWorldTransform(
HDC hdc, |
// handle of device
context |
CONST XFORM *lpXform |
// address of
transformation data |
); |
|
Parameters
hdc
Identifies
the device context.
lpXform
Points to an XFORM
Return Values
If the
function succeeds, the return value is nonzero.
If the
function fails, the return value is zero.
Remarks
For any
coordinates (x, y) in world space, the transformed coordinates in page space
(x , y ) can be determined by the following algorithm:
x' = x * eM11 + y * eM21 + eDx,
y' = x * eM12 + y * eM22 + eDy,
where the
transformation matrix is represented by the following:
| eM11 eM12 0 |
| eM21 eM22 0 |
| eDx
eDy 1 |
The mapping
mode (defined by the current window and viewport extents origins) serves to
define units and scales.
The world
transformation is usually used to scale or rotate logical images in a
device-independent way.
The default
world transformation is the identity matrix with zero offset.
The SetWorldTransform
function will fail unless the graphics mode for the given device context has
been set to GM_ADVANCED by previously calling the SetGraphicsMode
function. Likewise, it will not be possible to reset the graphics mode for the
device context to the default GM_COMPATIBLE mode, unless the world
transformation has first been reset to the default identity transformation by
calling SetWorldTransform or ModifyWorldTransform.
See Also