Cisalhamento
Alguns aplicativos fornecem recursos que armazenam objetos desenhados na área do cliente. Os aplicativos que usam recursos de tesoura usam a função SetWorldTransform para definir valores apropriados no espaço do mundo para a transformação de espaço de página. Essa função recebe um ponteiro para uma estrutura XFORM que contém os valores apropriados. Os membros eM12 e eM21 de XFORM especificam as constantes de proporcionalidade horizontal e vertical, respectivamente.
Há dois componentes da transformação de tesoura. O primeiro altera as linhas verticais em um objeto ; o segundo altera as linhas horizontais. A ilustração a seguir mostra um retângulo de 20 por 20 unidades desarmado horizontalmente quando copiado do espaço mundial para o espaço de página.
Uma tesoura horizontal pode ser representada pelo seguinte algoritmo:
x' = x + (Sx * y)
em que x é a coordenada x original, Sx é a constante de proporcionalidade e x' é o resultado da transformação de tesoura.
Uma tesoura vertical pode ser representada pelo seguinte algoritmo:
y' = y + (Sy * x)
em que y é a coordenada y original, Sy é a constante de proporcionalidade e y' é o resultado da transformação de tesoura.
As transformações de tesoura horizontal e vertical podem ser combinadas em uma única operação usando uma matriz de 2 por 2.
|x' y'| == |x y| * | 1 Sx|
| Sy 1|
A matriz 2 por 2 que produziu a tesoura contém os seguintes valores:
|1 1|
|0 1|