Leer en inglés

Compartir a través de


Traducción

Algunas aplicaciones traducen (o desplazan) objetos dibujados en el área de cliente. llamando a la función SetWorldTransform para establecer el espacio mundial adecuado en la transformación espacio de página. La función SetWorldTransform recibe un puntero a una estructura XFORM que contiene los valores adecuados. Los miembros eDx y eDy de XFORM especifican los componentes de traducción horizontal y vertical, respectivamente.

Cuando se produce la traducción , cada punto de un objeto se desplaza verticalmente, horizontalmente o ambos, por una cantidad especificada. En la ilustración siguiente se muestra un rectángulo de 20 unidades que se traducía a la derecha en 10 unidades cuando se copiaba del espacio de coordenadas del mundo al espacio de coordenadas de página.

ilustración que muestra un rectángulo en una posición en el espacio del mundo y en una posición diferente en el espacio de página

En la ilustración anterior, la coordenada x de cada punto del rectángulo es de 10 unidades mayores que la coordenada x original.

La traducción horizontal se puede representar mediante el siguiente algoritmo.

x' = x + Dx 

Donde x' es la nueva coordenada x, x es la coordenada x original y Dx es la distancia horizontal que se mueve.

La traducción vertical se puede representar mediante el siguiente algoritmo.

y' = y + Dy 

Donde y' es la nueva coordenada y, y es la coordenada y original, y Dy es la distancia vertical que se mueve.

Las transformaciones de traducción horizontal y vertical se pueden combinar en una sola operación mediante una matriz de 3 a 3.

                      |1   0   0| 
|x' y' 1| = |x y 1| * |0   1   0| 
                      |Dx  Dy  1| 

(Las reglas de multiplicación de matriz estados que el número de filas de una matriz debe ser igual al número de columnas de la otra. Entero 1 de la matriz |x y 1| es un marcador de posición que se agregó para cumplir este requisito).

La matriz 3 a 3 que produjo la transformación de traducción ilustrada contiene los siguientes valores.

|1  0  0| 
|0  1  0| 
|10 0  1|