SetWorldTransform function (wingdi.h)
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.
Syntax
BOOL SetWorldTransform(
[in] HDC hdc,
[in] const XFORM *lpxf
);
Parameters
[in] hdc
A handle to the device context.
[in] lpxf
A pointer to an XFORM structure that contains the transformation data.
Return value
If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero.
Remarks
Below is the transformation matrix (note that the digits in the element notation are 1-based column number followed by 1-based row number, rather than the reverse).
| eM11 eM21 eDx |
| eM12 eM22 eDy |
| 0 0 1 |
So for any coordinates (x, y) in world space, the transformed coordinates in page space (x', y') can be determined in the way shown below.
| x' | | eM11 eM21 eDx | | x |
| y' | = | eM12 eM22 eDy | . | y |
| 1 | | 0 0 1 | | 1 |
x' = x * eM11 + y * eM21 + eDx
y' = x * eM12 + y * eM22 + eDy
This function uses logical units.
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.
Examples
For an example, see Using Coordinate Spaces and Transformations.
Requirements
Requirement | Value |
---|---|
Minimum supported client | Windows 2000 Professional [desktop apps only] |
Minimum supported server | Windows 2000 Server [desktop apps only] |
Target Platform | Windows |
Header | wingdi.h (include Windows.h) |
Library | Gdi32.lib |
DLL | Gdi32.dll |
See also
Coordinate Space and Transformation Functions