이미지 회전, 반사 및 기울이기

원본 이미지의 왼쪽 위, 오른쪽 위 및 왼쪽 아래 모서리에 대한 대상 점을 지정하여 이미지를 회전, 반사 및 기울일 수 있습니다. 세 개의 대상 점이 원본 사각형 이미지를 평행사변형에 매핑하는 유사 변환을 결정합니다. (원래 이미지의 오른쪽 아래 모서리는 지정된 세 개의 대상 지점에서 계산되는 병렬 이동의 네 번째 모서리에 매핑됩니다.)

예를 들어, 원본 이미지는 왼쪽 위 모서리를 (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); 

다음 그림에서는 사진 이미지에 적용된 유사한 변환을 보여 줍니다.

동일한 사진을 두 번 보여 주는 그림 두 번째는 반전되고 기울어져 있으며 크기, 회전 및 위치가 다릅니다.

다음 그림에서는 메타파일에 적용된 유사한 변환을 보여 줍니다.

도형과 텍스트를 보여 주는 그림, 다시 한 번 하지만 반전, 기울이기, 그리고 다른 위치, 회전 및 크기