스케일링 변환의 목적은 객체의 크기를 변경하는 데 있다. 이 변환은 객체의 중심을 기준으로 객체의 크기를 일괄적으로 조정한다. 스케일링 변환은 2D와 3D 모두에서 유사한 방식으로 처리된다.
2D 스케일링 변환
2D 공간에서 객체를 스케일링하기 위해서는 객체의 각 점의 $(x, y)$ 좌표를 새로운 좌표 $(x', y')$로 변환해야 한다. 이 변환은 다음과 같은 행렬을 이용하여 수행될 수 있다:
S2D=[sx00sy]
여기서 $s_x$와 $s_y$는 각각 $x$ 축과 $y$ 축 방향의 스케일링 인자이다. 이 스케일링 행렬을 이용하여 입력 점 $\mathbf{p} = \begin{bmatrix} x \ y \end{bmatrix}$를 변환된 점 $\mathbf{p}' = \begin{bmatrix} x' \ y' \end{bmatrix}$로 변환할 수 있다:
p′=S2Dp=[sx00sy][xy]=[sxxsyy]
따라서, 스케일링 변환 후의 새로운 좌표는 다음과 같이 계산된다:
x′=sxx,y′=syy
3D 스케일링 변환
3D 공간에서는 스케일링 변환이 각 축에 대해 독립적으로 일어난다. 3D 스케일링 변환 행렬은 다음과 같다:
S3D=sx000sy000sz
여기서 $s_x$, $s_y$, $s_z$는 각각 $x$, $y$, $z$ 축 방향의 스케일링 인자이다. 입력 점 $\mathbf{p} = \begin{bmatrix} x \ y \ z \end{bmatrix}$를 변환된 점 $\mathbf{p}' = \begin{bmatrix} x' \ y' \ z' \end{bmatrix}$로 변환하기 위한 수식은 다음과 같다:
동차 좌표로 표현된 입력 점 $\mathbf{p}^{h} = \begin{bmatrix} x \ y \ 1 \end{bmatrix}$를 변환된 점 $\mathbf{p'}^{h} = \begin{bmatrix} x' \ y' \ 1 \end{bmatrix}$로 변환하기 위한 수식은 다음과 같다:
p′h=S2Dhph=sx000sy0001xy1=sxxsyy1
3D 동차 좌표계를 사용한 스케일링 변환
3D 동차 좌표계에서 변환 행렬은 다음과 같다:
S3Dh=sx0000sy0000sz00001
표현된 입력 점 $\mathbf{p}^{h} = \begin{bmatrix} x \ y \ z \ 1 \end{bmatrix}$를 변환된 점 $\mathbf{p'}^{h} = \begin{bmatrix} x' \ y' \ z' \ 1 \end{bmatrix}$로 변환하기 위한 수식은 다음과 같다: