원본 이미지의 왼쪽 위, 오른쪽 위 및 왼쪽 아래 모서리에 대한 대상 지점을 지정하여 이미지를 회전, 반사 및 기울이기할 수 있습니다. 세 대상 지점은 원래 사각형 이미지를 병렬 프로그래밍에 매핑하는 아핀 변환을 결정합니다. (원래 이미지의 오른쪽 아래 모서리는 세 개의 지정된 대상 지점에서 계산되는 병렬 이동의 네 번째 모서리에 매핑됩니다.)
예를 들어 원본 이미지가 왼쪽 위 모서리(0, 0), 오른쪽 위 모서리(100, 0) 및 왼쪽 아래 모서리(0, 50)가 있는 사각형이라고 가정합니다. 이제 다음과 같이 세 점을 대상 지점에 매핑한다고 가정합니다.
원래 지점 | 대상 지점 |
---|---|
왼쪽 위(0, 0) | (200, 20) |
오른쪽 위(100, 0) | (110, 100) |
왼쪽 아래(0, 50) | (250, 30) |
다음 그림에서는 원래 이미지와 병렬 프로그래밍에 매핑된 이미지를 보여 줍니다. 원래 이미지가 기울어지고, 반사되고, 회전되고, 번역되었습니다. 원본 이미지의 위쪽 가장자리에 있는 x축은 (200, 20) 및 (110, 100)를 지나는 직선에 연결됩니다. 원본 이미지의 왼쪽 가장자리를 따라 y축이 (200, 20)과 (250, 30)을 지나는 선에 매핑됩니다.
다음 예제에서는 앞의 그림에 표시된 이미지를 생성합니다.
Point destinationPoints[] = {
Point(200, 20), // destination for upper-left point of original
Point(110, 100), // destination for upper-right point of original
Point(250, 30)}; // destination for lower-left point of original
Image image(L"Stripes.bmp");
// Draw the image unaltered with its upper-left corner at (0, 0).
graphics.DrawImage(&image, 0, 0);
// Draw the image mapped to the parallelogram.
graphics.DrawImage(&image, destinationPoints, 3);
다음 그림에서는 사진 이미지에 적용된 유사한 변환을 보여 줍니다.
같은 사진을 두 번 보여 주는
다음 그림에서는 메타파일에 적용된 유사한 변환을 보여 줍니다.