전단

일부 애플리케이션은 클라이언트 영역에서 그린 개체를 전단하는 기능을 제공합니다. 전단 기능을 사용하는 애플리케이션은 SetWorldTransform 함수를 사용하여 세계 공간의 적절한 값을 페이지 공간 변환으로 설정합니다. 이 함수는 적절한 값을 포함하는 XFORM 구조체에 대한 포인터를 받습니다. XFORM의 eM12 및 eM21 멤버는 각각 가로 및 세로 비례 상수를 지정합니다.

전단 변환에는 두 가지 구성 요소가 있습니다. 첫 번째 는 개체의 세로 선을 변경합니다. 두 번째는 가로줄을 변경합니다. 다음 그림에서는 월드 공간에서 페이지 공간으로 복사할 때 가로로 전단된 20-by-20 단위 사각형을 보여 줍니다.

월드 공간의 사각형과 페이지 공간의 trapeziod를 보여 주는 일러스트레이션

가로 전단은 다음 알고리즘으로 나타낼 수 있습니다.

x' = x + (Sx * y) 

여기서 x는 원래 x 좌표이고, Sx는 비례 상수이고, x'는 전단 변환의 결과입니다.

세로 전단은 다음 알고리즘으로 나타낼 수 있습니다.

y' = y + (Sy * x) 

여기서 y는 원래 y 좌표이고, Sy는 비례 상수이고, y'는 전단 변환의 결과입니다.

가로 전단 및 세로 전단 변환은 2-by-2 행렬을 사용하여 단일 연산으로 결합할 수 있습니다.

|x' y'| == |x y| * |  1   Sx| 
                   | Sy    1| 

전단을 생성한 2 x 2 행렬에는 다음 값이 포함됩니다.

|1    1| 
|0    1|