3D 변환

회전

3D 회전은 2D 회전과 동일하지 않습니다. 3D 회전에서는 회전축과 함께 회전 각도를 지정해야합니다. X, Y, Z 축을 중심으로 3D 회전을 수행 할 수 있습니다. 그들은 아래와 같이 매트릭스 형태로 표현됩니다-

$$ R_ {x} (\ theta) = \ begin {bmatrix} 1 & 0 & 0 & 0 \\ 0 & cos \ theta & −sin \ theta & 0 \\ 0 & sin \ theta & cos \ theta & 0 \\ 0 & 0 & 0 & 1 \ \ \ end {bmatrix} R_ {y} (\ theta) = \ begin {bmatrix} cos \ theta & 0 & sin \ theta & 0 \\ 0 & 1 & 0 & 0 \\ −sin \ theta & 0 & cos \ theta & 0 \\ 0 & 0 & 0 & 1 \\ \ end {bmatrix} R_ {z} (\ theta) = \ begin {bmatrix} cos \ theta & −sin \ theta & 0 & 0 \\ sin \ theta & cos \ theta & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \ end {bmatrix} $$

다음 그림은 다양한 축에 대한 회전을 설명합니다.

스케일링

크기 조정 변환을 사용하여 개체의 크기를 변경할 수 있습니다. 크기 조정 프로세스에서 개체의 크기를 확장하거나 압축합니다. 원하는 결과를 얻기 위해 개체의 원래 좌표에 배율 인수를 곱하여 배율을 조정할 수 있습니다. 다음 그림은 3D 스케일링의 효과를 보여줍니다.

3D 스케일링 작업에서는 세 개의 좌표가 사용됩니다. 원래 좌표가 (X, Y, Z)이고 배율 인수가 각각 $ (S_ {X,} S_ {Y,} S_ {z}) $이고 생성 된 좌표가 (X ', Y')라고 가정하겠습니다. , Z '). 이것은 아래와 같이 수학적으로 표현 될 수 있습니다.

$ S = \ begin {bmatrix} S_ {x} & 0 & 0 & 0 \\ 0 & S_ {y} & 0 & 0 \\ 0 & 0 & S_ {z} & 0 \\ 0 & 0 & 0 & 1 \ end {bmatrix} $

P '= P ∙ S

$ [{X} '\ : \ : \ : {Y}'\ : \ : \ : {Z} '\ : \ : \ : 1] = [X \ : \ : \ : Y \ : \ : \ : Z \ : \ : \ : 1] \ : \ : \ begin {bmatrix} S_ {x} & 0 & 0 & 0 \\ 0 & S_ {y} & 0 & 0 \\ 0 & 0 & S_ {z} & 0 \\ 0 & 0 & 0 & 1 \ end {bmatrix} $

$ = [X.S_ {x} \ : \ : \ : Y.S_ {y} \ : \ : \ : Z.S_ {z} \ : \ : \ : 1] $

전단

물체의 모양을 기울이는 변형을 shear transformation. 2D 전단과 마찬가지로 3D에서 X 축, Y 축 또는 Z 축을 따라 개체를 전단 할 수 있습니다.

위 그림과 같이 좌표 P가 있습니다.이를 전단하여 새로운 좌표 P '를 얻을 수 있으며, 이는 아래와 같이 3D 행렬 형태로 표현 될 수 있습니다.

$ Sh = \ begin {bmatrix} 1 & sh_ {x} ^ {y} & sh_ {x} ^ {z} & 0 \\ sh_ {y} ^ {x} & 1 & sh_ {y} ^ {z} & 0 \\ sh_ {z} ^ {x} & sh_ {z} ^ {y} & 1 & 0 \\ 0 & 0 & 0 & 1 \ end {bmatrix} $

P '= P ∙ Sh

$ X '= X + Sh_ {x} ^ {y} Y + Sh_ {x} ^ {z} Z $

$ Y '= Sh_ {y} ^ {x} X + Y + sh_ {y} ^ {z} Z $

$ Z '= Sh_ {z} ^ {x} X + Sh_ {z} ^ {y} Y + Z $

변환 행렬

변환 매트릭스는 변환을위한 기본 도구입니다. nxm 차원의 행렬은 객체의 좌표와 곱해집니다. 일반적으로 3 x 3 또는 4 x 4 행렬이 변환에 사용됩니다. 예를 들어 다양한 작업에 대해 다음 매트릭스를 고려하십시오.

$ T = \ begin {bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ t_ {x} & t_ {y} & t_ {z} & 1 \\ \ end {bmatrix} $ $ S = \ begin {bmatrix} S_ {x} & 0 & 0 & 0 \\ 0 & S_ {y} & 0 & 0 \\ 0 & 0 & S_ {z} & 0 \\ 0 & 0 & 0 & 1 \ end {bmatrix} $ $ Sh = \ begin {bmatrix} 1 & sh_ {x} ^ {y} & sh_ {x} ^ {z} & 0 \\ sh_ {y} ^ {x} & 1 & sh_ {y} ^ {z} & 0 \\ sh_ {z} ^ {x} & sh_ {z} ^ {y} & 1 & 0 \\ 0 & 0 & 0 & 1 \ end {bmatrix} $
Translation Matrix Scaling Matrix Shear Matrix
$ R_ {x} (\ theta) = \ begin {bmatrix} 1 & 0 & 0 & 0 \\ 0 & cos \ theta & -sin \ theta & 0 \\ 0 & sin \ theta & cos \ theta & 0 \\ 0 & 0 & 0 & 1 \\ \ end {bmatrix} $ $ R_ {y} (\ theta) = \ begin {bmatrix} cos \ theta & 0 & sin \ theta & 0 \\ 0 & 1 & 0 & 0 \\ -sin \ theta & 0 & cos \ theta & 0 \\ 0 & 0 & 0 & 1 \\ \ end {bmatrix} $ $ R_ {z} (\ theta) = \ begin {bmatrix} cos \ theta & -sin \ theta & 0 & 0 \\ sin \ theta & cos \ theta & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \ end {bmatrix} $
Rotation Matrix