다음을 통해 공유


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

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

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

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

같은 사진을 두 번 보여 주는 그림 두 번째는 반전되고 기울어져 있으며 크기, 회전 및 위치

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

도형과 텍스트를 보여 주는 일러스트레이션입니다. 그런 다음, 이것들이 역방향으로 기울어지고 다른 위치, 회전 및 크기로 나타납니다.