wingdi.h


SetWorldTransform

La función SetWorldTransform asigna una transformación lineal de dos dimensiones entre el espacio del mundo y el espacio de página para el contexto de dispositivo especificado. Esta transformación puede usarse para escalar, rotar, deformar o trasladar la salida gráfica.

Sintaxis

BOOL SetWorldTransform(
    HDC hdc,              // manipulador de contexto de dispositivo
    CONST XFORM *lpXform  // dirección de datos de transformación
   );

Parámetros

hdc: identifica el contexto de dispositivo.

lpXform: apunta a una estructura XFORM que contiene los datos de transformación.

Valor de retorno

Si la función tiene éxito, el valor de retorno es distinto de cero.

Si la función falla, el valor de retorno es cero.

Observaciones

Para cualquier coordenada en el espacio del mundo (x, y), las coordenadas transformadas en el espacio de página (x', y') pueden determinarse mediante el siguiente algoritmo:

x' = x * eM11 + y * eM21 + eDx
y' = x * eM12 + y * eM22 + eDy

Donde la matriz de transformación se representa del siguiente modo:

| eM11 eM12 0 |  
| eM21 eM22 0 | 
| eDx  eDy  1 |

El modo de mapeo (definido por las dimensiones y orígenes actuales de la ventana y viewport), sirve para definir las unidades y las escalas.

Las transformaciones del mundo se usan normalmente para escalar o rotar imágenes lógicas de un modo independiente del dispositivo.

La transformación de mundo por defecto es la matriz identidad con un desplazamiento nulo.

La función SetWorldTransform fallará salvo que el modo gráfico para el contexto de dispositivo dado haya sido asignado a GM_ADVANCED por una llamada previa a la función SetGraphicsMode. Del mismo modo, no será posible resetear el modo gráfico para el contexto de dispositivo al valor por defecto GM_COMPATIBLE, a no ser que la tranformación de mundo haya sido reseteada también a su valor por defecto, la transformación identidad, mediante una llamada a SetWorldTransform o ModifyWorldTransform.