(4) 일차변환 알고리즘

이 장에서는 임의의 행렬로 나타내어진 일차변환을 수행하는 방법에 대하여 알아볼 것입니다.

이전 강좌에서 기본 변환(크기조절, 회전, 반사, 기울이기)의 행렬을 알아보았습니다.
기본 변환을 조합하여 임의의 행렬로 나타내어진 일차변환을 구현해보도록 하겠습니다.


행렬

를 기본 변환을 나타내는 행렬의 곱으로 표현할 수 있다면, 기본 변환을 거듭 적용하여 목표하는 바를 이룰 수 있습니다.

이 작업을 하려면 기본 변환 중 기울이기의 행렬에 주목할 필요가 있습니다.
각 α만큼 기울이기를 나타내는 행렬 A는

이고, 각 β만큼 기울이기를 나타내는 행렬 B의 전치행렬(행과 열을 맞바꾼 행렬) BT

입니다. 그런데 두 행렬의 곱 BTA는

이고, 이 행렬의 왼쪽에 크기조절 행렬을 곱하면

이 됩니다. 이 행렬은 2×2 행렬 전체를 대표할 수 있습니다.
이제 이 행렬이 와 같아지도록 W, H와 α, β의 값을 정하면 됩니다.



에서

이고

입니다.
이 값을 대입하여 기울이기, 반사, 기울이기, 반사, 크기조절을 차례로 적용하면 임의의 일차변환을 구현할 수 있습니다.

일차변환의 행렬은 위와 같고, 이 과정을 요약하면 아래와 같습니다.

①~⑤를 순차적으로 적용하면 행렬 로 나타내어지는 일차변환을 적용할 수 있습니다.